• 查看主题

  • 查看主题说明文字
日常笔记
#110 adm1n
周六 4月 08, 2017 11:06 am
源码编译
K2简化的编译过程

1 下载源码 (root登录)
用以下指令安装 git。
sudo apt-get update
sudo apt-get install git
下载源码:
cd /opt
sudo git clone https://bitbucket.org/padavan/rt-n56u.git

2 安装编译环境
sudo apt-get install -y build-essential gawk pkg-config gettext automake autoconf libtool bison flex zlib1g-dev libgmp3-dev libmpfr-dev libmpc-dev texinfo python-docutils mc autopoint libltdl7 libltdl7-dev


3 编译tool
首先要编译一个交叉编译的工具链:
cd /opt/rt-n56u/toolchain-mipsel
sudo ./clean_sources
sudo ./build_toolchain


4 编译固件 进入固件源码的目录:
cd /opt/rt-n56u/trunk
sudo ./clear_tree
sudo ./build_firmware



当然,这样使用的是默认设置,编译出来的固件是 N56U。下面讲修改源码。

以后每次,编译固件,重复 第4步的 3条命令就可以了。
升级源码,sudo git pull
编译完成: 去 /opt/rt-n56u/trunk/images 下 , 拷贝 编译好的固件, 下次重新编辑,会被删除。



3 修改源码 (按照下面的方法可以修改出完美匹配K2的固件)

3.1 修改编译固件对应路由器型号 从 /opt/rt-n56u/trunk/configs/templates 文件夹下 拷贝 需要的型号到 /opt/rt-n56u/trunk下。
删除或重命令 /opt/rt-n56u/trunk下的 .config文件。(需按Ctrl+h显示隐藏文件)
然后,将拷贝过来的文件重名为 .config ,比如 K2的固件就是拷贝 ac54u_base.config,然后重名为 .config
然后,按 编译源码中 第4步编译,K2对应的固件。
修改 .config 文件内容,可增加或减少固件功能,比如
### Enable MT7620 CPU sleep mode (downclock to 200MHz on idle)
#CONFIG_FIRMWARE_CPU_SLEEP=y
删除前面的#号,就开启了,CPU休眠功能。
### Enable MT7620 CPU sleep mode (downclock to 200MHz on idle)
CONFIG_FIRMWARE_CPU_SLEEP=y
当然K2,不像 ac54u,不需要USB相关功能,需屏蔽,减小固件体积。



3.2 开启外置PA & LNA ,使用斐讯原厂的增益参数


K2适配修改文件.zip

替换原厂驱动文件后,还要在/rt-n56u/trunk/configs/boards/RT-AC54U下打文件kernel-3.4.x.config内容 CONFIG_EXTERNAL_PA_EXTERNAL_LNA=y



3.3 使用H大的汉化文件。
修改 rt-n56u/trunk/user/www 下文件。

EN.rar


3.4 其他乱七八糟的适配K2。网口 led灯
开机LED灯为红色,启动过程黄色,正常运行蓝色。复位键匹配。

rt-n56u/trunk/configs/boards/RT-AC54U文件夹下board.h:


#define BOARD_GPIO_BTN_WPS 1
#undef BOARD_GPIO_LED_ALL
#define BOARD_GPIO_LED_WIFI 11
#define BOARD_GPIO_LED_POWER 8
#undef BOARD_GPIO_LED_LAN
#define BOARD_GPIO_LED_WAN 10



去除USB相关功能。rt-n56u/trunk/configs/boards/RT-AC54U文件夹下board.mk:BOARD_NUM_USB_PORTS=0
以及前面提及的 .config 文件内容

TTL波特率修改为 57600。修改kernel-3.4.x.config:
CONFIG_RALINK_UART_BRATE=57600

WAN口和LAN口顺序修正,修改kernel-3.4.x.config:
CONFIG_RAETH_ESW_PORT_WAN=4
CONFIG_RAETH_ESW_PORT_LAN1=3
CONFIG_RAETH_ESW_PORT_LAN2=2
CONFIG_RAETH_ESW_PORT_LAN3=1
CONFIG_RAETH_ESW_PORT_LAN4=0

无线区域修改为China区域。修改rt-n56u/trunk/user/shared下文件defaults.h
#define DEF_WLAN_2G_CC "CN"
#define DEF_WLAN_5G_CC "CN"

默认时区修改为“北京,香港”;NTP 服务器修改为阿里云。修改rt-n56u/trunk/user/shared下文件defaults.h
#define DEF_TIMEZONE "CST-8"
#define DEF_NTP_SERVER0 "ntp1.aliyun.com"



默认设置更改: 修改 rt-n56u/trunk/user/shared下文件。

aria2目录 这个文件夹给编译得时候添加aria2下载支持,这个文件夹修改了可以支持百度网盘插件得支持。仅仅修改配置文件在aria.sh 和添加yaaw 得web控制支持Makefile

busybox目录 这个是给在ssh下面可以输入中文得支持。
httpd目录 这个就太多了。。很多修改支持得。aspbw.c ,common.h httpd.h variables.c web_ex.c添加wifiodg ui控制支持。具体如何添加UI支持 参考官方原文 https://bitbucket.org/padavan/rt-n56u/p ... ivoxy/diff
rc目录 common_ex.c中文ssid支持,rc.c rc.h services.c wifidog ui 支持
scripts目录 启动脚本支持具体可以根据已有固件去复制修改脚本。
shared目录 cflags.mk notify_rc.h defaults.c wifidog ui 支持 defaults.c 这个也是网关修改,及默认是否有wifi密码修改得支持 defaults.h 这个文件是信道,密码,ssid及时区,等等设置
www目录 dict字典目录,里面2个就是中文语言支持。n56u_ribbon_fixed 中文语言及所有你修改过得ui文件支持,具体请根据文章目录结构区修改。
\目录 Makefile 添加了wifiidog得支持 kernel-3.4.x.config这个文件是针对每个路由器得配置文件来修改支持,具体路径是放在trunk/config/board/(也许拼写错误?差不多点就行) 里面得路由器配置文件中如 rt-ac54u
这个文件对应修改 支持得内存,支持得最大核心数,支持得lan和wan得顺序,等等。。这个文件本菜菜还非常之不懂。。。嗯,上面led和指示灯和web title是在trunk/config/board/(也许拼写错误?差不多点就行)board.sh(也许拼写错误?差不多点就行)里面修改