Linux下USB转串口的模块编译安装问题

来源:互联网 发布:snmp客户端软件 编辑:程序博客网 时间:2024/05/22 06:40

遇到usb转串口的问题,芯片利用的是ch341,虽然kernel里已经有对ch341的支持,但是插上之后还是不能用,发现系统里没有对这个产品的idVendor=1a86, idProduct=5523描述。所以就需要修改代码,添加上面的id号。代码如下:/usr/src/linux-2.6.37.1-1.2/drivers/usb/serial/ch341.c.

static const struct usb_device_id id_table[] = {
        { USB_DEVICE(0x4348, 0x5523) },
        { USB_DEVICE(0x1a86, 0x7523) },
        { USB_DEVICE(0x1a86, 0x5523) },
        { },
};

添加完成之后就需要编译,安装后可以正常工作。

步骤如下:

进入系统文件夹下:/usr/src/linux-2.6.37.1-1.2

利用超级用户执行以下命令编译你需要的模块。

sudo make CONFIG_USB_SERIAL_CH341=m M=drivers/usb/serial/

LD      drivers/usb/serial//built-in.o
  CC [M]  drivers/usb/serial//usb-serial.o
  CC [M]  drivers/usb/serial//generic.o
  CC [M]  drivers/usb/serial//bus.o
  CC [M]  drivers/usb/serial//ezusb.o
  LD [M]  drivers/usb/serial//usbserial.o

  CC [M]  drivers/usb/serial//aircable.o

......

Building modules, stage 2.
  MODPOST 50 modules
  CC      drivers/usb/serial//aircable.mod.o
  LD [M]  drivers/usb/serial//aircable.ko
  CC      drivers/usb/serial//ark3116.mod.o
  LD [M]  drivers/usb/serial//ark3116.ko
  CC      drivers/usb/serial//belkin_sa.mod.o
  LD [M]  drivers/usb/serial//belkin_sa.ko
  CC      drivers/usb/serial//ch341.mod.o
  LD [M]  drivers/usb/serial//ch341.ko

编译成功后,需要将生成的文件拷贝到系统的模块目录下,可以先备份这个模块目录以防出现问题,系统无法启动,模块目录:/lib/modules/2.6.37.1-1.2-desktop/kernel

执行拷贝:sudo cp drivers/usb/serial/*.ko /lib/modules/2.6.37.1-1.2-desktop/kernel/drivers/usb/serial/

然后install firmare:

sudo make firmware_install

安装模块并检查模块是否安装成功

sudo /sbin/modprobe ch341

查看模块情况

lsmod | grep ch341

显示如下:

ch341                   9275  1
usbserial              34824  3 ch341

表明ch341已经安装成功。

可以查看/dev目录下是否有ttyUSB0的设备

通过dmesg | grep usb显示usb的打印信息

......

[ 1220.889150] usb 2-2: New USB device found, idVendor=1a86, idProduct=5523
[ 1220.889155] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2369.572897] usb 2-2: ch341-uart converter now attached to ttyUSB0
[ 2369.572925] usbcore: registered new interface driver ch341

以上就完成了对ch341的修改编译和安装。可以打开设备进行操作,需要超级用户权限。

参考文章:http://vanilla.slitaz.org/index.php?p=/discussion/817/solved-how-to-make-new-kernel-module-available-without-the-wok-s/p1