Enjoy my life
關於部落格
此部落格紀錄著本人遊玩的遊記,照片接可以直接點選放大成原尺寸,所有照片皆有版權,若非本人允許,請不要做非法之商業用途。
  • 132100

    累積人氣

  • 3

    今日人氣

    0

    訂閱人氣

敗家學習之旅之樹莓派(Raspberry Pi) Realtek WIFI AP 架設成功心得分享

其實剛到手時都是接公司網路來做研究與測試,最近總算研究一些心得,主因就是最近買的SONY Xperia Z,可能是支援的東西太多了,但偏偏身旁卻沒有較合適的裝置可支援,如WIFI Direct 連線,我的郭董牌TV竟不支援(韓系的三爽與野螺雞都有支援...無奈~),真是悶壞了,而最令我生氣的地方就是SONY的WIFI訊號真的很不好,只要訊號微弱,就會自動偵測重連(講難聽點就是迅斷,非常耗電),除非是很靠近AP端,而小弟是使用最廉價的ASUS N10,更容易發生啦,很悶的就是老爸的IPAD,老妹的筆電都不會有這種問題,而為了避免這種問題,只好研究研究如何架設第二台AP,想來想去,就拿PI來著手吧。 先分兩部分,首先家裡的中華電信的adsl要先能連起來吧,如同WINDOWS系統得要透過PPPOE輸入帳號密碼方能連線,而Raspbian Wheezy上要使用其實並不難,只要抓兩個套件就可以看圖說故事啦! 小弟是使用apt-get 來安裝套件,而所有皆是root權限(請先執行sudo -i一次之後就是root權限啦~) apt-get install ppp pppoeconf 裝好後直接執行 pppoeconf 就可以透過UI來設定網路嚕 備註:若此時沒網路的請下載這兩款套件吧,記得是for ARM使用的就行啦~ 接下來就會進入一連串的UI,反正不會或懶得看的就按 "YES" 或 "OK" 吧 按 YES ~ 按 YES ~ 這裡就是重點啦,輸入撥接的帳號,以hinet則為 XXXXXXXX@hinet.net,XXX為帳號名稱 這裡輸入 密碼(別懷疑,這裡不會隱藏成*號) 按 YES ~ 按 YES ~ 按 YES ~ 按 YES ~ 按 OK 離開 離開後可以輸入 ifconfig 來查詢一下是否有成功撥接成功,左邊多一個PPP0(零,不是歐唷)與當前IP address 至此先恭喜啦,至少可以上網樂一下了~ 而要架設WIFI Access Point可就要花些功夫了,首先要有一張可支援AP mode的無線網卡(廢話~),這次我聽同事Jason的話選擇了相容性最好的REALTEK的晶片,為何說相容性最好呢,這傢伙出的產品無論在WINCE,XP/WIN7,Ubuntu上,driver絕大部分可說是內建阿,省去了安裝DRIVER上的困擾,(CE/linux driver可不像WinXP/7滑鼠輕鬆點兩下就裝起來的唷),而這次也是特別針對Chip去採購,Chip Name為 R8188CUS(買到R8188SU的或更早的請趕快退貨~)。 老實說問遍了新竹NOVA所有店家都不知道我要買啥,畢竟晶片不會外露我也看不到,都是官話保證七天換新,linux可用...等,最後在Y拍找到這產品,代理商是祖國某公司,一個299。 真的好小一隻,天線是隱藏式的 跟我的無線滑鼠感應器一樣大 在一起感覺上也挺和的來的說(別鬧了~) 果然很順利的,隨插就真的即用了(如下圖,可使用 lsusb指令來查詢目前所有的USB裝置)。 而且還可以直接連上WIFI上網(需安裝wpa_supplicant套件),不過就不介紹啦,畢竟這不是我的需求,接下來就研究如何當AP讓我的SONY Xperia Z上網吧! 架設Wireless AP又需要安裝幾樣套件,由屬hostapd 與 dnsmasq最重要。不過令人扼腕的是...我把ARM想得太簡單了,內建的DRIVER確實是可以用的,但是hostapd確認不到內建的DRIVER(當成AP模式時,會變成這一隻 "nl80211"),然後就會出現nl80211 not found(輸入iw list),想當然爾,第一直覺就是換DRIVER嘛~但是為了build driver又搞掉我幾週,首先kernel 跟library必須要更新至3.X版(build 一次kernel粉久~~~),再者,DRIVER就算真的給你build出來結果卻因為不相容""不給置換""",心中真的是燃起TMD好想退貨,因此原先熱情就降被澆了一盆冷水。 就降閒置一個月後(過年+修圖等的),總算在PI論壇上似乎有高手分享了,原來driver不用換,但是所有的wireless tools都要換成由Realtek提供的,那就直接上吧。 首先將Realtek官網的driver抓下後解壓縮至/home/pi/Realtek(沒有一定,個人喜好) 再依序安裝,懶得貼圖,直接寫攻略(一方面也是自己以後還用的到) ,也是在root模式下。 ### 首先 安裝 Realtek 提供的 hostapd 套件 ### apt-get install hostapd apt-get remove hostapd (別懷疑,裝了在移除~目的是把一些目錄夾以及conf檔案建起來) cd /home/pi/Realtek/wpa_supplicant_hostapd (切換目錄~) unzip wpa_supplicant_hostapd-0.8_rtw_20120803.zip (解壓縮如下圖,如果不是zip請自行找方法解壓縮吧) cd wpa_supplicant_hostapd-0.8/hostapd (切換目錄~) make clean (清除中繼檔~) make (compile~) make install (接下來installer會把三個檔案建立在/usr/local/bin如下圖) 把檔案複製一份過去,從 /usr/local/bin 複製到 /usr/sbin (把/usr/local/bin/底下所有檔案移過去(hostapd跟hostapd_cli兩個),不然開機服務無法自動執行成功也挺困擾的,當然您也可以增加路徑(PATH="/usr/local/bin")在/etc/init.d/hostapd,不過我覺得用複製的比較簡單啦!) 可以執行一下hostapd -v 來看一下版本,Realtek套件中版本為0.8 ### 再來安裝Realtek 提供的 wireless tool ### cd /home/pi/Realtek/wireless_tools/ (切換目錄~) tar zxvf wireless_tools.30.rtl.tar.gz (解壓縮,如果不是tar.gz請自行找方法解壓縮吧) cd wireless_tools.30.rtl/ (切換目錄,進度如下~) make clean make make install 最後安裝完畫面如下 呼~到這完工40%啦,接下來編輯/etc/hostapd/hostapd.conf 檔案(要自己建),檔案內容如下(我的設定): interface=wlan0 driver=rtl871xdrv ssid=Cisty_PI (就是AP名稱,只要最後手機認的到就好) hw_mode=g channel=3 wpa=2 (WPA2加密ONLY, WIFI會跟我一樣瞬間斷訊號的記得選2) wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP CCMP rsn_pairwise=CCMP wpa_passphrase=1234567890 (密碼阿...) 至於更進階的設定,有空再研究吧! 存檔後,可以執行 hostapd /etc/hostapd/hostapd.conf -B, 如果完沒有顯示error,可以輸入 iwconfig如下圖會秀出conf檔的資訊就代表沒問題啦~這個時候可以開啟Z,而且還真的找的到唷,阿不過由於IP轉址還沒設定好,因此只能看而無法連線~ 如果想要開機自動執行,請再編輯default檔案 /etc/default/hostapd 找到這行把註解給刪掉(或直接複製貼上下面那兩行也可以,如下圖)再給上conf位置就可以啦 RUN_DAEMON=”yes” DAEMON_CONF=”/etc/hostapd/hostapd.conf” 接下來就是設定IP位址了,把無線網卡(wlan0)轉成固定IP吧 編輯/etc/network/interfaces 原先的就不用動他,找到wlan0後,嗯,好吧,參照我的寫法吧~ auto wlan0 iface wlan0 inet static address 192.168.99.1 ( 192.168為區網使用,.99沒什麼意思,只是筆者紀念Manny來台打職棒,喜歡陳偉殷或王建民的就選16與40吧,1就是第一臺電腦的意思,建議換那個.99就可以了) netmask 255.255.255.0 存檔後,就重啟服務啦!不過restart好像不行,非得要關掉再開才行,若用ssh遠端連線會斷線要重連一次 /etc/init.d/networking stop /etc/init.d/networking start 再執行一次ifconfig檢查一下ip有沒有被設定成你寫IP address(192.168.99.1)。 完成位IP址指定後,接下來就是設定DNS轉址啦(加油!快完工了!hold 住吧!)~ 軟體有兩套其一是 isc-dhcp-server 另一套是 dnsmasq ,我選後面那套,沒啥原因,因為論壇大多是用這套居多。 這個套件還好,跟Realtek無關,直接抓下來用就可以了 apt-get install dnsmasq 安裝好後編輯設定檔 /etc/dnsmasq.conf 這個檔案真的是又臭又長的,如果沒其他使用的需求,直接拉到最底下,加入下面兩行存檔後離開。 interface=wlan0 dhcp-range=192.168.99.2,192.168.99.127,12h (還記得剛剛設定的IP嗎,.99要一樣唷,然後開放個幾台連線就可以了,IP從2(1給網卡拿去用了)到127,也可以設定下列的 2~7,2~15,2~31,2~63,2~127。12h代表12小時換一次位址) 若要每次開機執行,請再編輯這個default檔 /etc/default/dnsmasq 找到這行,把註解(#)給刪掉 DNSMASQ_OPTS="--conf-file=/etc/dnsmasq.conf" 再把這行加上註解(#) #CONFIG_DIR=/etc/dnsmasq.d 最後再重起服務就dns轉址就正式完工啦~不過記得service要重新啟動唷。 /etc/init.d/dnsmasq restart 最後,最後,真的最後啦~執行下面三行,就可以準備拿Xperia Z來試連看看了。 sysctl net.ipv4.ip_forward=1 iptables -A INPUT -i wlan0 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -o ppp0 -j MASQUERADE 上面那行說明一下,IP位址如dnsmasq與network設定(就是那個.99),ppp0是對外連線的interface,如果不是撥接的那有可能是eth0嚕,記得切換就好。 最終測試,拿起Z開啟wifi連連看吧,經過認證後終於可以順利使用啦,連線速度以及順暢度也還不錯呢~ 左:兩個AP,上面那個訊號佳的就是啦,樓下那台因為隔太遠再配上Xperia Z的兩光WIFI,自然就訊號很差啦 右:很正常嘛,第一次進入是要認證的 最終顯示已連線,就代表沒問題啦,當然要上個網路試試看效果啦~ 不過這僅是簡易AP,速度與耐操度還是會受限制的,上週回娘家一共服務了5台無線裝置,小姪子的筆店,以及一台平板電腦與三隻智慧型手機,起初還真的大家用的爽爽的,不過還是會有過熱與熱當的問題以及電壓不足的囧況,因此散熱與供電可要稍加注意就是了。 注意事項: 雖然說Raspberry PI輸入電壓為5V,但是經小弟測試使用後,建議好歹電流要使用700ma以上,很糟糕的是原廠並沒有附贈變壓器(廢話,所以才那麼便宜阿~),部份usb裝置會偶爾無法正常運作,尤其是非常耗電的裝置得要特別注意啦,3C用品買多了,身邊變壓器閒置的真的一堆,得要測試測試嚴格挑選一下了。 零零總總常用的5V充電器一堆,哈!我也不知哪來那麼多,就都集合一下晚點名 左一:IPAD,5V,2.1A,左二:老爸的NOKIA手機,5V,1A 左三:SONY Z,5V,1.5A,左四:SONY U,5V,850mA 右三:USB喇叭電源 5V, 1A ,右二:sansumg WB2000相機, 5V, 450ma 右一:SE J108i 5V,550ma 早先是使用550ma的SE手機充電器,不過會有供電不足的問題,當然如果只有接鍵盤與滑鼠就沒差啦,串接一個usb hub就開始會供電問題了。 最後我選用了我的 Sony Xperia Z所提供的1500ma變壓器,反正平常也不會用這個來充電,總之電壓與電流要選一個合用的就是啦。 後記:這顆chip 還有支援P2P的WIFI Direct唷,剛好我的Z也有支援,過陣子有空再來研究一下WIFI direct,讓手機能藉由WIFI直接連進PI,透過HDMI電視輸出啦!
相簿設定
標籤設定
相簿狀態