起因
海鲜市场入手了一块食堂刷卡机,拆下核心板研究了下,是SW799.使用的是瑞微芯的RK3399.已经有大佬针对这个RK3399的核心板重新开发制作了底板 (https://gitee.com/opengisbook/Fine3399-Official),可以更好的使RK3399发挥其剩余价值。
本着少投入,多折腾的原则,没有买底板,直接在使用刷卡机的底板,刷了O大提供的最新固件https://github.com/ophub/amlogic-s9xxx-armbian,RK3399是跑起来了,但是貌似网络无法使用,ping不通局域网网关。在O大的仓库issues中有大佬提到相同的问题,说是底板挂载了一个USB4G模块,由于这个模块引起的网络混乱。禁用4G模块就能直接使用网线,苦于自己菜鸟一只,不知道怎么禁用USB,研究了好久。
下面将禁用4G模块的方法记录下来,供自己之后参考也供有相同困惑的朋友参考~
一、临时禁用的方法
1.查看USB设备
1.使用lsusb 命令:
lsusb
这将列出所有连接的USB设备。例如:
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 1286:4e3c Marvell Semiconductor, Inc. Mobile Composite Device Bus
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
从这些设备中,Bus 002 Device 002: ID 1286:4e3c Marvell Semiconductor, Inc. Mobile Composite Device 看起来最有可能是4G网卡,因为它是一个移动复合设备。
2.查找USB路径
1.查找设备路径: 使用 dmesg 命令查找设备路径:
dmesg | grep '1286:4e3c'
可能是因为设备信息没有在 dmesg 输出中显示,或者设备路径不明确,这个命令并没有反馈。我使用了lsusb -t命令,查看设备树。
lsusb -t
也可以使用
sudo udevadm info --query=all --name=/dev/bus/usb/002/002
sudo udevadm info --query=path --name=/dev/bus/usb/002/002
查询设备路径,通过命令查询到我的SW799将4G模块挂载在这个位置:
/devices/platform/fe3c0000.usb/usb2/2-1
3.禁用USB设备
禁用USB设备
找到设备路径后,可以使用以下命令禁用设备。例如,如果设备路径是 2-1:
echo '2-1' | sudo tee /sys/bus/usb/drivers/usb/unbind
4.重新启用设备
如果你需要重新启用设备,可以使用以下命令:
echo '2-1' | sudo tee /sys/bus/usb/drivers/usb/bind
二、永久禁用的方法
方法一:通过 udev 规则禁用USB网卡
a.查找设备信息: 使用 lsusb 命令找到USB网卡的厂商ID和产品ID。例如:
--> lsusb
<-- Bus 002 Device 002: ID 1286:4e3c Marvell Semiconductor, Inc. Mobile Composite Device
b.创建 udev 规则文件: 创建一个新的 udev 规则文件,例如 /etc/udev/rules.d/99-disable-usb-net.rules:
sudo nano /etc/udev/rules.d/99-disable-usb-net.rules
c.添加规则以禁用特定的USB网卡: 根据设备的厂商ID和产品ID添加规则。例如,假设设备的厂商ID是 1286,产品ID是 4e3c:
ACTION=="add", ATTR{idVendor}=="1286", ATTR{idProduct}=="4e3c", TEST=="authorized", ATTR{authorized}="0"
d.重新加载 udev 规则:
sudo udevadm control --reload-rules
sudo udevadm trigger
方法二:通过黑名单禁用USB网卡驱动
a.查找USB网卡使用的驱动程序: 使用 lsusb -t 或 dmesg 命令查找USB网卡使用的驱动程序。例如:
lsusb -t 或 dmesg | grep '1286:4e3c'
b.将驱动程序添加到黑名单: 编辑黑名单配置文件,例如 /etc/modprobe.d/blacklist.conf:
sudo nano /etc/modprobe.d/blacklist.conf
c.添加以下行以黑名单驱动程序: 假设驱动程序名称是 usbnet,你可以添加以下行:
blacklist usbnet
d.更新initramfs(如果需要):
sudo update-initramfs -u
e.重启系统:
sudo reboot
方法三:通过系统启动脚本禁用USB网卡
a.创建或编辑系统启动脚本: 编辑 /etc/rc.local 文件(如果文件不存在,可以创建):
sudo nano /etc/rc.local
b.添加命令以禁用USB网卡: 假设设备路径是 2-1,可以添加以下行:
echo '2-1' > /sys/bus/usb/drivers/usb/unbind
c.确保脚本以 exit 0 结束:
#!/bin/sh -e
exit 0
d.设置脚本为可执行:
sudo chmod +x /etc/rc.local
e.重启系统:
sudo reboot
结束
经过这些操作后,RK3399就可以通过网线联网了。可以换源后更新源,安装工具
mv /etc/apt/sources.list /etc/apt/sources.list.bac
nano /etc/apt/sources.list
到https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/复制那一大串到里边
ctrl+o回车ctrl+x
sed -i.bak 's#http://apt.armbian.com#https://mirrors.tuna.tsinghua.edu.cn/armbian#g' /etc/apt/sources.list.d/armbian.list
apt update
标签:USB,禁用,sudo,网卡,ID,usb
From: https://blog.csdn.net/u011852186/article/details/143684346