掌握這些,輕鬆管理BusyBox:如何交叉編譯和整合BusyBox

JobYan發表於2023-12-04

在嵌入式系統中,由於裝置的資源限制,需要開發人員尋找一種輕量、小型且使用廣泛的工具集。而 BusyBox 就是這樣一個在嵌入式系統中非常實用的工具集。本文將介紹如何在 Ubuntu 22.04 平臺上使用交叉編譯器編譯 BusyBox,並將其整合到嵌入式系統中。

什麼是 BusyBox 工具集?

BusyBox 是一個嵌入式 Linux 工具集,它可以在嵌入式裝置上執行,並提供大量常見命令和實用工具,例如 ls、awk、sed、find、tar 等。BusyBox 被設計成一個小型且高度可定製的工具集,具有極小的二進位制檔案大小和最小的記憶體佔用,適合嵌入式裝置使用。大多數情況下,嵌入式系統都將 BusyBox 作為可執行檔案,以避免動態連結的負載。

編譯 BusyBox

在 Ubuntu 22.04 平臺上,您需要使用交叉編譯器來編譯 BusyBox。交叉編譯器與目標系統的 CPU 架構無關。以下是有關如何在 Ubuntu 22.04 平臺上安裝交叉編譯器的步驟:

  1. 在終端中輸入以下命令,以安裝交叉編譯器:
sudo apt-get update && sudo apt-get install build-essential gcc-arm-linux-gnueabi 
  1. 獲取 BusyBox 的原始碼,並解壓:
wget https://busybox.net/downloads/busybox-x.yy.z.tar.bz2 
tar xvf busybox-x.yy.z.tar.bz2 
  1. 在解壓後的 BusyBox 原始檔目錄中,輸入以下命令:
make menuconfig 
  1. 按照提示,在 BusyBox 的配置選單中選擇需要啟用的命令、去除不需要的命令、配置靜態或動態連結等選項。

  2. 儲存配置並退出,輸入以下命令進行編譯:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-  
  1. 編譯完後,在 BusyBox 原始碼目錄中會生成一個 busybox 可執行檔案。

將 BusyBox 整合到嵌入式系統中

完成 BusyBox 的編譯之後,就可以將其整合到目標嵌入式系統中了。具體步驟如下:

  1. 將編譯好的 busybox 可執行檔案從 Ubuntu 系統中複製到目標嵌入式系統的根檔案系統中。

  2. 建立 BusyBox 備用目錄:

mkdir -pv /opt/busybox 
cd /opt/busybox 
  1. 建立 BusyBox 必要的目錄和連結:
mkdir -pv bin etc proc sys usr/bin usr/sbin usr/share/udhcpc 
ln -sv usr/bin bin 
  1. busybox 可執行檔案複製到 /opt/busybox/bin 目錄。

  2. 然後,在 /opt/busybox 目錄中執行以下命令:

cd /opt/busybox 
cp -v /opt/busybox/bin/busybox . 
ln -sv busybox init 
  1. 接下來,在目標嵌入式系統的啟動指令碼中新增以下語句:
export PATH=$PATH:/opt/busybox/bin 

這樣,重啟嵌入式裝置後,就可以在其中訪問 BusyBox 所有的命令和工具。

結論

本文介紹了 BusyBox 工具集的基本概念和編譯 Busybox 的方法。在瞭解了編譯後的可執行檔案的位置,即如何將其整合到嵌入式系統之後,開發人員可以更好地使用 BusyBox 以及嵌入式裝置上其他的工具。希望本文內容能夠對讀者有所幫助。

相關文章