摘写部分:3dF平坦软件园
最近装了个硬盘版的ubuntu 8.04,准备作为以后的嵌入式开发环境,其他一切基本弄好准备连接开发板启动时,出了问题。串口工具用的是minicom,但是连线开发板(FS2410)之后没有任何打印信息。因为所有的开发环境可以确认没有问题,所以初步判定为串口配置的问题。3dF平坦软件园
在网上查找得知minicom串口设置,需设为 /dev/ttyUSB0, 但是我设只好之后之后,发现找不到/dev/ttyUSB0,然后自己在/dev下面也没找到ttyUSB0。于是lsusb查看可以确定系统可以检测到我的usb转串口线,3dF平坦软件园
Bus 006 Device 001: ID 0000:0000 3dF平坦软件园
Bus 004 Device 003: ID 1a86:7523 USB转串口线3dF平坦软件园
Bus 004 Device 001: ID 0000:0000 3dF平坦软件园
但是驱动无法识别,应该是驱动的问题。 3dF平坦软件园
于是在网上查找我的USB转串口线所用的IC,及其驱动。3dF平坦软件园
先按照HL-340,搜到一些信息,其转换芯片应该是ch340或者ch341,但是目前大部分用的是ch341.于是我先查看自己的系统驱动模块,发现有ch341.ko,用modprobe ch3413dF平坦软件园
加在之后,仍然无法在dmesg之下看到ttyUSB0相关信息3dF平坦软件园
又在网上搜ch341之类的信息,终于找到一些有用的信息,发现起根本原因是原来的驱动程序中没有添加供应商ID和产品ID: "idVendor=1a86, idProduct=7523",所以需要在驱动源代码 ch341.c 中添加一行代码如下:3dF平坦软件园
static struct usb_device_id id_table [] = {3dF平坦软件园
{ USB_DEVICE(0x4348, 0x5523) },3dF平坦软件园
{ USB_DEVICE(0x1a86, 0x7523) }, //新增代码 1a86,7523就是上文lsusb检测到的ID信息3dF平坦软件园
{ },3dF平坦软件园
};3dF平坦软件园
具体的解决步骤总结如下: 3dF平坦软件园
(1)下载ch341驱动源码(系统里我没找到);3dF平坦软件园
(2)在任意目录下解压源码;3dF平坦软件园
(3)进入ch341源码根目录,用编辑器(比如: vi )打开ch341.c;3dF平坦软件园
(4)在line29行找到上述结构体,并在其中添加 { USB_DEVICE(0x1a86, 0x7523) }, 保存并退出;3dF平坦软件园
(5)在ch341源码根目录下执行make,即会生成ch341.ko3dF平坦软件园
(6)进入到系统驱动模块存放目录将原来的ch341.ko删掉或者改为其他名字,比如改为:ch341.ko.old等(我的目录为: /lib/modules/2.6.24-19-generic/kernel/drivers/usb/serial/);3dF平坦软件园
(7)将新编译好的ch341.ko复制到上述驱动模块的目录;3dF平坦软件园
(8)加在驱动模块modprobe ch341;3dF平坦软件园
(9)dmesg |grep usb,即可看到如下信息,表示usb转串口驱动成功;3dF平坦软件园
[ 517.906465] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for generic3dF平坦软件园
[ 517.906969] usbcore: registered new interface driver usbserial_generic3dF平坦软件园
[ 517.906976] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial Driver core3dF平坦软件园
[ 517.909771] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for ch341-uart3dF平坦软件园
[ 517.929627] usb 3-1: ch341-uart converter now attached to ttyUSB03dF平坦软件园
[ 517.929661] usbcore: registered new interface driver ch3413dF平坦软件园
[ 1418.663675] usb 3-1: USB disconnect, address 53dF平坦软件园
[ 1486.350914] usb 4-1: new full speed USB device using uhci_hcd and address 33dF平坦软件园
[ 1486.385089] usb 4-1: configuration #1 chosen from 1 choice3dF平坦软件园
[ 1486.404914] usb 4-1: ch341-uart converter now attached to ttyUSB0 3dF平坦软件园
[ 1608.650842] usbcore: deregistering interface driver ch3413dF平坦软件园
[ 1608.653215] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial deregistering driver ch341-uart3dF平坦软件园
[ 1608.658300] usbcore: deregistering interface driver usbserial_generic3dF平坦软件园
[ 1608.658348] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial deregistering driver generic3dF平坦软件园
(10)在/dev/目录下就可以找到ttyUSB0了,然后设置minicom串口为/dev/ttyUSB0,保存并退出。启动串口,上电开发板,顺利打印出串口信息。 3dF平坦软件园
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sustzombie/archive/2009/12/18/5035506.aspx3dF平坦软件园
个人经验:3dF平坦软件园
1、下载ch341驱动源代码http://download.csdn.net/source/19160283dF平坦软件园
2、make的时候出现 "没有那个文件或目录 build" 错误,折腾一天才发现,问题所在:/lib/modules/2.6.25-14.fc9.i686/中的build文件是一个链接文件,链接到 /usr/src/kernels/2.6.25-14.fc9.i686。由于没有安装kernel source,所以找不到2.6.25-14.fc9.i686文件夹。3dF平坦软件园
运行yum install kernel-devel 就OK.3dF平坦软件园
接着按照上文所说,一步一步走,一切OK。Thanks god!3dF平坦软件园
/r/n/n本文来自CSDN博客,转载请标明出处:http://www.flatws.cn/article/program/embed/2011-04-07/19748.html