樹莓派做便攜式wifi熱點 無線AP,用Ralink RT5370古董級芯片usb無線網卡的實施記錄

由於我的樹莓派一直是放在家裏掛機,7x24小時不間斷運行,插網線的連接,所以爲了自用或外出遊玩方便,可以用樹莓派做一個熱點,專門供給自己筆記本和pad手機等終端:

大體意思就是,樹莓派帶無線網卡先配置好,然後插一根網線到賓館網口(朋友,家裏網口)就可以構成一個局部Wifi熱點,方便自用。因爲綜合工況下ethernet有線網絡的傳輸帶寬和速度整體還是要比掛接無線網穩定可靠些!


參考了,網上找到的兩個大牛的文章:

一個是:http://blog.csdn.net/xukai871105/article/details/42497097

還有一個是:http://blog.chinaunix.net/uid-26333327-id-3212280.html

前者非常詳細,後者起源更早。


開始實施:

上TB買了Ralink的RT5370 usb無線網卡,在Win7的PC機上使用光盤軟件安裝驗證過了,無線wifi和軟AP功能都ok的,信號也不錯。


插上網卡,系統自動識別usb設備。。。。



更新源, apt-get update

安裝iw

然後再安裝hostapd


按照那個帖子的方法,一步一步都安裝了,然後啓動服務,



可是雖然有wifi熱點信號,但手機和電腦就是連不上去,很奇怪。。。。


嘗試去修改conf文件裏的密碼和WPA等級,以及dchp的設置,好像都沒有用。。。

一頭霧水。。。。。搞了兩個晚上都沒效果。。。。。最後甚至用手機連都連不上去了,驗證不通過。


直到----------------------------

看到這個帖子: http://blog.csdn.net/lqrensn/article/details/8191486

依然沒幫助,好吧,最開始第一次配置時是可以連接上去的,那麼嘗試把hostapd.conf文件的設置改成最開始的參數

interface=wlan0
driver=nl80211
ssid=Raspberry_AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

終於是可以連接成功了,連接了上去。但是試了應用發現網絡依然沒有數據,也就是說NAT的ip轉發時沒用的,沒數據。

(最後才發現,這幾個參數看起來很簡單,但最好要根據自己網卡的實際情況去仔細配置修改,只有某些特定的參數最合適成功連接。)



那麼該怎麼修改呢??

忽然擡眼發現wlan0的狀態上ip地址192.168.10.1和netmask又丟失了。。。。趕緊補回來,

ifconfig wlan0 192.168.10.1 netmask 255.255.255.0

然後再手機app嘗試,居然成功了!!!!有數據啦!!!!耶,大功告成!原來就差那麼一步。



hell yeah! 

網速剛剛滴!手機看視頻超流暢!


純獨立,軟AP熱點,便攜式商旅出差必備神器,不用再去買什麼tplink商旅無線路由了!


---------------

好了,最後還殘留一個問題,就是,每次樹莓派關機重啓後,這個wlan0的ip設置就會丟失,
也就是說那個 /etc/network/interfaces 配置文件裏的iface設置在重啓的時候其實沒起到作用。


目前還不知道原因所在。。。。。待解決中。

-------------------------

2015-02-03更新

拜讀了csdn一位大牛的這篇文章後,發現了同樣的問題,以及解決辦法:

原文鏈接: http://blog.csdn.net/w565911788/article/details/41347515

2013年12月12日更新

最近經常發現無線網卡配置的DHCP不能發揮作用,經過排查發現給無線網卡指定的靜態IP失敗了,也就是說無線網卡沒有IP導致DHCP無法工作,在網上找到這篇文章《Why won't dnsmasq's DHCP server work when using hostapd?》,根據內容我將/etc/default/ifplugd的內容修改配置如下:

<span style="background-color: rgb(204, 255, 255);"><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 153); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">INTERFACES</span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 102); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><strong>=</strong></span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(153, 51, 51); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">"eth0"</span>
<span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 153); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">HOTPLUG_INTERFACES</span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 102); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><strong>=</strong></span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(153, 51, 51); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">"eth0"</span>
<span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 153); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">ARGS</span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 102); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><strong>=</strong></span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(153, 51, 51); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">"-q -f -u0 -d10 -w -I"</span>
<span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 153); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">SUSPEND_ACTION</span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(0, 0, 102); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;"><strong>=</strong></span><span style="margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: baseline; color: rgb(153, 51, 51); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;">"stop"</span></span>

重啓了幾次進行測試,結果一切正常!

------------------------------------------

作者參閱了國外的論壇討論,這裏:http://raspberrypi.stackexchange.com/questions/9425/why-wont-dnsmasqs-dhcp-server-work-when-using-hostapd

我把他們討論的話翻譯了下:


Why won't dnsmasq's DHCP server work when using hostapd?

我之前玩這些玩的好好的, 但後來蛋疼跑去換了個新的 wifi 棒 (用的更好的Atheros芯片) , 重新配置了之後發現樹莓AP再也玩不起來了;

我現在在啓動日誌裏查到這些:

DHCP request received on wlan0 which has no address

具體問題我發在這裏了: http://raspberrytank.ianrenton.com/day-22-i-occidentally-a-whole-access-point/

確實如此, ifconfig 查看後發現 wlan0 根本沒分配地址, 即便設置成了 auto wlan0 以及設了靜態地址 (192.168.99.254)

於是我又手動搞了下:

sudo ifconfig wlan0 192.168.99.254

現在有ip地址了, 然後我就抓到了消息 DHCP 從客戶 192.168.88.xxx  (android phone)那裏獲得了一個請求

天哪這是我家裏wifi無線覆蓋的距離!!

我抓不到日誌記錄, 反正就是那邊ip地址獲取有衝突,手機請求ip爲 192.168.88 and 192.168.99, 服務端在響應但手機好像沒啥反應.

有人能幫我解決嗎? 真不想從頭再來搞一遍了.

那個 DHCP 錯誤格式如下: (example from a different site)

DHCPREQUEST for 172.30.99.41 (172.30.112.121) from 00:50:41:72:67:2e via eth0: wrong network.

更新1:

我手動停止了 dnsmasq 然後再開啓 udhcpd (這貨在我切換到 dnsmasq 之前是開啓的). 服務端仍不斷地在哪兒使勁發ip但手機客戶端獲取不到.

這表明根本不關 DHCP servers 的事.

更新2:

我的網口配置:

  • eth0: RPi ethernet, 並沒插什麼
  • eth1: 華爲 E3131 in hi.link mode
  • wlan0: Atheros 芯片的 USB網卡 802.11n WiFi
  • mon.wlan0: 我也不知道這是啥。
  • tun0: OpenVPN to home network when it's running

數據流量通過 wlan0 進來,然後 NAT 定向到 eth1 (已入網)
tun0 will come up at boot (if I get it working, only works on command line at the moment), become the default route and squid proxies all the http traffic over that (to stop tmobile mangling all the http traffic)

shareimprove this question


兩個回答:


先禁用掉 ifplugd 
然後修改文件 /etc/default/ifplugd 內容成如下 -
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"

shareimprove this answer
 
 
用我日誌裏面的內容替換掉eth0? 用小派上 Stack exchange 這網站太慢了我沒法複製粘貼你說的那些logs日誌, 我正在用google查找類似的錯誤問題. –  RoboJ1M Sep 5 '13 at 8:04
 
這種情況, 直接 apt-get purge ifplugd 試試看啊 –  Lawrence Sep 6 '13 at 0:59 
 
我第二天又玩了下吼, DHCP "竟然TMD正常工作了!". 但依然會時不時出現wlan0分配不到ip的情況, 於是我就把 INTERFACES 和 HOTPLUG 列表改成了: eth0 eth1 tun0, 這樣不包含 wlan0 在內了. 現在啓動ok剛剛地 wlan0 正常分配了 IP, DHCP 也很ok. –  RoboJ1M Sep 6 '13 at 11:29

嗨,大家好,我也遇到了這個問題哦,在hostapd.啓動的時候 wlan0接口丟失其ip配置。

但我並沒有去修改 ifplugd 裏面的配置, 而是通過去除 DAEMON_CONF文件裏面的配置來實現了,這個文件在 /etc/default/hostapd

我添加了 hostapd /etc/hostapd/my-hostapd.conf 這句話到 /etc/network/interfaces 這個配置文件裏面 (添加到 iface wlan0 inet static 這句後面). 

更詳細的可以參考 /usr/share/doc/hostapd/README.Debian.

shareimprove this answer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章