交叉編譯busybox 1 25 0

2021-09-19 05:41:24 字數 1130 閱讀 3543

系統環境:

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等,而且還包含了一些更...