斐讯路由器刷(机)固件 常见问题解答

2019-07-3111:50:42 评论 126

整理了一些常见问题(不看白不看):

Q:SSH基本命令不理解、不会、在哪里运行?

A:不会?有两个选择:选择①:可以关闭此网页,没必要为难自己。
选择②:可以在 论坛 或 百度搜索 linux 或者openwrt 相关教程,只要愿意学没有学不会的,自己懒就不要拿小白这个词当挡箭牌了。
一些命令大都是命令+参数的形式,大多数命令可以用命令+–help显示相关用法,或者 https://www.baidu.com/ 搜索linux下的用法,看不懂?https://www.baidu.com/s?wd=翻译
基本操作也不会?https://www.baidu.com/s?wd=linux+关键词
大部分命令是要在 电脑或手机使用ssh软件登陆路由以后在终端执行的。

Q:SSH用户名、密码

A:SSH用户名是admin,密码是你的网页管理密码。(网页管理密码和SSH密码是分开保存的,如果你开机后改过网页密码(比如执行恢复出厂设置相当于改成预置的admin),ssh密码不会立即同步,还是上一次的,重启才会同步成网页的管理密码),如果你不记得你的密码了就长按复位键恢复出厂设置,如果用WinSCP登陆协议要选择SCP。

Q:有线怎么样?无线怎么样?稳定性怎么样?XXX怎么样?

A:这些是无法二次修改、优化或负优化的,原版什么样这个也什么样,原汁原味的官方固件,没有修改写入任何nvram参数,如果你不用SSH,效果是等同于官方的!(有些官方固件的问题请等待官方固件版本升级来解决,请不要把黑锅甩给我)。(还有不要一有问题就把锅甩给固件,固件出厂有严格的测试流程,不会专门针对为难你一个人。)

Q:怎么进入CFE?

A:见刷入方法2,机器通电初始化设备后CFE会根据预设的时间等待几秒,这时候如果按下了复位键,CFE检测到就会中断暂停引导系统,如果没有按下按键就会正常引导启动系统,CFE的IP读取当前的NVRAM值,是动态的,如果官方固件修改过IP或者刷了梅林固件,IP也随之更改,如果不记得了IP也可以使用 ASUS Device Discovery 来查找IP 。

Q:怎么恢复出厂设置?重置nvram?

A:有问题,捅复位
方法1:进入CFE网页,点击 Restore NVRAM 重置NVRAM (lede固件没有使用nvram,不适用)
方法2:系统完全启动以后(通电5分钟以后)长按复位键10秒进行复位(个别梅林固件没有适配不行) (系统启动后会运行按钮检查程序,检测到长按按键后就触发执行重置操作,没启动完你就按是没用的)(lede固件有时候长按无效,断电重启重试几次就可以了)

Q:怎么刷回原版?

A:这个固件基本等于原版固件,用上面说的CFE web方式,或者 nvram把版本号改小然后自动升级,或者SSH工具箱 刷机&还原 恢复原厂 。

Q:手动升级或者CFE页面无法刷入官方固件?

A:系统dev_info分区丢失 或者 dg_ver版本太高,可以自行恢复备份 或者到 SSH工具箱–→系统&其它–→其它–→恢复降级 dev_info 。

Q:怎么在此版本基础上 更新升级 或者 转刷LEDE?

A:看楼下,固件传到路由/tmp目录,然后dd命令刷 或者 用上面说的CFE web方式。(SSH工具箱已经集成,一键在线升级,一键转刷lede)

Q:已经是LEDE怎么刷这个?

A:见上面刷机方法1后半部分,直接lede的web升级,或者看楼下,固件传到路由/tmp目录,然后用mtd命令刷 或者 用上面说的CFE web方式。

Q:怎么清理已经安装的软件?

A:通过opkg安装的文件保存在/root/opt目录,其它在/root目录,看谁不顺眼就删谁(认真的)。(可以看opkg的帮助 或者 opt install local重装entware可以删除全部通过opkg安装的源里的软件,/root目录的不会删除)或者SSH工具箱 清理&删除

Q:怎么防火墙开启额外端口(比如远程访问transmission、Aria2、SSH、FTP等)、自定义iptable规则?

A:看原贴,/etc/firewall.user里面加,比如SSH是22端口,手动运行或相关服务重启时或重启路由生效。(SSH工具箱系统&其它)

Q:怎么自定义定时任务,计划任务?

A:看原贴,定时wifi,定时发送微信信息等命令 按格式加到/etc/crontabs/admin里面。

Q:怎么查看、更改wifi发射功率?

A:看楼下。

或者参考官方命令(V21.6.8.46、V21.6.11.58 以上版本才支持) 数字 100 穿墙、75 正常、50 节能,可以自己修改相应数字大小来调节
2.4G

wl -i eth1 pwr_percent 75

5G

wl -i eth2 pwr_percent 100

Q:怎么修改hosts 和 自定义dnsmasq参数、配置、启动命令?

A:不经常改动的添加到/etc/hosts第四行以后(新版才有),动态的hosts可以利用dnsmasq的addn-hosts配置参数,dnsmasq见原贴楼下,重启dnsmasq才生效。

Q:安装软件有web界面吗?

A:没有(一些软件自身有单独的管理页面),软件和界面是独立的,你得自己开发相应的界面(SSH工具箱–→系统&其它–→WebUI 有简单的控制守护界面)。

Q:/opt空间不够,怎么利用USB?

A:建议到 SSH工具箱–→系统&其它–→扩展opt,也可以把比较大的目录比如/opt/bin、/opt/lib等目录改成链接到usb存储的软链接。(如果/root/opt目录整体搬迁到usb,/opt/etc这个目录不建议放到usb)

Q:一些软件能集成吗?

A:不能,大部分软件没有GUI没必要,在不破坏原版的功能和稳定前提下,除了必要的运行库以外没有值得集成的软件,软件还需要经常更新,而系统目录是只读的,会给更新、运行带来不便或错误、弊大于利。

Q:可写目录,存储位置、大小?

A:可写目录/root(实际挂载点是/tmp/media/nand),/opt实际也是链接到/root/opt目录下的,所有的文件都保存在这个目录下,分区mtd8,分区格式yaffs2, 分区名brcmnand,可用总大小80M。

Q:需要一些别的软件?

A:如果是单纯脚本可以自己移植,如果是二进制的:①可以先看看entware软件源 http://pkg.entware.net/binaries/armv7/Packages.html 查找看看人家提前编译了没有,有就直接opkg安装。
②也可以直接用同平台架构的如梅林固件的现成的ELF二进制文件,如缺少依赖lib可以运行前export LD_LIBRARY_PATH=/xxx/lib目录。
③还是没有就需要找个toolchain拿源码自己交叉编译了。

Q:如何修改VLAN?

A:用不到,没机会研究,不会弄,自己搜索相关教程。系统自带了vconfig程序,也可以从梅林固件复制robocfg程序(11KB)。

Q:系统分区只读,临时修改系统只读分区的文件或目录?

A:如果非要修改可以使用mount –bind覆盖的方式,可以是文件或目录,见原贴minidlna介绍。

Q:web界面或屏幕上的终端品牌图标是根据网卡OUI文件/etc/oui/vendor.json来识别的,怎么修改自定义?

A:屏幕程序默认会优先读取/root/oui/vendor.json这个文件,可以把/etc/oui/vendor.json复制到/root/oui/目录按照格式自己修改增加,也可以使用mount –bind覆盖的方法,修改后实时生效。

Q:需要在CFE里面清理NVRAM吗?

A:不用(除非你刷了一些华硕固件,而且确信它们的分区格式一样、分区偏移一样、写入到了官方NVRAM分区、且确信会对官方固件有影响再尝试)。官方固件和LEDE固件使用完全不同的配置分区,偏移和格式都不一样,官方使用NVRAM参数保存配置(在CFE的后面),LEDE使用jffs2分区的文件保存(在固件的后面),它们之间互不影响(所以刷完LEDE绕回来原来的设置还在),强迫症可以到:官方固件—-功能设置—-备份恢复—-恢复出厂设置(实际上也是格式化nvram分区)(LEDE固件界面下的恢复和官方固件没有关系)。

Q:怎么不能telnet连接?

A:删除了utelnetd(telnet服务端,官方默认也是关闭的),替换成更强大、更安全的SSH,只有路由器上运行相应的telnet&SSH服务端以后,才能在客户端上使用telnet或者ssh连接上路由。如果想用telnet可以运行busybox telnetd
telnet服务端原版固件下默认都是关闭的,原版固件手动开启telnet方式,或工具自动方式实质都是修改的mtd4的7和8字节,原版固件开机会运行telnet_startupd程序,这个程序会检测这两个字节,如果是1070就会启动utelnetd telnet服务端,默认ff是不会启动的,如果是1070启动服务端以后就能用telnet客户端连接路由,然而新版官方固件已经更改这个检测机制,就算是1070也不会启动utelnetd的。开启telnet或者ssh以后最终目的是为了在终端执行命令或刷写固件,这个root固件的telnet_startup和utelnetd已经都删除替换成了功能更强大SSH了,telnet和ssh执行命令的效果是一样的。

Q:修改了一些脚本、配置文件后导致运行出错?

A:文件换行符号不同,Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n。可以使用Notepad++、EmEditor、UltraEdit等文本编辑软件转换换行编码为Linux的,也可以使用自带的dos2unix命令转换。

Q:网线不插WAN口插LAN口用,K3想联网?当AP用?

A:比如 上级路由A IP:192.168.1.1
设置K3:
功能设置—>LAN设置 设置IP 192.168.1.2
功能设置—>上网设置—>上网方式(静态地址)
IP 192.168.3.11 网关 192.168.3.1(WAN、LAN限制不能同网段)
首选DNS 填上级路由A IP 192.168.1.1
/opt/started_script.sh增加一条

route add default gw 192.168.1.1

重启
按上面的设置完,接LAN口、空WAN口的K3自身可以联网,如果想使用K3的去广告服务: 连接K3 LAN的设备PC手动设置IP 如:192.168.1.3,DNS和网关都设置成K3的IP:如192.168.1.2

Q:如何屏蔽固件升级提醒?

A:多种方法,升级固件、修改系统文件、简单的办法就是修改nvram保存的固件版本号,大于或等于官方最新的版本号就可以
/opt/started_script.sh增加一条

nvram set fw_version=V22.6.8.46 && nvram commit

Q:刷机需要备份哪些分区?怎么备份?

A:分区这个概念是对于某一个固件而言,名字固件随便起,怎么划分是固件编译时配置文件说了算,不同固件不一样,不同固件只能用flash的偏移来说,比如官方固件定义的dev_info分区偏移是0x380000-0x3a0000,在一些没有适配的华硕固件下这个偏移被定义成了固件分区,那么刷完华硕后这部分数据就被覆盖破坏了。
对于K3官方固件:
mtd0 boot
cfe引导分区,建议备份,还包含了部分nvram参数和MAC等信息,不要刷入别人的,也不要随意刷写这个分区。
mtd1 nvram
设置分区,不用备份,保存了路由的所有设置信息,恢复出厂时会格式化然后从cfe和当前固件复制默认参数。
mtd2 nvram_back
从名字看像是nvram的备份,实际固件没有使用,全部空白,不用备份。
mtd3 res_info
没有使用,全部空白,不用备份。
mtd4 pro_info
只有6字节数据,00904C17F234,所有机器都一样,可选备份,就算没备份把这6字节复制过去就恢复了。
mtd5 dev_info
176字节数据,好像是加密的固件的版本一些信息,刷写官方固件版本号发生变化时候这里的数据就变化,可选备份。
mtd6 linux
整个固件分区,平常刷写官方固件或者LEDE都是刷到这里,官方提供固件下载,只要cfe正常随便刷,不用备份。
mtd7 rootfs
动态的,包含在linux分区,mtd6减去当前固件内核部分,是固件的后半部分,而固件是一个整体,当然不用备份。
mtd8 brcmnand
存储分区,日志文件、自己安装的软件保存再这里,固件版本信息变化时系统会格式化,不用备份,也不要恢复。

备份方法:
刷完此固件putty登陆路由:

cd /tmp
cat /dev/mtd0 > boot.bin
cat /dev/mtd4 > pro_info.bin
cat /dev/mtd5 > dev_info.bin

然后用WinSCP把三个文件从路由/tmp目录复制回电脑。(SSH工具箱已经集成)

Q:设置或存储分区有问题 导致系统错误 或者连ssh也进不去了?

A:有一个后备计划,找一个u盘 根目录建立一个没有扩展名的文件 k3_safe_mode ,插入k3重启动开机以后会用临时目录覆盖挂载一次/root目录(类似于安全模式,所有启动项&设置临时恢复至默认),确保可以启动ssh,ssh登陆后umount -l /root 卸载挂载后就可以操作真实的/root目录了。

avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: