|
本帖最后由 spoon 于 2019-3-31 07:52 编辑
链接:https://share.weiyun.com/5IffjRh 密码:evsu87
主要是家用,希望放在一边稳定运行不用管,所以只留下了必要的基础功能,如果你也有同样需求的话可以下载。
启用的功能有:
IPV6SUPP AUTODICT BBEXTRAS EBTABLES GRO DNSMQ SHP MDNS REBOOT_SCHEDULE JFFS2 SSH UTF8_SSID PROXYSTA REPEATER QUAGGA
使用的配置项列表为:
- export RT-AC1200G+ := IPV6SUPP=y ARM=y BCM57=n AUTODICT=y BBEXTRAS=y EBTABLES=y PARENTAL2=n GRO=y APP="none" DNSMQ=y SHP=y NVRAM_64K=y RTAC1200G=y BCMWL6=y BCMWL6A=y TUNEK="n" BCM5301X=n LANWAN_LED=n OPTIMIZE_XBOX=n MDNS=y DUMP_OOPS_MSG=y DEBUGFS=n BCM9=y TEMPROOTFS=y BTN_WPS_ALLLED=n REBOOT_SCHEDULE=y JFFS2=y JFFS2LOG=n HTTPS=n SSH=y ODMPID=n LAN50=y ATCOVER=n GETREALIP=n SW_HW_AUTH=y NATNL_AIHOME=n UTF8_SSID=y BUILD_NAME="RT-AC1200G+" ACCEL_p p t pD=n PROXYSTA=y NEW_USER_LOW_RSSI=y virtual**C=n REPEATER=y DISABLE_REPEATER_UI=y MULTICASTIPTV=n QUAGGA=y NO_SAMBA=y NO_FTP=y NOIPTV=y
复制代码 如果其中去掉了你需要的功能,你也可以自己下载源码编译(建议把 BTN_WPS_RST=y NO_USBSTORAGE=y 加上,我编译的时候忘了加),并不复杂。
- 适配 GPIO、去掉首页 USB 元素、修正系统信息 -> 状态 -> Ethernet Ports 的 LAN WAN 口数据
- 修正 WAN LAN 口顺序和路由器背板一致
- 去掉 watchdog 中和 usb 相关的代码(避免 stop_usb_program 链接错误)
- 移除 conn_diag.o 相关链接代码(避免 is_usb_modem_ready 链接错误)
- 精简了语言包,只留下中英文
刷机照A大的梅林贴刷即可,刷前建议备份 flash 数据。刷完之后建议初始化到原厂默认值一次,再按A大帖子里说的设置好自己的 MAC 地址(注意这有一个坑,他写的是 nvram set w1_hwaddr ,正确的应该是 nvram set wl_hwaddr,又是一个 1 和 l 看错的问题)。
开关 LED 灯需要进入 SSH 执行命令: led_ctrl 0 0 (关 pwr 灯)/ led_ctrl 0 1 (开 pwr 灯)。注意 SSH 在系统设置中启用之后要重启一次路由器才能正常进入。
如果你想自己编译固件,这里有我这几天的编译固件的一点经验,适合新手,老手请指点:
在源码 asuswrt/release/src-rt-9.x/src/router/rc/init.c 中 case MODEL_RTAC1200GP 下配置 GPIO 值:
nvram_set_int("btn_rst_gpio", 9|GPIO_ACTIVE_LOW);
nvram_set_int("btn_wps_gpio", 7|GPIO_ACTIVE_LOW);
nvram_set_int("led_pwr_gpio", 3|GPIO_ACTIVE_LOW);
nvram_set_int("led_wps_gpio", 10);
nvram_set_int("led_usb_gpio", 11|GPIO_ACTIVE_LOW);
同时将 add_rc_support("mssid 2.4G 5G usbX1"); 中的 " usbX1" 去掉,就可以去掉首页的 USB 图标了。
修改 WAN LAN 口顺序:
- 在源码 asuswrt/release/src/router/rc/sysdeps/init-broadcom.c 搜索 case MODEL_RTAC1200GP: ,修改 const int ports[SWPORT_COUNT] = { 0, 1, 2, 3, 4, 8 }; 为 const int ports[SWPORT_COUNT] = { 4, 0, 1, 2, 3, 8 }; 就和 K2P 背板的网口顺序对应了。
- 修改 asuswrt/release/src/router/httpd/web.c 的 ej_get_wan_lan_status 方法,添加一个 int port_order 局部变量,修改其中一部分代码为:
static int
ej_get_wan_lan_status(int eid, webs_t wp, int argc, char **argv)
{
FILE *fp;
char line[128], name[sizeof("WAN XXXXXXXXXX")], *ptr, *item, *port, *speed;
int wan_count, lan_count, ret = 0;
int port_order = 0; // *changed
struct json_object *wanLanStatus = json_object_new_object();
struct json_object *wanLanLinkSpeed = json_object_new_object();
struct json_object *wanLanCount = json_object_new_object();
if (wanLanStatus == NULL || wanLanLinkSpeed == NULL || wanLanCount == NULL)
goto error;
fp = popen("ATE Get_WanLanStatus", "r");
if (fp == NULL)
goto error;
ptr = fgets(line, sizeof(line), fp);
pclose(fp);
wan_count = lan_count = 0;
port_order = 0; // *changed
while ((item = strsep(&ptr, ";\r\n")) != NULL) {
if (vstrsep(item, "=", &port, &speed) < 2)
continue;
#if defined(DSL_AC68U)
if(port[0] == 'W') {
continue;
}
#endif
switch (*port++) {
case 'W': // *changed
case 'L':
if (port_order == 4) // *changed
{
snprintf(name, sizeof(name), "%s", "WAN 0");
wan_count++;
} else { // *changed
snprintf(name, sizeof(name), "%s%s%s", "LAN", *port ? " " : "", port);
lan_count++;
}
port_order++; // *changed
break;
default:
continue;
}
json_object_object_add(wanLanLinkSpeed, name, json_object_new_string(speed));
}
...
}
因为我只用单 WAN,就用这种最简单的方式修改了,适用性比较窄。修改前端页面 asuswrt/release/src/router/www/device-map/router_status.asp 里呈现数据的 get_ethernet_ports 方法会更好些。
需要去掉 USB 模块,不然刷进去会无限重启。去掉 USB 模块之后,有这么三处地方需要手动更正:
- 在源码 asuswrt/release/src/router/rc/watchdog.c 中 #ifdef RTCONFIG_BCMARM ... #endif 的代码块有三处,把其中的1、3处注释掉。
- asuswrt/release/src/router/rc/Makefile 中 OBJS += $(if $(wildcard conn_diag.c),conn_diag.o,prebuild/conn_diag.o) 一句注释掉。
- asuswrt/release/src/router/rc/ 中 rc.h 和 rc.c 中的 extern int conn_diag_main(int argc, char *argv[]); 和 { "conn_diag", conn_diag_main }, 注释掉。
在 asuswrt\release\src\router\www\Makefile 可以修改管理页面显示的路由器型号,搜索 ifeq ($(RTCONFIG_AUTODICT), y) 找到如下代码,对比修改:
ifeq ($(RTCONFIG_AUTODICT), y)
# now dict prep will generate necessary dict files to dest dir
rm -f $(INSTALLDIR)/www/*.dict
# Tool dir , dictctrl.txt , modem name , header mapping , src , dst , output msg file
$(ASUSWRTTOOLSDIR)/LnxDictPrep $(ASUSWRTTOOLSDIR) dictctrl.txt K2P HdrMapping.txt . $(INSTALLDIR)/www $(SRCBASE)/image/dictenum.txt $(SRCBASE)/image/dict_prep.txt # *changed
# generate sh file for clear up html and dict auto enum
# this is for compression
$(ASUSWRTTOOLSDIR2)/genshfile.pl $(ASUSWRTTOOLSDIR2) $(INSTALLDIR)/www $(SRCBASE)/image/compress.sh $(SRCBASE)/image/dictenum.txt $(SRCBASE)/image/output2.txt $(BUILD_NAME) $(SRCBASE)/image/output3.txt
chmod 777 $(SRCBASE)/image/compress.sh
sh $(SRCBASE)/image/compress.sh
else
for F in $(wildcard *.dict); do \
./gendict.pl K2P $$F $(INSTALLDIR)/www/$$F; \ # *changed
done
endif
就是把其中的两处 $(BUILD_NAME) 换成了 K2P,注意中间那处不要替换。直接改 target.mk 里的 BUILD_NAME 效果相同,但是可能会造成副作用,单独改这块放心些。另外还要在 asuswrt/release/src/router/tools/Lnx_AsusWrtDictPrep/dictctrl.txt 新添加一个设备:
[MODEL]
K2P
EN,CN
就可以了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|