资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1、根文件系统的制作1) 创建根文件系统主目录 :mkdir rootfs2)创建根文件系统的子目录 cd rootfsmkdir bin dev etc lib proc sbin sys usr mnt tmp var3)然后创建usr下的子目录 mkdir usr/bin usr/lib usr/sbin lib/modules4) 创建设备文件 内核在引导时设备节点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):次设备号这两个设备文件设备号是固定的5) 安装etc etc目录主要是一些启动时的脚本文件一般不需要修改 tar etc.tar.gz C /xxx/rootfs这个命令可能不给用 改为:tar xvzf etc.tar.gz C /xxx/rootfs6) 编译内核模块 内核模块保存在lib下面的module下配置内核:*直接编译到zimage m不链接到zimage而是编译成模块 到.o就停住进入Linux内核目录(linux-2.6.32.2)make modules ARCH=arm CROSS_COMPILE=arm-linux-添加了ARCH=arm表示现在编译的是arm架构的内核CROSS_COMPILE=arm-linux-表示使用交叉编译工具链 安装内核模块到根文件系统: make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs7) 配置busybox 因为Linux很多命令都是通过软连接实现的,所以无法直接将这些命令复制到根文件系统中。Busybox是一个工具集合,根文件系统很多命令都可以通过busybox编译得到,如命令ls,cd,mkdir。Busybox相当于一个命令解析器,根文件中命令被软连接到busybox,由busybox进行命令解析。 a) 解压busybox tar xvzf busybox-1.13.3b) 配置busybox make menuconfig 进入busybox settings- 进入Build options 选中Build busybox as a static binary, 静态链接 还有就是要把交叉编译工具链使用arm-linux- 进入busybox settings- Installation option- 选中“Dont use /usr”选中该项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统将busybox被安装到/mini2440/nfsroot/rootfs 退出busybox,保存; c)编译busybox make ARCH=arm CROSS_COMPILE=arm-linux-d) 安装busybox make install至此根文件系统制作完成。2、nfs 共享根文件系统 1) 配置nfs 在/etc/exports配置文件,添加代码如下:其中/mini2440/nfsroot/rootfs 是文件系统所在目录192.168.1.* 设置文件共享的网段rw 读写权限sync 同步回写no_root_squash 设置是否具有root权限 no表示没有root权限 2) 重启nfs服务 8、 使用uboot去挂载根文件系统准备工作:启动超级终端:输入printenv检查PC IP地址是否正确:若不正确,用命令setenv serverip 192.168.1.11设置PC机IP:设置完后要对配置进行保存:saveenv:用命令ping 192.168.1.11 查看与PC机是否成功连接:出现alive表示与PC机成功连接,如出现not alive:1) 检查PC机IP是否设置正确2) 检查网线是否联通3) 检查无线网是否关掉都没有问题后进行以下内容:1)将制作好的uImage 烧写到 nand flash 对应的内核分区:(1):运行命令“tftp 0x30000000 192.168.1.11:uImage”,将内核镜像uImage 下载到内存 0x30000000地址处: 如不能下载:1) 检查IP是否与PC机IP一致2) 检查PC机/tftpboot下是否有uImage(2):运行命令 “nand erase 0x00060000 0x00500000”檫除 nand flash 中位于0x60000地址处的整个kernel 分区:(3):运行命令“nand write 0x30000000 0x00060000 400000”将位于0x30000000出的内核镜像烧写到nand flash的整个内核分区:(4) :改变bootcmd 的值,让uboot 在加载模式下能自动启动内核:setenv bootcmd nboot 0x30007fc0 0 0x00060000;bootm保存配置:saveenv4.设置启动参数 让uboot 能挂在根文件系统:set bootargs root=/dev/nfs console=ttySAC0 nfsroot=192.168.1.11:/mini2440/nfsroot/rootfs ip=192.168.1.70:192.168.1.11:192.168.1.1:255.255.255.0:eth0:off如不能挂载:1) 检查 nfsroot=192.168.1.11:/mini2440/nfsroot/rootfs中IP是否与PC机IP一致2) 检查nfsroot=192.168.1.11:/mini2440/nfsroot/rootfs冒号后面的目录是否是PC机上的根文件目录3) 如以上都没有问题,检查PC上/etc/exports中设置的目录是否是根文件目录5.重新启动 挂载成功:8、 进行交叉编译需要两个库文件支持 在根目录下:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/liblibc.so.6 ld-linux.so.32 用arm-linux-gcc编译:PC机上:超级终端上:
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号