配置编译环境 安装虚拟机 安装Ubuntu 16.04LTS 安装 git 1 2 sudo apt-get update sudo apt-get install git
转到/opt
目录,并且用命令克隆 Padavan 仓库 1 2 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
编译一个交叉编译的工具链 1 2 3 cd /opt/rt-n56u/toolchain-mipselsudo ./clean_sources sudo ./build_toolchain
编译3.0内核的固件 如果你需要编译3.0内核的固件就需要执行下面的步骤,默认支持3.4内核
1 2 3 cd /opt/rt-n56u/toolchain-mipselsudo ./clean_sources sudo ./build_toolchain_3.0.x
编译好后的工具链会放在/opt/rt-n56u/toolchain-mipsel/toolchain-3.0.x
以后在更新或者升级工具链的情况下才需要执行以上步骤。
机型适配(newifi mini) 进行入固件源码目录
生成配置文件 删除默认的配置文件 opt/rt-n56u/trunk
下的.config
文件,默认是隐藏的,可以使用Ctrl+H
显示与隐藏配置文件,或者用以下命令进行删除
1 sudo rm -f opt/rt-n56u/trunk/.config
从opt/rt-n56u/trunk/configs/templates
里拷贝出 ac54u_base.config
到 opt/rt-n56u/trunk
下并重命名成.config
,或者用以下命令进行操作
1 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 */ //上面是newifi mini的,由于每个机型不同,仅供参考
调用原厂无线参数 编辑 /opt/rt-56u/trunk/configs/boards/RT-AC54U/kernel-3.4.x.config
查找修改成以下代码,并删除目录下SingleSKU
开头的文件。
1 2 3 4 5 6 7 8 9 10 CONFIG_RT_SINGLE_SKU=n CONFIG_RT2860V2_AP_GREENAP=y CONFIG_INTERNAL_PA_INTERNAL_LNA=n CONFIG_INTERNAL_PA_EXTERNAL_LNA=n CONFIG_EXTERNAL_PA_EXTERNAL_LNA=y CONFIG_MT76X2_AP_GREENAP=y CONFIG_MT76X2_AP_INTERNAL_PA_INTERNAL_LNA=n CONFIG_MT76X2_AP_INTERNAL_PA_EXTERNAL_LNA=n CONFIG_MT76X2_AP_EXTERNAL_PA_EXTERNAL_LNA=y CONFIG_RALINK_UART_BRATE=57600
适配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
关闭 telnet 开启 ssh 编辑/opt/rt-56u/trunk/user/shared/defaults.c
1 2 {"telnetd" ,"0" }. {"sshd_enable" ,"1" }
汉化 编辑trunk/user/www/dict/EN.header
文件,找到LANG_EN=English
修改成以下
编辑trunk/user/www/dict/EN.footer
文件,把里面内容翻译成中文(也可以从已经汉化的固件里提取/www/EN.dict
文件,删除以下的内容,然后保存并重新命名成EN.footer
;
1 2 3 [Language type ] LANG_EN=简体中文 LANG_RU=English
编辑trunk/user/www/Makefile
文件,找到echo "LANG_RU=Pусский" >> $(ROMFS_DIR)/www/EN.header
修改成以下
1 echo "LANG_RU=English" >> $(ROMFS_DIR)/www/EN.header
编辑trunk/user/www/dict/RU.dict
文件,找到LANG_EN=English
修改成以下
生成固件 清除源码树
开始编译生成固件
编译完成后生成的固件在/opt/rt-56u/trunk/images
里面
更新源码 转到/opt
目录,克隆最新源码
如果你对本地存仓库进行了更改,那么在更新源码的时候,你必须运行以下命令
1 2 sudo git stash sudo git pull
如果更改了工具链,则必须重新构建它
1 2 3 4 cd /opt/rt-n56u/toolchain-mipselsudo ./clean_sources sudo ./clean_toolchain sudo ./build_toolchain
以上的修改建议使用手工进行修改,如果直接使用文件进行覆盖的话很容易出错。而且一但编译出错的话需要花很多时间进行调整,所以还是自己一步步慢慢改吧。
更多请参考Padavan官网编译教程