将模块添加到angstrom内核

时间:2015-06-04 14:34:35

标签: linux linux-kernel angstrom-linux

我正在研究Altera Cyclone V Soc FPGA Dev Kit。 我正在使用由rocketboards.com(http://www.rocketboards.org/foswiki/Documentation/GSRD141AngstromGettingStarted

提供的GSRD 14.1 Angstrom
root@socfpga_cyclone5:~# uname -a
Linux socfpga_cyclone5 3.10.31-ltsi

这个内核不支持USB串行设备,我认为我需要添加usbserial和usbcore驱动程序来与GPS串行模块通信。内核包括insmod和modprobe,但我找不到我的主板的细节驱动程序。

dmesg返回:

usb 1-1: new full-speed USB device number 2 using dwc2
usb 1-1: New USB device found, idVendor=10c4, idProduct=ea60
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: CP2104 USB to UART Bridge Controller
usb 1-1: Manufacturer: Silicon Labs
usb 1-1: SerialNumber: 006FA62E

是否有添加此模块的解决方案? 如果我必须重建和自定义内核,我正在寻找一些建议:)

提前致谢。

修改

解决方案是在menuconfig中添加串行驱动程序支持并更新内核。

1 个答案:

答案 0 :(得分:0)

首先,将串行设备插入USB端口并检查此命令的输出:

  

ls / dev | grep usb

如果你看到类似" ttyUSB0"或" ttyAMC0",然后驱动程序已经存在,作为静态编译驱动程序或加载模块。如果您的问题确实是驱动程序不存在,我会感到非常惊讶;它应该包含在几乎每个发行版中。

如果没有任何问题,请检查驱动程序当前是否已加载(这将告诉您它是否真的是USB串行设备的问题:

  

lsmod | grep serial

(注意:该模块应该被称为" usb_serial",但我通常会寻找一个字符串的子集,我实际上正在寻找能够找到与那些不匹配的名称的字符串我希望,例如带有或不带下划线的名称。" grep serial"可以匹配" usb_serial",但应该包括它,同时仍然缩短modprobe输出。" )

如果您在那里看到驱动程序,则会加载驱动程序,问题出在USB串行设备上。检查this text document以查看您的设备是否受驱动程序支持。即使设备未列为受支持设备,您的设备仍可能仍然有效,因为usb串行模块中支持通用设备。您必须使用此命令重新加载模块才能利用它:

  

insmod usbserial vendor = 0x #### product = 0x ####

如果没有加载驱动程序,请使用此命令查看它是否可用:

  

modprobe | grep serial

如果驱动程序在那里但当前没有加载,你应该能够在这个目录中找到它以使用" insmod"在它上面:

  

/ lib / modules /`uname -r` / kernel / drivers / usb / serial /`

如果所有这些都失败了,您可能必须在启用驱动程序的情况下重新编译。重新编译内核并确保在USB菜单下启用USB_SERIAL,并启用对TTY的内核支持,因为USB_SERIAL depends on it