|
本帖最后由 g10614036 于 2018-5-21 20:35 编辑
K2基于华硕官方源码的编译教程
1. 本教程基于VirtualBox(实体机也可以)+Ubuntu 16.04 LTS 64-bit(安装方法可以查阅论坛或者自行百度)
2. 安装相关依赖包(逐行复制。有些包可能用不到,但是都装上吧,以防报错){会需要输入你的帐户密码}
sudo apt-get install git autoconf automake bash bison bzip2 diffutils file flex
sudo apt-get install m4 g++ gawk groff-base libncurses-dev libtool libslang2 make patch perl
sudo apt-get install pkg-config shtool subversion tar texinfo zlib1g zlib1g-dev git-core gettext
sudo apt-get install libexpat1-dev libssl-dev cvs gperf unzip python libxml-parser-perl gcc-multilib
sudo apt-get install gconf-editor libxml2-dev g++-4.7 g++-multilib gitk libncurses5 mtd-utils
sudo apt-get install libncurses5-dev libstdc++6-4.7-dev libvorbis-dev g++-4.7-multilib git autopoint
sudo apt-get install autogen sed build-essential intltool libelf1:i386 libglib2.0-dev xutils-dev
sudo apt-get install lib32z1-dev lib32stdc++6
3. 下载源码
RT-AC1200HP.7z 链接: https://pan.baidu.com/s/1LkLlnqu5SpKottZWc45bdw 密码: ztq6 RT-AC54U.7z 链接: https://pan.baidu.com/s/1QFsop2QH7yhP1m76cjZtig 密码: 8jfn
文件: RT-AC1200HP.7z
大小: 602590941 字节
修改时间: Monday, May 21, 2018, 9:36:24 AM
MD5: 10FA7C2CAF154A35F7F573B2859952D4
SHA1: 84B10AE3A7866649073AC194C1C7AA35F06295C1
CRC32: 7832C7C7
文件: RT-AC54U.7z
大小: 641720936 字节
修改时间: Monday, May 21, 2018, 8:58:48 AM
MD5: AE55475E3C53BDA6C55D45149CD22266
SHA1: A9DDE72D88FE3AA44ED7BD420A3083607BD42B46
CRC32: 06938E86
4. 解压源码至本地硬盘
5. 在Ubuntu的/home目录下创建名为"RT-AC1200HP"或"RT-AC54U"的文件夹(基于你下载的源码所对应的型号)
6. 用Winscp将你下载解压后的源码上传至对应的目录(AC1200HP的源码上传到/home/RT-AC1200HP目录,AC54U的源码上传到/home/RT-AC54U目录)
7. 进入/home/RT-AC1200HP目录或/home/RT-AC54U目录
cd /home/RT-AC1200HP或者cd /home/RT-AC54U
8. 解压源码
sudo tar -xjvf asuswrt.tar.bz2
9. 进入/home/RT-AC1200HP/asuswrt目录或/home/RT-AC54U/asuswrt目录
cd /home/RT-AC1200HP/asuswrt或者cd /home/RT-AC54U/asuswrt
10. 赋予执行脚本足够的权限
sudo chmod +x build.sh
11. 运行脚本,等待编译完成,之后去/asuswrt/release/src-ra-mt7620/image查找固件(编译所需时间由电脑或虚拟机的配置决定,本人i7 6700+16G内存实体机编译需要10分钟左右)
sudo ./build.sh
12. 编译到最后会有一个报错,是因为在检验固件MD5值时系统未找到对应文件名(由于开启外置PA/LNA的原因),直接忽略即可,只要生成固件就没问题,其MD5值在生成固件的相同位置有一个以.MD5为后缀名的文件可以查询。
注: 想要自行增删固件特征的,可打开/asuswrt/release/src-rt下的target.mak文件,以关键词"export RT-AC1200HP"或"export RT-AC54U"搜索,通过y或n来打开或关闭某些特征,但最终固件大小不得超过8MB。如果懒得编译的,直接下载成品吧。一个是基于RT-AC1200HP编译的,未修改设备名称,保留原汁原味,另一个是基于RT-AC54U编译的,修改设备名为PHICOMM K2,将网页内的“华硕”字眼均替换成“斐讯”(LOGO未修改)。两个固件均开启了外置PA和LNA,双WAN,精简了USB的相关特征。
链接: https://pan.baidu.com/s/1KPHVGoGi3zu5yrit34tgBw
密码: tmsp
附: 以AC1200HP源码为例,常规修改的内容如下(如遇到一些常规的编译错误,可自行搜索,本帖不一一讨论)
GPIO修改
前往asuswrt/release/src/router/rc/init.c,搜索case MODEL_RTAC1200HP修改
nvram_set_int("btn_rst_gpio", 62|GPIO_ACTIVE_LOW);
nvram_set_int("btn_wps_gpio", 61|GPIO_ACTIVE_LOW);
nvram_set_int("led_usb_gpio", 67|GPIO_ACTIVE_LOW);
nvram_set_int("led_pwr_gpio", 65|GPIO_ACTIVE_LOW);
nvram_set_int("led_wps_gpio", 65|GPIO_ACTIVE_LOW);
nvram_set_int("led_5g_gpio", 70|GPIO_ACTIVE_LOW);
nvram_set_int("led_2g_gpio", 72|GPIO_ACTIVE_LOW);
//nvram_set_int("led_all_gpio", 10|GPIO_ACTIVE_LOW);
nvram_set_int("led_lan_gpio", 69|GPIO_ACTIVE_LOW);
nvram_set_int("led_wan_gpio", 68|GPIO_ACTIVE_LOW);
网口修正
前往asuswrt/release/src-ra-mt7620/linux/linux-2.6.36.x/drivers/net/raeth/raether.c,搜索defined(RTAC1200HP)修改
#if defined(RTAC1200HP)
"1", "2", "3", "4", "x", "" /* RT-AC1200HP, P0P1P2P3P4P5 map to LAN/WAP port*/
前往asuswrt/release/src-ra-mt7620/router/shared/sysdeps/ralink/mt7620.c,搜索defined(RTAC1200HP)修改
#elif defined(RTAC1200HP)
enum {
WAN_PORT=5,
LAN1_PORT=0,
LAN2_PORT=1,
LAN3_PORT=2,
LAN4_PORT=3,
P5_PORT=4,
CPU_PORT=6,
P7_PORT=7,
};
模块定制(增删模块,开启外置PA/LNA,修改内存大小等)
修改asuswrt/release/src-ra-mt7620/target.mak
图标修改
asuswrt/release/src/router/www/images/New_ui/asustitle.png
精简语言包
修改asuswrt/release/src/router/tools/Lnx_AsusWrtDictPrep/dictctrl.txt,只保留中英文
[MODEL]
RT-AC1200HP
EN,CN
版本号及界面修改
主版本号位于asuswrt/release/src-ra-mt7620/version.conf
子版本号位于asuswrt/release/src/router/extendno.conf
型号在dict字典文件在asuswrt/release/src/router/www/CN.dict中的Web_Title和Web_Title2字段
|
评分
-
查看全部评分
|