本篇主要讲 uboot bootargs变量 中的 键值对
bootargs 不一定要是键值对
这些 bootargs 最终被内核校验,被内核解析.
setenv bootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:192k(boot),2048k(kernel),5952k(rootfs)'memmem=xxM 指定内核可管理内存的大小,不是必须的 .内核实际可管理内存(给驱动,应用,及其他内核模块用的)要比这个小
consoleconsole=tty  使用虚拟串口终端设备.console=ttyS[,options] 使用特定的串口,options可以是这样的形式bbbbpnx,这里bbbb是指串口的波特率,p是奇偶位(从来没有看过使用过),n是指的bits。//这里一般用串口0,因为bootrom从 串口0 拉数据来烧写 uboot
root用来指定rootfs的位置root=/dev/ram rw   root=/dev/ram0 rwroot=/dev/mtdx rwroot=/dev/mtdblockx rwroot=/dev/mtdblock/x rwroot=31:0xroot=/dev/nfsrootfstype根文件系统是ext2的话,不用写入该选项.根文件系统不是ext2的话,写入该选项.文件系统类型有jffs2/squashfs.
mtdparts            要想这个参数起作用,内核中的mtd驱动必须要支持即内核配置时需要选上Device Drivers  ---> Memory Technology Device (MTD) support  ---> Command line partition table parsing   mtdparts的格式如下:mtdparts=[;:= :[,]:= [@offset][][ro]:= unique id used in mapping driver/device:= standard linux memsize OR "-" to denote all remaining space:= (NAME)因此你在使用的时候需要按照下面的格式来设置:mtdparts=mtd-id:@(),@()这里面有几个必须要注意的:a.  mtd-id 必须要跟你当前平台的flash的mtd-id一致,不然整个mtdparts会失效b.  size在设置的时候可以为实际的size(xxM,xxk,xx),也可以为'-'这表示剩余的所有空间。举例:假设flash 的mtd-id是sa1100,那么你可以使用下面的方式来设置:mtdparts=sa1100:-     →  只有一个分区mtdparts=sa1100:256k(ARMboot)ro,-(root)  →  有两个分区可以查看drivers/mtd/cmdlinepart.c中的注释找到相关描述。mtdparts=fc000000.nor_flash:1920k(linux),128k(fdt),20M(ramdisk),4M(jffs2),38272k(user),256k(env),384k(uboot)
-------------------------------------------------------------------------------
其他:
initrd, noinitrd当你没有使用ramdisk启动系统的时候,你需要使用noinitrd这个参数,但是如果使用了的话,就需要指定initrd=r_addr,size, r_addr表示initrd在内存中的位置,size表示initrd的大小。
initinit指定的是内核启起来后,进入系统中运行的第一个脚本,一般init=/linuxrc, 或者init=/etc/preinit,preinit的内容一般是创建console,null设备节点,运行init程序,挂载一些文件系统等等操作。请注意,很多初学者以为init=/linuxrc是固定写法,其实不然,/linuxrc指的是/目录下面的linuxrc脚本,一般是一个连接罢了。------------------------------------------------------------------------------
经常用的bootargs选项1). 假设文件系统是ramdisk(image-initrd),且直接就在内存中,bootargs的设置应该如下:
setenv bootargs ‘initrd=0x32000000,0xa00000 root=/dev/ram0 console=ttySAC0 mem=64M init=/linuxrc’2). 假设文件系统是ramdisk,且在flash中,bootargs的设置应该如下:
setenv bootargs ‘mem=32M console=ttyS0,115200 root=/dev/ram rw init=/linuxrc’
注意这种情况下你应该要在bootm命令中指定ramdisk在flash中的地址,如bootm kernel_addr ramdisk_addr (fdt_addr)3). 假设文件系统是jffs2类型的,且在flash中,bootargs的设置应该如下
// 具体是 mtdblock2 还是 mtdblock1 ,看 第几个分区 有 rootfs
setenv bootargs ‘mem=32M console=ttyS0,115200 noinitrd root=/dev/mtdblock2 rw rootfstype=jffs2 init=/linuxrc’4). 假设文件系统是基于nfs的,bootargs的设置应该如下
setenv bootargs ‘noinitrd mem=64M console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.3:/nfs ip=192.168.0.5:192.168.0.3:192.168.0.3:255.255.255.0::eth0:off’
或者
setenv bootargs ‘noinitrd mem=64M console=ttySAC0 root=/dev/nfs nfsroot=192.168.0.3:/nfs ip=192.168.0.5’

uboot boot ags相关推荐

  1. T2080RDB: UBoot boot vxWorks SMP

    T2080RDB:  UBoot boot vxWorks SMP 3162412793@qq.com 技术交流QQ群:691976956 U-Boot 2015.01QorIQ-SDK-V1.8+g ...

  2. u-boot-1.3.4移植到mini2440+128M nand boot(3)

    第4阶段 修改适合S3C2440的程序 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office ...

  3. uboot load address、entry point、 bootm address以及kernel运行地址的意义及联系

    按各地址起作用的顺序,uboot引导linux内核启动涉及到以下地址: load address: entry point: 这两个地址是mkimage时指定的 bootm address:bootm ...

  4. imx6q android nfs normal boot log

    ---------------------------------------- imx6q android nfs  normal boot log 用nfs 启动, --------------- ...

  5. Uboot代码结构详细分析

    1. Bootloader功能分析 Bootloader(如Uboot.Redboot.Blob.vivi等)直接和CPU.外围硬件设备(存储器.网卡.LCD等)打交道,负责初始化硬件设备,以及负责拉 ...

  6. (一) u-boot 基本介绍

    ▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼ 分享一个大神朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到 ...

  7. run命令 uboot_华为光猫HG8245H救砖笔记⑥逆向UBoot恢复海思命令行

    前文中虽然成功的运行了UBoot,但是因为内核损坏,依然无法正常启动.想要用UBoot刷写Flash,就必须进入UBoot的命令行模式,一般UBoot在引导过程中,会有短暂的时间让用户按下某些指定的按 ...

  8. uboot启动 -- uboot基本启动流程

    本文以Board JZ2440(SMDK2410)的启动过程进行说明,u-boot选用u-boot-2015 1 概述 1.1 概述 CPU初始刚上电的状态.需要小心的设置好很多状态,包括cpu状态. ...

  9. 树莓派3B+移植uboot

    一.前言 最近入手得一块树莓派3B+开发板,试着移植Uboot到其中作启动内核,练练手. 二.大致过程 1.准备一张8G以上microSD卡或U盘(树莓派3B+默认支持USB启动),在Windows环 ...

最新文章

  1. C#中方法参数的四种类型
  2. C#使用BerkeleyDB操作简介
  3. OpenCV官方文档
  4. docker暴露多个端口
  5. Mysql 字符串分隔
  6. TortoiseSVN使用详细步骤(一)
  7. 怎么将matlab滤波器系数导出_matlab与FPGA数字信号处理系列(1)——通过matlab工具箱设计FIR数字滤波器...
  8. 面向对象中构造函数的小练习
  9. VS2010删除所有断点时不弹出提示窗口
  10. Python面向对象基础一
  11. UCF 大牛 Prof. Shah 课题组代码合集
  12. 详细解读Android中的搜索框(二)—— Search Dialog
  13. Qt + 运动控制 (固高运动控制卡)【1】环境准备,框架搭建
  14. 纤亿通教你如何选择合适的 Cat6 网线
  15. 软件需求工程 高校教学平台 项目总体计划
  16. 中标麒麟桌面版7.0(NeoKylin linux desktop release 7.0)配置pyqt5运行环境说明
  17. react 调用webIm
  18. Python从RGBD数据进行3D场景重建
  19. 怎样修改word页面页码
  20. 居中小圆点html,圆点怎么打

热门文章

  1. Rust学习笔记(13)——struct、Option和Box组合应用实现单向链表
  2. top期刊,顶级期刊,顶级期刊,jcr分区和中科院分区
  3. 逻辑拓扑与物理拓扑之间的区别
  4. 阿里巴巴内推一面过程
  5. Host Context配置
  6. (python基础)df.loc和df.iloc
  7. CS61A Homework3
  8. linux运行国服英雄联盟排行榜,LOL国服排位十大高手排名:问谁是S2路人王
  9. 读行学区块链专栏 | 全球区块链资讯Top10
  10. Markdown使用小笔记