首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >usb以太网适配器不工作

usb以太网适配器不工作
EN

Unix & Linux用户
提问于 2022-10-23 19:02:05
回答 2查看 1.3K关注 0票数 0

我最近为我的笔记本电脑买了一个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

我可以手动强制它使用正确的驱动程序吗?

提前谢谢。

EN

回答 2

Unix & Linux用户

发布于 2022-10-23 22:13:49

这是一种所谓的摩丝巫师装置。(因为它需要一个驱动程序来将它从一种USB设备切换到另一种USB设备)。

检查是否安装了usb_modeswitch包。如果你有,但它仍然不工作,嗯,坏运气™️,你可能只是有一个设备,其中至少usb_modeswitch没有支持。而且很可能也没有Linux驱动程序。

但是,如果来自同一供应商的其他设备都有支持,那么添加modeswitch支持通常也不是那么糟糕。可能不是不可能的!

票数 0
EN

Unix & Linux用户

发布于 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用户的身份运行此命令:

代码语言:javascript
运行
复制
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,则可以尝试以下操作:

代码语言:javascript
运行
复制
modprobe sr9700
echo "0fe6 9702" > /sys/bus/usb/drivers/sr9700/new_id

如果具有产品ID 9702的芯片与具有产品ID 9700的芯片相同工作,则这可能有效。但如果存在差异,司机很可能无法正确工作。您可能会看到dmesg输出中的错误。

这一讨论表明这种方法可能行不通:https://www.phoronix.com/forums/forum/hardware/general-hardware/44256-usb-ethernet-adaptor-0fe6-9702-kontron-ics-advent?103621-USB-gt-Ethernet-adaptor-(0FE6-9702-Kontron-ICS-Advent)=

但是,它指的是早期的dm9601驱动程序;您可能对sr9700驱动程序有更好的运气。

如果这样做有效,那么要使这个配置持久,您必须做两件事:

  • 添加配置,以触发usb_modeswitch与适当的选项时,出现一个"USB存储“(预模式开关)设备的供应商ID 0fe6和产品ID 9702。这可以通过一个类似于/lib/udev/rules.d/40-usb_modeswitch.rules (或发行版中的类似文件)的udev规则来实现,再加上一个名为/etc/usb_modeswitch.d/0fe6:9702的配置文件,其内容如下:
代码语言:javascript
运行
复制
    # ICS Advent/CoreChips SR9700 v2 USB ethernet NIC
    StandardEject=1

根据触发模式开关时设备的USB标识符的确切情况,您可能需要在这里添加一些选项,以允许usb_modeswitch验证切换是否成功。有关配置文件参数的更多信息,请参见usb_modeswitch

  • 添加配置以加载sr9700网络驱动程序,并将新的供应商/产品ID对提供给它,要么在系统启动时先发制人,要么在出现后模式切换设备时出现。这可以通过具有以下内容的/etc/modprobe.d/usb-nic-sr9702.conf文件来实现:
代码语言:javascript
运行
复制
    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
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/722131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档