close

Busybox安裝配置 

我是安裝busybox-1.01.tar

[1]解壓縮 

# tar xzvf busybox-1.01.tar

[2] 設定組態 

# cd  /usr/src/busybox-1.01

# make menuconfig

若出現以下錯誤

Busybox配置01.JPG

則是因為ubuntu還需要去下載安裝libncurses5-dev

執行 

# Sudo apt-get install libncurses5-dev

安裝好之後重新執行 

# make menuconfig

即可進入設定組態畫面 

 

Busybox配置02.JPG

重要選項: 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

 

直接使用Embestlinux-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=xyzw

x︰板子ip,隨意設,只要不與其他相同即可

y︰主機ip

zGateway

w︰子網遮罩

 

init=/linuxrc 初始化腳本

console=ttyS0 控制台使用串口(要注意的是,kernel2.42.6名稱不同)

 

設定好之後執行boot啟動

 


arrow
arrow
    全站熱搜

    flykof 發表在 痞客邦 留言(0) 人氣()