2.6.x内核usb转串口FTDI驱动使用

时间:2024-03-11 20:30:10

一、内核配置linux内核2.6以后都应该自带usb转串口的驱动,在编译内核时按如下选项配置内核,即可安装usb转串口驱动:在linux kernel configuration中选择:Device Drivers--->USB support--->USB Serial Conve ...

   

   


一、内核配置
linux内核2.6以后都应该自带usb转串口的驱动,在编译内核时按如下选项配置内核,即可安装usb转串口驱动:
linux kernel configuration中选择:
Device Drivers--->USB support--->USB Serial Converter support--->
[*]USB Serial Converter support
 //选项配置为[*]即将该驱动编译进内核;
[*]USB Generic serial Driver
 //linux下有针对不同的usb设备的驱动,假如你的设备不在这些驱动范围之内,就可以用这个通用的串口驱动,其用法可以有两种:
方法一、将该驱动编译成驱动模块,加载驱动时输入如下:
#insmod usbserial vendor=0x#### product=0x####
其中vendor为驱动芯片的vendor IDproduct为芯片的product ID查询芯片的资料可以获得该芯片的这两个参数。例如FTDIusb转串口芯片FT232RUSB Vendor ID(VID)0403hUSB Product ID(PID)6001h,均为FTDI的默认ID;
方法二、直接修改该驱动源代码中的Vendor ID 与 Product ID两个参数为芯片的ID,然后将该驱动编译进内核:
该驱动的路径为:linux-2.6.20/drivers/usb/serial/generic.c对该驱动修改如下:
#ifdef CONFIG_USB_SERIAL_GENERIC
static __u16 vendor=0x0403;
static __u16 product=0x6001;
直接编译内核即可;
[*]USB FTDI Single Port Serial Driver(EXPERIMENTAL)
//暂时理解为针对FTDI产品的usb转串口驱动,例如上述的FT232R芯片,可以直接使用该驱动;

编译内核,下载到开发板;

二、创建设备文件
USB转串口驱动的主设备号一般为188,从设备号依次累加0~255;可以参考linux的文档:linux-2.6.20/Documentation/usb/usb-serial.txt

创建设备文件:
#mknod /dev/ttyUSB0 c 188 0
#mknod /dev/ttyUSB1 C 180 1

上电后,插入usb转串口模块,即可看到该模块挂载到了哪一个设备文件:
# usb 1-1: new full speed USB device using at91_ohci and address 2
usb 1-1: configuration #1 chosen from 1 choice
ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232BM
usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0

即该驱动挂载到了ttyUSB0设备文件,然后就可以像操作串口文件一样的操作该设备文件。