本教程通过创建自定义脚本和 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 通且上述配置正确,说明网络修复成功!

小结

本教程结构清晰,采用“创建脚本 -> 配置服务 -> 激活测试”的三步流程,对于不熟悉 Linux 系统管理的用户来说,跟随操作较为直观,能够降低试错成本。

技术细节处理得当:脚本没有简单粗暴地设置延时,而是加入了循环检测机制,等待 usb0 网卡出现。这种做法比固定 sleep 更优雅,既保证服务执行时网卡已就绪,又避免不必要的等待时间,体现了对系统启动流程的理解。

验证环节完整:检查 IP、路由表和 Ping 测试能让使用者立即确认修复是否生效,增强教程的可信度。整体而言,这是一份规范、高效且考虑周全的技术指南,对于解决小米 6 刷入 Armbian 后的 USB 联网问题很有帮助。

— 感谢阅读 —

一起交流

分享你的思考,让讨论更进一步。