近期在一台联想ThinkSystem SR550服务器上安装了一个PCI-E转双串口的扩展卡,同时客户需要安装CentOS 7.2系统。

官方并不支持7.2系统,不过官网找得到7.2的530-8i Raid卡驱动,加载Raid卡驱动并安装完系统后,发现Intel X722网卡的网口插上网线指示灯虽然亮,但无法通信。分析了一下,原因是7.2的3.10版本内核虽然有intel i40e驱动,但版本过老,找到新版本驱动的源码编译安装后解决,具体过程再另外记录。

X722网卡驱动的问题解决后,又发现PCI-E转COM口扩展卡的两个COM口无法使用,同样是驱动问题。仔细看了一下卡上的芯片,型号是WCH CH382

查了一下,这是一家叫江苏沁恒的芯片公司的产品,官网是wch.cn,官网以及随扩展卡带的驱动光盘里都有CH382的linux驱动,但版本太老,在CentOS 7.2上编译报错。联系官网上的技术支持电话,要到了新的驱动源码:https://drive.google.com/open?id=1s1TzLW3xQsfvL5BMiStPLcHd-co4hOLb

解压后cd 进driver目录,make install命令编译安装,完成后modprobe wch命令导入此内核模块。注意编译需要开发环境,最好是在安装系统的过程中把开发工具包先选上。

驱动安装成功后,PCI-E转串口卡的两个串口位置在/dev/ttyWCH0、/dev/ttyWCH1。测试串口能否正常工作可用minicom、picocom等串口调试工具。picocom比较简单易用,示例:picocom -b 9600 /dev/ttyUSB0

其他有用命令:

ls /dev/tty* 查看串口设备,输出结果里,ttyS*一般为板载串口,ttyUSB*为USB转串口设备,这次加的WCH芯片的PCI-E转串口扩展卡,串口设备为ttyWCH*

lspci -v 查看pci设备信息

dmesg | grep tty 查看串口设备

cat /proc/tty/driver/serial 查看串口驱动