嵌入式Linux根文件系统构建
2019-07-12 20:10发布
生成海报
1.下载busybox源码包busybox-1.15.0.tar.bz2,网址:https://busybox.net/downloads/。
2.tar jxf busybox-1.15.0.tar.bz2,cd busybox-1.15.0/,修改Makefile,164行改为CROSS_COMPILE ?= arm-linux-,190行改为ARCH ?= arm。
3.make menuconfig,配置busybox。
Busybox Settings --->
Busybox Library Tuning --->
[*] Tab completion
[*] Username completion
[*] Fancy shell prompts
4.make,编译。
5.make install CONFIG_PREFIX=../rootfs install,将busybox安装到指定目录。
6.复制glibc库文件到根文件系统。
cd rootfs
mkdir lib
cp ~/work/Tools/arm-linux-gcc-4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/lib/*so* lib/ -rf -d
cp ~/work/Tools/arm-linux-gcc-4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*so* lib/ -rf -d
arm-linux-strip -s lib/lib*
7.创建相关文件、目录和节点:etc/inittab、etc/fstab、etc/profile、etc/init.d/rcS。
inittab文件内容为:
::sysinit:/etc/init.d/rcS
::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:umount -a -r
fstab文件内容为:
#device mount-point type options dump fsck order
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /temp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
profile文件内容为:
#!/bin/sh
export HOSTNAME=hyt
export USER=root
export HOME=root
export PS1="[$USER@$HOSTNAME W]#"
PATH=/bin:/sbin:/usr/bin:/usr/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export PATH LD_LIBRARY_PATH
rcS文件内容为:
mount -a
mkdir /dev/pts
mount -tdevpts devpts /dev/pts
mount -t tmpfs -o size=32m none /tmp
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 hw ether 5e:f7:90:82:66:28
/sbin/ifconfig eth0 192.168.1.6 up
route add default gw 192.168.1.1
增加rcS文件的可执行权限:chmod +x rcS,在根目录下创建其他目录dev home temp proc sys tmp。进入dev目录,并用根用户创建两个基本的设备文件。
sudo mknod console c 5 1
sudo mknod null c 1 3
8.复制rz,sz工具到文件系统,下载rz,sz源码包rzsz-3.48.tar.gz。
tar zxf rzsz-3.48.tar.gz
cd src/
修改Makefile,第3行改为CC=arm-linux-gcc,第4行改为OFLAG= -O -DREGISTERED,然后执行make posix编译,拷贝rz,sz工具到文件系的/bin目录即可。
9.利用mkyaffs2image工具生成yaffs2镜像。
./mkyaffs2image rootfs/ rootfs.yaffs2
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮