配置编译环境
安装虚拟机
安装Ubuntu 16.04LTS
安装 git
12
|
sudo apt-get update sudo apt-get install git
|
转到/opt
目录,并且用命令克隆 Padavan 仓库
12
|
cd /optsudo 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
|
编译一个交叉编译的工具链
123
|
cd /opt/rt-n56u/toolchain-mipselsudo ./clean_sourcessudo ./build_toolchain
|
编译3.0内核的固件
如果你需要编译3.0内核的固件就需要执行下面的步骤,默认支持3.4内核
123
|
cd /opt/rt-n56u/toolchain-mipselsudo ./clean_sourcessudo ./build_toolchain_3.0.x
|
编译好后的工具链会放在/opt/rt-n56u/toolchain-mipsel/toolchain-3.0.x
以后在更新或者升级工具链的情况下才需要执行以上步骤。
机型适配(newifi mini)
进行入固件源码目录
生成配置文件
1234567
|
// 删除默认的配置文件 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
123456789101112131415161718192021222324252627282930313233
|
/* 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_TIME 25#define BOARD_FLASH_TIME 120#undef BOARD_GPIO_BTN_RESET#define BOARD_GPIO_BTN_WPS 11#undef BOARD_GPIO_BTN_WLTOG#undef BOARD_GPIO_LED_ALL#define BOARD_GPIO_LED_WIFI 72#undef BOARD_GPIO_LED_SW2G#define BOARD_GPIO_LED_SW5G 50#define BOARD_GPIO_LED_POWER 9#define BOARD_GPIO_LED_LAN 55#define BOARD_GPIO_LED_WAN 51#define BOARD_GPIO_LED_USB 52#undef BOARD_GPIO_LED_ROUTER#undef BOARD_GPIO_PWR_USB#define BOARD_HAS_5G_11AC 1#define BOARD_NUM_ANT_5G_TX 2#define BOARD_NUM_ANT_5G_RX 2#define BOARD_NUM_ANT_2G_TX 2#define BOARD_NUM_ANT_2G_RX 2#define BOARD_NUM_ETH_LEDS 1#define BOARD_HAS_EPHY_L1000 0#define BOARD_HAS_EPHY_W1000 0
//上面是newifi mini的,由于每个机型不同,仅供参考
|
适配WAN口与LAN口
修改文件 /opt/rt-56u/trunk/configs/boards/RT-AC54U/kernel-3.4.x.config
1234567
|
CONFIG_RAETH_ESW_PORT_WAN=4CONFIG_RAETH_ESW_PORT_LAN1=1CONFIG_RAETH_ESW_PORT_LAN2=0CONFIG_RAETH_ESW_PORT_LAN3=3CONFIG_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,所以只需要将以下代码进行如下修改
123456789101112131415
|
// 没修改前是64M内存CONFIG_RT2880_DRAM_16M is not setCONFIG_RT2880_DRAM_32M is not setCONFIG_RT2880_DRAM_64M=yCONFIG_RT2880_DRAM_128M is not setCONFIG_RT2880_DRAM_256M is not setCONFIG_RALINK_RAM_SIZE=64
// 修改成128MCONFIG_RT2880_DRAM_16M is not setCONFIG_RT2880_DRAM_32M is not setCONFIG_RT2880_DRAM_64M is not setCONFIG_RT2880_DRAM_128M=yCONFIG_RT2880_DRAM_256M is not setCONFIG_RALINK_RAM_SIZE=128
|
设置时区
修改/opt/rt-56u/trunk/user/shared/defaults.h
12
|
#define DEF_TIMEZONE "CST-8"#define DEF_NTP_SERVER0 "ntp1.aliyun.com"
|
生成固件
清除源码树
开始编译生成固件
编译完成后生成的固件在/opt/rt-56u/trunk/images
里面
更新源码
转到/opt
目录,克隆最新源码
如果你对本地存仓库进行了更改,那么在更新源码的时候,你必须运行以下命令
12
|
sudo git stashsudo git pull
|
如果更改了工具链,则必须重新构建它
1234
|
cd /opt/rt-n56u/toolchain-mipselsudo ./clean_sources sudo ./clean_toolchain sudo ./build_toolchain
|
以上的修改建议使用手工进行修改,如果直接使用文件进行覆盖的话很容易出错。而且一但编译出错的话需要花很多时间进行调整,所以还是自己一步步慢慢改吧。
更多请参考Padavan官网编译教程
时间: 2024-12-13 10:27:41