busyboxlinux
Ⅰ 編譯移植busybox出錯,arm-linux-gcc版本4.3.3 busybox版本1.16.0 錯誤代碼如下:
找不到鏈接庫,不這些都是數學庫,加參數 -lm 應該就能解決。
但編譯過程這個東西應該是自己加。
busybox 一般都是靜態的,編譯靜態程序,很多時候需要他以來的函數庫也是靜態的。你這個問題應該是編譯環境不匹配。你編譯了 uclibc 並且正確安裝了沒?
不過話說,不過是個編譯,人家本來就支持 arm ,「移植」這兩個字應該是不需要用了。
Ⅱ 如何使用busybox編譯和生成最簡lin
在ubuntu系統下創建一個rootfs目錄,用於存放busybox生成的根文件系統,也可設置為nfs的掛載目錄,直接通過網路文件系統進行掛載,便於開發。我自己就將該目錄創建在/opt/FriendlyARM/mini2440/rootfs處。並在該目錄下創建一些必備的子目錄:
leon@Ubuntu:/opt/FriendlyARM/mini2440/rootfs$ mkdir bin dev etc proc sbin sys tmp usr leon@Ubuntu:/opt/FriendlyARM/mini2440/rootfs$ ls bin dev etc proc sbin sys tmp usr
1、修改Makefile配置
進入busybox目錄,修改Makefile文件,在文件頭處加入內容如下:
ARCH ?= arm CROSS_COMPILE ?= arm-linux-
2、修改配置文件
make menuconfig
選擇Busybox Settings—>
1、Build Options—>,選擇[*] Build Busybox as a static binary(no shared libs); 2、Installtion Options,在busybox instantlltionprefix一欄中,輸入你想要創建rootfs的目錄。比如我的是/opt/FriendlyARM/mini2440/rootfs。
保存,退出。
3、編譯源碼
輸入make,進行編譯;這其中估計會遇到一些錯誤,可參見我的另外一篇博客(linux(ubuntu)編譯busybox遇到的問題處理辦法)。編譯成功後,會給出以下提示:
LINK busybox_unstripped Static linking against glibc, can't use --gc-sections Trying libraries: crypt m Library crypt is not needed, excluding it Library m is needed, can't exclude it (yet) Final link with: m DOC busybox.pod DOC BusyBox.txt DOC busybox.1 DOC BusyBox.html
編譯通過之後,輸入make install命令進行安裝,busybox會自動將rootfs根文件系統安裝到之前設置的目錄下。