本文旨在為以LOONGSON-1B開發板為平台,為移植busybox、構建根文件系統提供技術文檔。
相關閱讀:Linux文件系統使用udhcpc動態獲取ip配置 http://www.linuxidc.com/Linux/2011-10/44885.htm
開發環境:
系統環境:龍芯1B開發板(mips32指令集)、Linux3.0.0內核、Busybox1.19.2
編譯環境:Ubuntu10.04 ,gcc-3.4.6-2f
BusyBox各版本下載見 http://www.linuxidc.com/Linux/2011-08/40704.htm,下載Busybox-1.19.2.tar.bz2工具包。
busybox是一個集成了一百多個最常用linux命令和工具的軟件,它甚至還集成了一個http服務器和一個telnet服務器,而所有這一切功能卻只有區區1M左右的大小。Busybox的完全可定制性,提供了非常靈活,宜於擴展的結構。
Busybox的配置方法類似於linux內核的配置。下載解壓Busybox-1.19.2.tar.gz工具包後,進入busybox-1.19.2目錄,運行“make menuconfig”,根據需要選擇需使用的模塊,保存退出後會在本地生成一個.config文件,它指定busybox在編譯的過程中需要包含哪些功能。
執行make menuconfig,彈出配置窗口如下:
進入Busybox Setings--->選項,General Configuration --->選項按默認配置即可。
進入Build Options--->選項:
這裡可選擇靜態編譯或動態編譯busybox,可根據需要任選一種編譯方式進行編譯。
(說明:動態編譯的busybox在構建文件系統時需要加入一些必須的動態庫,而靜態編譯的busybox不依賴動態庫便可執行,構建文件系統時可省略拷貝動態庫的步驟。)
(1)靜態編譯:
選擇[*]Build Busybox as a static binary (no shared libs)
進入()Cross Compiler prefix選項,修改本地交叉工具鏈的路徑。
(2)動態編譯:
選空[]Build Busybox as a static binary (no shared libs)
選擇[*]Build shared libbusybox
進入()Cross Compiler prefix選項,修改本地交叉工具鏈的路徑。
返回上一層進入Installation Options(“make install”behavior)--->選項,配置鏈接類型與安裝路徑,這裡使用默認配置:
返回上一層進入Busybox Library Turing--->選項
選擇[*]vi-style line editing commands(NEW)
[*]Fancy shell prompts(NEW)
返回最頂層進入Init Utilities--->選項(這裡使用默認配置,如圖)
選擇[*]init
[*]Suport reading an inittab file
[*]Run commands with leading dash with controlling tty
該項表示在真實的串口設備中運行命令行,不選該項啟動時會出現“-sh:can’t access tty;job control turned off”的錯誤
[*]Support running init from within an initrd (not initramfs)
不選此選項將不會生成linuxrc文件