我最近为我的笔记本电脑买了一个usb以太网适配器。当我把它连接到Windows 10时,它把设备当作一个闪存。在这个“闪存驱动器”上是一个可执行的.exe文件。在Windows上运行,一切正常。然而,在Linux上(在我的例子中是Manjaro),它只将设备看作是一个闪存。网络连接不起作用。
inxi -nxxx显示:网络:设备-1.设备-2: ICS Advent USB2.0 10/100 M以太网适配器类型: USB驱动程序: USB -存储总线-ID: 2-4:3芯片-ID 0fe6:9702类-ID: 0806
我可以手动强制它使用正确的驱动程序吗?
提前谢谢。
发布于 2022-10-23 22:13:49
这是一种所谓的摩丝巫师装置。(因为它需要一个驱动程序来将它从一种USB设备切换到另一种USB设备)。
检查是否安装了usb_modeswitch包。如果你有,但它仍然不工作,嗯,坏运气™️,你可能只是有一个设备,其中至少usb_modeswitch没有支持。而且很可能也没有Linux驱动程序。
但是,如果来自同一供应商的其他设备都有支持,那么添加modeswitch支持通常也不是那么糟糕。可能不是不可能的!
发布于 2022-10-24 12:11:13
USB供应商ID表示Kontron/ICS Advent/CoreChips产品。
CoreChips有一个SR9700网络适配器芯片,但是产品id为0x9702,而不是0x9700,说明这可能是该芯片的另一个版本。也可能是用于指示设备处于"USB存储“模式的产品ID。
这个Chromium错误报告看起来非常类似于您的情况:https://bugs.chromium.org/p/chromium/issues/detail?id=447045
尝试以root用户的身份运行此命令:
usb_modeswitch -v 0fe6 -p 9702 -K
这告诉usb_modeswitch
向"USB存储设备“发送两个SCSI命令序列:第一个命令是”允许媒体删除“,第二个命令是”弹出媒体“。这就是一些模式转换的USB设备所使用的指示,说明不再需要Windows驱动程序安装工具包,并且可以显示设备的真正功能。
完成之后,再试一次inxi -nxxx
命令。class-ID: 0806
部件是否已更改为其他东西,可能是class-ID: 0206
(意为以太网网络设备)?其他信息有变化吗?
下一个问题可能是sr9700
驱动程序模块无法识别产品ID 9702,因为它只期望产品ID 9700。当设备切换到实际的网络接口模式时,它可能会也可能不会更改其ID。如果产品ID更改为9700,则只需要usb_modeswitch部件。
但是,如果产品ID在模式解压缩器之后仍然保持9702,则可以尝试以下操作:
modprobe sr9700
echo "0fe6 9702" > /sys/bus/usb/drivers/sr9700/new_id
如果具有产品ID 9702的芯片与具有产品ID 9700的芯片相同工作,则这可能有效。但如果存在差异,司机很可能无法正确工作。您可能会看到dmesg
输出中的错误。
但是,它指的是早期的dm9601
驱动程序;您可能对sr9700
驱动程序有更好的运气。
如果这样做有效,那么要使这个配置持久,您必须做两件事:
usb_modeswitch
与适当的选项时,出现一个"USB存储“(预模式开关)设备的供应商ID 0fe6和产品ID 9702。这可以通过一个类似于/lib/udev/rules.d/40-usb_modeswitch.rules
(或发行版中的类似文件)的udev规则来实现,再加上一个名为/etc/usb_modeswitch.d/0fe6:9702
的配置文件,其内容如下: # ICS Advent/CoreChips SR9700 v2 USB ethernet NIC
StandardEject=1
根据触发模式开关时设备的USB标识符的确切情况,您可能需要在这里添加一些选项,以允许usb_modeswitch
验证切换是否成功。有关配置文件参数的更多信息,请参见usb_modeswitch
。
sr9700
网络驱动程序,并将新的供应商/产品ID对提供给它,要么在系统启动时先发制人,要么在出现后模式切换设备时出现。这可以通过具有以下内容的/etc/modprobe.d/usb-nic-sr9702.conf
文件来实现: alias usb:v0FE6p9702d*dc*dsc*dp*ic*isc*ip*in* sr9700
install sr9700 /sbin/modprobe --ignore-install sr9700; /bin/echo "0fe6 9702" > /sys/bus/usb/drivers/sr9700/new_id
https://unix.stackexchange.com/questions/722131
复制相似问题