• uboot启动参数详解和一些细节


    首先要清楚板子上程序存储结构
    截取书《嵌入式Linux应用开发完全手册》中的uboot部分介绍图的开发板程序存储结构图
    在这里插入图片描述可以看到在BootLoader和kernel之间还有一段空间用来存放BootLoader给内核传参存放的空间Boot parameters 我们在设置uboot启动所设置的参数bootarges是BootLoader传给内核的参数
    EMMC读取内核和rootfs存放到内存

    	Serial = CLKUART 
    	Board:   X210
    	DRAM:    512 MB
    	Flash:   8 MB
    	SD/MMC:  3776MB
    	In:      serial
    	Out:     serial
    	Err:     serial
    	[LEFT UP] boot mode
    	checking mode for fastboot ...
    	Hit any key to stop autoboot:  0 
    	x210 # print
    	mtdpart=80000 400000 3000000
    	baudrate=115200
    	ethaddr=00:40:5c:26:0a:5b
    	gatewayip=192.168.1.1
    	netmask=255.255.255.0
    	ipaddr=192.168.1.20
    	bootcmd=movi read kernel 30008000; bootm 30008000
    	bootargs=console=ttySAC2,115200 root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext3
    	bootdelay=3
    	serverip=192.168.1.105
    
    	Environment size: 305/16380 bytes
    	x210 # 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    root=/dev/mmcblk0p2 rw 表示根文件系统存放在mmc第二个分区上
    init=/linuxrc 表示内核启动后执行的第一个程序
    console=ttySAC2,115200 表示控制台输出在串口2上,波特率为115200
    rootfstype=ext3 表示根文件系统使用ext3格式
    bootdelay=3 表示uboot启动后无按键下延时3秒自动启动系统,可以修改验证
    bootcmd=movi read kernel 30008000; bootm 30008000 表示内核从哪里读取到内存30008000位置,然后通过bootm 30008000从30008000地址驱动内核

    tftp下载内核nfs挂载根文件系统方式启动:

    x210 # print
    	mtdpart=80000 400000 3000000
    	baudrate=115200
    	ethaddr=00:40:5c:26:0a:5b
    	gatewayip=192.168.1.1
    	netmask=255.255.255.0
    	ipaddr=192.168.1.20
    	bootdelay=3
    	serverip=192.168.1.105
    	bootcmd=tftp 30008000 zImage;bootm 30008000
    	bootargs=root=/dev/nfs nfsroot=192.168.1.105:/home/hawen/zyp_linux/nfs/rootfs ip=192.168.1.20:192.168.1.105:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC2,115200
    
    	Environment size: 395/16380 bytes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    /dev/nfs nfsroot=192.168.1.105:/home/hawen/zyp_linux/nfs/rootfs ip=192.168.1.20:192.168.1.105:192.168.1.1:255.255.255.0::eth0:off 这里的参数表示根文件系统通过nfs的方式进行挂载,这里的/home/hawen/zyp_linux/nfs/rootfs 是我们主机下通过busybox挂载根文件系统的挂载点。
    一些其他细节:
    清除BootLoader
    在这里插入图片描述

  • 相关阅读:
    企业数据的存储形式与方案选择
    react学习笔记1
    学生HTML个人网页作业作品:HTML绿色的化妆品静态网站(web前端网页制作课作业)
    nginx(四十二)access阶段的模块学习
    如何批量创建文件夹并命名?
    学习Rust第14天:HashMaps
    RocketMQ源码(十六)之文件清理
    四十一、django框架简介
    Stable Diffusion中的ControlNet插件
    leetcode面试题之哈希表
  • 原文地址:https://blog.csdn.net/hwf1877655/article/details/126921944