uEnv.txt启动文件与嵌入式Linux的混淆

时间:2018-11-16 10:19:54

标签: embedded-linux beagleboneblack bootloader u-boot beagleboard

我用存储在可插入SD卡中的Debian映像重新刷新BeagleBone Green板上的内部emmc。

我收到的指示是修改SD卡映像中的/boot/uEnv.txt文件,该文件必须刷新并取消注释最后一行: cmdline = init = / opt / scripts / tools / eMMC /init-eMMC-flasher-v3.sh

这可以正常工作并按预期方式闪烁内部存储器。我不明白的是,当我在刷新映像时检查/boot/uEnv.txt文件时,然后再次注释该行。是什么原因造成的?

我还认为/boot/uEnv.txt文件是引导加载程序的一部分,而不是内核映像。我在这里真的很困惑。

另一件事,很抱歉,如果有多个问题。如果我想修改SD卡映像上的uEnv.txt文件,然后将修改后的映像发送给其他人,该如何做?

1 个答案:

答案 0 :(得分:0)

/boot/uEnv.txt文件正在被eMMC刷新脚本修改,该脚本在您使用包含行cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.shcmdline的uEnv.txt文件启动板时执行。该文件表示内核命令行,引导时U-Boot会将其传递给Linux内核。

因此,使用uEnv.txt中的这一行,您基本上是在告诉U-Boot告诉内核启动“非常规”应用程序,而不是默认的初始化程序(该程序将“正常”启动系统)。该应用程序在Linux下运行,可以访问整个SD卡和eMMC存储器,包括包含uEnv.txt文件的分区,并可以根据需要更改文件内容。

关于最后一个问题,您可以使用dd工具从Linux shell创建一个包含修改后的SD卡映像的文件,例如:

dd if=/dev/mmcblk0 of=mySDcard.img

在上述命令中,将/dev/mmcblk0替换为在插入SD卡时在系统中创建的块设备文件(必须挂载分区才能正常工作);图像文件将创建为mySDcard.img