网上有许多文章讲这个的,但是排版和解释大都不是很完整。
首先需要用 usb_modeswitch 让网卡工作在 USB serial 模式,这些上网卡默认会被识别成光盘,需要发送个指令才能让它正常工作。一般安装好了 udev 可以自动做这个事,单行的命令也是可以做的,对于 E1750,这样即可:
usb_modeswitch -v 0x12d1 -p 0x1446 -V 0x12d1 -P 0x1001 -M 55534243123456780000000000000011060000000000000000000000000000
这些参数从 usb_modeswitch 的网站下载的源码中找到,如果不幸没有在列表里,可以参考网站上的信息自己找一下这些值。
接下来就是拨号了,对于 KDE 用户 kppp 是个挺好的选择,要设置的有调制解调器,一般选择 /dev/ttyUSB0,电话号码,联通的是 *99#,还要自定义参数,加上 noauth,认证选择脚本至少是工作的。
另外可以用单行命令:
pppd /dev/ttyUSB0 460800 connect 'chat -v "" ATZ "" "ATD*99#" "CONNECT"' noauth nodetach debug defaultroute noipdefault usepeerdns
pppd的这些参数,第一个是设备,第二个是速率,第三个是动作,这里是连接,紧跟着的是它的脚本,pppd 会调用这个脚本,后面会解释这个脚本,接下来就是 pppd 的选项了,解释一下 nodetach,这个是让 pppd 不后台运行,因为不要认证,所以用了 noauth,其它的选项都很一目了然。
解释下脚本 chat,除了选项(如其中的 -v)外,参数中每两个一组,前一个值是它所期待的,后一个是遇到这个字串后发送的,之前的都是空串,表示直接发送,最后一个 CONNECT 后没有内容,意味着见到这个值后脚本就退出了。
对于 2.4 内核,有可能设备是 /dev/usb/tts/0,在 tomato 的固件里表现是这样的。会用到的内核模块有 option, usbserial。如果一次连接没成功,再连可能没响应,可以试着把 option 模块卸载再加载。