update: 成功了!沒想到改用 Ubuntu based 作業系統:Leeenux v4 之後,居然就成功開啟 eeepc 701 的 ad-hoc 無線網路分享了!!!(設定參考)雖然我已經買無線AP了orz 不過用基地台還是比較方便啦。

衝了好多次結果還是 宣 告 失 敗 啊啊啊,故發表一篇筆記作紀念XD

原本是希望像這幾篇那樣:讓Vista的筆記型電腦也變成無線基地台(ref.1)(ref.2

無線網路真的是很難搞/困難的技術啊(尊敬)… 還是花錢買台別人做好的硬體無線AP比較快…畢竟就算無線網路卡有Software AP(softap)功能,通常也只支援Windows啊…

機型:Eee PC 701
試過的作業系統:

  • 內建 Xandros Linux
  • Leeenux(ref
  • Chromium OS(XEPC.org 的 lazyfai 釋出的 20091126, 20091211版本)
  • Eee PC Linux v1.7(ref

(其實重點應該是網卡驅動程式啦,不過我不懂那個…汗)

Internet eth0 EeePC 701 wlan0/ath0 iPod touch
192.168.x.x 1.1.1.254 1.1.1.1
Ethernet ad-hoc
eee

這個給 wlan0 的設定,已證實在 eth0 – Eee PC – eth1(USB網卡) 下可正常運作:

# 以下需以 root 權限執行
#! /bin/sh
sysctl -w net.ipv4.ip_forward=1
# 確定 ip forward=1
# run “sysctl net.ipv4.ip_forward" to check

ifconfig wlan0 down
iwconfig wlan0 channel 1
iwconfig wlan0 essid eee
iwconfig wlan0 mode ad-hoc
ifconfig wlan0 1.1.1.254 netmask 255.255.255.0 up

route add -v -host 1.1.1.1 dev wlan0

# 設定 iPod 為 1.1.1.1, EeePC為 1.1.1.254
# iPod – wlan0 – EeePC – eth0 – internet

iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -i wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 1.1.1.0/24 -o eth0 -j MASQUERADE

# 讓 1.x.x.x 都轉到 eth0
# run “iptable -L" to check all policies and chain rules

如果是 EeePC Linux,網卡是 ath0:

#!/bin/sh
# script modified from http://forum.eeeuser.com/viewtopic.php?id=58965

# before this,
# run “sysctl -w net.ipv4.ip_forward=1″
# run “sysctl net.ipv4.ip_forward" to check

# Destroy existing configuration for ath0 (wifi client)
ifconfig ath0 down
wlanconfig ath0 destroy
sleep 1

# Create and configure a new ad-hoc interface (Access Point)
wlanconfig ath create wlandev wifi0 wlanmode adhoc
sleep 3
iwconfig ath0 essid eee
sleep 1
iwconfig ath0 rate auto
sleep 1
iwconfig ath0 channel 11
sleep 1
ifconfig ath0 netmask 255.255.255.0

# This computer will be 192.168.0.1
# The iPhone will receive its ip via dhcp //actually don’t work
# The DNS should be FreeDNS @ 208.67.222.222 //actually don’t work
ifconfig ath0 1.1.1.254 up
sleep 1

# Add a routing rule to redirect all iPhone traffic through the ath0 interface
route add -v -host 1.1.1.1 dev ath0

# Start the DHCP daemon //because EeePC 701 don’t have dhcpd
#dhcpd ath0
# So I manually set static ip to iPhone
# and it works but no internet connection ;(

接著把 iPod touch 設定為靜態ip:1.1.1.1,Gateway設為 1.1.1.254,Netmask設為 255.255.255.0,連線到名為 eee 的無線訊號。
P.S. 有時候 essid 會跑掉,要重新設定一次。

但在 Leeenux 啟用 wlan0 後,iPod touch 甚至很難連上,就算連上的話,封包遺失率很大(ping時約遺失60%)。疑似與網卡驅動程式品質有關。

Chromium OS 啟用 wlan0 後,有個process “phy0″ 的CPU資源飆高,iPod 無法看到 eee 無線網路訊號。

內建 Xandros Linux 之前試 ad-hoc 內網互連很順沒問題,但在設定 iptables -t nat 時失敗,它說可能是 kernel 版本不夠新。(但又發現若是忘了加sudo也會顯示這樣的訊息)

Eee PC Linux v1.7 啟用 ad-hoc 模式後,訊號依舊時有時無…就算有連上時,封包遺失率也很大(ping時約遺失60%)

放棄了(煙)

P.S. 主要參考資料:

P.S.2 嘗試了這篇 iPhone 走 Ad-hoc 透過 Ubuntu 上 Internet,作業系統用的是 Leeenux (based on Ubuntu)

還是不行哪,能抓到無線訊號,但訊號很弱、且無法連線上網。