Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 启用hid输入的最小Linux内核选项_Linux Kernel_Usb_Embedded Linux_Hid - Fatal编程技术网

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

Linux kernel 启用hid输入的最小Linux内核选项,linux-kernel,usb,embedded-linux,hid,Linux Kernel,Usb,Embedded Linux,Hid,我需要使用定制Linux(v5.8)处理HID设备(条形码阅读器) 我有一个模块化的内核,它与其他USB外围设备(存储设备和串行设备都可以正常工作)一样工作,但我似乎无法扫描这个设备 将其插入桌面(Linux Mint“Ulyana”,如果有必要的话),我会得到一个正常的枚举: [525428.367216] usb 1-11: new full-speed USB device number 9 using xhci_hcd [525428.517071] usb 1-11: New USB

我需要使用定制Linux(v5.8)处理HID设备(条形码阅读器)

我有一个模块化的内核,它与其他USB外围设备(存储设备和串行设备都可以正常工作)一样工作,但我似乎无法扫描这个设备

将其插入桌面(Linux Mint“Ulyana”,如果有必要的话),我会得到一个正常的枚举:

[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
(我认为是)相关模块:

# 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
我显然错过了什么,但我似乎无法理解什么。 我应该交叉核对什么


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

事实证明,即使低速外设连接到USB2(EHCI)控制器,也需要OHCI驱动程序来处理这些外设

实际上,MT7628有一个“辅助”OHCI控制器,甚至没有在数据表中公布

这意味着,除了选择
CONFIG\u USB\u OHCI\u HCD=m
CONFIG\u USB\u OHCI\u HCD\u PLATFORM=m
之外,还需要以下补丁:

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>;
diff--git a/arch/mips/boot/dts/ralink/mt7628a.dtsi b/arch/mips/boot/dts/ralink/mt7628a.dtsi
索引bf6b6a459bd6..B4AC008FDF 100644
---a/arch/mips/boot/dts/ralink/mt7628a.dtsi
+++b/arch/mips/boot/dts/ralink/mt7628a.dtsi
@@ -323,6 +323,17 @@ ehci@101c0000 {
中断=;
};
+   ohci@101c1000 {
+compatible=“通用ohci”;
+reg=;
+
+phys=;
+phy name=“usb”;
+
+中断父项=;
+中断=;
+   };
+
以太网:ethernet@10100000 {
compatible=“ralink,rt5350 eth”;
reg=;
注:MT7628编程手册中未提及地址101c1000,它距离标准(并记录)EHCI控制器单元(101c0000)有“一个单元距离”(0x1000)

我假设其他SOC也存在类似情况,因为USB标准要求将低速设备“移交”给传统的USB1控制器


我希望这会让那些遇到同样问题的人省去很多麻烦。

USB条形码扫描仪通常看起来像键盘,通常不会创建设备节点。@stark确认。此扫描仪工作在“键盘模拟模式”。我不清楚你想说什么;请你详细说明一下好吗?我看到桌面:“Bus 001 Device 009:ID 05e0:1200 Symbol Technologies条码扫描器”在目标机上时,我看不到任何东西,扫描器也不工作,甚至连启动的蜂鸣声都没有,好像根本没有通电。你确定你的目标机提供了足够的电源吗?@stark:是的。同样的硬件与一个古老的内核版本(3.18吨以上的供应商补丁)一起工作。我正在尝试迁移到一个现代版本(用于不相关的问题),这是“端口”剩下的最后一件事情之一。不幸的是,内核配置更改得太多,难以进行比较。您可以尝试插入其他版本,还是硬连线?