系統環境:
1、作業系統:ubuntu16.04
2、交叉編譯工具鏈:arm-linux-gcc4.4.3
3、busybox原始碼包:busybox-1.25.0
一、修改makefile配置
首先解壓原始碼包:
tar -jxvf busybox-1.25.0.tar.bz2
進入busybox-1.25.0目錄,修改makefile檔案如下:
arch ?= arm
cross_compile ?= arm-linux-
二、修改配置檔案
make menuconfig
選擇busybox settings--->build options--->,選擇[*] build busybox as a static binary(no shared libs)
三、編譯
make
出現如下錯誤:
解決辦法:
mtd_file_mode_raw在/usr/include/mtd/mtd-abi.h中定義,直接在nandwrite.c中包含編譯仍無法通過。將/usr/include/mtd/mtd-abi.h拷貝到busybox的include檔案中,然後包含該標頭檔案:
#include "libbb.h"
#include "mtd-abi.h"
#include
編譯可以通過。
繼續make,出現如下錯誤:
解決辦法:
blksecdiscard在/usr/include/linux/fs.h中定義,方法如上所述,將/usr/include/linux/fs.h拷貝到busybox的include檔案中,然後修改blkdiscard.c中標頭檔案包含:
修改:#include 為
#include "fs.h"
解決辦法:
make menuconfig
linux system utilities--->nsenter,去掉該選項,重新編譯make,又出現如下錯誤:
解決辦法:
make menuconfig
coreutils--->sync選項去掉,重新make編譯通過,生成了busybox可執行檔案。
具體選項是什麼意思還不太清楚,需要進一步理解。
交叉編譯busybox
解壓busybox之後 1.執行make defconfig 預設的defconfig以及足夠一般的嵌入式應用了。不建議使用allyesconfig,因為有一些項嵌入式裝置不支援無法編譯通過。2.執行make menuconfig 檢視是否需要裁剪或者新增必須的配置項,如果裝置使用pppd建議去掉c...
busybox 交叉編譯
make menuconfigsettings 是必須要設定的,網上的很多用例都是直接修改make file,事實上現在通過圖形介面可以直接配置交叉編譯了 有幾個選項是 debian 的,如果不是 debian 系統就取消選擇,以減小二進位制檔案的大小 settings 裡面有幾個是桌面版 linu...
製作檔案系統 BusyBox的交叉編譯
開發平台 ubuntu11.04 目 標板 arm體系結構 busybox the swiss army knife of embeddedlinux.busybox 是乙個整合了一百多個常用linux命令和工具的應用程式。它不僅包含了一些簡單的命令,如 cat echo和ls等,而且還包含了一些更...