在linux下使用基于HL340的USB串口线

时间:2022-06-30 07:06:44
现在大部分的本都没有串口了,所以USB转串口线是很常用的东西。
2.6kernel已经包含了对这种设备的支持:
# modprobe usb-serial

当然只是这样还不够,还需要对应的具体设备(芯片)的驱动。我使用的fedora8的kernel是2.6.23,已经包含很多类似的设备,比如常用的pl2303等。但很可惜我偏偏买到了一种不支持的设备,很衰。而且据说是2.6.24就会支持,更郁闷。为了个这个再重新安装个kernel或系统也不划算,只好自己找找这方面的驱动。
很不容易的终于找到了:
http://www.csie.ntu.edu.tw/~b94101/ch341_drv.tar.bz2

下载回来解压,包里有两个现成的脚本来编译,ins.sh,ins-2.6.23.sh,编译完会自动载入module。但没那么容易,在fedora8下编译会出现几个错误,解决办法就是直接注释相关行:ch341的301和303行,tty_ioctl.c的35行。
编译完成,模块也已经载入,但期待的/dev/ttyUSB0仍然没有出现。如果是这样,就说明碰到和我一样衰的设备,设备ID为0x1a86,0x7523。手工添加吧,把ch341.c中的:
static struct usb_device_id id_table [] = {
    { USB_DEVICE(0x4348, 0x5523) },
    { },
};

改为:
static struct usb_device_id id_table [] = {
    { USB_DEVICE(0x4348, 0x5523) },
    { USB_DEVICE(0x1a86, 0x7523) },
    { },
};

再重新编译载入,就可以看到/dev/ttyUSB0了。
这里可以下载我的修改好和编译好的包: