构建最小根文件系统
2014-07-18 13:59
471 查看
一、 编写目的 2
二、 构建根文件系统 2
1. 编译busybox 2
2. 移植glibc库 4
3. 构建根文件系统目录 4
三、 总结 5
Busybox下载地址:http://busybox.net/downloads/busybox-1.22.1.tar.bz2
http://pan.baidu.com/s/1sjHdK2x
# tar -xvf /media/sf_ShareDIR/source/busybox-1.22.1.tar.bz2 -C ./
b) 修改Makefile,设置CROSS_COMPILE和ARCH
# gedit Makefile
CROSS_COMPILE ?= arm-linux-
ARCH ?= arm
c) 配置Busybox
# make menuconfig
这里全部使用默认的配置即可。
d) 编译busybox
# make
e) 安装busybox至/opt/Build_MIniFS/fs_mini目录下
# make CONFIG_PREFIX=/opt/Build_MIniFS/fs_mini install
# cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/ /opt/Build_MIniFS/fs_mini/ -rf
后来发现应使用/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/中的库文件才对,否则会出现无法运行部分程序,如在micro2440中无法启动LINUX,或运行程序提示“Illegal instruction”。
i. # mkdir ./etc ./etc/init.d
ii. # gedit ./etc/inittab
iii. # gedit ./etc/init.d/rcS
# chmod +x ./etc/init.d/rcS
iv. # gedit ./etc/fstab
v. # gedit ./etc/profile
b) 构建dev目录
如果使用mdev创建设备文件时,只需要在此目录下创建console跟null设备文件即可。
i. # mkdir ./dev
ii. # mknod ./dev/console c 5 1
iii. # mknod ./dev/null c 1 3
c) 构建其它目录
其它目录可以是空目录,比如proc、mnt、tmp、sys、root等,如下创建:
# mkdir proc mnt tmp sys root
# tar -jcvf 201407090326_fs_mini.tar.bz2 ./fs_mini/
http://pan.baidu.com/s/1gdorX9h
将修复lib库文件后的文件系统保存为201407281804_fs_mini.tar.bz2,上传到网盘(http://pan.baidu.com/s/1qWqHQW0)。
二、 构建根文件系统 2
1. 编译busybox 2
2. 移植glibc库 4
3. 构建根文件系统目录 4
三、 总结 5
一、编写目的
本文档用于记录使用Busybox构建arm linux最小根文件系统的过程,方便日后查阅、参考。Busybox下载地址:http://busybox.net/downloads/busybox-1.22.1.tar.bz2
http://pan.baidu.com/s/1sjHdK2x
二、构建根文件系统
1. 编译busybox
a) 解压源码# tar -xvf /media/sf_ShareDIR/source/busybox-1.22.1.tar.bz2 -C ./
b) 修改Makefile,设置CROSS_COMPILE和ARCH
# gedit Makefile
CROSS_COMPILE ?= arm-linux-
ARCH ?= arm
c) 配置Busybox
# make menuconfig
配置项目类型 | 说 明 |
Busybox Settings ---> General Configuration | 一些通用的设置,一般不需要理会 |
Busybox Settings ---> Build Options | 连接方式、编译选项 |
Busybox Settings ---> Debugging Options | 调试信息选项,一般不选 |
Busybox Settings ---> Installation Options | 安装路径,可以在命令行中指定 |
Busybox Settings ---> Busybox Library Tuning | Busybox性能微调,比如设置控制台输入字符限制等设置 |
Archival Utilities | 各种压缩、解压工具选择 |
Coreutils | 核心命令选择,如ls、cp等 |
Console Utilities | 控制台相关命令,如clear等 |
Debian Utilities | Debian Linux中的一些命令 |
Editors | 编辑命令,如vi等 |
Finding Utilities | 查找命令,一般不用 |
Init Utilities | Init程序的配置选项,比如是否读取inittab文件,使用默认即可 |
Login/Password Management Utilities | 登录、用户帐号/密码等方面命令 |
Linux Ext2 FS Progs | Ext2文件系统的一些工具 |
Linux Module Utilities | 加载/卸载模块的命令,一般选用 |
Linux System Utilities | 一些系统命令,比如dmesg、fdisk等 |
Miscellaneous Utilities | 一些不好分类的命令 |
Networking Utilities | 网络命令,如telnetd、ping、tftp等 |
Print Utilities | 文件打印命令,lpd、lpr等 |
Mail Utilities | 邮件工具 |
Process Utilities | 进程相关的命令,如ps、free、kill、top等 |
Runit Utilities | runit是一种类Unix操作系统的init方案,可在整个操作系统运行时初始化、监视及终止进程。runit可并行启动系统服务,这样可以加快操作系统的启动 |
Shells | 有多种shell,比如msh、ash,一般选用ash |
System Logging Utilities | 系统记录方面的命令 |
d) 编译busybox
# make
e) 安装busybox至/opt/Build_MIniFS/fs_mini目录下
# make CONFIG_PREFIX=/opt/Build_MIniFS/fs_mini install
2. 移植glibc库
glibc库可直接从交叉编译工具arm-linux-的目录中获取,使用如下命令复制即可。# cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/lib/ /opt/Build_MIniFS/fs_mini/ -rf
后来发现应使用/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/中的库文件才对,否则会出现无法运行部分程序,如在micro2440中无法启动LINUX,或运行程序提示“Illegal instruction”。
3. 构建根文件系统目录
a) 构建etc目录i. # mkdir ./etc ./etc/init.d
ii. # gedit ./etc/inittab
# /etc/inittab ::sysinit:/etc/init.d/rcS console::askfirst:-/bin/sh ::ctrlaltdel:/sbin/reboot ::shutdown:/bin/umount -a -r |
#!/bin/sh mount -a mkdir /dev/pts mount -t devpts devpts /dev/pts mdev -s |
iv. # gedit ./etc/fstab
# device mount-point type options dump fsck order proc /proc proc defaults 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0 tmpfs /dev tmpfs defaults 0 0 |
export PS1='Locker#' |
如果使用mdev创建设备文件时,只需要在此目录下创建console跟null设备文件即可。
i. # mkdir ./dev
ii. # mknod ./dev/console c 5 1
iii. # mknod ./dev/null c 1 3
c) 构建其它目录
其它目录可以是空目录,比如proc、mnt、tmp、sys、root等,如下创建:
# mkdir proc mnt tmp sys root
三、总结
至此,最小文件系统的所有目录已经创建完成,整个过程还是比较顺利和简单。最终生成的最小文件系统已经打包为201407090326_fs_mini.tar.bz2,可通过以下地址下载。# tar -jcvf 201407090326_fs_mini.tar.bz2 ./fs_mini/
http://pan.baidu.com/s/1gdorX9h
将修复lib库文件后的文件系统保存为201407281804_fs_mini.tar.bz2,上传到网盘(http://pan.baidu.com/s/1qWqHQW0)。
相关文章推荐
- 构建最小根文件系统
- 构建最小linux 文件系统----ssh, ftpd 服务器配置
- 构建最小根文件系统
- som9331 构建最小根文件系统
- 构建最小根文件系统
- 构建最小linux 文件系统 一
- 为linux内核构建最小的根文件系统-一步一步精简
- 构建最小linux 文件系统----mysql 服务器移植
- 用busybox构建一个最小根文件系统
- 为linux内核构建最小的根文件系统-一步一步精简之后续试验
- busybox-1.20.2 交叉编译 并构建最小根文件系统
- VMware中打造最小Linux系统(一)——构建内核&文件系统
- 构建基于NFS文件系统的Openldap身份验证
- 为linux建立最小的根文件系统
- (原创)构建基于aemb的sopc系统(四)--修改setup文件
- 通过配置文件构建系统的方法
- 为linux建立最小的根文件系统
- 用busybox构建根文件系统及出错总结
- 文件系统构建补充
- 嵌入式操作系统VxWorks中TFFS文件系统的构建