bootcmd和bootargs
时间: 2023-10-02 12:10:58 浏览: 178
bootcmd是一个环境变量,用于定义系统在启动时执行的命令。它通常包含一系列命令,如加载内核、设备树和根文件系统等。在启动时,引导加载程序会执行bootcmd中定义的命令,以启动操作系统。
bootargs是另一个环境变量,用于传递内核启动参数。它包含了一些重要信息,如内核的启动参数、根文件系统的位置、串口设置、内存分配等。在启动时,引导加载程序会将bootargs中定义的参数传递给内核,以便内核能够正确启动并配置系统。
相关问题
请问rv1126配置完uboot中的bootargs参数后,怎么配置bootcmd来搭建NFS根文件系统?
要使用 NFS 根文件系统,你需要在 uboot 中设置好 bootargs 参数之后,指定 bootcmd 命令来从 NFS 服务器加载并启动内核。
通常的方法是使用 tftpboot 命令来从 NFS 服务器下载内核,然后使用 bootm 命令来启动内核。例如:
```
setenv bootcmd "tftpboot 0x8000000 vmlinux.ub; bootm 0x8000000"
```
这样,在你下次重启设备时,uboot 就会使用这条命令来从 NFS 服务器加载并启动内核。
注意,在配置 bootcmd 命令时,你还需要指定 NFS 服务器的 IP 地址、NFS 根文件系统的路径以及内核文件的名称,这些信息应该在设置 bootargs 参数时指定。
例如,你可以使用以下命令设置 bootargs 参数:
```
setenv bootargs "console=ttyS0,115200 root=/dev/nfs nfsroot=192.168.1.1:/path/to/rootfs ip=dhcp"
```
在这种情况下,bootcmd 命令就可以使用这些参数来连接到 NFS 服务器并加载内核。
setenv bootargs 'mem=3840M console=ttyAMA0,115200 clk_ignore_unused rw rootwait root=/dev/mmcblk0p3 rootfstype=ext4 blkdevparts=mmcblk0:1M(u-boot.bin),12M(kernel),6144M(rootfs.ext4),8192M(oem),-(data)';sa setenv bootcmd 'mmc read 0 0x42000000 0x800 0x6000; bootm 0x42000000';sa什么意思
这是一段U-Boot的环境变量设置命令,其中:
- `setenv` 表示设置一个U-Boot的环境变量;
- `bootargs` 是一个U-Boot的环境变量,用于设置Linux内核启动参数。这里设置的参数包括:
- `mem=3840M` 表示设置系统内存大小为3840M;
- `console=ttyAMA0,115200` 表示设置串口终端;
- `clk_ignore_unused` 表示忽略未使用的时钟;
- `rw` 表示将根文件系统挂载为可读写模式;
- `rootwait` 表示在根文件系统挂载之前等待设备就绪;
- `root=/dev/mmcblk0p3` 表示将mmcblk0p3设备作为根文件系统;
- `rootfstype=ext4` 表示根文件系统的类型为ext4;
- `blkdevparts=mmcblk0:1M(u-boot.bin),12M(kernel),6144M(rootfs.ext4),8192M(oem),-(data)` 表示对mmcblk0设备进行分区,其中1M为u-boot.bin,12M为内核,6144M为根文件系统,8192M为oem分区,剩余空间为data分区;
- `sa` 表示将设置的变量保存到U-Boot的环境变量中,下次开机时仍然有效;
- `bootcmd` 是一个U-Boot的环境变量,用于设置启动命令。这里设置的命令是:
- `mmc read 0 0x42000000 0x800 0x6000` 表示从mmc设备读取数据到内存中;
- `bootm 0x42000000` 表示从内存地址0x42000000处启动内核。
总的来说,这段命令是为了设置U-Boot的环境变量,以便启动Linux内核时使用。其中的参数可以根据具体的系统需要进行修改。
阅读全文