2012年2月12日星期日

在Linux上使用One2Free Lte上網

香港的One2Free電訊公司推出了Lte(4G)的上網服務,並隨服務送上一個Lte的USB modem(ZTE MF820)。使用Linux的我當然是要把這東西攪到能在Linux上能用。


我用的是Arch Linux,所以安裝套件的方法跟RedHat、Debian、Ubuntu、Gentoo等不同,但大家可以用各自的package manager安裝。


步驟︰

因為這類USB modem大多都內置儲存空間以把驅動程式附帶在內,所以在插上USB modem後系統一般都會辨認到USB儲存裝置。這時候,我們就需要用usb_modeswitch工具跳到驅動modem。

安裝libusb及usbutils套件
pacman -S libusb usbutils

安裝usb_modeswitch套件
pacman -S usb_modeswitch


插上USB modem後,使用lsusb指令查看。
lsusb

我的ZTE MF860會顯示一行︰
Bus 004 Device 009: ID 19d2:0166 ONDA Communication S.p.A.

這個就係USB modem上的儲存裝置。

19d2就是其廠商ID
0166是其產品ID

接下來我們要令usb_modeswitch在看到這個ID時自動驅動USB modem,而ZTE MF820的USB modem ID是19d2:0167,至於其他品牌的ID是甚麼就得自己去查了。

/usr/share/usb_modeswitch19d2:0166並修改。
vim /usr/share/usb_modeswitch/19d2:0166

改為以下內容︰

DefaultVendor= 0x19d2
DefaultProduct=0x0166

TargetVendor=  0x19d2
TargetProduct= 0x0167

MessageEndpoint=0x01
MessageContent="55534243e856e2892400000080000685000000240000000000000000000000"

CheckSuccess=20


資料來源︰http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=4995

以後插上這個USB modem後,執行lsusb就會看到︰
Bus 004 Device 010: ID 19d2:0167 ONDA Communication S.p.A.

這就代表成功驅動USB modem了。

如果為了令USB modem執行得更有效率,使用root權限啟用option這個module。
modprobe -v option

有些討論提到用option這個module的耗電量和CPU使用率較usb-serial為低。但使用usb-serial則單段TCP連接速度較高。至於如何取捨是否使用option這個module。要是不使用option這個module的話,就不用執行上面的指令了。

如果option module未能辨認您的USB modem,就把ID加到/sys/bus/usb-serial/drivers/option1/new_id
echo -n "19d2 0167" > /sys/bus/usb-serial/drivers/option1/new_id



接下來設定連接到互聯網。

安裝wvdial套件(大家也可以安裝gnome-ppp,但就需要同時安裝gtk2了。)
pacman -S wvdial

安裝後使用root執行︰
wvdialconf

wvdialconf會找到你的USB modem在哪,而且會產生一個/etc/wvdial.conf設定檔案。

執行wvdialconf後大概會看到以下畫面


然後修改/etc/wvdial.conf,改為以下內容︰

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

# Init command for ZTE 4G modem
#auto (default)
#Init3 = AT+ZSNT=0,0,0
#只使用GPRS
#Init3 = AT+ZSNT=1,0,0
#GPRS優先
#Init3 = AT+ZSNT=0,0,1
#只使用3G
#Init3 = AT+ZSNT=0,0,2
#3G優先
#Init3 = AT+ZSNT=2,0,0
#只使用LTE
Init3 = AT+ZSNT=6,0,0

#LTE優先(此指命經測試並未成功)
#Init3 = AT+ZSNT=0,0,6



Modem Type = Analog Modem
Phone = *99#

ISDN = 0
Password = any
Username = any
Modem = /dev/ttyUSB2
#Baud = 9600
Baud = 460800
Stupid Mode = 1


資料來源︰http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=4995

使用者帳戶及密碼並無需設定。


然後就可以使用root權限執行wvdial指令連接上網。


大家也可以在wvdial指令後加上&令其改為背景執行。
wvdial &

3 則留言:

  1. 似乎Kernel 3.4會加入QMI_WWAN, 呢支手指可以好似Windows咁當一個ethernet device咁用, 希望會快少少

    我就係usb_modeswitch果個MF820 contributor

    回覆刪除
    回覆
    1. usb_modeswitch的contributor竟然在此留言,實在深感榮幸。並非常感謝Kenny Lam兄對此的貢獻!

      希望可以快點找到LTE優先的command。

      刪除
  2. Hi 請問你以 wvdial --> ppp 撥號 LTE, serial 網路速度如何? MF820 同時支援 serial & QMI .

    回覆刪除