Busybox安裝配置
我是安裝busybox-1.01.tar
[1]解壓縮
# tar xzvf busybox-1.01.tar
[2] 設定組態
# cd /usr/src/busybox-1.01
# make menuconfig
若出現以下錯誤
則是因為ubuntu還需要去下載安裝libncurses5-dev
執行
# Sudo apt-get install libncurses5-dev
安裝好之後重新執行
# make menuconfig
即可進入設定組態畫面
重要選項: Build Options
[*] Build BusyBox as a static binary (no shared libs)
[ ] Build with Large File Support (for accessing files > 2 GB)
[*] Do you want to build BusyBox with a Cross Compiler?
() Any extra CFLAGS options for the compiler?
必須選擇以跨平台編譯器建置busybox
[*] Do you want to build BusyBox with a Cross Compiler?
並在其下輸入Cross-Compiler之路徑及名稱 (Cross-Compiler Prefix) :
/usr/local/arm/3.4.1/bin/arm-linux-
[3]建立相依的樹狀架構: make dep
[4]產生套件: make ( 建置結果產生二進位執行檔 busybox)。
一般來說,使用busybox不需要inittab
(Busybox所讀取的inittab檔之格式與一般Linux所讀取的inittab檔之格式不同)。
開機時要自動執行的工作,可以放在/etc/init.d/rcS中。
[5] 安裝busybox
# mkdir /home/flykof/busyboxRoot
# make PREFIX=/home/flykof/busyboxRoot install
# chmod +s /home/flykof/busyboxRoot/bin/busybox
[6]加入執行所需檔案及建立符號連結
直接以功能名稱讓busybox執行該功能: 建立符號連結
[root@coyote]$ tree
.
|-- bin
| |-- ash -> busybox
| |-- busybox
| |-- cat -> busybox
| |-- cp -> busybox
| |-- ...
| '-- zcat -> busybox
|-- linuxrc -> bin/busybox
|-- sbin
| |-- halt -> ../bin/busybox
| |-- ifconfig -> ../bin/busybox
| |-- init -> ../bin/busybox
| |-- klogd -> ../bin/busybox
| |-- ...
| '-- syslogd -> ../bin/busybox
'-- usr
|-- bin
| |-- [ -> ../../bin/busybox
| |-- basename -> ../../bin/busybox
|-- ...
| |-- xargs -> ../../bin/busybox
| '-- yes -> ../../bin/busybox
'-- sbin
'-- chroot -> ../../bin/busybox
[7]在 /usr/src/busyboxRoot 新增或刪除目錄、建立設備節點等等。
# cd /home/flykof/busyboxRoot/
# mkdir dev
# mknod dev/console c 5 1
# mkdir etc
# mkdir proc
# chmod 555 proc
[8]將建立好的busyboxRoot中的檔案複製到預掛載NFS的資料夾,或直接將busyboxRoot設定成NFS目錄。
BusyBox掛載到NFS
這個部分可以參考ubunto下安裝設定NFS
預掛載的目標,不得有已掛載其他的狀況,否則將出現錯誤,無法從目標版透過NFS方式掛載RootFileSystem。
配置kernel
直接使用Embest的linux-2.4.18-rmk7-pxa1-mz4.tar.bz2 kernel,基本配置使用預設。
在kernel目錄下
make menuconfig 或 make xconfig
點擊"Load configuration from file" ,輸入./arch/arm/def-configs/edukit2410-amd
選擇Save and Exit
注意選擇以下兩項︰
Networking options->IP: kernel level autoconfiguration ,這個選項是為了kernel的動態IP設定。
File System->Network File System選擇Root file system on NFS
make dep
make zImage
在arch/arm/boot目錄下得到核心zImage,啟動vivi,敲空白鍵,進入vivi命令行,用串口下載核心。
load flash kernel x
設定kernel參數
在vivi命令行
param set linux_cmd_line “noinitrd root=/dev/nfs /
nfsroot=192.168.0.234:/home/flykof/nfs /
ip=192.168.0.100:192.168.0.234:192.168.0.1:225.255.255.0 init=/linuxrc /
console=ttyS0”
各項意義
noinitrd 不使用虛擬(ramdisk)設備
root=/dev/nfs 跟目錄使用NFS檔案系統
nfsroot=192.168.0.234:/home/tom/NFS 指定主機目錄
ip=192.168.0.100:192.168.0.234:192.168.0.1:225.255.255.0
形式為ip=x︰y︰z︰w
x︰板子ip,隨意設,只要不與其他相同即可
y︰主機ip
z︰Gateway
w︰子網遮罩
init=/linuxrc 初始化腳本
console=ttyS0 控制台使用串口(要注意的是,kernel2.4與2.6名稱不同)
設定好之後執行boot啟動