标签: embedded-linux

意外断电会损害 Linux 安装吗?

我正在 Linux 嵌入式开发板(运行 Debian)上开发应用程序,例如 Raspberry Pi、Beagle Board/Bone 或 olimex。电路板在意外断电的环境中工作(放置 PSU 等非常复杂),并且每天都会发生几次。我想知道意外断电是否会导致 Linux 操作系统崩溃/问题?如果这是我应该担心的事情,您有什么建议可以防止意外断电对操作系统造成损害?

附注。应用程序需要向存储介质(SD卡)写入一些数据,我认为将其挂载为只读是不合适的。

linux debian operating-systems power-supply embedded-linux

22
推荐指数
3
解决办法
3436
查看次数

Telnet 或 SSH 到基于嵌入式 Linux 的 NAS?

您是否知道是否可以通过 telnet 或 SSH 连接到LG N1A1DD1 NAS?

它似乎有很多我不需要的功能(包括 FTP),但我找不到任何关于 telnet 或 SSH 功能的提及。

如果无法 telneting 或 SSH-ing 到它,您是否知道是否可以通过其 Web 界面配置一个脚本,该脚本可以通过其 USB 端口定期备份它?(当然,虽然仍然作为 NAS 运行)

nas embedded-linux

6
推荐指数
2
解决办法
6750
查看次数

如何从 SD 卡启动 [嵌入式] linux?

我正在 DM816x evm 板上搭建一个快速的嵌入式 linux 系统。以前我一直使用 TFTP 和 NFS 将我的内核和根文件系统加载到板上。我现在正在尝试切换到从 SD 卡加载所有内容。

我对我的卡进行了分区,使得 uBoot 和我的内核映像位于一个分区中,而我的 rootFS 位于另一个分区中。开机时,Uboot 正确启动并成功启动内核。但是,内核无法挂载根文件系统。它似乎无法识别任何 SD (mmc) 卡。它给出了这个错误信息。

VFS: Cannot open root device "mmcblk0p2" or unknown-block(2,0)
Please append a correct "root=" boot option; here are the available partitions:
1f00             256 mtdblock0  (driver?)
1f01               8 mtdblock1  (driver?)
1f02            2560 mtdblock2  (driver?)
1f03            1272 mtdblock3  (driver?)
1f04            2432 mtdblock4  (driver?)
1f05             128 mtdblock5  (driver?)
1f06            4352 mtdblock6  (driver?)
1f07          204928 mtdblock7  (driver?)
1f08           50304 mtdblock8  (driver?)
Kernel panic - …
Run Code Online (Sandbox Code Playgroud)

linux embedded embedded-linux

6
推荐指数
1
解决办法
3679
查看次数

在 Linux 中卸载可拆卸设备(eSATA、USB 存储)

像 eSATA、USB 驱动器这样的可拆卸设备可以突然移除(只需拔掉插头)。

如果分区上有打开的文件句柄,则该分区不会卸载,即 Linuxumount命令将失败,即使在驱动器被物理分离后也是如此。

如果卸载失败,则在重新连接设备时,mount也将失败。因此,您必须找出哪些进程正在使用驱动器并杀死它们或关闭所有句柄。如果您不能这样做,则必须重新启动盒子才能安装驱动器。而且我绝对不能终止使用它的进程。

我看不到“强制卸载”选项,有一个-f选项,但它仅适用于 NFS。

这听起来很奇怪,Linux 不适应用户简单地猛拉驱动器的这种情况吗?有谁知道如何在 Linux 中优雅地处理这种情况?

有什么方法可以找出在特定分区/设备上打开了哪些文件句柄,或者仅针对特定设备有选择地刷新和关闭所有文件句柄?

注意:该lsof命令在我使用的嵌入式 Linux (busybox) 中不可用。


“fuser”在我的嵌入式 linux 中不可用。

我尝试了懒惰的 umount -l。但是,它似乎并不能始终如一地工作。比如说,我保持一个文件句柄打开(在设备上的某个文件上使用“tail -f”)。然后我分离一个驱动器,然后我执行“umount -l”并卸载它。然后我重新连接驱动器并尝试在相同的安装点上再次安装它,而尾部仍在运行。它不能始终如一地工作。有时它会成功,有时它不会。这让我不舒服使用惰性选项,如果它使文件系统处于不一致状态怎么办。而且也不确定这个懒惰的选项是否打算用于这种情况。

我无法终止打开文件句柄的进程。


似乎我已经将设备安装在 /mnt/abc 上,如果我断开驱动器然后重新连接,Linux 似乎将设备的文件系统重新附加到相同的安装点“/mnt/abc”,而我们没有做任何事情卸载或安装。然后相同的旧打开文件句柄似乎在重新附加后开始工作(至少对于文件读取操作)。这是我的观察。我不确定这是否是预期的行为。但是,这似乎也没有持续有效。

我有一个用于读取的打开文件句柄(“tail -f”),我将其保持打开状态,然后我分离并重新附加,然后修改了被拖尾的文件,我看到“tail -f”输出随着更改而更新。但是,如果我在设备消失后尝试修改文件(它按预期给出错误)然后重新附加,则设备的文件系统无法正确重新附加到相同的安装点。在文件写入的情况下(当设备不存在时)它似乎不起作用。

当突然移除驱动器而不关闭所有句柄并正确卸载所有分区时,Linux 是否遵循任何标准/一致的行为?

linux busybox linux-kernel embedded-linux

5
推荐指数
1
解决办法
3511
查看次数

在启动时自动加载内核模块。(埃)

我知道如何在 ubuntu 中自动加载你的模块。你把你的模块放在 /etc/modules

但是,我为我正在研究的嵌入式系统编译了内核和文件系统。但是 /etc 目录中没有“模块”文件。(顺便说一下,我正在使用埃)

无论如何要在启动时加载我的模块?

提前致谢,

embedded-linux kernel-module

5
推荐指数
1
解决办法
4407
查看次数

挂载的文件系统没有日志。安装 ext4 fs 时选项:(null)

我使用带有 NFS 的 Beaglebone black,
我已使用 ext4 文件系统格式化内部 eMMC,

当我使用以下命令消息弹出窗口挂载文件系统时,告诉文件系统是在没有挂载的情况下挂载的journal,那么我如何使用日志挂载文件系统,

# mount -t ext4 /dev/mmcblk0p2 /media/emmcrfs/
[10639.836647] EXT4-fs (mmcblk0p2): mounted filesystem without journal. Opts: (null)
Run Code Online (Sandbox Code Playgroud)

我读到的另一件事是 ram 日志更适合嵌入式系统,是这样吗?
如何设置内存日志选项?

我必须使用tune2fs实用程序吗?

linux mount filesystems ext4 embedded-linux

5
推荐指数
1
解决办法
2万
查看次数