Build LEDE for TP-Link Archer C2600 from source

LEDE Project 是一個基於 OpenWrt 的 Linux 作業系統。她能夠取代由供應商提供的無線路由器或是其他非網路裝置的韌體。

本篇文章將會紀錄如何從 source code 編譯起 LEDE 給予 TP-Link Archer C2600 使用。

0x1 取得原始碼

我們可以從 LEDE Project 的 git 或是 GitHub mirror 取得原始碼:

0x2 安裝需求套件

  • 官方提供之需求套件:
    • gcc, binutils, bzip2, flex, python, perl, make, find, grep, diff, unzip, gawk, getopt, subversion, libz-dev and libc headers
  • Archlinux:
    • pacman -S git gcc bzip2 flex python python2 perl patch make unzip gawk subversion

0x3 更新 feeds, 安裝 LuCI

feeds 是由 LEDE community 所維護的套件的管理工具。LuCI 則是提供網頁管理界面的套件,我們必須要透過 feeds 來安裝 LuCI:

0x4 設定 LEDE

LEDE 使用 Kconfig 來進行設定,我們可以透過 make menuconfig 來開啟設定畫面:

Target System -> Enter -> 往下選擇 Qualcomm Atheros IPQ806X:

Target Profile -> Enter -> 往下選擇 TP-Link Archer C2600:

選單往下選擇 LuCI -> 1. Collections -> luci 按下 y:

選擇完畢後在選單就可以選則 Exit 退出了,save configuration 選擇 yes:

0x5 編譯 LEDE

使用 make -j8 來編譯 LEDE,注意到 -j 後面的數字可以變大來加速 (請參酌自身 CPU 能力):

 

編譯完成後,bin file 會放置於 bin/targets/ipq806x/generic 裡面:

重要的是這兩個檔案:

  • lede-ipq806x-C2600-squashfs-factory.bin
  • lede-ipq806x-C2600-squashfs-sysupgrade.bin

0x6 更新 LEDE firmware 到 C2600

1. 原生 firmware

從 192.168.0.1 進入管理界面後,Advance -> System Tools -> Firmware Upgrade。點選 Browse 選擇 lede-ipq806x-C2600-squashfs-factory.bin,然後點選 Upgrade 來更新韌體。

2. LEDE firmware

From LuCI:

如果你已經是 LEDE 了,就從 192.168.1.1 進入管理界面,System -> Backup / Flash Firmware。選擇 Flash new firmware image 的 Choose File,選擇 lede-ipq806x-C2600-squashfs-sysupgrade.bin,不要選錯了,是 sysupgrade。不過選錯也沒關係,會跳出錯誤訊息。

接著會出現 Verify 畫面,基本上因為是自己編譯的 binary file 所以不用檢查,但是如果你是從網路上獲得 binary file,請務必要做檢查!

確認無誤後,點選 Proceed 開始刷機。

From Command Line

身為一個工程師,知道 command line 的替代方案也是很合理的。請備而不用,因為你真的可能會用到。如果前面你沒有透過 feeds 安裝 LuCI 的話,你就沒有辦法從網頁界面刷機器了。

這時候請透過 sysupgrade 來刷機:

0x7 確認刷機是否成功

從刷機指令下去到重新啟動大概要 5 分鐘的時間,請在這段時間內泡杯茶。有段時間 Power 會持續規律閃爍,機器並沒有壞掉,請留點時間給它。刷機完成後,其他的 LED 燈就會亮回來了。

感恩師父,讚嘆師父,C2600 如此就可以使用 LEDE 了!

(2.4G wifi 以及 5G wifi 指示燈無法使用為正常狀況,請參考: [OpenWrt-Devel] [PATCH] [ipq806x] initial support for TP-Link Archer C2600)

0x8 如果刷成磚塊

別怕,刷成磚塊不用接線去燒錄,透過內建的 tftp 就可以還原了。至於怎麼用,因為我還沒有刷成磚塊,故只放上 OpenWrt 的網址,請自行參透,或是待我刷壞。

網址: https://wiki.openwrt.org/toh/tp-link/tp-link_archer_c2600_v1#specific_values_needed_for_tftp

請參考上述網址 Debricking 部份。

0x9 編譯過程中出錯

編譯過程中如果出錯,請使用 make -j1 V=s 來觀察錯誤資訊,根據錯誤資訊來修正錯誤。很痛苦。

Leave a reply:

Your email address will not be published.