一、添加VID、PID
在linux_src/drivers/usb/serial/option.c 文件中的 static const struct usb_device_id option_ids[]的id 列表中增加如下语句: { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, openwrt-1407在如下位置: build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620n/linux-3.10.49/drivers/usb/serial/option.c 二、内核的编译配置 包括USB串口驱动和PPP拨号相关的配置项: 1、USB 串口驱动相关的配置项: CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_OPTION=y CONFIG_USB_SERIAL_WWAN=y make kernel_menuconfig Device Drivers ---> USB support ---> USB Serial Converter support ---> (默认是M,且不能设为*) 习惯上=y 使得编译进内核而不是作为模块,那么得配置好一些USB相关 <*> Support for Host-side USB (默认M,选择* 方便USB Serial可以=y) <*> USB announce new devices [*] Enable USB persist by default <*> EHCI HCD(USB 2.0) support [*] Root Hub Transaction Translators [*] Improved Transaction Translator scheduling <*> OHCI HCD support <*> USB Modem (CDC ACM) support <*> USB Printer support <*> USB Wireless Device Management support USB Serial Converter support ---> <*> USB driver for GSM and CDMA modems 退出后保存,git status查看会修改target/linux/ramips/mt7620n/config-3.10 这里便是内核的默认编译配置文件 2、PPP 拨号的相关配置项: CONFIG_PPP=y CONFIG_PPP_MULTILINK=y CONFIG_PPP_FILTER=y CONFIG_PPP_ASYNC=y CONFIG_PPP_SYNC_TTY=y CONFIG_PPP_DEFLATE=y CONFIG_PPP_BSDCOMP=y make kernel_menuconfig Device Drivers ---> [*] Network device support ---> <*> PPP (point-to-point protocol) support <*> PPP BSD-Compress compression <*> PPP Deflate compression [*] PPP filtering [*] PPP multilink support <*> PPP MPPE compression (encryption) [*] PPP multilink support <*> PPP over Ethernet <*> PPP support for async serial ports <*> PPP support for sync tty ports 三、其它配置 make menuconfig 1、界面LuCI配置(web页面管理程序) LuCI ---> 1. Collections ---> <*> luci 3. Applications ---> <*> luci-app-commands <*> luci-app-ddns <*> luci-app-ntpc 2、网络配置 Netmowrk ---> File Transfer ---> <*> wget SSH ---> <*> openssh-client <*> openssh-sftp-server 3、工具配置 Utilities ---> <*> comgt 四、添加ppp0网络节点 target/linux/ramips/base-files/etc/uci-defaults/02_network + m201) + ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2" + ucidef_set_interfaces_3g "ppp0" + ;; + ur-336un) package/base-files/files/lib/functions/uci-defaults.sh +ucidef_set_interface_ppp0() { + local ifname=$1 + + uci batch <<EOF +set network.ppp0='interface' +set network.ppp0.ifname='$ifname' +set network.ppp0.proto='3g' +set network.ppp0.apn='3gnet' +set network.ppp0.service='umts' +set network.ppp0.dialnumber='*99#' +set network.ppp0.device='/dev/ttyUSB0' +EOF +} +ucidef_set_interfaces_3g() { + local ppp0_ifname=$1 + + ucidef_set_interface_ppp0 "$ppp0_ifname" +} + package/network/config/firewall/files/firewall.config config zone + option network 'wan ppp0' 调试的时候可以手动设置(我这里是华为MU709s-2 WCDMA 联通3G): 进入etc/config/修改network,增加一个3G 网络节点 config interface 'ppp0' option ifname 'ppp0' option proto '3g' option apn '3gnet' option service 'umts' option dialnumber '*99#' option device '/dev/ttyUSB0' 注:联通apn:3gnet 电信apn:ctnet 移动apn:cmnet/cmwap 联通dialnumber:3G为*99# 电信:3G为#777 移动为:*99***1# LTE为:*99# 拨号成功: ifconfig 3g-ppp0 Link encap:Point-to-Point Protocol inet addr:10.229.7.143 P-t-P:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:12 errors:0 dropped:0 overruns:0 frame:0 TX packets:17 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:844 (844.0 B) TX bytes:854 (854.0 B) 五、参考资料 openwrt官网 Use 3g/UMTS USB Dongle for WAN connection: http://wiki.openwrt.org/doc/recipes/3gdongle Wired WAN + 3G dongle: http://wiki.openwrt.org/doc/howto/wired.wan.with.3g.dongle Get your WAN interface up using ifup wan (or /etc/init.d/network restart if you changed more stuff; a reboot if you changed even more). 小笔记: 1、使用cat /sys/kernel/debug/usb/devices 看USB的VID, PID 2、gcom -d /dev/ttyUSB0 info