斐讯K3 梅林merlin固件 修复版

版本信息

版本:

2018-10-10_fixed

根据KoolShare论坛merlin改版固件 380.70_0-X7.9.1 适配优化,部分参考了 laode1987的梅林混血版

  • WAN口、双WAN、软件中心、无线MAC 均正常
  • 适配了复位键,开机完全启动以后可长按复位键6秒以上恢复出厂设置
  • 修改了一些设置: 默认关闭telnet、开启SSH_LAN、开启JFFS scripts、关闭WPS、关闭断网导页通知
  • 修复了软件中心各种插件的自启问题
  • 增加了一个RAM JFFS模式,修复了USB JFFS模式
  • 内置了两种屏幕方案 二选一
  • 修复了屏幕第一屏MAC显示、第二屏网口和USB显示、第六屏终端图标和网速显示
  • 修复了 无线桥接模式、无线访问点 (Access Point)、Media Bridge 三种模式的VLAN,WAN口可用
  • 修复了3G/4G USB网卡模式
  • 修复了双WAN,支持 WAN+LAN、LAN+WAN、WAN+USB、USB+WAN
  • 修复了TTL滚屏错误日志
  • 增加了flash_eraseall,如JFFS挂载不正常可手动格式化
  • 增加了SSH工具箱,一键升级、一键完美还原官方
  • 等等

在线刷入merlin固件

  1. 先刷入root固件,完成以后建议降级CFE

  2. SSH工具箱–>系统&其它–>其他–>MAC修改
    输入粘贴当前路由LAN口的MAC地址(官方固件管理页面右下方有显示),完成后梅林固件下的无线MAC和当前固件一致

  3. SSH工具箱–>刷机&还原—>Asuswrt-Merlin 固件—>Merlin固件 by tb,确认重启后完成

默认管理地址: http://router.asus.com/ 或者 http://192.168.50.1/

(CFE降级和MAC修改仅需执行一次, 固件nvram和其它固件冲突, 不要导入保留其它固件的设置)


关于屏幕

K3的官方类固件/mcu目录都放置了屏幕单片机固件,K3固件启动后运行uhmi屏幕显示控制程序,uhmi会检查屏幕单片机固件版本,如果和/mcu目录存放的版本不一致就会强制升级屏幕单片机(屏幕显示升级中),官方固件V21.6.8.46以及更高的版本/mcu目录的固件才支持屏幕天气显示。

此Merlin固件集成了两种屏幕控制程序,默认采用方案 A

A. 官方V21.6.8.46固件提取的uhmi程序,支持显示天气,bug多,默认3分钟熄屏
B. updateing 开发的 k3screenctrl程序,由lostlonger编译,不支持新版显示天气的屏幕单片机,资源占用少,方便自定义显示,lede固件采用的方案。

单片机升级是系统启动后自动完成的的,简单点说:

  • 从 V21.6.8.46_root 刷入梅林,可以显示天气
  • 从 V21.5.37.246_root 刷入梅林,k3screenctrl显示正常。

屏幕显示不正常说明你的屏幕单片机mcu和屏幕程序不匹配
(如果还没刷入merlin固件,可以在root固件下: SSH工具箱–>升级&更新 切换root固件版本)
(如果已经刷入merlin固件, 可以在merlin固件下: SSH工具箱–>其它–>屏幕mcu处理 切换屏幕mcu)

方案 A:

切换方案重启生效

默认就是a方案, 也可以手动切换, SSH输入: k3screen a

屏幕设置: k3screen set

长按屏幕home键三秒可以手动关闭屏幕,主屏默认显示的是vlan2的上传下载速度,工作模式不同显示的可能相反

只要切换到天气页就会更新一次天气(依赖斐讯的天气服务器), 强迫症可以自己添加计划任务 比如: cru a weather "0 */6 * * * /usr/sbin/weather update_weather"

第五屏的访客网络显示需要自己设置,官方程序只能显示一个
是否显示访客网络 1/0
nvram set vis_ssid_enable=1
是否显示访客网络密码 1/0
nvram set screen_guest_pwd_en=1
设置需要显示的SSID
nvram set vis_ssid=XXXXX
设置需要显示的密码
nvram set vis_ssid_pwd=XXXXX
nvram commit

方案 B:

SSH输入: k3screen b

切换方案重启生效

k3screenctrl 启动优先复制 /jffs/k3screenctrl 目录下的脚本,如果不存在则使用默认的 /usr/share/k3screenctrl 目录,启动时复制到 /tmp/k3screenctrl 临时目录,有需求的自行优化显示脚本。

显示脚本测试: k3screenctrl -t

k3screenctrl --help 可以查看说明


JFFS 存储

分区:mtd4 ,分区格式:jffs2 , 分区名:brcmnand ,挂载点: /jffs , 可用总大小80M

JFFS没有正常挂载的表现就是软件中心空白

如果非三星闪存也无法挂载可以尝试执行格式化命令: flash_eraseall -j /dev/mtd4; reboot

系统记录—>一般记录文件—>浏览器Ctrl+F查找 NAND 可以查看nand厂商

NAND标识

AMD恒忆镁光东芝海力士三星晶豪旺宏力积华邦未知
AMDNumonyxMicronToshibaHynixSamsungEsmtMacronix , MXICZentel/EsmtWinbondUnknown

USB JFFS :

三星nand的路由暂时无法正常挂载jffs存储分区,如果要安装插件需要插个有 ext3/ext4 分区格式的U盘充当jffs使用,不用格式化整个U盘,划分出一部分即可。windows可以用 DiskGenius 等工具无损划分,linux可以用 fdisk 和 mkfs.ext4

格式化完成后插入K3,SSH执行一次命令开启: usbjffs (以后开机会自动挂载,不需要其它操作)

缺点:经常读写U盘,无法休眠,U盘拔掉插件会出错
优点:文件会即时保存,不怕重启或者断电

分区Tips:
建议用 DiskGenius 划分一个分区,格式化为 Ext4 格式,大小80M以上 (如果也要存放RAM JFFS的文件需256M以上)
优先选取jffs卷标的分区
如果无卷标则首次按照系统挂载顺序选取第一个Ext3/4格式的分区,然后会在分区根目录自动创建一个.k3_usb_jffs分区标识文件,以后就会选取有这个标识文件的分区,如果有多个Ext3/4格式的分区可以自行移动标识文件到想要使用的分区,相当于设置了jffs选取的分区


RAM JFFS :

开启命令: ramjffs (以后开机会自动挂载,不需要其它操作)

文件位置:/var/tmp/.k3_jffs.ext4 ,80M大小ext4格式的单文件,启用以后覆盖挂载/jffs目录, /jffs目录读写变成了读写这个ext4文件,安装的插件都保存在这个文件里面,/tmp临时目录是在内存中保存的,重启就会丢失

保存命令: ramjffs save 或者缩写: ramjffs s

执行以后会复制 .k3_jffs.ext4 到U盘根目录,上一次的文件备份为 .k3_jffs.ext4.bak

比如:启用以后会自动创建 .k3_jffs.ext4 文件,里面默认没有插件,然后安装了koolproxy,然后执行了保存指令,这时如果重启或断电了开机就会恢复至已经安装了koolproxy的状态。
如果又安装了一个aria2,忘记保存,重启或断电了下次开机还是会恢复至上次保存的时候安装了koolproxy的状态,aria2还得重新安装。

缺点:需要手动执行保存,重启或断电 插件就会恢复至上传保存时的状态,可用内存减少了。
优点:内存读写块,不伤U盘,分区格式随便,挂载以后拔掉U盘也没事,如果不备份不用U盘也可以
(也可以用别人分享的已经装好插件的ext4文件复制到自己的U盘使用)

分区Tips:
系统能正常挂载的分区格式均支持,大小160M以上
首次按照系统挂载顺序选取第一个分区,然后会在分区根目录自动创建一个.k3_ram_jffs分区标识文件,以后就会从有这个标识文件的分区恢复或备份,如果有多个分区可以自行移动标识文件和ext4文件到想要使用的分区,相当于设置了读取存放ext4文件的分区


usbjffs、ramjffs二选一

可以利用局域网 Samba 或 NFS 服务器保存ramjffs模式的ext4文件实现免插U盘
示例: 挂载 192.168.50.2 机器的sda1 samba共享目录到路由nas目录

nvram set script_premount='if [ ! -f /var/tmp/nas_mount ]; then
  mkdir -p /tmp/mnt/nas
  mount -t cifs -o username=guest,password=guest,nounix,noserverino //192.168.50.2/sda1 /tmp/mnt/nas && touch /var/tmp/nas_mount
fi'

保存: nvram set script_pre_mount=1 && nvram commit
在sda1目录新建空白标识文件 .k3_ram_jffs >>> 执行ramjffs >>> 安装插件 >>> 保存ext4 …

如果是NFS服务器,挂载部分换成 mount -t nfs -o nolock 192.168.50.2:/xxx/xxx /tmp/mnt/nas


其它

无线功率:
运行wl1程序查看限制最大功率,不同信道下的限制最大功率不相同
wl1 -i eth1 txpwr_target_max
wl1 -i eth2 txpwr_target_max

2G信道12-1011
功率dBm21.52721.5
5G信道36-4852-566064100104108-136140144149-165
功率dBm17232118192123202326

2G选择 2–10
5G选择 149/153/157/161/165

手动调节功率命令和官方固件一样

硬盘休眠:
Tools —> Other Settings —> Disk spindown idle time (单位秒,最小300,Exclude following drives 是选择不休眠的硬盘,不要勾选)

USB3.0:
网络地图 —> 点击U盘图标 —> 降低 USB 3.0 干扰(关闭以后SAMBA速度恢复但会干扰2.4G WIFI)

软件中心:
未安装插件列表需要从koolshare的服务器获取, 如遇服务器故障或维护就会不显示, 安装插件可用的方法:

  • 软件中心 —> 未安装 —> 点击安装
  • SSH工具箱 —> 安装插件
  • 软件中心 —> 离线安装 —> 上传安装

双线路:
网口示意:
| LAN1 | LAN2 |
| WAN | LAN3 |

  • 两条宽带 比如电信+联通,故障转移或叠加:
    外部网络 —> 双线路 —> 开启 —> 第二WAN选LAN3,选一种线路模式 —> 保存重启 —> 外部网络(WAN) —> 互联网连接 —> WAN 类型 分别设置两个WAN的联机类型

  • 单条宽带 双播叠加:
    外部网络 —> 双线路 —> 开启 —> 第二WAN选LAN3,模式负载均衡,填写比重 —> 保存重启 —> 外部网络(WAN) —> 互联网连接 —> WAN 类型 分别设置两个WAN的联机类型 —> 内部网络(LAN) —> IPTV —> IPTV STB 端口 选择 LAN1或LAN2 —> 用跳线把 选择的LAN1或LAN2口和LAN3短接 —> 保存重启

  • 单条宽带 双播叠加(不设置IPTV):
    同上 设置双线路 —> 取消IPTV设置和跳线 —> 参考修改运行 这个脚本

Other:
去广告、上网类的插件 和 QOS、家长控制等冲突, 只能二选一
如果遇到了一些莫名奇妙的问题, 不要怨天尤人, 执行双清(JFFS+NVRAM):

  • SSH工具箱 —> 其他 —> 清空JFFS
  • 登陆路由 —> 系统管理 —> 恢复原厂默认值 (或启动后长按复位键)

刷机还原、恢复出厂设置、进入CFE 等其它常识性问题参考 root固件说明官方Wiki自助交流

0%