u-boot命令行具有丰富的命令和强大的功能。本文以启动幽兰代码本NVME上的Linux镜像为例,介绍如何通过手工命令来启动LINUX操作系统。

  1. 准备工作
    初始化PCI总线和NVME硬盘

ulan# pci enum
ulan# nvme scan

  1. 加载三大件
    load nvme 0 ${loadaddr} Image
    load nvme 0 ${initrd_addr} initrd.img-5.10.110-rockchip-rk3588
    load nvme 0 ${fdt_addr_r} /dtb/rockchip/yourland.dtb

  2. 把内核参数设置到环境变量
    run nvmeargs
    如需修改,那么可以执行env edit nvmeargs
    如果想观察所有环境变量,只要env print

  3. 启动内核
    booti ${loadaddr} ${initrd_addr}:8bb9dd ${fdt_addr_r}

boot cmd: [booti ${loadaddr} ${initrd_addr}:8bb99e ${fdt_addr_r}]
GPT: last_usable_lba need repair
GPT: last_usable_lba need repair
GPT: last_usable_lba need repair
GPT: last_usable_lba need repair
No misc partition
## Flattened Device Tree blob at 0x0a100000
   Booting using the fdt blob at 0x0a100000
  'reserved-memory' ramoops@110000: addr=110000 size=f0000
   Loading Ramdisk to eb114000, end eb9cf99e ... OK
   Loading Device Tree to 00000000eb0e8000, end 00000000eb11376a ... OK

【说明】

  1. 上面步骤使用initrd,也可以不使用,只要第2步不加载initrd,第4步用’-‘号作为booti的第二个参数

  2. 手工加载内核6的命令
    pci enum
    nvme scan
    load nvme 0 ${loadaddr} Image-6x
    load nvme 0 ${fdt_addr_r} /dtb/rockchip/rk3588-yourland.dtb
    run nvmeargs
    booti ${loadaddr} - ${fdt_addr_r}

作者:Zhang Yinkui  创建时间:2024-11-15 17:38
最后编辑:Zhang Yinkui  更新时间:2024-12-20 17:01