一、故障表现
目前的故障表现为通过power off命令关机后断开电源,较长时间(三天)后再次插电启动时网口不上线,外在表现为以太网口等不亮。
如果此时通过USB网卡接入网络使用reboot命令重启则网口恢复工作,如期间未曾断电,则此后网口可正常工作。
原理未知,暂时通过外接网卡手动重启解决。网口硬件应无故障,因为通电不开机时网口灯常亮。
二、初步猜测
初步估计是时间过久后某些电池或者电容失效,因为短暂断电后立即插入电源重启网口可正常工作。
也可能是某些软件问题,在指示灯由红变绿前网卡灯闪烁,证明硬件未损坏,变绿进入内核后网卡灯熄灭。
三、修复尝试
1、第一次尝试
官方提供的Debian镜像使用Network manager管理网络,配置存储在/etc/network路径中。
预置的/etc/network/interfaces文件中内容如下:
source /etc/network/interfaces.d/*
# Network is managed by Network manager
auto lo
iface lo inet loopback
可见缺少网络相关配置,在/etc/network/interfaces.d/eth0文件中写入如下内容:
#激活网口
allow-hotplug eth0
#配置DHCP协议
iface eth0 inet dhcp
具体源可见Debian 网络接口设置↗。
此时长时间断电(超过十分钟)后网口无法工作,使用开发板自带按钮关机并重启后网口恢复正常工作。
故障原理目前仍然未知,可以确认初步修复。
2、第二次尝试
长时间断电后(8天)故障再次出现,重复第一种办法后未能正常启动网口。
接入USB网卡后进入,自带eth0处于下线状态,使用netplan重新配置网络,发现eth0口出现169开头ip,推测为DHCP未正常工作。
结合期间路由器配置亦发生变化,网络项增加DHCP网关选项,填入网关地址。
短暂断电后重新启动后网口工作,暂时确认修复。
3、第三次尝试
问题原因目前未知,换装Armbian_23.11.1_Orangepi3-lts_jammy_current_6.1.63.img.xz,目前暂时一切正常。
四、第四次尝试
故障在更换至Armbian后得到了暂时解决,但在禁用sprdwl_ng和sprdwl_tty模块后出现了同样的问题,WIFI模块的禁用影响了以太网口。另外意外发现物理启动按键会无视模块配置启动WIFI相关。
最终的解决办法是在/etc/rc.local中写入如下内容。
/usr/bin/sleep 30
/usr/sbin/modprobe -r sprdwl_ng
睡眠30秒是因为立即禁用同样会导致以太网口失效,可能因为脚本是在引导期间执行的,导致出现了类似禁用模块的效果。
断电测试后一切正常,暂时解决问题。
另外禁用sprdwl_tty会导致同样问题。
五、第五次尝试
在第四次的基础上,进行模块拆装重新安装后,依然出现了网口未启动状况,物理重启后解决。
怀疑是硬件问题。
六、第六次尝试
刷入官方提供的固件Orangepi3-lts_3.0.8_ubuntu_jammy_server_linux5.16.17后,依然出现了网口无法点亮的问题,目前原理未知。在刷入Armbian_23.11.1_Orangepi3-lts_bookworm_current_6.1.63后,问题暂时消失,有待继续观察。
七、结论
应该是硬件故障,解决办法是设置WIFI保持网络可用性,启动网口必须在通电启动一次后手动重启。