uboot环境配置
uboot环境配置
通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核。这个配置主要是通过uboot内建的"set 变量名 变量值+save"设置环境变量的方式进行配置,下面是我采用的uboot的环境变量,下面是我用的环境变量设置:
#pri #即printenv
baudrate=115200
bootargs=root=/dev/nfs nfsroot=192.168.0.50:/nfs rw console=ttySAC2,115200n8 init=/linuxrc ip=192.168.0.55 loglevel=7 clk_ignore_unused
bootcmd=tftp 41000000 uImage;tftp 42000000 exynos4412-origen.dtb;bootm 41000000 - 42000000
bootdelay=4
ethact=dm9000
ethaddr=11:22:33:44:55:66
fileaddr=41000000
filesize=26D213
gatewayip=192.168.2.1
ipaddr=192.168.0.55
netmask=255.255.255.0
serverip=192.168.0.50
stderr=serial
stdin=serial
stdout=serial
baudrate就是波特率,习惯上就设成115200,根据硬件的不同可以相应的修改
bootargs启动参数,这个参数除了uboot要用,启动内核之后还会传入内核。
其中,root=/dev/nfs表示开发板的根文件系统从nfs网络设备中加载,nfsroot=192.168.0.55:/nfs表示从网络中的ip是192.168.0.55的主机中的/nfs目录加载根文件系统,rw表示可读可写,console=ttySAC2表示使用的中端,115200表示波特率,init=/linuxrc表示启动的祖先进程的位置,显然这是给linux内核用的,ip=192.168.0.55是开发板的ip,需要和主机在同一个网段,loglevel=7就是登录等级,这个不设也行,clk_ignore_unused忽略时钟。这个参数的实质是uboot传入内核的,所以需要参考内核的启动参数的相关文件,我在下面做了简要的说明。除了启动参数,uboot还需要做一些其他的准备工作,并不是这个参数准备好了内核就可以工作了,比如,关于arm平台的linux内核启动条件,可以参考Linux内核源码中的Documentation/arm/Booting ,这里就不做说明了
bootcmd启动命令,tftp 41000000 uImage表示从tftp网络中下载uImage内核镜像到41000000地址处,tftp 42000000 exynos4412-origen.dtb表示下载从tftp网络中下载设备树文件到42000000地址处,bootm 41000000 - 42000000表示从41000000启动内核,我这没有randisk,用-代替,不是从41000000到42000000的意思!!!此外,一旦填入了ramdisk地址,内核就会从ramdisk挂载根文件系统而忽略nfs。最后,把设备树从42000000传入内核。
注意:多个命令之间用;分隔,所以为了在设置变量的时候不立即执行,应该写成set bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-origen.dtb\;bootm 41000000 - 42000000
bootdelay启动倒计时的秒数
gatewayip表示网关
ipaddr表示开发板的ip
serverip表示主机的ip
netmask表示子网掩码
stderr,stdin,stdout表示标准输入输出错误设备,基本都填串口serial
Linux内核启动参数
内核需要的启动参数在linux-4.8.5/Documentation/kernel-parameters.txt以及相应的文件中,这些参数就是uboot需要通过bootargs将他们准备好并传给内核,当然,这些参数都是有缺省值的,我们只需要对需要的参数进行配置,这里列出这里用到的几个
noinitrd [RAM] Tells the kernel not to load any configured
initial RAM disk.
root= [KNL] Root filesystem
See name_to_dev_t comment in init/do_mounts.c.
nfsroot= [NFS] nfs root filesystem for disk-less boxes.
See Documentation/filesystems/nfs/nfsroot.txt.
rw [KNL] Mount root device read-write on boot
rootwait [KNL] Wait (indefinitely) for root device to show up.
Useful for devices that are detected asynchronously
(e.g. USB and MMC devices).
ip= [IP_PNP]
See Documentation/filesystems/nfs/nfsroot.txt.
console= [KNL] Output console device and options.
。。。
init= [KNL]
Format: <full_path>
Run specified binary instead of /sbin/init as init
process.
loglevel= All Kernel Messages with a loglevel smaller than the
console loglevel will be printed to the console.
。。。
clk_ignore_unused
[CLK]
Prevents the clock framework from automatically gating
clocks that have not been explicitly enabled by a Linux
device driver but are enabled in hardware at reset or
by the bootloader/firmware.
。。。
$grep ip= Documentation/filesystems/nfs/nfsroot.txt -A 20
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>:<dns0-ip>:<dns1-ip>
This parameter tells the kernel how to configure IP addresses of devices and also how to set up the IP routing table. It was originally called 'nfsaddrs', but now the boot-time IP configuration works independently of NFS, so it was renamed to 'ip' and the old name remained as an alias for compatibility reasons.
。。。。
$grep nfsroot= Documentation/filesystems/nfs/nfsroot.txt -A 20
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]
If the 'nfsroot' parameter is NOT given on the command line,
the default "/tftpboot/%s" will be used.
。。。
uboot环境配置的更多相关文章
- uboot的配置流程分析
简单介绍一下uboot的基本配置流程.和绝大多数源码编译安装一样,uboot在执行make之前需要执行make XXXconfig来配置相关信息,而且uboot本身是针对多种平台的bootloader ...
- uboot环境变量实现分析
u-boot的环境变量用来存储一些经常使用的参数变量,uboot希望将环境变量存储在静态存储器中(如nand nor eeprom mmc). 其中有一些也是大家经常使用,有一些是使用人员自己定义的, ...
- 在Linux里读取UBOOT环境变量
转载:http://falloutmx.blog.163.com/blog/static/39236020201211145010154/ 可以通过mtd方式读取,也可以用ioremap方式.不过这些 ...
- u-boot 环境变量参数设置
今天本来是烧写内核,结果一不小心把uboot也整不能用了,无奈之下只好重新烧个uboot,等都弄好以后,发现系统还是启动不了,原来是启动参数设置不对,于是找到了这篇文章,//是我添加的内容. 原文地址 ...
- 关于《s3c2416裸跑环境配置》一文的一些补充
<s3c2416裸跑环境配置>一文已经发表很长一段时间了,前两天突然收到邮件提示有人回复,原来网友jxyggg按照文中所讲去调试,却始终不能成功.问题的描述见原文后的回复,经过QQ交流,问 ...
- MPC8313ERDB在Linux从NAND FLASH读取UBoot环境变量的代码分析
MPC8313ERDB在Linux从NAND FLASH读取UBoot环境变量的代码分析 Yao.GUET@2014-05-19 一.故事起因 由于文件系统的增大,已经大大的超出了8MB的NOR FL ...
- 关于全志A20的Ubuntu12.04 64位系统下环境配置及编译过程笔记【转】
本文转载自:https://blog.csdn.net/buqingbuyuan/article/details/43370199 在安装Ubuntu系统之后,安装编译所需的GCC等工具,一般选用GC ...
- Linux系统——访问U-BOOT环境变量
Linux系统下访问U-BOOT环境变量 移植过U-BOOT的人,都知道:在U-BOOT中存有ENV.但U-BOOT在引导内核启动之后,U-BOOT的生命周期就结束了.那么启动LINUX内核之后,U- ...
- 史上最全Windows版本搭建安装React Native环境配置
史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...
随机推荐
- 【前端性能】高性能滚动 scroll 及页面渲染优化
最近在研究页面渲染及web动画的性能问题,以及拜读<CSS SECRET>(CSS揭秘)这本大作. 本文主要想谈谈页面优化之滚动优化. 主要内容包括了为何需要优化滚动事件,滚动与页面渲染的 ...
- ExtJS 4.2 业务开发(三)数据添加和修改
接上面的船舶管理业务,这里介绍添加和修改操作. 目录 1. 添加操作 2. 修改操作 3. 在线演示 1. 添加操作 1.1 创建AddShipWindow.js 在业务中的view目录下创建一个Ad ...
- ASP.NET Core应用中如何记录和查看日志
日志记录不仅对于我们开发的应用,还是对于ASP.NET Core框架功能都是一项非常重要的功能特性.我们知道ASP.NET Core使用的是一个极具扩展性的日志系统,该系统由Logger.Logger ...
- 【Big Data】HADOOP集群的配置(一)
Hadoop集群的配置(一) 摘要: hadoop集群配置系列文档,是笔者在实验室真机环境实验后整理而得.以便随后工作所需,做以知识整理,另则与博客园朋友分享实验成果,因为笔者在学习初期,也遇到不少问 ...
- 界面设计技法之css布局
css布局之于页面就如同ECMAScript之于JS一般,细想一番,html就如同语文,css就如同数学,js呢,就是物理,有些扯远,这里就先不展开了. 回到主题,从最开始的css到如今的sass(l ...
- 分享两种实现Winform程序的多语言支持的解决方案
因公司业务需要,需要将原有的ERP系统加上支持繁体语言,但不能改变原有的编码方式,即:普通程序员感受不到编码有什么不同.经过我与几个同事的多番沟通,确定了以下两种方案: 方案一:在窗体基类中每次加载并 ...
- Create a Team in RHEL7
SOLUTION VERIFIED September 13 2016 KB2620131 Environment Red Hat Enterprise Linux 7 NetworkManager ...
- java中易错点(一)
由于replaceAll方法的第一个参数是一个正则表达式,而"."在正则表达式中表示任何字符,所以会把前面字符串的所有字符都替换成"/".如果想替换的只是&qu ...
- iOS从零开始学习直播之3.美颜
任何一款直播软件都必须进行美颜,不然哪来的那么多美女,所以技术改变世界,不只是说说而已.美颜在采集的时候就得就行,让主播实时看到直播的效果. 1.美颜原理 其实美颜的本质就是美白和磨皮,分别通 ...
- Linux基础介绍【第九篇】
服务器添加3块磁盘的体系结构 [root@oldboylinux test]# free -m total used free shared buffers cached M ...