因為某些關係所以我買了一個開發板 RaspberryPi,因為之前原本對於 Arduino 有興趣,不過因為我是數位電子白痴,所以當時就不了了之。
這次買這個其實只是為了好玩,想說應該可以弄些有趣的東西在上面。
前言
我是從天瓏書局買到的,因為國外缺貨缺的很嚴重,然後這次的 Model B 又是升級版(出貨直接是 512MB 記憶體的版本),所以就衝一片回來玩玩看了。
這是外觀,我比較好奇的是,另外兩個朋友也有買,他們的都有防靜電套,我的卻沒有(哭哭,接口除了 GPIO 跟我很不熟,其他的都還算有看過。板子上有預留兩組模組專用接頭,聽說 10 月份官方會推出相機模組!這我就很感興趣了!
沒力的展示
第一次安裝會有這個畫面,我是直接使用官方的映像檔做安裝。步驟不麻煩,只是因為是 ARM 的關係,反應速度普普通通 XD
運作中的樣子,因為我家剛好有 HDMI,所以在 32" LCD 電視上設定也是很合理的!
一開始會有這個小 Logo 在螢幕上(因為霸佔電視會被揍所以改回電腦螢幕
預設有裝 LDXE 的桌面(後來想想我根本不需要桌面環境,速度太雞肋了點 XD
這是安裝 XMBC 的火力展示。因為樹莓派本身有硬體解壓縮的關係,所以即便是 1080p Full HD 播放起來一樣超流暢!
另外我無聊把他的字體換掉,讓他可以顯示中文字(主要是顯示 CJK 字體
看看底下的 CPU 使用量,要不是因為有硬體解碼,不然 XMBC 裝起來也是挺悲劇的就是 ...Orz
無線網路
我當初拿到樹莓派的第一個目的,就是想做一個 AP,隨身可以帶著走的 AP。所以我找了許多文章,不過由於我買的網卡是這張 TOTOLINK N150USM,然後他的晶片是 RTL8188CUS
,我查了好多文章,大部分的人都是在討論如何驅動他。
驅動倒是沒有問題,以最新版本的官方映像檔來說,他是可以正常使用的。你只要 lsmod
看一下有沒有 8192cu
這個東西在裡面,有的話就沒什麼問題了。一般以 WPA/WPA2 加密的無線網路來說,只要這樣設定他就會動了。
ctrl_interface=/var/run/wpa_supplicant
ap_scan=0
fast_reauth=1
network={
ssid="你的 SSID 名稱"
scan_ssid=1
proto=WPA RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="你的 WPA 密碼"
}
allow-hotplug wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -dBs -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
如果你怕失誤,那就分開執行,先跑這個,
wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
如果有噴錯誤就去改,如果都沒啥錯誤,那就 Ctrl+c
退出,用 ifdown wlan0
ifup wlan0
來試試看。可能是人品問題,我第一次設定就過了,如果沒過,建議先去吃齋唸佛一個禮拜,或者去看一下四爺,應該會有加持作用
Hostapd 安裝的心酸
說到 hostapd
真是讓人痛心!因為他預設是使用 nl80211
這個驅動模組,但是!這個東西必須要你的網卡是走這個驅動,你才能使用,不然都會出現 nl80211 not found
這種鬼打牆的狀態。然而,如果你強制編譯新的核心,讓他支援這樣的驅動,很抱歉的是,你的網卡會起不來(因為本來就不是吃這組)。
所以,我直接去官方抓了最新的驅動程式,解開後去拆驅動程式裡面的原始碼,赫然發現裡面的設定檔中寫到,我買的這張網卡,驅動是吃這一個 rtl871xdrv
!
鬼知道你吃啥驅動啊(怒#
然後我就因為這個驅動問題,連續被婊了三天!三天!三天!三天!三天!三天!三天!三天!三天!然後,請使用 TOTOLINK 官方或是 Realtek 所提供的驅動程式包,裡面的 hostapd
,自己編譯起來用!因為最新版本的,不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!
你用樹莓直接編譯也沒有很久,他就只是個小程式,等你編好了之後,可以確認一下版本。
pi@raspberry ~ % hostapd -v
hostapd 0.8.x
User space daemon for IEEE 802.11 AP management,
IEEE 802.1x/WPA/WPA2/EAP/RADIUS Authenicator
Copyright (c) 2002-2011, Jouni Malinen <[email protected]> and contributors
另外,你需要安裝 isc-dhcp-server
這個直接裝就好了,沒什麼特別的。接著是 hostapd.conf
,這個檔案你隨便放都無所謂,名字隨便取也無所謂。
interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=你的SSID名稱
channel=6
wpa=2
wpa_passphrase=你的密碼
driver=rtl871xdrv
beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=0
auth_algs=1
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400
然後可以用 hostapd hostapd.conf -dd
來測試。如果測試都沒問題了,那就可以把他們兜在一起了。
先設定一下 dhcpd.conf
,你裝好 isc-dhcp-server
設定檔會放在 /etc/dhcp/dhcpd.conf
這裡,
ddns-update-style none;
option domain-name "hello.raspberry.pi";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.77.0 netmask 255.255.255.0 {
range 192.168.77.2 192.168.77.22;
option routers 192.168.77.1;
}
裡面的 192.168.77.x
你可以改掉,網段隨你取就是了。再來把原本的 /etc/network/interfaces
的設定註解掉,改由 manual
,
allow-hotplug wlan0
#iface wlan0 inet dhcp
#pre-up wpa_supplicant -dBs -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet manual
接著執行這一堆東西,喔,請用 sudo
,裡面的 192.168.77.x
跟剛剛的 dhcp 設定有關,
ifconfig wlan0 192.168.77.1 netmask 255.255.255.0
iptables -A INPUT -i wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.77.0/24 -o eth0 -j MASQUERADE
sysctl net.ipv4.ip_forward=1
hostapd /home/pi/hostapd.conf -B
dhcpd wlan0
然後你用你的裝置去掃一下 SSID 看有沒有,如果連得上,也可以透過 eth0
出去,那恭喜你,你就成功了!
畫面紀錄
由於 isc-dhcp-server
預設是開機啟動(2,3,4,5),如果你不是要一直當 AP 的話,是可以把他做成不啟動啦其實。
結語
如果不會動,重開機或是看一下四爺會有效(喂