轉自:http://www.linuxidc.com/Linux/2011-02/32218.htm
Linux發行版自帶usb to serial驅動,以模塊方式編譯驅動,在內核源代碼目錄下運行Make MenuConfig選擇Devces drivers-->USB seupport--> <M>USB Serial Converter support --> <M> USB driver for GSM and CDMA modems & [*]USB Generic Serial Driver,保存退出。運行make modules,編譯成功后可找到usbtoserial.ko及option.ko兩個驅動(2.6以上內核版本模塊驅動用.ko表示)。如果想在開發板上運行,要用arm-linux-gcc編譯。
在2.6.18以前的內核版本中,很多公司及產品未定義,直接用usbtoserial.ko指定ID號可以驅動模塊,不需要option.ko。格式為[insmod usbserial.ko vendor=<comp.ID> product=<pro.ID>],對於調試過的模塊,給出ID如下:
Telit_UC864:
vendor=0x1bc7 product=0x1003
轉出ttyUSB0~2三個串口,ttyUSB0可用,響應AT指令。
大唐 DTM6211:
vendor=0x1ab7 product=0x6000
轉出ttyUSB0~5六個串口,ttyUSB5可用,響應AT指令。
華為 MC703:
vendor=0x12d1 product=0x1001
轉出ttyUSB0~2三個串口,ttyUSB0和ttyUSB2可用,響應AT指令。
例如要驅動UC864,可輸入insmod usbserial.ko vendor=0x1bc7 product=0x1003。注意生成的串口不一定能自動創建,查詢/dev下面的設備看是否存在ttyUSBx。如不存在,需要手動調用mknod創建節點。cat /proc/devices,查看加載的驅動號,一般usbtoserial的設備號為188。因此可調用mknod ttyUSB0 c 188 0,創建節點。c表示字符驅動,188是查到的主設備號,0為子設備號。
2.6.18以后的內核,option.c中定義了很多公司和設備,查看內核源代碼,打開option.c文件,查找 static struct usb_device_id option_ids[] 結構體數組,里面定義了很多模塊廠商和產品的ID,如果未找到我們的模塊,可手動添加,然后按上面的步驟重新編譯驅動。使用新生成的usbtoserial.ko和option.ko文件,不需要指定ID號,直接insmod usbtoserial.ko再insmod option.ko,即可驅動模塊。
