在介紹 BusyBox 前先來回顧一下, Linux 的開機流程 , RHEL 6 的開機方式 稍微不同不過大致上差異不大.
- Boot Loader(GRUB or LILO )從 BIOS 取得控制權
- 載入 kernel
- 載入 initrd
- kernel 執行的第一個程式/sbin/init
系統載入 Kernel 後接下來將 initrd 先載入至 ram disk (dev/ram0) 中,執行完 linuxrc 後去存取 root partitaion 並執行第一個程式/sbin/init.這是系統正常開機的方法,但在 Embedded system 是不太可能將完整的 Linux 安裝上去的,所以很多的 Embedded system 採用了 BusyBox 的方式去解決.
BuzyBox 匯集常用 UNIX 指令於單一執行檔的工具集,它包含了七十多種 Linux 上標準的工具程式,只需要的磁碟空間僅幾百 k,在嵌入式 系統上常用到它 ,可在 http://busybox.net 找到參考資料及下載, Busybox 為何能夠佔有如此小的容量,卻能提供為數不少的常用工具呢?這訣竅在於 busybox 在編譯後,雖然整體只是一個執行檔,卻可以透過 symbolic link 的方式,將常用指令連到 busybox 這個執行檔上,更詳細的說明請參考 Floppy Linux
相關的指令請參考 http://www.busybox.net/downloads/BusyBox.html
-
ifconfig
在 BusyBox 要修改 MAC addresses 出乎意料的簡單,先來說說 MAC addresss 所代表的意義,它主要由 48 bits 所組成,前 24 bits 為製造公司序號,後面 24bits 為產品流水號:MM:MM:MM:SS:SS:SS
我們可以利用這個網站可以查詢到製造商的名稱 http://www.coffer.com/mac_find/ .
比如 Intel 的網卡 MAC Address 為00:A0:C9:14:C8:29,所以只要是 00A0C9 開頭的都是由 Intel 所製造在 BusyBox 的環境,網路設定檔位於 /etc/network/interfaces ,要修改 MAC Address 也只要透過下面指令.
# ifconfig eth0 hw ether 00:11:22:33:44:55
-
udhcpc
透過 DHCP 來獲取 IP 位址# udhcpc -i eth0