一.busybox
編譯/安裝busybox,生成/bin、/sbin、/usr/bin、/usr/sbin目錄 這些目錄下存儲的主要是常用指令的二進制檔案。有了busyb,就不需要自己編寫這幾百個常用指令的源程式,而是直接調用。
下載下傳BUSYBOX的源碼包:http://busybox.net/downloads/
- tar xjvf busybox-1.7.0.tar.bz2解包
- 修改Makefile檔案
- 175ARCH ?= arm
176 CROSS_COMPILE ?= arm-linux-
4.make menuconfig配置busybox
配置和編譯busybox:
deconfig:預設配置
allnoconfig:禁用所有的應用程式(空)
alllyesconfig:啟用所有的應用程式(完整)
config:基于文本的 配置
menuconfig:基于菜單配置
clean:清除源代碼樹
distclean:徹底清除源代碼樹
通常的 流程:
配置 :make menuconfig
編譯 :make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-
安裝 :make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- install
安裝之後預設生成_install 目錄,裡面有bin, sbin,usr/bin, usr/sbin 四個目錄 。目錄檔案夾下是busybox的符合連接配接,bin下是可執行檔案 。其下包含了我們常用的指令,這些指令都是指向bin/busybox的軟連結,而busybox本身的大小不到800K:将這四個檔案夾拷貝出來:
cd _install
cp -a * /zw/work/rootfs
busybox配置主要分兩部分。
第一部分是Busybox Settings,主要編譯和安裝busybox的一些選項。這裡主要需要配置:
1)、Build Options -- Build BusyBox as astatic binary (no shared libs),表示編譯busybox時,是否靜态連結C庫。我們選擇動态連結C庫。
2)、Installation Options -- Applets links(as soft-links) -- (X) as soft-links,表示安裝busybox時,将各個指令安裝為指向busybox的軟連結還是硬連結。我們選擇軟連結。
3)、Installation Options --(/work/nfs_root/fs_mini3) BusyBox installation prefix,表示busybox的安裝位置。我們選擇/work/nfs_root/fs_mini3
4)Busybox Library Tuning。保留Command line editing以支援指令行編輯;保留History size以支援記憶曆史指令;選中Tab completion和Username completion以支援指令自動補全
第二部分是Applets,他将busybox的支援的幾百個指令分門别類。我們隻要在各個門類下選擇想要的指令即可。這裡我們基本保持預設設定。
1)選中Networking Utilities -- httpd下的Enable -u <user> option,以啟用http伺服器的功能allows the server to run as a specificuser
二。選擇必要的動态共享庫
如果出現error while loading shared libraries,表示動态連接配接器找不到動态共享庫。
連接配接器的搜尋目錄順序是 :
1.Makefile中 對GCC連接配接加入參數 “-Wl,-rpath”指定 動态庫搜尋路徑
2.環境變量 LD_LIBRARY_PATH指定動态庫搜尋路徑
3.預設動态庫搜尋路徑 /lib
4. 預設動态庫搜尋路徑 /usr/lib
嵌入式系統中 ,一般把所需要的庫統一放到/lib目錄中 ,