小米 6 (Sagit) 网络修复指南 (Systemd 优化版)
本教程旨在通过创建自定义脚本和 systemd 服务,解决小米 6 刷入 Armbian 后 USB 网卡 (usb0) 的网络配置问题。该版本增加了对网卡出现的循环检测,并优化了启动顺序。
第一步:创建修复脚本
在终端中执行以下命令创建脚本文件:
sudo nano /usr/local/bin/fix-net.sh
粘贴以下内容(此版本针对 systemd 做了优化,增加了对网卡出现的循环检测):
#!/bin/bash
# 最多等待 15 秒直到 usb0 出现
for i in {1..15}; do
if ip link show usb0 >/dev/null 2>&1; then
echo "usb0 found!"
break
fi
sleep 1
done
# 强制设置 IP
ip addr add 172.16.42.1/24 dev usb0 2>/dev/null
# 强制启用网卡
ip link set usb0 up
# 强制设置路由指向 Armbian (网关)
ip route add default via 172.16.42.2 2>/dev/null
# 强制写入 DNS
echo "nameserver 1.1.1.1" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
保存并退出 (Ctrl+O, Enter, Ctrl+X),然后赋予执行权限:
sudo chmod +x /usr/local/bin/fix-net.sh
第二步:创建 systemd 服务文件
我们需要告诉系统:开机时请帮我运行这个脚本。
创建服务文件:
sudo nano /etc/systemd/system/fix-net.service
粘贴以下配置:
[Unit]
Description=Xiaomi Sagit Network Fix
# 确保在基础网络服务之后运行
After=network.target NetworkManager.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/fix-net.sh
# 即使脚本运行完,也认为服务是激活的
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
保存并退出。
第三步:激活并测试
- 重新加载 systemd 配置
使新创建的服务文件生效:
sudo systemctl daemon-reload
- 设置开机自启
确保每次重启后自动运行修复脚本:
sudo systemctl enable fix-net.service
- 立即手动启动测试
无需重启,立即运行脚本进行测试:
sudo systemctl start fix-net.service
- 检查是否生效
执行以下命令验证网络配置:
检查 IP 地址 (应该看到 172.16.42.1):
ip addr show usb0
检查路由表 (应该看到 default via 172.16.42.2):
ip route
测试外网连通性:
ping -c 3 8.8.8.8
如果 ping 通且上述配置正确,说明网络修复成功!