0

我正在 Linux 嵌入式开发中使用 SBC 6845(Atmel 处理器)。我的内核版本是 2.6.30。

该板带有 2 个 USB 端口(均为 A 型),一个可配置为主机,另一个可配置为 USB 设备。

我已经在内核中配置了这些 USB 模块。我已经用包括 USB 模块在内的必要模块烧录了内核和文件系统。我已经通过 /init.d/rcS 文件加载了这些 USB 模块。

当板子打开并且我在控制台上输入 lsmod 时,它会显示这些模块已加载。当我将板连接到计算机时,未检测到 USB(设备功能)。
当我将 pendrive 连接到板时,未检测到它(主机功能)。

/init.d/rcS 脚本

#install USB Gadgate mass_storage
modprobe g_file_storage file=/home/mass_storage/backed_storage_file stall=n
losetup -o 4096 /dev/loop0 /home/mass_storage/backed_storage_file

#install USB ehci-hcd
modprobe ehci-hcd

rcS运行日志

g_file_storage gadget: File-backed Storage Gadget, version: 20 November 2008
g_file_storage gadget: Number of LUNs=1
g_file_storage gadget-lun0: ro=0, file: /home/mass_storage/backed_storage_file
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
atmel-ehci atmel-ehci: Atmel EHCI UHP HS
atmel-ehci atmel-ehci: new USB bus registered, assigned bus number 1
atmel-ehci atmel-ehci: irq 22, io mem 0x00800000
atmel-ehci atmel-ehci: USB 2.0 started, EHCI 1.00
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: Atmel EHCI UHP HS
usb usb1: Manufacturer: Linux 2.6.30 ehci_hcd
usb usb1: SerialNumber: atmel-ehci
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected

lsmod 输出

Module                  Size  Used by    Not tainted
ehci_hcd               30132  0
g_file_storage         24260  0

欢迎任何帮助!

4

2 回答 2

2

您的驱动程序似乎安装得很好。我没有直接的答案,但我经常使用软硬件集成。这是我会做的以获得更多线索。这种处理器通常具有多用途的引脚。有时,在评估板上,默认情况下它们没有按照我们想要的方式进行配置。您可以查看文档,也可以使用示波器探测 USB 的 D+ 和 D-。他们在空闲时还好吗?当您在主机端口上连接设备时会发生什么?前几件事将由 USB 控制器完成,并且在配置控制器后几乎不需要与软件交互。如果您看到协商的开始(一堆 0 和 1),那么您就知道您的硬件配置正确,并且您的基本驱动程序已安装并正常工作。

于 2013-04-18T14:14:36.053 回答
0

您缺少上层驱动程序。EHCI 只是一个接口驱动程序,您需要在它之上的设备驱动程序。Board<-->PC 通信通常通过 USB 上的串口完成,因此您需要 USB 串口驱动程序。在内核配置中,转到设备驱动程序 -> USB 支持 -> USB 串行转换器支持,然后根据您的板/电缆上的芯片选择驱动程序。这是当板连接到 Ubuntu 笔记本电脑时看到的示例dmesg转储:

[3469.923779] USB 2-1.2:使用 ehci_hcd 的新全速 USB 设备编号 5

[3470.019145]cp210x 2-1.2:1.0:检测到cp210x转换器

[3470.091614]usb 2-1.2:使用 ehci_hcd 重置全速 USB 设备号 5

[3470.184995] USB 2-1.2:cp210x 转换器现在连接到 ttyUSB0

我相信 pendrive 也有类似的情况——缺少上层驱动程序。

于 2013-06-03T06:17:03.580 回答