2005年1月17日

[Linux] Debian on My ThinkPad R40 (7) - 與 Zaurus 以 USB Net 連接

拿到 Zaurus 近兩個星期,第一次使用 USB 連接線。想說試著與 Debian 連接,結果大出意料之外,遠比想像中容易。

把 USB 線連接兩頭之後,第一個反應是查 /var/log/messages,結果多了下面這一段:
localhost kernel: usb 2-1: new full speed USB device using address 2
localhost kernel: usb 2-1: control timeout on ep0in
localhost kernel: usb 2-1: control timeout on ep0in
localhost kernel: usb 2-1: new full speed USB device using address 3
localhost usb.agent[3818]: usbnet: loaded successfully
localhost kernel: usb0: register usbnet at usb-0000:00:1d.1-1, Sharp Zaurus, PXA-2xx based
localhost kernel: usbcore: registered new driver usbnet
顯然是 hotplug 有測到 Zaurus,而且是 usbnet。用 ifconfig -a 查,多了一項 usb0 的裝置:
usb0    Link encap:Ethernet HWaddr ??:??:??:??:??:??
    BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
所以我的工作只剩設定 usb0 而已。試了幾次,我在 /etc/network/interfaces 中加了個 logical interface:
iface zaurus inet static
    address 192.168.129.1
    netmask 255.255.255.0
    network 192.168.129.0
    broadcast 192.168.129.255
    up echo "1" > /proc/sys/net/ipv4/ip_forward
    up iptables -t nat -A POSTROUTING -o eth0 -s 192.168.129.201 -j MASQUERADE
    down iptables -t nat -D POSTROUTING -o eth0 -s 192.168.129.201 -j MASQUERADE
    down echo "0" > /proc/sys/net/ipv4/ip_forward
然後用:
ifup usb0=zaurus
ping 192.168.129.201
結果回應正常。

在 Zaurus 上用 ping,結果只有 192.168.129.1 有回應。查 route table,少了 default gateway,所以下指令:
route add default gw 192.168.129.1 dev usbd0
之後,ping 的回應正常。可是用 opera 仍無法上網,查 /etc/resolve.conf,name server 只有 127.0.0.1,所以加兩行:
nameserver 168.95.1.1
nameserver 168.95.192.1
大功告成。Zaurus 可以用 USB 透過 Debian 連上網路了。
192.168.129.1 (PC) 及 192.168.129.201 (Zaurus) 這兩個特定 IP 是前一陣子上網亂看 Zaurus 的資料發現的,不過不記得是在那看到的。



沒有留言: