歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux根文件系統的制作

Linux根文件系統的制作

日期:2017/2/28 16:09:11   编辑:Linux教程

Linux根文件系統制作的方法網上有很多詳細的教程,我這裡只簡單寫幾個問題。

1、動態編譯還是靜態編譯

如果需要ping域名,則需要動態編譯,還需要需要幾個庫:libnss_dns*,libnss_files*, libresolv*,網上說還需要/etc/nsswitch.conf文件,但似乎沒有這個文件也能ping域名,當然要設置好DNS等。我選擇的是動態編譯。

|-- lib
| |-- ld-2.8.so
| |-- ld-linux.so.3 -> ld-2.8.so
| |-- libc-2.8.so
| |-- libcrypt-2.8.so
| |-- libcrypt.so.1 -> libcrypt-2.8.so
| |-- libc.so.6 -> libc-2.8.so
| |-- libm-2.8.so
| |-- libm.so.6 -> libm-2.8.so
| |-- libnss_dns-2.8.so
| |-- libnss_dns.so.2 -> libnss_dns-2.8.so
| |-- libnss_files-2.8.so
| |-- libnss_files.so.2 -> libnss_files-2.8.so
| |-- libresolv-2.8.so
| |-- libresolv.so.2 -> libresolv-2.8.so

2、交叉編譯器

可以在menuconfig中指定。

Build Options --->
[ ] Build BusyBox as a static binary (no shared libs) (NEW)
……
(arm-linux-) Cross Compiler prefix

3、制作流程

(1)下載
Busybox:http://www.linuxidc.com/Linux/2011-08/40704.htm

(2)創建目錄
[www.linuxidc.com@linuxidc ~]$ mkdir rootfs
[www.linuxidc.com@linuxidc ~]$ cd rootfs/
[www.linuxidc.com@linuxidc rootfs]$ mkdir bin dev etc home lib mnt opt proc root sbin sys tmp usr var www
[www.linuxidc.com@linuxidc rootfs]$ mkdir usr/bin usr/lib usr/sbin lib/modules

(3)創建設備文件
[root@WZC dev]# mknod -m 666 console c 5 1
[root@WZC dev]# mknod -m 666 null c 1 3

(4)配置Busybox
make menuconfig

(5)編譯Busybox
make
make install

(6)添加可執行文件

這裡提一下串口傳輸rz和sz的添加,由於rz和sz是商業軟件,如果不注冊的話每次傳輸完會有10秒的睡眠時間,這裡作為測試,可以簡單地通過添加#define REGISTERED定義或直接將main函數最後的延遲注釋掉即可。

(7)安裝庫文件

可以只安裝必須的庫,arm-linux-readelf 可查看需要的庫。作為動態鏈接,庫ld-2.8.so是必須的。

Copyright © Linux教程網 All Rights Reserved