Uboot 将参数传递给内核!

Uboot 将参数传递给内核!

如何uboot将命令行参数传递给内核?我做了一些谷歌搜索,发现它使用了bootargs环境变量。那里提到了setenv bootargs key=value。因为我正在使用bash并且没有,setenv所以我使用export bootargs="value".但这并不影响任何事情。我检查过的/proc/cmdline参数保持不变。知道我做错了什么吗?

答案1

您可以使用uEnv.txt引导分区中的文件来指定引导参数。这是来自 yocto meta-zybo 层的 Xilinx zynq-7000 器件的示例:

kernel_image=uImage
devicetree_image=zybo-zynq7.dtb
bootargs=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait earlyprintk
uenvcmd=echo Copying Linux from SD to RAM... && fatload mmc 0 0x3000000 ${kernel_image} && fatload mmc 0 0x2A00000 ${devicetree_image} && bootm 0x3000000 - 0x2A00000

它指定要使用的设备树(如果调用了您的设备树,则不需要这样做device_tree.dtb),后面跟着一组内核参数。

您可以找到有关使用的更多信息uEnv.txt 这里

答案2

有两种方法将参数传递给内核: 1. 在内部编译它们。 2.使用引导加载程序

因此,首先检查您的参数是否未编译到内核中。您发现的第二个 setenv 命令不是 bash 命令,而是引导加载程序命令。这取决于特定设备的制作方式,但通常在某些内部存储(设备的闪存,而不是主机上)中有一个分区,引导加载程序在其中读取文件系统上的参数或文件,并且 u-boot 从那里获取配置。

另一种方法是通过电缆连接您的设备,并使用特定于设备的方式来获取引导加载程序提示并以交互方式更改您的设置。

如果您不熟悉特定的设备启动方案,那么这并不是一件小事。命名您的设备,它可能有助于回答您的问题。

答案3

除了SD卡上的文件之外,您还可以通过uEnv.txt文件传递启动文件。

你需要这些文件来启动:(BOOT.bin加载fsbl和uboot),bitstream.bit(加载到PL的比特流,uImage(编译后的linux内核),devicetree.dtb(linux读取它的驱动程序的地址),uramdisk.image.gz(启动后的linux文件)。

您可以通过以下命令将它们加载到您的 DDR:

bootargs=console=ttyPS0,115200 root=/dev/ram rw earlyprintk
load_image=fatload mmc 0 ${kernel_load_address} ${kernel_image} && 
fatload mmc 0 ${devicetree_load_address} ${devicetree_image} && 
fatload mmc 0 ${ramdisk_load_address} ${ramdisk_image} uenvcmd=run mmc_loadbit_fat && 
echo Copying Linux from SD to RAM... && 
run load_image && 
bootm ${kernel_load_address} ${ramdisk_load_address} ${devicetree_load_address}

另外,如果你想从 SD 的 ext4 分区加载其他 Linux 文件,你可以使用以下命令uEnv.txt

bootargs=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait devtmpfs.mount=0
load_image=fatload mmc 0 ${kernel_load_address} ${kernel_image} && 
fatload mmc 0 ${devicetree_load_address} ${devicetree_image} uenvcmd=run mmc_loadbit_fat && 
echo Copying Linux from SD to RAM... && 
mmcinfo &&  run load_image && 
bootm ${kernel_load_address} - ${devicetree_load_address}

相关内容