1. 查询系统中有没有驱动
输入命令:
lsmod |grep pl2303
如果查询出来有驱动,则不需要安装驱动,串口未识别出来是因为设备没有激活,跳转到!32 加载驱动激活设备!
2. 查询Linux系统内核版本
'uname -a '
需要记住当前的内核版本号,一般主需要记大版本就可以,比如当前的!!#ff0000 3.10!!
3.下载硬件驱动
从!32 !!#ff0000 官网!!!下载驱动,避免其他渠道下载的驱动有毒,常见的有 如果没有官网的,找这个产品的芯片对应的驱动即可
3.1 绿联USB 2.0转串口DB9打印线
绿联USB转串口驱动下载,DB9线驱动下载,FTDI芯片驱动,PL2303芯片驱动下载 (lulian.cn) 需要根据你使用的产品下载驱动,如下图:
3.2 其他品牌暂时未遇到
4 编译驱动
4.1 将下载好的驱动上传到服务器任意有权限的位置目录
4.2 打开终端,进入到当前目录,cd 路径
4.3 进入当前系统内核版本的目录
- 通过查询内核版本,通过大版本号去匹配文件夹路径
uname -r
例如:(本机的内核版本大版本是3.10)
- 进入到驱动目录, cd 目录
例如:
-
编译驱动,直接执行命令
make- 在编3.10的版本时出现错误,如下图
- 解决方案:
- 修改pl2303.h文件按下图位置修改
第一处修改: ser.line = port->serial->minor; 修改为 ser.line = port->minor; 第二处修改: ser.port = port->number; 修改为 ser.port = port->port_number;例如:
- 文件修改保存后,再次执行下编译命令
- 在编3.10的版本时出现错误,如下图
make
参考地址:blog.csdn.net/gsls200808/…
- 编译成功
目前只有在3.10下面会报错,其他的内核版本未发现错误 还有一种是当前的内核跟目录文件不一致也有可能报错
- 查看驱动
ls -lh
有这些文件说明是编译成功的
5. 安装驱动
将编译好的驱动更新到当期系统的内核版本下面
sudo cp pl2303.ko /lib/modules/$(uname -r)/kernel/drivers/usb/serial
6. 加载驱动
sudo modprobe usbser
sudo modprobe pl2303
7. 验证驱动
sudo modprobe pl2303
8. 激活设备
将文件!24 99-di245.rules!复制到 !24 /etc/udev/rules.d!目录下
如果没有下载文件,可以使用vi 编辑一个
这里是因为绿联的 ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3" 是固定的 至少这个型号是这样的,如果需要查看设备的产品编号和设备编号
输入命令:lsusb 即可查询如下图
vi 99-di245.rules
输入以下内容:
ACTION=="add", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", RUN+="/sbin/modprobe pl2303o" RUN+="/sbin/modprobe usbserial vendor=0x067b product=0x23a3" RUN+="/bin/sh -c 'echo 067b 23a3 > /sys/bus/usb-serial/drivers/pl2303/new_id'"
执行激活规则
sudo udevadm control --reload
9. 验证USB串口
ls /dev/ttyU*