uboot 加载initrd方式
时间: 2023-10-02 21:05:48 浏览: 51
在uboot中加载initrd有几种方式:
1. 使用tftp加载initrd
首先需要确保uboot支持网络启动,并配置好网络。然后使用tftp命令下载initrd文件到内存中,命令如下:
tftpboot ${initrd_addr} ${initrd_file}
其中${initrd_addr}为内存地址,${initrd_file}为initrd文件名。
2. 使用mmc加载initrd
如果系统存储在SD卡中,可以使用mmc命令加载initrd文件,命令如下:
mmc read ${initrd_addr} ${initrd_offset} ${initrd_size}
其中${initrd_addr}为内存地址,${initrd_offset}为SD卡中initrd文件的偏移量,${initrd_size}为initrd文件大小。
3. 使用usb加载initrd
如果系统存储在USB设备中,可以使用usb命令加载initrd文件,命令如下:
usb start
fatload usb 0:${initrd_part} ${initrd_addr} ${initrd_file}
其中${initrd_part}为USB设备中initrd文件所在的分区号,${initrd_addr}为内存地址,${initrd_file}为initrd文件名。需要先使用usb start命令启动USB设备。
相关问题
uboot 加载initrd
在 U-Boot 中,可以使用 bootm 命令加载 initrd,具体步骤如下:
1. 首先需要将 initrd 文件加载到内存中。可以使用 tftp 命令从网络中下载 initrd 文件,例如:
```
tftp ${initrd_addr} ${initrd_file}
```
其中,${initrd_addr} 是内存中的加载地址,${initrd_file} 是 initrd 文件在 TFTP 服务器上的路径。
2. 然后需要设置 initrd 的启动参数。可以使用 setenv 命令设置启动参数,例如:
```
setenv bootargs root=/dev/ram rw initrd=${initrd_addr},0x${initrd_size}
```
其中,root=/dev/ram 表示将 initrd 挂载为根文件系统,rw 表示读写权限,initrd=${initrd_addr},0x${initrd_size} 表示 initrd 的起始地址和大小。
3. 最后使用 bootm 命令启动系统,例如:
```
bootm ${kernel_addr} - ${fdt_addr}
```
其中,${kernel_addr} 是内存中的内核加载地址,${fdt_addr} 是设备树的加载地址。如果不需要设备树,可以省略 - ${fdt_addr}。
总的来说,加载 initrd 的过程比较简单,主要是设置启动参数时需要注意。
uboot 加载内核方式
u-boot 加载内核有三种方式:
1. TFTP 方式:将内核镜像通过 TFTP 协议从 TFTP 服务器下载到 RAM 中,然后通过 bootm 命令启动内核。
2. NAND Flash 方式:将内核镜像从 NAND Flash 中读取到 RAM 中,然后通过 bootm 命令启动内核。
3. SD 卡方式:将内核镜像从 SD 卡中读取到 RAM 中,然后通过 bootm 命令启动内核。