標籤:iso war 行修改 虛擬機器 ttext user org 注釋 清除
配置編譯環境安裝虛擬機器安裝Ubuntu 16.04LTS安裝 git
1 2
|
sudo apt-get update sudo apt-get install git
|
轉到
/opt目錄,並且用命令複製 Padavan 倉庫
1 2
|
cd /opt sudo git clone https://bitbucket.org/padavan/rt-n56u.git
|
安裝編譯韌體所需要的工具
1
|
sudo apt-get install autoconf automake bison build-essential flex gawk gettext gperf libtool pkg-config zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev texinfo python-docutils mc
|
編譯一個交叉編譯的工具鏈
1 2 3
|
cd /opt/rt-n56u/toolchain-mipsel sudo ./clean_sources sudo ./build_toolchain
|
編譯3.0核心的韌體
如果你需要編譯3.0核心的韌體就需要執行下面的步驟,預設支援3.4核心
1 2 3
|
cd /opt/rt-n56u/toolchain-mipsel sudo ./clean_sources sudo ./build_toolchain_3.0.x
|
編譯好後的工具鏈會放在/opt/rt-n56u/toolchain-mipsel/toolchain-3.0.x
以後在更新或者升級工具鏈的情況下才需要執行以上步驟。
機型適配(newifi mini)進行入韌體源碼目錄
組建組態檔案
1 2 3 4 5 6 7
|
// 刪除預設的設定檔 opt/rt-n56u/trunk 下的 .config 檔案,預設是隱藏的,可以使用Ctrl+H顯示與隱藏設定檔(或者用以下命令進行刪除)
sudo rm -f opt/rt-n56u/trunk/.config
// 從 opt/rt-n56u/trunk.config/templates 裡拷貝出 ac54u_base.config 到 opt/rt-n56u/trunk下並重新命名成.config(或者用以下命令進行操作)
sudo cp opt/rt-n56u/trunk/configs/templates/ac54_base.config /opt/rt-n56u/trunk/.config
|
修改設定檔
由於修改後預設的.config 設定檔裡文檔寫的很詳細,就不多解釋,根據自己需要開啟與關閉需要與不需要的功能,#這個符號預設是注釋代碼,也就是關閉某個功能,反之去掉就是開啟(可以把文檔內容拷出來到翻譯裡翻譯一遍,可以很清楚的看到每個功能是幹什麼用的)
適配燈與複位鍵
修改檔案 /opt/rt-56u/trunk/configs/boards/RT-AC54U/board.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
/* ASUS RT-AC54U */
#define BOARD_PID"RT-AC54U" #define BOARD_NAME"RT-AC54U" #define BOARD_DESC"ASUS RT-AC54U Wireless Router" #define BOARD_VENDOR_NAME"ASUSTek Computer Inc." #define BOARD_VENDOR_URL"http://www.asus.com/" #define BOARD_MODEL_URL"http://www.asus.com/Networking/RTAC54U/" #define BOARD_BOOT_TIME25 #define BOARD_FLASH_TIME120 #undef BOARD_GPIO_BTN_RESET #define BOARD_GPIO_BTN_WPS11 #undef BOARD_GPIO_BTN_WLTOG #undef BOARD_GPIO_LED_ALL #define BOARD_GPIO_LED_WIFI72 #undef BOARD_GPIO_LED_SW2G #define BOARD_GPIO_LED_SW5G50 #define BOARD_GPIO_LED_POWER9 #define BOARD_GPIO_LED_LAN55 #define BOARD_GPIO_LED_WAN51 #define BOARD_GPIO_LED_USB52 #undef BOARD_GPIO_LED_ROUTER #undef BOARD_GPIO_PWR_USB #define BOARD_HAS_5G_11AC1 #define BOARD_NUM_ANT_5G_TX2 #define BOARD_NUM_ANT_5G_RX2 #define BOARD_NUM_ANT_2G_TX2 #define BOARD_NUM_ANT_2G_RX2 #define BOARD_NUM_ETH_LEDS1 #define BOARD_HAS_EPHY_L10000 #define BOARD_HAS_EPHY_W10000
//上面是newifi mini的,由於每個機型不同,僅供參考
|
適配WAN口與LAN口
修改檔案 /opt/rt-56u/trunk/configs/boards/RT-AC54U/kernel-3.4.x.config
1 2 3 4 5 6 7
|
CONFIG_RAETH_ESW_PORT_WAN=4 CONFIG_RAETH_ESW_PORT_LAN1=1 CONFIG_RAETH_ESW_PORT_LAN2=0 CONFIG_RAETH_ESW_PORT_LAN3=3 CONFIG_RAETH_ESW_PORT_LAN4=2
//上面是newifi mini的,由於每個機型不同,僅供參考
|
開啟外置PA&LAN支援
在 /opt/rt-56u/trunk/configs/boards/RT-AC54U/kernel-3.4.x.config裡刪除# CONFIG_EXTERNAL_PA_EXTERNAL_LNA is not set 這一行代碼,並加入下面的代碼
1
|
CONFIG_EXTERNAL_PA_EXTERNAL_LNA=y
|
擴充記憶體
修改/opt/rt-56u/trunk/configs/boards/RT-AC54U/kernel-3.4.x.config設定檔,以AC-54U為例,預設是64M,所以只需要將以下代碼進行如下修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
// 沒修改前是64M記憶體 CONFIG_RT2880_DRAM_16M is not set CONFIG_RT2880_DRAM_32M is not set CONFIG_RT2880_DRAM_64M=y CONFIG_RT2880_DRAM_128M is not set CONFIG_RT2880_DRAM_256M is not set CONFIG_RALINK_RAM_SIZE=64
// 修改成128M CONFIG_RT2880_DRAM_16M is not set CONFIG_RT2880_DRAM_32M is not set CONFIG_RT2880_DRAM_64M is not set CONFIG_RT2880_DRAM_128M=y CONFIG_RT2880_DRAM_256M is not set CONFIG_RALINK_RAM_SIZE=128
|
設定時區
修改/opt/rt-56u/trunk/user/shared/defaults.h
1 2
|
#define DEF_TIMEZONE"CST-8" #define DEF_NTP_SERVER0"ntp1.aliyun.com"
|
產生韌體清除源碼樹
開始編譯產生韌體
編譯完成後產生的韌體在/opt/rt-56u/trunk/images裡面
更新源碼
轉到/opt目錄,複製最新源碼
如果你對本地存倉庫進行了更改,那麼在更新源碼的時候,你必須運行以下命令
1 2
|
sudo git stash sudo git pull
|
如果更改了工具鏈,則必須重新構建它
1 2 3 4
|
cd /opt/rt-n56u/toolchain-mipsel sudo ./clean_sources sudo ./clean_toolchain sudo ./build_toolchain
|
以上的修改建議使用手工進行修改,如果直接使用檔案進行覆蓋的話很容易出錯。而且一但編譯出錯的話需要花很多時間進行調整,所以還是自己一步步慢慢改吧。
更多請參考Padavan官網編譯教程
Padavan 編譯教程