Linux 内核启动与配置全解析
1. 启动 Linux 内核
1.1 bootm 命令
bootm
命令用于启动内核镜像,其语法如下:
bootm [address of kernel] [address of ramdisk] [address of dtb]
其中,内核镜像地址是必需的。如果内核配置不需要 ramdisk 和 dtb,则可以省略它们的地址。若有 dtb 但没有 initramfs,第二个地址可以用破折号(-)代替,示例如下:
U-Boot# bootm 82000000 - 83000000
1.2 使用 U-Boot 脚本自动化启动
每次开机都手动输入一长串命令来启动开发板显然不可行。为了实现自动化,U-Boot 将一系列命令存储在环境变量中。特殊变量 bootcmd
若包含脚本,系统上电后会在 bootdelay
秒的延迟后运行该脚本。在串口控制台可以看到延迟倒计时,期间按任意键可终止倒计时并进入 U-Boot 交互会话。
创建脚本的方法很简单,但可读性欠佳。只需用分号分隔命令,且分号前需加反斜杠转义字符。例如,从闪存偏移处加载内核镜像并启动,可使用以下命令:
setenv bootcmd nand re