linux使用USB转串口驱动设置

时间:2022-12-13 16:10:11
【一】、驱动相关说明: 
如果直接使用串口线,而没有用到USB转串口设备,就不需要安装驱动。 

如果使用了USB转串口,一般情况下也不需要安装驱动了,目前linux系统已经包含了该驱动,可以自动识别,亦可通过以下命令查看以便确认是否支持。 


查看模块装载的情况: 
引用
# lsmod |grep pl2303 
pl2303 18629 0
usbserial 29865 1 pl2303
如果看到类似于上述信息,则表明能正确识别该设备,否则安装该设备的驱动。 


同时你可以查看系统的一些信息引用
# dmesg | tail -f 

drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303
pl2303 3-1:1.0: PL-2303 converter detected
usb 3-1: PL-2303 converter now attached to ttyUSB0
usbcore: registered new driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.11

如果看到类似上述信息,可知usb转串口芯片PL-2303的驱动已经注册加载,对应系统设备是/dev/ttyUSB0


注意:默认情况下ubuntu已经安装了USB转串口驱动(pl2303)。

1、# lsmod | grep usbserial
如果有usbserial,说明系统支持USB转串口。

2、插上USB转串口,在终端输入命令#dmesg | grep ttyUSB0,如果出现连接成功信息,则说明ubuntu系统已经识别该设备了。

注意:虚拟机环境下的ubuntu默认情况下是不能自动识别的,需要在虚拟机窗口右下角点击"Prolific USB-Serial Controller",然后选择"Connect (Disconnect from Host)",这样才能被ubuntu系统识别。

3、在上面minicom的配置中设置Serial Device: /dev/ttyUSB0,重启开发板,这样基本上就可以正常使用minicom来打印串口信息了。

4、问题
如果经过上面的步骤minicom还是不能正常工作,出现如下错误提示:
# sudo minicom
minicom: cannot open /dev/ttyUSB0: 没有该文件或目录

这时可以尝试换一个USB口,然后再次操作以上流程。如果还是提示这个错误,那么可以使用下面的方法来解决。

这 种方法是在硬件里添加串口设备,将window下的设备添加到虚拟机里。也就是说,要在window获得焦点的时候加入usb转串口,然后再到虚拟机下将 这个设备添加进去,这时就可以在ubuntu下查看添加的这个设备的设备文件,一般是/dev/tty0或者 /dev/ttyS0。

这种方法其实是将window的usb转串口作为虚拟机的串口,所以就是tty0或者ttyS0了,而不是真正在ubuntu下加载的。

具体步骤如下:
(1)打开虚拟机环境,然后选择"VM-->Settings(Ctrl+D)"。
(2)点"Add",进入添加硬件向导,选择"Serial Port",点"Next"。
(3)选择第一项"Use physical port on the host",点"Next"。
(4)选择"Physical serial port"方式为"Auto detect",勾选"Connect at power on",点"Finish"完成。


STM32的USB转串口驱动

1、安装驱动

    在版本比较新的Linux内核中应该都集成该驱动,可以通过下边这个命令查看是否已安装驱动

1 $
modinfo ftdi_sio

    会出现大概如下的信息

01 filename:      
/lib/modules/2.6.28-oshirix-special-edition/kernel/drivers/usb/serial/ftdi_sio.ko
02 author:        
Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>
03 description:   
USB FTDI Serial Converters Driver
04 license:       
GPL
05 vermagic:      
2.6.28-oshirix-special-edition SMP preempt mod_unload modversions 586
06 depends:       
usbserial,usbcore
07 alias:         
usb:v0403pFF00d*dc*dsc*dp*ic*isc*ip*
08 alias:         
usb:v0403pFFA8d*dc*dsc*dp*ic*isc*ip*
09 alias:         
usb:v0403p9F80d*dc*dsc*dp*ic*isc*ip*
10 alias:         
usb:v0403pD010d*dc*dsc*dp*ic*isc*ip*
11 alias:         
usb:v0403pD011d*dc*dsc*dp*ic*isc*ip*
12 alias:         
usb:v0403pD012d*dc*dsc*dp*ic*isc*ip*
13 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

如果出现上边的一大堆信息,就说明你的内核已经集成列该驱动,如果没有的话,就要去下载自己安装。

2、查看驱动的另一种方法

01 1.原有内容
02     luther@gliethttp:~$ ls /sys/bus/usb-serial/drivers/
03     generic
04 2.插入usb-serail之后内容
05     luther@gliethttp:~$ ls /sys/bus/usb-serial/drivers/
06     ftdi_sio  generic
07 或者使用dmesg
查看
08     luther@gliethttp:~$ dmesg |grep 'interface driver'
09 3.删除已经加载了的built-ind的模块
10     luther@gliethttp:~$ lsmod |grep ftdi_sio
11     ftdi_sio               55944  0
12     usbserial              39528  1 ftdi_sio
13     usbcore               148848  8 ftdi_sio    
14     luther@gliethttp:~$ sudo rmmod ftdi_sio
15     luther@gliethttp:~$ lsmod |grep ftdi_sio
16 4.将其添加到驱动黑名单中
17     luther@gliethttp:~$ sudo vim /etc/modprobe.d/blacklist
18     # 文件结尾追加如下一行内容
19     blacklist ftdi_sio
20 5.这样再次插入usb-serial,该设备的驱动已经没有了
21     luther@gliethttp:~$ lsmod |grep ftdi_sio

参考:

http://blog.csdn.net/david_xtd/article/details/24542595

https://my.oschina.net/u/246816/blog/59528

http://blog.csdn.net/david_xtd/article/details/24542595