2012-05-04

藉由 Gobi 2000 啟用 ThinkPad T410 行動網路 on Ubuntu 10.04

約一年前凍仁就曾考慮過為這台 ThinkPad T410 (2518-A38) 補上張行動網卡,直接內建就不需再外接 USB 3G 網卡,但基於技術上的考量還是先採購了 NOKIA N900 來使用,相信大多數的伙伴都會這樣選擇的,它除了可以模擬 USB 3G 網卡撥接,也可開 NAT 分享網路給 T410,真的很方便!但同時續航力也會大打折扣,畢竟智慧型手機也是要吃電的,然後還會順便拿筆電充電

後來才得知想在筆記型電腦(Laptop)上使用內建的行動網卡還需符合 WWAN Ready 才行,也就是說除了行動網卡以外,還要有天線及 SIM 卡槽。凍仁很幸運的得到 David 前輩支援,除了裝上 Qualcomm Gobi 2000 這張行動網卡以外,連天線也一併換掉了,而 SIM 卡槽的部份原先就有內建,不過這是在整台拆開後才確認的,成功改造一番後 T410 終於可以直接使用行動網路了!

Qualcomm Gobi 2000 行動網卡。

作業系統相容性部份 WindowsXP, Windows7 官方都有支援,但有很大的機率會失敗,並沒有想像中的穩;Ubuntu 目前只支援 10.04 (kernel 2.6),其 11.10 (kernel 3.0) 以及 12.04 (kernel 3.2) 還不支援,為此凍仁也花了些功夫把原先的 11.10 換成 10.04,好險當初有多切幾個分割區,不然會連 12.04 都沒得玩,經凍仁一週的測試後得 Ubuntu 10.04 最穩,其搭配重新掛載模組的指令(請參考 5.3)都能成功連線!

1. 檢查裝置(Check Device)


開始前先看一下系統有沒有抓到 Gobo 2000 這張卡,其 WWAN 的介面一般都是掛在 USB 底下,所以得使用 lsusb 指令檢查。一開始 USB ID 的值會是 05c6:9204,完成以下步驟並成功初始化後的值將為 05c6:9205,也就是說要最後要取得後者才行,。
jonny@lucid:~$ lsusb | grep -i "Qualcomm" [Enter]
Bus 002 Device 003: ID 05c6:9204 Qualcomm, Inc.

# USB ID: 05c6:9204 (loader)
# USB ID: 05c6:9205 (modem)

2. 取得韌體(Get firmware)


2.1. 至 Lenovo 下載韌體,請依各電信業者選擇韌體,台灣用戶請選 (6) Generic UMTS

2.2. 使用 Windows 解開 7xwc48ww.exe 或者加裝 wine 解開。

2.3. 建立放置韌體的目錄。
jonny@lucid:~$ sudo mkdir -p /lib/firmware/gobi/ [Enter]

2.4. 複製對應的韌體至 /lib/firmware/gobi/。
jonny@lucid:~$ cp 6/UQCN.mbn /lib/firmware/gobi/ && \
cp UMTS/*.mbn /lib/firmware/gobi/ [Enter]

2.5. 檢查檔案完整性,對照表請參考 ThinkWiki
jonny@lucid:~$ md5sum /lib/firmware/gobi/*.mbn [Enter]
80fcfbb41a7d4331d4b7145972f5f3c4   /lib/firmware/gobi/amss.mbn
00cbd411048cdadc3e4caf0d89d14fca   /lib/firmware/gobi/apps.mbn
bdf27325ebb63251c1310cd3a8f7bab6   /lib/firmware/gobi/UQCN.mbn

3. 安裝(Install)


3.1. 加入套件來源並更新套件庫。
jonny@lucid:~$ sudo add-apt-repository ppa:linrunner/thinkpad-extras && sudo aptitude update [Enter]

3.2. 安裝 gobi-loader 以及為 ThinkPad 客製化的 kernel
jonny@lucid:~$ sudo aptitude install gobi-loader linux-generic-tp \
linux-image-generic-tp linux-headers-generic-tp [Enter]

3.3. 若想使用快捷鍵開關 WWAN 可順便裝上 tp-wwan-hotkey
jonny@lucid:~$ sudo aptitude install tp-wwan-hotkey [Enter]

3.4. 重新開機,請改選 kernel 有 tp 字樣選項,若已裝過 nVidia, hdapsd 或 Virtualbox 等需取編譯 kernel 相關模組的套件可能需重裝
jonny@lucid:~$ sudo shutdown -r now [Enter]

4. 環境設定(Environment Configure)


4.1. 檢查 WWAN 狀態,並確認 WWAN 裝置已開啟。
jonny@lucid:~$ cat /var/lib/NetworkManager/NetworkManager.state [Enter]
[main]
NetworkingEnabled=true
WirelessEnabled=true
WWANEnabled=true
#WimaxEnabled=true   # Ubuntu 12.04 才有此行。

4.2. 若 WWAN 未啟動可使用 tp-wwan-hotkey 的快捷鍵 Fn + F6 切換。

WWAN: on.

WWAN: off.

4.3. 新增行動網路(mobile broadband)連線設定。

4.3.1. 應用程式選單 → 系統 → 網路連線。

4.3.2. 行動網路 → 新增。

4.3.3. 選擇 Gobi 2000 裝置。

4.3.4. 在城市列表中選取台灣(Taiwan)。

4.3.5. 選取電信業者,以下使用威寶電信(Vibo Telecom)為例。

4.3.6. 由於未收入 375 網路吃到飽專案,故手動修改成 APN 為 internet。

4.3.7. 同意後以上的設定才算建立完成。

4.3.8. 完成後可以在網路列表看到 Vibo Telecom 的選項。

4.3.9. 連線成功!令人感動的一刻

4.3.10. 察看 IP 資訊。
jonny@lucid:~$ ifconfig ppp0 [Enter]
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:1.200.147.149  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:546 (546.0 B)  TX bytes:249 (249.0 B)

5. 除錯(Debug)


以下紀錄些 Debug 的東西,可略過。

5.1. 監控 log。
jonny@lucid:~$ sudo tail -f /var/log/syslog [Enter]

5.2. Ubuntu 12.04 目前還不支援,以下為 WWAN 跑不起來的訊息。
jonny@lucid:~$ sudo tail -f /var/log/syslog [Enter]
May  3 22:02:14 thinkpad-t410 NetworkManager[1191]:  Activation (ttyUSB1) starting connection 'Vibo Telecom'
May  3 22:02:14 thinkpad-t410 NetworkManager[1191]:  Activation (ttyUSB1) starting connection 'Vibo Telecom'
May  3 22:02:14 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): device state change: disconnected -> prepare (reason 'none') [30 40 0]
May  3 22:02:14 thinkpad-t410 NetworkManager[1191]:  Activation (ttyUSB1) Stage 1 of 5 (Device Prepare) scheduled...
May  3 22:02:14 thinkpad-t410 NetworkManager[1191]:  Activation (ttyUSB1) Stage 1 of 5 (Device Prepare) started...
May  3 22:02:14 thinkpad-t410 NetworkManager[1191]:  Activation (ttyUSB1) Stage 1 of 5 (Device Prepare) complete.
May  3 22:02:14 thinkpad-t410 modem-manager[17215]:   (ttyUSB1) opening serial port...
May  3 22:02:14 thinkpad-t410 modem-manager[17215]:   Modem /org/freedesktop/ModemManager/Modems/0: state changed (disabled -> enabling)
May  3 22:02:15 thinkpad-t410 modem-manager[17215]:   (ttyUSB1): using text mode for SMS
May  3 22:02:15 thinkpad-t410 modem-manager[17215]:   Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabling -> enabled)
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  WWAN now enabled by management service
May  3 22:02:15 thinkpad-t410 modem-manager[17215]:   Modem /org/freedesktop/ModemManager/Modems/0: state changed (enabled -> registered)
May  3 22:02:15 thinkpad-t410 kernel: [13718.358807] modem-manager[17215]: segfault at 7fea28778b51 ip 00007fea286ed0f8 sp 00007fff7cca5580 error 4 in libpcre.so.3.12.1[7fea286da000+3c000]
May  3 22:02:15 thinkpad-t410 kernel: [13718.458948] init: modemmanager main process (17215) killed by SEGV signal
May  3 22:02:15 thinkpad-t410 kernel: [13718.458983] init: modemmanager main process ended, respawning
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  the modem manager disappeared
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): now unmanaged
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): device state change: prepare -> unmanaged (reason 'removed') [40 10 36]
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): deactivating device (reason 'removed') [36]
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_routes: assertion `ifindex > 0' failed
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_addresses: assertion `ifindex > 0' failed
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   ModemManager (version 0.5.2.0) starting...
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin AnyData
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin MotoC
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Nokia
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Linktop
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Novatel
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Sierra
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin ZTE
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Generic
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Gobi
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Option High-Speed
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Wavecom
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Samsung
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Ericsson MBM
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Huawei
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin X22X
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin SimTech
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Longcheer
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   Loaded plugin Option
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  Policy set 'Wired connection 1' (eth0) as default for IPv4 routing and DNS.
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  Policy set 'Wired connection 1' (eth0) as default for IPv4 routing and DNS.
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): cleaning up...
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): taking down device.
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   (ttyUSB0) opening serial port...
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   (ttyUSB1) opening serial port...
May  3 22:02:15 thinkpad-t410 modem-manager[20121]:   (ttyUSB2) opening serial port...
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  trying to start the modem manager...
May  3 22:02:15 thinkpad-t410 NetworkManager[1191]:  modem-manager is now available
May  3 22:02:16 thinkpad-t410 modem-manager[20121]:   (ttyUSB1) closing serial port...
May  3 22:02:16 thinkpad-t410 modem-manager[20121]:   (ttyUSB1) serial port closed
May  3 22:02:16 thinkpad-t410 modem-manager[20121]:   (ttyUSB1) opening serial port...
May  3 22:02:16 thinkpad-t410 modem-manager[20121]:   (Gobi): GSM modem /sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4 claimed port ttyUSB1
May  3 22:02:16 thinkpad-t410 modem-manager[20121]:   (ttyUSB1) closing serial port...
May  3 22:02:16 thinkpad-t410 modem-manager[20121]:   (ttyUSB1) serial port closed
May  3 22:02:27 thinkpad-t410 modem-manager[20121]:   (ttyUSB0) closing serial port...
May  3 22:02:27 thinkpad-t410 modem-manager[20121]:   (ttyUSB0) serial port closed
May  3 22:02:27 thinkpad-t410 modem-manager[20121]:   (ttyUSB0) opening serial port...
May  3 22:02:27 thinkpad-t410 modem-manager[20121]:   (ttyUSB2) closing serial port...
May  3 22:02:27 thinkpad-t410 modem-manager[20121]:   (ttyUSB2) serial port closed
May  3 22:02:27 thinkpad-t410 modem-manager[20121]:   (ttyUSB2) opening serial port...
May  3 22:02:30 thinkpad-t410 modem-manager[20121]:   (ttyUSB0) closing serial port...
May  3 22:02:30 thinkpad-t410 modem-manager[20121]:   (ttyUSB0) serial port closed
May  3 22:02:33 thinkpad-t410 modem-manager[20121]:   (ttyUSB2) closing serial port...
May  3 22:02:33 thinkpad-t410 modem-manager[20121]:   (ttyUSB2) serial port closed
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): failed to look up interface index
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  WWAN now disabled by management service
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): new GSM/UMTS device (driver: 'qcserial' ifindex: 0)
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): exported as /org/freedesktop/NetworkManager/Devices/4
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): now managed
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): device state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): deactivating device (reason 'managed') [2]
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_routes: assertion `ifindex > 0' failed
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]: nm_system_iface_flush_addresses: assertion `ifindex > 0' failed
May  3 22:02:33 thinkpad-t410 NetworkManager[1191]:  (ttyUSB1): device state change: unavailable -> disconnected (reason 'none') [20 30 0]


5.3. 當 USB ID 為 05c6:9204 時可以手動重啟 modem-manager 以及重新掛載 qcserial 模組。
jonny@lucid:~$ sudo pkill modem-manager; sudo rmmod qcserial; sudo modprobe qcserial [Enter]

延伸閱讀:
What is wwan ready - answers.com
親自操刀,拆解 T410 加裝 3G WWAN 天線 - it168.com
ThinkPad T410 拆機紀錄 - David 的 Flickr
Setting the default carrier firmware when installing GOBI 2000 driver - ThinkPad

相關連結:
Qualcomm Gobi 2000 Wireless WAN Driver for Windows 7 (32-bit, 64-bit), Vista (32-bit, 64-bit) and XP - ThinkPad
ThinkPad Extras : linrunner - launchpad.net
Qualcomm Gobi 2000 - ThinkWiki

資料來源:
Howto: Gobi 2000 generic GSM/UMTS on Thinkpads - Ubuntu Forums
[kubuntu] Unable to connect using Qualcomm Gobi 2000 on thinkpad t410 - Ubuntu Forums
Qualcomm Gobi 2000 unter Linux installieren – ThinkPad-Wiki

4 則留言 :

  1. ThinkPad T410 有無支援 Gobi 2000 是需要額外查 Hardware Maintenance Manual 裡的「Integrated Mobile Broadband (Gobi 2000 3G with GPS)」

    ThinkPad X200 只有特定較新的機種才支援 Gobi 2000,不過看來新一代的 X201 相容性會高一些。

    回覆刪除
  2. 現在 Debian 7.0 (wheezy) kernel 3.2.0-4-amd64 以及 Ubuntu 12.04 (precise) kernel 3.2.0-35-generic-tp 都支援 Gobi2000 了! 這下就不用為了 WWAN 特意再維護個 Ubuntu 10.04 (lucid) 了! » Plurk

    回覆刪除

謝謝您的寶貴意見,凍仁一定會盡快處理 ~^^