OpenWrt 開發入門:建立韌體的基本操作步驟

日期2026-05-26

1. 為什麼是 OpenWrt?

許多 MaxLinear 網通設備的韌體皆以 OpenWrt 為基礎建立,因此掌握 OpenWrt 的操作方式,對於韌體建置、系統客製化與問題除錯都十分重要。本文將以 OpenWrt SDK 的使用流程為核心進行說明,內容不僅適用於 MaxLinear 平台,也可作為其他 OpenWrt-based 網通設備的開發參考。

 

下面會開始介紹如何使用 OpenWrt,示範開發板為 Raspberry Pi4。

 

2. 準備編譯環境

OpenWrt 通常會在 Linux 環境下編譯,例如 Ubuntu 或 Docker container。


sudo apt update
sudo apt install build-essential clang flex bison g++ gawk \
gcc-multilib g++-multilib gettext git libncurses-dev \
libssl-dev python3-distutils rsync unzip zlib1g-dev file wget

不同 OpenWrt 版本可能會有不同套件需求,可以參考官方文件 (OpenWrt)

 

3. 下載 OpenWrt 原始碼


git clone https://github.com/openwrt/openwrt.git
cd openwrt

在實際開發中,網通廠或晶片商提供的 SDK,通常不是完全原生的 OpenWrt,而是以 OpenWrt 為基礎,加入晶片商已整合好的 BSP、Ethernet、Wi-Fi、驅動與平台設定後形成的版本。

因此,開發者拿到的多半是一套 OpenWrt-based SDK。本文不會深入說明 BSP 或各項硬體功能的整合細節。

 

4. 更新 feeds

OpenWrt 的套件來源透過 feeds 管理。下載原始碼後,需要先執行:


./scripts/feeds update -a
./scripts/feeds install -a

 

5. 選擇目標平台 (Optional)

由於廠商提供的 SDK 會設定好 .config,因此這一步通常是不需要的,但目前使用的是原生 OpenWrt,仍需要選擇 Pi4 相關的設定。

 

進入設定選單:


make menuconfig

 


Target System  → Broadcom BCM27xx
Subtarget      → BCM2711 boards (64 bit)
Target Profile → Raspberry Pi 4B/400/CM4

 

6. 開始編譯


make -j$(nproc)

 

如果遇到錯誤,可以用這個指令去顯示編譯的訊息,由此得知錯誤原因:


make -j1 V=s

 

7. 韌體位置

編譯完成後,輸出檔案通常會放在:


bin/targets/

 

以 Pi4 來說,位置就在:


bin/targets/bcm27xx/bcm2711

 

進去這個資料夾後,會看到需多 img,其中我們要拿來燒錄的是:


openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz

 

常見 image 類型可以這樣理解:

類型用途
factory image通常用於從原廠韌體第一次刷入 OpenWrt
sysupgrade image用於已經是 OpenWrt 系統的升級
initramfs image常用於開發階段,透過 TFTP 或 RAM boot 測試
ext4 image常見於 x86、Raspberry Pi 這類平台

但實際上,網通廠會有各自的命名方式,因此這個類型參考即可。

 

 

8. 燒錄韌體

燒錄可以選擇使用 balenaEtcherRaspberry Pi Imager,這邊會使用 balenaEtcher 作為示範。

 

選擇燒錄檔案的時候,可以不用特地解壓縮 gz 檔,balenaEtcher 會直接處理,

接著選擇要燒錄的儲存裝置 (SD Card),就可以開始燒錄了。

 

9. UART 開機

硬體位置可以參考此圖 (Simple Guide to the Raspberry Pi GPIO Header)

Raspberry Pi GPIO Header with Photo

此外還需要修改 SD Card 上的 config.txt

修改如下:


[all]
# Place your custom settings here.
enable_uart=1

 

完成後就可以接上 UART,開機進入系統了

10. 結語

總結來說,OpenWrt 是網通設備韌體開發中常見架構。無論是使用 MaxLinear 平台,或是其他晶片商提供的 SDK,

熟悉基本的建置流程與設定方式,都有利於後續的開發與除錯。

★方案內容均由個人提供,與平台無關,如有違法或侵權,請聯繫大大芯方案專屬信箱