制作文件系统之五:基于BusyBox的默认配置来构建文件系统
来源:互联网 发布:安卓数据采集器 编辑:程序博客网 时间:2024/05/08 18:06
开发平台:Ubuntu11.04
目 标板:ARM体系结构
编 译器:arm-gcc-4.1.1.tar.bz2 (可从http://download.csdn.net/detail/npy_lp/3821111上下载)
1、制作文件系统
(1)、在$HOME(本文$HOME的值是/home/richard)目录下创建制作文件系统所用的工作目录,并把busybox-1.19.2中生成的文件全部拷贝到此工作目录下:
$ cd $HOME$ mkdir rootfs$ cd rootfs/$ cp -a busybox-1.19.2/_install/* .
另外,还要在此工作目录下为文件系统创建必要的目录:
$ mkdir etc lib sys proc dev
(2)、从交叉编译工具链中拷贝所需的动态库
$ cd 4.1.1/arm-linux-gnu/lib$ cp -a libm-2.5.so libm.so libm.so.6 /home/richard/rootfs/lib$ cp -a libc-2.5.so libc.so.6 /home/richard/rootfs/lib/$ cp libgcc_s.so.1 /home/richard/rootfs/lib/
可在开发板上通过ldd命令获知BusyBox所依赖的动态库。
/bin # ldd busyboxlibm.so.6 => /lib/libm.so.6 (0x40024000)libc.so.6 => /lib/libc.so.6 (0x400d4000)/lib/ld-linux.so.2 (0x40000000)
(3)、配置文件系统的etc目录
$ cd etc/
创建inittab文件:
$ vi inittab
::sysinit:/etc/init.d/rcS::askfirst:-/bin/sh::ctrlaltdel:/sbin/reboot::shutdown:/sbin/swapoff -a::shutdown:/bin/umount -a -r::restart:/sbin/init
注意,/bin/sh前须要添加前缀“-”,否则会提示以下的信息:
/bin/sh: can't access tty; job control turned off
创建fstab文件(由mount –a命令所执行):
$ vi fstab
#device mount point fs-typeoptions dump-freqpass-numnone /proc procdefaults 00none /sys sysfsdefaults 00none /dev/pts devptsdefaults 00none /dev/shm tmpfsdefaults 00
创建rcS文件:
$ mkdir init.d$ cd init.d/$ vi rcS
#!/bin/shmount -t tmpfs mdev /dev mkdir /dev/ptsmkdir /dev/shmmount -aecho /sbin/mdev > /proc/sys/kernel/hotplugmdev -s
$ chmod +x rcS
(4)、创建console的设备节点
$ cd dev/$ sudo mknod console c 5 1
如果不提前创建console设备节点的话,可能会导致系统无法启动。
Warning: unable to open an initial console.
2、在开发板上测试新建的文件系统
适用于优龙FS2410开发板的u-boot和Linux内核镜像,可以从http://download.csdn.net/detail/npy_lp/3891416上下载。
(1)、拷贝Linux内核镜像到TFTP服务的共享目录中
$ sudo cp uImage /tftpboot/
(2)、配置u-boot环境参数
关于u-boot环境参数的说明可参考文档:http://www.denx.de/wiki/view/DULG/UBootEnvVariables
FS2410# setenv bootdelay 3FS2410# setenv hostname tanglinuxFS2410# setenv serverip 192.168.7.205FS2410# setenv ipaddr 192.168.7.36FS2410# setenv gatewayip 192.168.7.1FS2410# setenv bootargs console=ttySAC0,115200 init=/linuxrc root=/dev/nfs nfsroot=192.168.7.205:/home/richard/rootfs ip=192.168.7.36:192.168.7.205:192.168.7.1:255.255.255.0:tanglinux:eth0:offFS2410# setenv bootcmd tftp 30800000 uImage\; bootmFS2410# save
关于使用NFS文件系统时Linux内核命令行参数(Kernel command line)如何设置的问题,可参考linux-2.6.38.8内核源码中的Documentation/filesystems/nfs/nfsroot.txt文件。
nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>]ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
(3)、把工作目录添加到NFS服务的配置文件(/etc/exports)中
$ sudo vi /etc/exports
/home/richard/rootfs *(rw,sync,no_root_squash,no_subtree_check)
$ sudo /etc/init.d/nfs-kernel-server restart
(4)、系统启动完成后,会提示以下信息:
VFS: Mounted root (nfs filesystem).Freeing init memory: 200KPlease press Enter to activate this console.
然后回车,即可通过串口操作开发板了。
- 制作文件系统之五:基于BusyBox的默认配置来构建文件系统
- 基于busybox的根文件系统制作
- linux根文件系统制作之busybox编译和系统构建
- 【Tiny4412--4】基于busybox的简单根文件系统构建
- 基于S3C2440的busybox的移植 yaffs根文件系统制作
- 基于S3C2440的busybox的移植 yaffs根文件系统制作
- 基于S3C2440的busybox的移植 yaffs根文件系统制作 .
- 基于busybox-1.10.1的简易根文件系统制作
- 基于 busybox 制作 linux 根文件系统
- BusyBox制作的文件系统-telnet服务器的配置和开启
- Busybox 配置、编译与文件系统构建
- 用busybox制作并配置根文件系统
- busybox构建根文件系统
- 制作文件系统之二:BusyBox的交叉编译
- 制作文件系统之三:BusyBox init的启动过程
- 构建根文件系统之瑞士军刀BusyBox
- BusyBox制作根文件系统
- 用busybox制作文件系统
- 来到 微创 实习生涯<1>——初出茅庐
- 十个不需要虚拟化的理由之一、二
- windows的云平台技术
- 什么是物理内存、虚拟内存、交换区?
- jQuery一句话实现多选框全选/取消
- 制作文件系统之五:基于BusyBox的默认配置来构建文件系统
- 调试ASP.NET2005/2008时,端口不正确的解决办法
- Wireshark 技巧一
- Eclipse里的Crtl+shift+f不起作用解决办法
- POJ-2239 Selecting Courses
- eclipse中添加SVN插件的网址
- MFC实现COM时用到的一些宏定义
- 文件删除不了怎么办?
- 如何在MTM中组织你的测试计划和测试用例