數位天堂

Nokia:科技始終來自於人性; 拜耳:如果文明不能使我們更相愛,那科技便失去意義!
歡迎您的加入,讓我們一起討論科技與環保的整合應用...

您尚未登入。

#1 2009-10-22 16:38:07

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

[DD-WRT] 3G 測試

以下是在DD-WRT的測試紀錄, 同樣的, 測試原則請先參閱前述DD-WRT(3G版), CDMA@wifi, Lly.

機型: 華碩 WL-500gP
韌體: DD-WRT v24-sp2 (09/30/09) big - build 13000M NEWD Eko
3G modem: 華為 E220
ISP: 臺灣固網
Optware套件: modutils, usbutils, libcurl

1.) 核心模組
使用Lly r240, 符合DD-WRT的2.4.37核心.
1-1) 下載, 解壓縮, 搬移.

# cd /opt/Download/Lly/ # curl -Ov http://wl500g.googlecode.com/files/modules-1.9.2.7-d-r240.tgz # tar -xzvf modules-1.9.2.7-d-r240.tgz # chown -R root:root lib/ # mv lib/modules/ /opt/lib/ # rmdir lib # cd ~


1-2) 載入
# modprobe option

usb.c: registered new driver serial usbserial.c: USB Serial support registered for Generic usbserial.c: USB Serial Driver core v1.4 usbserial.c: USB Serial support registered for Option GSM modem usbserial.c: Option GSM modem converter detected usbserial.c: Option GSM modem converter now attached to ttyUSB0 (or usb/tts/0 for devfs) usbserial.c: Option GSM modem converter detected usbserial.c: Option GSM modem converter now attached to ttyUSB1 (or usb/tts/1 for devfs) option.c: USB Driver for GSM modems: v0.7.2a


2.) usb_modeswitch
2-1) 執行檔
使用v1.0.5. 可於Lly或OpenWrt取得.
2-2) 設定檔

DefaultVendor=0x12d1; DefaultProduct=0x1003 HuaweiMode=1


若/jffs空間夠大, 可將執行檔與設定檔塞入/jffs相關目錄, 否則, 複製到/opt相關目錄.
2-3) 切換
# usb_modeswitch -c /jffs/etc/usb_modeswitch.conf

Looking for default devices ... Found default devices (1) Accessing device 002 on bus 001 ... Using endpoints 0x02 (out) and 0x82 (in) Not a storage device, skipping SCSI inquiry Device description data (identification) ------------------------- Manufacturer: HUAWEI Technologies Product: HUAWEI Mobile Serial No.: not provided ------------------------- Sending Huawei control message ... OK, Huawei control message sent -> Run lsusb to note any changes. Bye.


# lsusb

Bus 004 Device 001: ID 0000:0000 Bus 004 Device 003: ID 0420:1307 Chips and Technologies Bus 004 Device 004: ID 058f:6390 Alcor Micro Corp. Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 001 Device 002: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem


3.) comgt, chat
3-1) 執行檔
comgt, 於DD-WRT 3G版或OpenWrt取得.
chat, 於Lly或OpenWrt取得. 以下使用chat測試.
3-2) 設定檔
抄襲CDMA@wifi
# cat /jffs/etc/e220.chat

'' '' '' 'ATZ' 'OK' 'ATI' 'OK' 'AT+COPS?' 'OK' 'AT+CGDCONT=1,"IP","internet"' 'OK' 'ATD*99#' 'CONNECT' ''


同樣的, 若/jffs空間夠大, 可將執行檔與設定檔塞入/jffs相關目錄, 否則, 複製到/opt相關目錄.
4.) pppd
4-1) 執行檔
使用DD-WRT內建的pppd, 不作變更.
4-2) 設定檔
抄襲CDMA@wifi, 置換原PPPoE的設定檔/tmp/ppp/options.pppoe
# cat /tmp/ppp/options.pppoe

/dev/usb/tts/0 460800 debug crtscts noipdefault ipcp-accept-local lcp-echo-interval 60 lcp-echo-failure 5 usepeerdns noauth nodetach user "" connect "/jffs/usr/sbin/chat -s -S -V -t 30 -f /jffs/etc/e220.chat 2>/tmp/chat.log"


5.) 撥號測試
5-1) 幹掉原有的PPPoE

# killall redial # killall pppd


5-2) 撥號

# pppd file /tmp/ppp/options.pppoe


5-3) 檢查
# cat /tmp/chat.log

ATZ OK ATI Manufacturer: huawei Model: E220 Revision: 11.116.05.00.00 IMEI: xxxxxxxxxxxxxxx +GCAP: +CGSM,+DS,+ES OK AT+COPS? +COPS: 0,0,"TW Mobile",2 OK AT+CGDCONT=1,"IP","internet" OK ATD*99#


# ip addr show

1: lo: mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 brd 127.255.255.255 scope host lo 2: teql0: mtu 1500 qdisc noop link/void 3: eth0: mtu 1500 qdisc pfifo_fast link/ether 00:1a:92:xx:xx:xx brd ff:ff:ff:ff:ff:ff 4: eth1: mtu 1500 qdisc noop link/ether 40:10:18:xx:xx:xx brd ff:ff:ff:ff:ff:ff 5: eth2: mtu 1500 qdisc pfifo_fast link/ether 00:1a:92:xx:xx:xx brd ff:ff:ff:ff:ff:ff 6: vlan0: mtu 1500 qdisc noqueue link/ether 00:1a:92:xx:xx:xx brd ff:ff:ff:ff:ff:ff 7: vlan1: mtu 1500 qdisc noqueue link/ether 00:1a:92:xx:xx:xx brd ff:ff:ff:ff:ff:ff 8: br0: mtu 1500 qdisc noqueue link/ether 00:1a:92:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 brd 192.168.1.255 scope global br0 inet 169.254.255.1/16 brd 169.254.255.255 scope global br0:0 9: etherip0: mtu 1500 qdisc noop link/ether ae:a5:99:xx:xx:xx brd ff:ff:ff:ff:ff:ff 10: ppp0: mtu 1500 qdisc pfifo_fast link/ppp inet 115.82.52.234 peer 10.64.64.64/32 scope global ppp0


嗯, 可取得真實IP.
6.) 系統啟動檔
WebUI設定為/jffs/etc/config/rc_startup.sh
# cat /jffs/etc/config/rc_startup.sh

#!/bin/sh logger -s "start Startup commands..." killall redial killall pppd [ -x /opt/sbin/modprobe ] && modprobe option usb_modeswitch -c /jffs/etc/usb_modeswitch.conf cp -f /jffs/etc/3g.ppp /tmp/ppp/options.pppoe pppd file /tmp/ppp/options.pppoe


重新開機後, 檢查.
# ip route show

10.64.64.64 dev ppp0 proto kernel scope link src 115.82.152.98 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1 169.254.0.0/16 dev br0 proto kernel scope link src 169.254.255.1 127.0.0.0/8 dev lo scope link default via 10.64.64.64 dev ppp0


嗯, 有真實IP, 也可繞出去了.

好了, 發功完畢. 利用EzSetup按鈕作PPPoE與3G切換就不贅述了.




離線

 

#2 2010-02-11 20:19:20

dennys
天使
註冊日期: 2009-12-06
文章數: 111
目前積分 :   
網站

Re: [DD-WRT] 3G 測試

請問一下, usb_modeswitch, comgt, chat 的執行檔. 在沒有安裝 lly 的情況下, 要怎麼把這些檔案分解出來呢?

我有試著下載 http://wl500g.googlecode.com/files/modu … d-r240.tgz 然後解開, 不過並沒有看到這些執行檔.



離線

 

#3 2010-02-11 21:46:18

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 3G 測試

如果沒有Lly, 可由OpenWrt相關的套件來解出執行檔. 例如: USB_ModeSwitch 1.1.0版. 當然, 也可以自行編譯.
modules-1.9.2.7-d-r240.tgz只是核心模組(2.4.37), 用於驅動3G modem.


離線

 

#4 2010-02-12 00:03:26

dennys
天使
註冊日期: 2009-12-06
文章數: 111
目前積分 :   
網站

Re: [DD-WRT] 3G 測試

感謝, 剛抓下來, 解開兩層, 就找到 usb_modeswitch.


離線

 

#5 2010-02-12 00:38:29

dennys
天使
註冊日期: 2009-12-06
文章數: 111
目前積分 :   
網站

Re: [DD-WRT] 3G 測試

我裝的是 DD-WRT v24-sp2 (10/10/09) mega (Asus 500gP v1)

因為這個版本的 DD-WRT 已經沒有 modprobe 了, 所以我用 insmod

#insmod lib/modules/2.4.37/kernel/drivers/usb/serial/option.o


但是執行之後用 lsmod 還是只有看到 5 個, 這樣應該是 usb module 沒有 load 成功吧? 可是前面 insmod 也沒有任何訊息啊

# lsmod |grep usb usb-storage 40344 0 (unused) scsi_mod 101488 3 [usb-storage sd_mod] usb-ohci 20352 0 (unused) usb-uhci 29004 0 (unused) usbcore 84576 1 [usb-storage ehci-hcd usb-ohci usb-uhci]


將 libusb 裝好, 插入 USB modem (Huawei E169), 嘗試執行一下 usb_modeswitch (想當然是不會成功的, 前面 driver 根本就沒進來啊)

# usr/bin/usb_modeswitch -c /tmp/usb_modeswitch.conf Looking for default devices ... No default device found. Is it connected? Bye.


然後把 E169 拔掉, 再執行一次 usb_modeswitch, 結果如下

# ./usb_modeswitch -C /tmp/usb_modeswitch.conf No default vendor/product ID given. Aborting.


/tmp/usb_modeswitch.conf 的內容如下:

DefaultVendor=0x12d1; DefaultProduct=0x1003 HuaweiMode=1



最後修改: dennys (2010-02-12 00:41:54)


離線

 

#6 2010-02-12 08:39:14

dennys
天使
註冊日期: 2009-12-06
文章數: 111
目前積分 :   
網站

Re: [DD-WRT] 3G 測試

又做了一些測試

insmod 要給完整路徑, 不過執行之後, 用 lsmod 還是原來那五個. 不過我有測試一下, 用 insmod 載入 usb/serial/usbserial.o, 之後用 lsmod 是有看到多了一個 usbserial, 所以 insmod 應該是有作用的, 只是不知道為什麼載入 option.o 沒反應就是了.

另外, 我也試著改用 modules-1.9.2.7-d-r1087.tgz, 不過還是一樣.

# lsmod |grep us b usbserial 23980 0 (unused) usb-storage 40344 0 (unused) scsi_mod 101488 4 [usb-storage sd_mod] usb-ohci 20352 0 (unused) usb-uhci 29004 0 (unused) usbcore 84576 1 [usbserial usb-storage ehci-hcd usb-ohci usb-uhci]


還有關於 usb_modeswitch.conf, 我做了兩個修改. 一個是把第一行的分號拿掉, 另一個是把第二行改成 0x1001 (因為我用 E169), 如下

# more usb_modeswitch.conf DefaultVendor=0x12d1 DefaultProduct=0x1003 HuaweiMode=1


但是結果還是一樣

# usr/bin/usb_modeswitch -c /tmp/usb_modeswitch.conf Looking for default devices ... No default device found. Is it connected? Bye.


我覺得是 500gP 根本沒有抓到 USB, 因為拔掉 E169 之後的訊息還是一樣 orz


離線

 

#7 2010-02-12 21:39:07

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 3G 測試

dennys 提到:

(恕刪)
因為這個版本的 DD-WRT 已經沒有 modprobe 了

欲使用modprobe, 可安裝modutils套件.

dennys 提到:

可是前面 insmod 也沒有任何訊息啊

這是DD-WRT為人詬病之處. 一些指令想查閱說明, 未必能顯示, 錯誤訊息也一樣. 所以啟用訊息紀錄, 期能獲得更多資訊. 或者echo $? 檢查指令執行成功與否.


離線

 

#8 2010-02-12 21:58:34

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 3G 測試

dennys 提到:

(恕刪)只是不知道為什麼載入 option.o 沒反應就是了.

依我之前的經驗, dmesg必須能識別到3G modem, 後續驅動切換等, 才有希望. 而如何被識別就很傷腦筋, 有時候得接在USB Hub上. 狀況不一.


離線

 

#9 2010-02-12 23:45:04

dennys
天使
註冊日期: 2009-12-06
文章數: 111
目前積分 :   
網站

Re: [DD-WRT] 3G 測試

突然有了大幅進展...

後來測試不出來, 就把東西通通關掉, 不過 usb 還是插在 500gp 上. 剛開機連上去用 dmesg 看, 發現抓到了.

hub.c: new USB device 01:03.0-2, assigned address 2 HSDPA storage init performing... scsi0 : SCSI emulation for USB Mass Storage devices Vendor: HUAWEI Model: Mass Storage Rev: 2.31 Type: CD-ROM ANSI SCSI revision: 02 WARNING: USB Mass Storage data integrity not assured


但是我根本還沒有執行 insmod, 而且 lsmod 的內容並沒有變化

# lsmod |grep usb usb-storage 40344 0 (unused) scsi_mod 101488 3 [usb-storage sd_mod] usb-ohci 20352 0 (unused) usb-uhci 29004 0 (unused) usbcore 84576 1 [usb-storage ehci-hcd usb-ohci usb-uhci]


使用 lsusb 看, 有看到最後一個是 E169, 不過前面那個找不到 usb.ids 的錯誤訊息不知道是否可以忽略.

# ./lsusb ./lsusb: cannot open "/usr/share/usb.ids", No such file or directory Bus 004 Device 001: ID 0000:0000 Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 Bus 001 Device 002: ID 12d1:1001


再來就執行 usb_modeswitch, 看來結果是成功的

#usb_modeswitch -c /tmp/usb-modeswitch.conf Looking for default devices ... Found default devices (1) Accessing device 002 on bus 001 ... Using endpoints 0x02 (out) and 0x82 (in) Not a storage device, skipping SCSI inquiry USB description data (for identification) ------------------------- Manufacturer:  Product: HUAWEI Mobile Serial No.:  ------------------------- Sending Huawei control message ... OK, Huawei control message sent -> Run lsusb to note any changes. Bye.


到這裡我完全沒有用到 modules-1.9.2.7-d-r1087.tgz 的東西. 或許是 DD-WRT 後來的版本增加了些對 USB 裝置的支援了?

不過也只有到此為止了, 之後執行 pppd file /tmp/ppp/options.pppoe, 結果什麼都沒有, /tmp/chat.log 也沒產生. 有試著直接執行 chat, 會看到他準備發出 AT command, 不過當然不會成功. 不過 /tmp/chat.log 在直接呼叫 chat 的時候有產生, 因此我猜是 pppd 沒有執行完全.

所以只能猜測是 pppd 有問題了. 不知道在 DD-WRT 裡面 ppp 的設定是否有什麼需要注意的? 我是把 Connection Type 設定成 PPPoE, 其他什麼都沒設定.


離線

 

#10 2010-02-13 14:29:41

hippo
天使
註冊日期: 2008-10-07
文章數: 1562
目前積分 :   20 

Re: [DD-WRT] 3G 測試

dennys 提到:

使用 lsusb 看, 有看到最後一個是 E169, 不過前面那個找不到 usb.ids 的錯誤訊息不知道是否可以忽略.

可於The USB ID Repository下載usb.ids, 或參閱/opt/sbin/update-usbids.sh(usbutils套件)

dennys 提到:

到這裡我完全沒有用到 modules-1.9.2.7-d-r1087.tgz 的東西. 或許是 DD-WRT 後來的版本增加了些對 USB 裝置的支援了?

不過也只有到此為止了, 之後執行 pppd file /tmp/ppp/options.pppoe, 結果什麼都沒有, /tmp/chat.log 也沒產生. 有試著直接執行 chat, 會看到他準備發出 AT command, 不過當然不會成功. 不過 /tmp/chat.log 在直接呼叫 chat 的時候有產生, 因此我猜是 pppd 沒有執行完全.

所以只能猜測是 pppd 有問題了. 不知道在 DD-WRT 裡面 ppp 的設定是否有什麼需要注意的? 我是把 Connection Type 設定成 PPPoE, 其他什麼都沒設定.

如已建立/dev/usb/tts/0且切換為modem, 可於minicom下AT command撥號市話是否鈴響, 再回頭測試comgt或chat. comgt或chat主要是與3G modem通訊(AT command); pppd主要是與ISP通訊, 取得IP; 使用PPPoE主要是套用路由.
我之前是先追蹤理解CDMA@wifi整個過程, 看看如何玩把戲, 再於Lly測試. 再將流程套用於DD-WRT測試.


離線

 

友情連結

論壇頁尾

Powered by PunBB
© Copyright 2018 Rickard Andersson
RSS Feed