OpenWRT:无法连接到ubus

OpenWRT:无法连接到ubus

我有一台 WNDR3800,刷入了 OpenWRT 的主干版本,然后sysupgrade -r在同一台机器上从以前的工作备份中进行了备份。重启后一切正常(因为许多软件包未安装),但是当我尝试通过 SSH 连接到它时,它会报告:

Aiee, segfault! You should probably report this as a bug to the developer
Connection to 192.168.3.1 closed. 

之后我将其置于故障安全模式,通过连接telnet并尝试了几个命令:

root@(none):/# /etc/init.d/dropbear start
root@(none):/# mv: can't remove '/etc/dropbear/dropbear_dss_host_key': Read-only file system
mv: can't remove '/etc/dropbear/dropbear_rsa_host_key': Read-only file system
chown: /etc/dropbear: Read-only file system
chmod: /etc/dropbear: Read-only file system
Failed to connect to ubus

root@(none):/# mount_root
root@(none):/# /etc/init.d/dropbear start
Failed to connect to ubus
Failed to parse json data: unexpected end of data
interface lan has no physdev or physdev has no suitable ip
Failed to connect to ubus
root@(none):/# ifconfig
eth0      Link encap:Ethernet  HWaddr 46:94:FC:XX:XX:XX
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2059 errors:0 dropped:531 overruns:1 frame:0
          TX packets:188 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:371693 (362.9 KiB)  TX bytes:18693 (18.2 KiB)
          Interrupt:4

我也尝试过firstboot使用或不使用mount_root,两种情况下它都卡住了并且什么也不做。

由于 dropbear 拒绝启动,我无法配置任何内容。有什么方法可以恢复默认设置或刷新另一个版本的固件吗?

答案1

您可以尝试使用 TFTP 进行恢复的方法,如 WNDR3700 所述这里(它也适用于 WNDR3800)。如果这不起作用,您可以使用串行控制台作为最后的手段,直接与 U-Boot 引导加载程序对话并指示它使用 TFTP 加载固件映像。希望这能有所帮助。

不幸的是,最近的 OpenWRT 发行版似乎在很多方面都存在问题。它们更改太多东西的速度太快。实际上,我在寻找ubus最新的“稳定” 15.05 中该东西的 json 解析器的已知错误时发现了您的问题(在 OpenWRT 论坛/票务系统中找不到与该特定错误相关的任何内容),这会破坏防火墙启动/停止脚本和其他命令等一些琐碎的东西mount

至于我,我现在将回到 12.09,这是我的平台(Netgear WNDR3700、TP-Link WDR4300、PCEngines Alix)的最新真正稳定版本。作为 OpenWRT 的长期用户(10 年),我通常会先尝试修复错误,然后再恢复到旧版本,但由于缺乏新功能的文档,深入研究这个新的(在我看来)非常复杂的框架确实需要花费太多时间。

相关内容