英特尔Edison + Ubilinux + USB转UART = USB设备未创建

时间:2017-12-06 15:55:53

标签: iot yocto intel-edison ubuntu-13.04

亲爱的社区成员,

我们正致力于开发在英特尔爱迪生内部运行的机器人自主控制系统,该系统在PixHawk自动驾驶模块中运行。该系统使用ROS(机器人操作系统),因此我们必须安装Ubilinux。我们的系统需要与通过串行通道发送数据的360度激光器(RPLIDAR-360)连接,因此我们试图通过USB-to-UART适配器(Silicon lab的CP2102)获取激光数据(PixHawk只有一个USB可用于数据传输。)

总之,激光器连接到USB2UART适配器,适配器连接到Edison的串口。

但是,我们遇到了某种驱动程序问题。跟踪'dmesg'时检测到设备(idVendor = 10c4,idProduct = ea60):

[  917.812195] usb usb2: Product: xHCI Host Controller
[  917.812214] usb usb2: Manufacturer: Linux 3.10.17-yocto-standard-r2 dwc-xhci
[  917.812232] usb usb2: SerialNumber: dwc3-host.2
[  917.812858] xHCI xhci_add_endpoint called for root hub
[  917.812878] xHCI xhci_check_bandwidth called for root hub
[  917.813141] hub 2-0:1.0: USB hub found
[  917.813185] hub 2-0:1.0: 1 port detected
[  918.128982] usb 1-1: new full-speed USB device number 2 using dwc3-host
[  918.151786] usb 1-1: New USB device found, idVendor=10c4, idProduct=ea60
[  918.151818] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  918.151839] usb 1-1: Product: CP2102 USB to UART Bridge Controller
[  918.151857] usb 1-1: Manufacturer: Silicon Labs
[  918.151875] usb 1-1: SerialNumber: 0001

具有以下细节:

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=10c4 ProdID=ea60 Rev= 1.00
S:  Manufacturer=Silicon Labs
S:  Product=CP2102 USB to UART Bridge Controller
S:  SerialNumber=0001
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=(none)
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms

但是没有创建/ dev / ttyUSBX设备,并且没有关于缺少驱动程序或配置失败的错误消息。

我们正在使用Ubilinux 3,它使用'uname'命令报告以下内容:

 **  3.10.17-yocto-standard-r2

以下是已安装驱动程序的列表:

usb
/lib/modules/3.10.17-yocto-standard-r2/kernel/drivers/media/usb:
/lib/modules/3.10.17-yocto-standard-r2/kernel/drivers/media/usb/gspca:
/lib/modules/3.10.17-yocto-standard-r2/kernel/drivers/media/usb/uvc:
/lib/modules/3.10.17-yocto-standard-r2/kernel/drivers/usb:
/lib/modules/3.10.17-yocto-standard-r2/kernel/drivers/usb/gadget:
usb_f_acm.ko
/lib/modules/3.10.17-yocto-standard-r2/kernel/drivers/usb/serial:
usb_wwan.ko

有没有人有类似的配置并设法使CP2102适配器工作?

作为最后的手段,我们正在尝试使用此参考编译和安装驱动程序:[url = https://askubuntu.com/questions/941594/installing-cp210x-driver]Installing CP210x驱动程序?安装CP210x驱动程序? - 询问Ubuntu [/ url]

'make'进程由于缺少标头而崩溃。我们无法通过APT下载标题,但最后,我们设法通过从网站手动下载标题来编译'.ko'模块。

然而,在做完之后:

insmod cp210x.ko

我们得到了:

Insmod: ERROR: could not insert module cp210x.ko: Invalid module format

所以,在这一点上,我们有几个问题......任何有关它们的建议都会非常感激:

  1. 有人知道如何在Ubilinux中安装内核头文件 - 3.10.17?
  2. 在Ubilinux中升级内核的官方程序是什么?我们已经在主板上运行了ROS ...你认为内核升级会破坏我们的ROS配置吗?
  3. 一般来说,您在配置cp210x设备方面有成功经验吗?
  4. 提前致谢,

    埃克托

1 个答案:

答案 0 :(得分:0)

cp2102的驱动程序已经存在于内核中,无需额外的努力。只需使用正确的udev规则文件(在Linux发行版中默认不存在)。一个例子是here。使用此文件将创建/ dev / ttyUSBX。