首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用hid输入的最小Linux内核选项

启用hid输入的最小Linux内核选项
EN

Stack Overflow用户
提问于 2020-10-20 13:02:05
回答 1查看 600关注 0票数 0

我需要使用自定义Linux (v5.8)处理HID设备(条形码读取器)。

我有一个模块化的内核,与其他USB外设(存储和串行已知工作)工作,但我似乎无法扫描这台设备。

将其插入桌面(Linux "Ulyana",如果重要的话),我将得到一个正常的枚举:

代码语言:javascript
复制
[525428.367216] usb 1-11: new full-speed USB device number 9 using xhci_hcd
[525428.517071] usb 1-11: New USB device found, idVendor=05e0, idProduct=1200, bcdDevice= 1.00
[525428.517077] usb 1-11: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[525428.517080] usb 1-11: Product: Symbol Bar Code Scanner
[525428.517083] usb 1-11: Manufacturer: Symbol Technologies, Inc, 2008
[525428.517086] usb 1-11: SerialNumber: S/N:0641F625A3A943949AF00BAB171ABFE2 Rev:PAACFS00-001-R023
[525428.519932] input: Symbol Technologies, Inc, 2008 Symbol Bar Code Scanner as /devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11:1.0/0003:05E0:1200.0005/input/input32
[525428.579736] hid-generic 0003:05E0:1200.0005: input,hidraw4: USB HID v1.10 Keyboard [Symbol Technologies, Inc, 2008 Symbol Bar Code Scanner] on usb-0000:00:14.0-11/input0

在我的目标上,我没有看到新外围设备的迹象;lsusb只显示根集线器,即使我手动地使用modprobe (我认为是这样)相关模块:

代码语言:javascript
复制
# lsusb
Bus 001 Device 001: ID 1d6b:0002
# lsmod
Module                  Size  Used by    Not tainted
usbhid                 23296  0 
usbmon                 19424  0 
mt7603e                38048  0 
mt76                   31648  1 mt7603e
mac80211              380000  2 mt7603e,mt76
sha256_generic          2240  0 
libsha256               8480  1 sha256_generic
ehci_platform           4704  0 
cfg80211              236736  3 mt7603e,mt76,mac80211
ehci_hcd               37936  1 ehci_platform
rfkill                  8544  1 cfg80211
usbcore               143456  4 usbhid,usbmon,ehci_platform,ehci_hcd
libarc4                  832  1 mac80211
mtk_eth                30208  0 
usb_common              2768  3 usbmon,ehci_platform,usbcore

我显然错过了什么,但我似乎无法理解什么。我该核对些什么?

注:请随时询问相关细节,我并没有把太多的东西放在这里只是为了避免混乱,但我充分准备提供所有的信息被认为有用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-03 18:29:57

结果表明,即使是连接到USB2 (EHCI)控制器,也需要执行低速外设。

实际上,MT7628有一个“次要”的人权高专办控制器,甚至没有在数据表中做广告。

这意味着,除了选择CONFIG_USB_OHCI_HCD=mCONFIG_USB_OHCI_HCD_PLATFORM=m之外,还需要以下修补程序:

代码语言:javascript
复制
diff --git a/arch/mips/boot/dts/ralink/mt7628a.dtsi b/arch/mips/boot/dts/ralink/mt7628a.dtsi
index bf6b6a459bd6..b4ac008fdfdf 100644
--- a/arch/mips/boot/dts/ralink/mt7628a.dtsi
+++ b/arch/mips/boot/dts/ralink/mt7628a.dtsi
@@ -323,6 +323,17 @@ ehci@101c0000 {
        interrupts = <18>;
    };
 
+   ohci@101c1000 {
+       compatible = "generic-ohci";
+       reg = <0x101c1000 0x1000>;
+
+       phys = <&usb_phy>;
+       phy-names = "usb";
+
+       interrupt-parent = <&intc>;
+       interrupts = <18>;
+   };
+
    ethernet: ethernet@10100000 {
        compatible = "ralink,rt5350-eth";
        reg = <0x10100000 0x10000>;

注地址101c1000在MT7628编程手册中没有提到,它与标准的(和记录在案的) EHCI控制器单元( 101c0000)“一个单元格之外”(0x1000)。

我认为类似的情况也适用于其他SoC,因为USB标准要求将低速设备“移交”给遗留的USB1控制器。

我希望这会给那些在同样的问题上绊倒的人留下很多麻烦。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64445738

复制
相关文章

相似问题

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