[2]-使用busybox-1.17.2制作文件系统
為什么80%的碼農都做不了架構師?>>> ??
使用busybox-1.17.2來制作文件系統
交叉編譯工具:arm-linux-gcc-3.4.1 (已經導入到PATH環境變量中)
以下是具體步驟:
1.從busybox官方網站上下載busybox1.17.2
2.配置Busybox
?? 2-1.修改Makefile文件
????????? 進入busybox目錄
????????? 將ARCH? ?= $(SUBARCH) 修改為
????????????? ARCH?? ?= arm
?????????? 將CROSS_COMPILE ?=?? 修改為
?????????????? CROSS_COMPILE ?= arm-linux-
?? 2-2,make menuconfig配置busybox選項,如下圖所示:
?? ????
3.編譯前需要做的修改
? 3-1.在目錄busybox-1.17.2下修改networking/interface.c文件,加入宏定義:?
???????? #define ARPHRD_INFINIBAND 32?
???????? 該修改是為了解決在編譯時出現的以下錯誤:
???????? networking/interface.c:807: error: `ARPHRD_INFINIBAND' undeclared here (not in a function)
?? 3-2.在目錄busybox-1.17.2下修改networking/libiproute/ipaddress.c文件,加入對IFLA_OPERSTATE的條件編譯,
???????? 如下圖所示:
?????????
???????? 該修改是為了解決以下錯誤:
????????? networking/libiproute/ipaddress.c:167: error: `IFLA_OPERSTATE' undeclared (first use in this function)
??? 3-3..在目錄busybox-1.17.2下修改networking/libiproute/iplink.c文件,加入對IFLA_LINKINFO的條件編譯,
???????? 如下圖所示:
?????????
???????? 該修改是為了解決以下錯誤:
????????? networking/libiproute/iplink.c:...:error: `IFLA_LINKINFO' undeclared (first use in this function)
4.使用命令make install 命令進行編譯和安裝,完成后可在./_install目錄下找到我們需要的所有工具包
5. 現在開始制作文件系統,首先創建主目錄rmdk,然后再rmdk目錄下創建以下子目錄:
??? bin sbin dev etc lib home root usr var proc mnt tmp sys?
6.創建并編輯/etc/fstab文件,內容可如下:
? proc???? /proc??? proc??? defaults 0 0? (最后那個0用于標記是否進行修復自檢)
? tmpfs??? /tmp???? tmpfs?? defaults 0 0?
? sysfs??? /sys???? sysfs?? defaults 0 0
? tmpfs??? /dev???? tmpfs?? defaults 0 0?
7.創建并編輯/etc/initab文件,內容可如下(可根據自己需要編寫):
? ::sysinit:/etc/init.d/rcS
? ::askfirst:-/bin/sh
? ::ctrlaltdel:/sbin/reboot
? ::shutdown:/bin/umount -a -r
? ::once:/usr/etc/rc.local?
8.創建并編輯/etc/init.d/rcS文件,內容可如下:
? mount -t tmpfs mdev /dev
? mkdir /dev/pts
? mount -t devpts devpts /dev/pts
? mount -t sysfs? sysfs? /sys
? mount -a
? echo /sbin/mdev > /proc/sys/kernel/hotplug
? mdev -s
? 將rcS文件加上可執行權限,使用命令: chmod 777 rcS
9.創建基本的設備節點:
? #mknod /dev/console c 5 1
? #mknod /dev/null??? c 1 3
? #mknod /dev/mem???? c 1 1
10.將busybox-1.17.2/_install目錄下bin和sbin的文件拷貝到rmdk/bin和rmdk/sbin目錄中。
11.在rmdk目錄下創建指向rmdk/bin/busybox的符號鏈接linuxrc,命令如下:
???? #ln -s bin/busybox? ./linuxrc
12.使用dd命令制作16M大小的ramdisk.img文件,具體命令是:???? #dd? if=/dev/zero of=ramdisk.img bs=1M count=16
???? #mke2fs? -F ramdisk.img
???? #mkdir tmpmnt
???? #mount -o loop ramdisk.img tmpmnt
???? #cp -a rmdk tmpmnt
???? #umount tmpmnt
???? #rm -rf tmpmnt
至此,ramdisk.img文件系統制作完成
轉載于:https://my.oschina.net/armsky/blog/32638
總結
以上是生活随笔為你收集整理的[2]-使用busybox-1.17.2制作文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何真正提高ASP.NET网站的性能
- 下一篇: 散片就是这么来的?男子腰缠155片CPU