Padavan 编译教程

配置编译环境 

安装虚拟机安装Ubuntu 16.04LTS 

安装 git 

sudo apt-get update

sudo apt-get install git

转到/opt目录,并且用命令克隆 Padavan 仓库 

cd /opt

sudo git clone https://bitbucket.org/padavan/rt-n56u.git

安装编译固件所需要的工具

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 autopoint

编译一个交叉编译的工具链

cd /opt/rt-n56u/toolchain-mipsel

sudo ./clean_sources

sudo ./build_toolchain

编译3.0内核的固件如果你需要编译3.0内核的固件就需要执行下面的步骤,默认支持3.4内核

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)进行入固件源码目录

cd /opt/rt-n56u/trunk

生成配置文件

// 删除默认的配置文件 

opt/rt-n56u/trunk 下的 .config 文件,默认是隐藏的,可以使用Ctrl+H显示与隐藏配置文件(或者用以下命令进行删除) 

sudo rm -f /opt/rt-n56u/trunk/.config

// 从 /opt/rt-n56u/trunk/configs/templates 里拷贝出 ac54u_base.config 到 /opt/rt-n56u/trunk下并重命名成.config(或者用以下命令进行操作) 

sudo cp /opt/rt-n56u/trunk/configs/templates/ac54u_base.config /opt/rt-n56u/trunk/.config

修改配置文件由于修改后默认的.config 配置文件里文档写的很详细,就不多解释,根据自己需要开启与关闭需要与不需要的功能,#这个符号默认是注释代码,也就是关闭某个功能,反之去掉就是开启(可以把文档内容拷出来到翻译里翻译一遍,可以很清楚的看到每个功能是干什么用的)适配灯与复位键修改文件 /opt/rt-56u/trunk/configs/boards/RT-AC54U/board.h 


 /* 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 

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 这一行代码,并加入下面的代码 

ONFIG_EXTERNAL_PA_EXTERNAL_LNA=y

扩展内存修改/opt/rt-56u/trunk/configs/boards/RT-AC54U/kernel-3.4.x.config配置文件,以AC-54U为例,默认是64M,所以只需要将以下代码进行如下修改

// 没修改前是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

#define DEF_TIMEZONE "CST-8" 

#define DEF_NTP_SERVER0 "ntp1.aliyun.com"

生成固件清除源码树

sudo ./clear_tree

开始编译生成固件

sudo ./build_firmware

编译完成后生成的固件在/opt/rt-n56u/trunk/images里面更新源码转到/opt目录,克隆最新源码

如果更改了工具链,则必须重新构建它

cd /opt/rt-n56u/toolchain-mipsel 

sudo ./clean_sources 

 sudo ./clean_toolchain 

 sudo ./build_toolchain 

以上的修改建议使用手工进行修改,如果直接使用文件进行覆盖的话很容易出错。而且一但编译出错的话需要花很多时间进行调整,所以还是自己一步步慢慢改吧。 

更多请参考Padavan官网编译教程

Padavan 编译教程
版权声明:若无特殊注明,本文皆为《 周洪 》原创,转载请保留文章出处。
本文链接:Padavan 编译教程 http://www.ymvpn.top/?post=8
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!