- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用uboot去挂载根文件系统
1、根文件系统的制作
创建根文件系统主目录 mkdir rootfs
2)创建根文件系统的子目录
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
3)然后创建usr下的子目录
mkdir usr/bin usr/lib usr/sbin lib/modules
创建设备文件
内核在引导时设备节点console,null必须存在
cd dev/
注:该目录为/mini2440/nfsroot/rootfs 下的dev目录
mknod –m 666 console c 5 1
mknod -m 666 null c 1 3
c:表明类型为字符设备
第一个数字(5,1):主设备号
第二个数字(1,3):次设备号
这两个设备文件设备号是固定的
安装etc
etc目录主要是一些启动时的脚本文件一般不需要修改
tar etc.tar.gz –C /xxx/rootfs
这个命令可能不给用 改为:
tar xvzf etc.tar.gz –C /xxx/rootfs
编译内核模块
内核模块保存在lib下面的module下
配置内核:*直接编译到zimage m不链接到zimage而是编译成模块 到.o就停住
进入Linux内核目录(linux-)
make modules ARCH=arm CROSS_COMPILE=arm-linux-
添加了ARCH=arm表示现在编译的是arm架构的内核
CROSS_COMPILE=arm-linux-表示使用交叉编译工具链
安装内核模块到根文件系统:
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs
配置busybox
因为Linux很多命令都是通过软连接实现的,所以无法直接将这些命令复制到根文件系统中。Busybox是一个工具集合,根文件系统很多命令都可以通过busybox编译得到,如命令ls,cd,mkdir。Busybox相当于一个命令解析器,根文件中命令被软连接到busybox,由busybox进行命令解析。
解压busybox
tar xvzf busybox-1.13.3
b) 配置busybox
make menuconfig
进入busybox settings--
进入Build options
选中Build busybox as a static binary, 静态链接
还有就是要把交叉编译工具链使用arm-linux-
进入busybox settings-- Installation option--
选中“Don’t use /usr”选中该项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统
将busybox被安装到/mini2440/nfsroot/rootfs
退出busybox,保存;
c)编译busybox
make ARCH=arm CROSS_COMPILE=arm-linux-
d) 安装busybox
make install
其中/mini2440/nfsroot/rootfs 是文件系统所在目录
192.168.1.* 设置文件共享的网段
rw 读写权限
sync 同步回写
no_root_squash 设置是否具有root权限 no表示没有root权限
2) 重启nfs服务
使用uboot去挂载根文件系统
准备工作:
启动超级终端:
输入printenv检查PC IP地址是否正确:
若不正确,用命令setenv serverip 1设置PC机IP:
设置完后要对配置进行保存:saveenv:
用命令ping 1 查看与PC机是否成功连接:
出现alive表示与PC机成功连接,如出现not alive:
检查PC机IP是否设置正确
检查网线是否联通
检查无线网是否关掉
都没有问题后进行以下内容:
1)将制作好的uImage 烧写到 nand flash 对应的内核分区:
(1):运行命令“tftp 0192.168.1.:uImage”,将内核镜像uImage 下载到内存 0址处:
如不能下载:
检查IP是否与PC机IP一致
检查PC机/tftpboot下是否有uImage
(2):运行命令 “nand erase 00檫除 nand flash 中位于0x60000地址处的整个kernel 分区:
(3):运行命令“nand write 00400000”将位于0x30000000
文档评论(0)