华硕网络产品技术交流平台

 找回密码
 立即注册

手机号码,快捷登录

查看: 66222|回复: 99

[教程] 华硕路由器官方固件和梅林固件开机自动运行脚本方法

  [复制链接]
发表于 2018-5-4 16:05:12 | 显示全部楼层 |阅读模式
本帖最后由 数学大亨 于 2020-4-30 21:40 编辑

全新发布17.0&17.0版


1. Python 2已于20200101结束支持,现删除Python 2及与其相关的一切(含anki_server)

2. 实现全部组件的离线安装/升级,从此再不用纠结讨厌的污染和封锁。甚至即使Entware被封,本系统也依然不受影响!(全套离线包近3G。因尚未找到合适的云盘共享,故暂时无法开放)

3. 自本版本开始,使用说明索引页面会对正式版离线安装包给出SHA256值,安装前务必进行校验

友情提示:主版本升级(例如v16.X&XX.X -> v17.X&XX.X),绝不能直接使用update更新,必须执行upgrade升级,详见使用说明。若要停留在某旧版本,不要执行update更新,也不要执行opkg install从entware库安装程序

SCRIPTS BOOTLOADER FOR ASUS ROUTER 介绍

开发背景
1.网上流传的关于华硕路由器官方固件开机自动运行脚本的方法,或已经失效,或程序逻辑特别复杂,用起来非常麻烦且难以控制

2. 绝大部分方法都需要将至少一个脚本写入路由器的/jffs分区。根据梅林固件的原作者,这样做会缩短路由器的寿命,因为其闪存芯片的写入次数很少,一旦写入次数太多,路由器将损坏!!!(参考:
https://github.com/RMerl/asuswrt-merlin/wiki/JFFS

3. 根据个人使用经验,梅林固件本身的稳定性并不算太高(比如经常出现web页面崩溃的问题),而且一些华硕原厂固件的特定功能并不能得到及时更新(例如AiMesh)


因此,本人写了一个可同时运行于华硕路由器官方固件和梅林固件的,且无需向/jffs分区写入任何内容的开机启动引导脚本,有需要的坛友可以下载使用



功能介绍
1.路由器开机后自动运行U盘中的指定程序,允许用户自行扩展路由器功能

2.全新编写Entware自动安装程序。程序会根据路由器架构,自动安装适当版本的Entware,无需用户参与安装过程


3.可根据实际需要,选择安装256M、512M、1024M、和2048M虚拟内存,确保运行流畅


4.配备一键安装和一键更新程序,便于使用


5.配备Web管理页面(基于Monit管理系统),方便进行插件的启停


6.更新日为每月1日


插件名称简介
屏蔽词A全网屏蔽词拦截与反跟踪软件
ali_ddns阿里云DDNS
aliyun全功能阿里云命令行工具 CLI(Alibaba Cloud CLI)
aria2aria2下载工具
ariangaria2图形界面
bash全功能bash shell
caddyWeb服务器
debianDebian的chroot环境。可安装Debian系统下大部分软件包,软件数量远大于Entware
filebrowser私有云盘服务器
freemem自动清理内存工具
he_ddnsHE DDNS插件(DNS服务商为HE.NET)
ipmitoolIPMI管理工具(仅开通lan, lanplus接口)
mailx邮件系统
ntpd授时服务器
onu_access允许访问光猫管理页面
openssh_serverOpenSSH服务器
overtureDNS服务器
sambaSAMBA服务器
屏蔽词S不用说了,你们懂的
syncthing开源分布式同步工具
屏蔽词V不用说了,你们懂的
vlmcsd给予巨硬套装新活力
webdavwebdav服务器
wol定时开机


程序特色
1. 所有程序(含Entware)均可运行于华硕路由器官方固件和梅林固件

2. 所有程序均使用Shell Script编写,语言风格统一


3. 所有程序代码格式统一,均配有详尽的中、英文注释(中英文对照),几乎解释了全部代码,易读、易懂、易改、易用


4. 程序组织逻辑清晰,程序命名清晰表达其功能,目录结构合理


5. 所有程序(含Entware)仅使用U盘,完全不依赖路由器/jffs分区,延长路由器使用寿命


6. 本程序可部署于U盘中的任何目录层级


7. 允许用户在路由器上插入多个U盘,不会发生任何冲突



在线安装
1. 备份目标U盘全部数据并将其连接至路由器

2. 移除其它全部U盘


3. 登陆路由器并执行下述代码,按照屏幕提示完成安装(离线安装方法见使用说明)  


  1. cd /tmp && wget -q -O /tmp/install_online --no-check-certificate "https://cdn.jsdelivr.net/gh/JACK-THINK/SCRIPTS-BOOTLOADER-FOR-ASUS-ROUTER@latest/script_bootloader/bin/install_online" && chmod 777 /tmp/install_online && /tmp/install_online
复制代码


更多资料

使用说明索引

更新日志


下载地址







希望下载使用的朋友们能回复你们所使用的路由器型号
如反馈故障,最好能提供命令行截屏





 楼主| 发表于 2018-5-5 19:54:53 | 显示全部楼层
本帖最后由 数学大亨 于 2018-5-5 20:13 编辑
Jack 发表于 2018-5-4 23:48
非常好的一个方法,我之前也写过类似教程,相比您的教程欠缺实用价值,您的教程更简单有效,并且我的教程在 ...

我在写这个程序之前,拜读过您的贴子,给了我很多启发。不过看到用Downloader做引导的时候,觉得这样确实比较复杂,不太可控。

是的,这套系统的核心就是这两个参数
  1. nvram
复制代码
是路由器设置的核心。通过
  1. nvram show
复制代码
可查询全部设置项。我试了几个有可能的参数(比如含script字样的,含usb字样的,含mount字样的)就找出来了。

通过这次的经历,我发现华硕路由器可玩性非常高,完全不必刷第三方固件。仅对nvram进行操作,就能实现超多的功能(比如直接改无线信号发射功率等各种参数!随便配vlan!SSID随便添加,随便改,随便隐藏!策略路由随便配!……)。不过还要提醒一句,有些参数一旦改错,路由器就不能启动了,需要reset大法或wps大法才能恢复。

521

主题

2205

帖子

5908

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5908

RT-AC88U

发表于 2018-5-4 17:56:53 | 显示全部楼层
好帖,我来学习。

0

主题

334

帖子

4575

积分

论坛元老

Rank: 8Rank: 8

积分
4575

RT-AC66U

发表于 2018-5-4 23:32:45 | 显示全部楼层
那么高深的东西没搞,准确的说我不会搞啊

14

主题

848

帖子

1万

积分

特聘会员

Rank: 2

积分
10605
发表于 2018-5-4 23:48:41 | 显示全部楼层
非常好的一个方法,我之前也写过类似教程,相比您的教程欠缺实用价值,您的教程更简单有效,并且我的教程在382 及以上固件中已经不会执行。

简单看了下您的脚本,但有一些不明,您的脚本在官方固件中仅仅是依靠向 nvram 写入以下两个参数实现自启动的吗?
  1. nvram set script_usbmount="路径"
  2. nvram set script_usbumount="路径"
复制代码
如果是这样,这个也太简单暴力了。我之前的教程绕了一大圈,通过模拟 Download Master 启动方式才实现,这样将比我的方法好太多了。

以及我很好奇您是如何知道这个参数的,相比寻找过程一定很有意思。

1

主题

102

帖子

2489

积分

金牌会员

Rank: 6Rank: 6

积分
2489

RT-AC68URT-AC88URT-AC86ULyra Trio

发表于 2018-5-5 11:00:45 | 显示全部楼层
学习学习
回复

使用道具 举报

14

主题

848

帖子

1万

积分

特聘会员

Rank: 2

积分
10605
发表于 2018-5-7 14:33:21 | 显示全部楼层
数学大亨 发表于 2018-5-5 12:54
我在写这个程序之前,拜读过您的贴子,给了我很多启发。不过看到用Downloader做引导的时候,觉得这样确实 ...

支持您的探索精神,用 nvram show 一个个找,一个个试,真的很厉害。
还有一点,您有没有试过在 384 固件实现自启动?我的路由器属于另外一个分支到现在官方没有实现 384,所以我很想知道。

另外如果您还感兴趣,可以看看这个,通过 nvram JFFS 也可以开启。https://github.com/gygy/asus_factory_image
 楼主| 发表于 2018-5-7 22:51:12 | 显示全部楼层
Jack 发表于 2018-5-7 14:33
支持您的探索精神,用 nvram show 一个个找,一个个试,真的很厉害。
还有一点,您有没有试过在 384 固件 ...

我的开发系统版本就是384.4。该程序在384.4的官方固件和梅林固件上均运行良好。

其实,我最先测试的就是开启jffs。梅林系统有/jffs/scripts/目录,里面放入可执行的脚本,就可以实现开机启动(与脚本文件名无关)。但是,原厂系统开启jffs后,/jffs目录中没有scripts目录。即使自己建立一个scripts文件夹,里面的可执行脚本也无法开机自动启动。所以我只得放弃了这种办法。还有一点,我主要目的之一就是让这些外挂的程序完全运行于U盘,不向路由器闪存写入任何内容,所有就有了现在这套程序。

14

主题

848

帖子

1万

积分

特聘会员

Rank: 2

积分
10605
发表于 2018-5-8 14:55:08 | 显示全部楼层
数学大亨 发表于 2018-5-7 15:51
我的开发系统版本就是384.4。该程序在384.4的官方固件和梅林固件上均运行良好。

其实,我最先测试的就是 ...

谢谢:)

0

主题

13

帖子

36

积分

新手上路

Rank: 1

积分
36
发表于 2018-5-9 18:24:17 | 显示全部楼层
数学大亨 发表于 2018-5-5 19:54
我在写这个程序之前,拜读过您的贴子,给了我很多启发。不过看到用Downloader做引导的时候,觉得这样确实 ...

那能不能在官方固件上安装某梯子插件呢?求教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

快速回复 返回列表 搜索 官方QQ群
×

秒后自动关闭

手机版|Archiver|华硕网络产品技术交流平台 ( 苏ICP备16010857号-1 )苏公网安备 32050502000499号

GMT+8, 2021-10-21 03:55 , Processed in 0.097949 second(s), 30 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表