我有一台使用在Linux下运行的Atmel处理器的设备。对于此设备,我想使用AT91SAM7处理器连接远程设备。这个远程设备被配置为通过USB进行伪串行,在Windows下这可以正常工作并显示为“AT91 USB到串行转换器(COM3)”。
在Linux下,设备出现在/ dev中,如下所示:
crw-rw---- 1 root root 253, 7 Aug 30 10:52 /dev/usbdev2.2_ep00
crw-rw---- 1 root root 253, 5 Aug 30 10:52 /dev/usbdev2.2_ep01
crw-rw---- 1 root root 253, 6 Aug 30 10:52 /dev/usbdev2.2_ep82
crw-rw---- 1 root root 253, 4 Aug 30 10:52 /dev/usbdev2.2_ep83
为了与设备通信,我该怎么办?一些驱动程序绑定到内核?或者是否存在可加载的驱动程序(.ko)?
答案 0 :(得分:0)
根据你所写的内容,带有AT91SAM7处理器的嵌入式主板已正确配置,因为当它连接到Windows主机时它可以工作。
如果它在linux下不起作用,可能是因为它无法识别vendorid:productid值。
在linux主机上检查lsusb
的输出:
ottavio@ottavio:~$ lsusb
Bus 004 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
ottavio@ottavio:~$
在这种情况下,我的计算机上有一个USB< - > RS232转换器。当你插上电路板时,你应该有一条与电路板相关的线路。
现在,根据您的系统,您可能需要使用usbserial
或ftdi_sio
。所以先尝试加载usbserial
modprobe usbserial vendor=0x067b product=0x2303
如果这不起作用,请尝试加载ftdi_sio
modprobe ftdi_sio vendor=0x067b product=0x2303
请注意,如果已加载模块,则需要rmmod
。最后,在我的例子中,vendrid是0x067b,产品是0x2303,你需要使用正确的值。