HINA::工程幼稚園

偏執與強迫症的患者,算不上是無可救藥,只是我已經遇上我的良醫了。

[RPi] 我的樹莓派

因為某些關係所以我買了一個開發板 RaspberryPi,因為之前原本對於 Arduino 有興趣,不過因為我是數位電子白痴,所以當時就不了了之。

這次買這個其實只是為了好玩,想說應該可以弄些有趣的東西在上面。

前言

我是從天瓏書局買到的,因為國外缺貨缺的很嚴重,然後這次的 Model B 又是升級版(出貨直接是 512MB 記憶體的版本),所以就衝一片回來玩玩看了。

這是外觀,我比較好奇的是,另外兩個朋友也有買,他們的都有防靜電套,我的卻沒有(哭哭,接口除了 GPIO 跟我很不熟,其他的都還算有看過。板子上有預留兩組模組專用接頭,聽說 10 月份官方會推出相機模組!這我就很感興趣了!

沒力的展示

IMG_2496

第一次安裝會有這個畫面,我是直接使用官方的映像檔做安裝。步驟不麻煩,只是因為是 ARM 的關係,反應速度普普通通 XD

IMG_2504

運作中的樣子,因為我家剛好有 HDMI,所以在 32” LCD 電視上設定也是很合理的!

IMG_2505

一開始會有這個小 Logo 在螢幕上(因為霸佔電視會被揍所以改回電腦螢幕

IMG_2506

預設有裝 LDXE 的桌面(後來想想我根本不需要桌面環境,速度太雞肋了點 XD

IMG_2507

這是安裝 XMBC 的火力展示。因為樹莓派本身有硬體解壓縮的關係,所以即便是 1080p Full HD 播放起來一樣超流暢!

IMG_2508

另外我無聊把他的字體換掉,讓他可以顯示中文字(主要是顯示 CJK 字體

IMG_2512

看看底下的 CPU 使用量,要不是因為有硬體解碼,不然 XMBC 裝起來也是挺悲劇的就是 …Orz

IMG_2513

無線網路

我當初拿到樹莓派的第一個目的,就是想做一個 AP,隨身可以帶著走的 AP。所以我找了許多文章,不過由於我買的網卡是這張 TOTOLINK N150USM,然後他的晶片是 RTL8188CUS,我查了好多文章,大部分的人都是在討論如何驅動他。

驅動倒是沒有問題,以最新版本的官方映像檔來說,他是可以正常使用的。你只要 lsmod 看一下有沒有 8192cu 這個東西在裡面,有的話就沒什麼問題了。一般以 WPA/WPA2 加密的無線網路來說,只要這樣設定他就會動了。

/etc/wpa_supplicant/wpa_supplicant.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
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 密碼"
}
/etc/network/interfaces
1
2
3
allow-hotplug wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -dBs -Dwext -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

如果你怕失誤,那就分開執行,先跑這個,

1
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,自己編譯起來用!因為最新版本的,不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!不支援這張卡!

Realtek 官方驅動程式, RTL8188CUS

你用樹莓直接編譯也沒有很久,他就只是個小程式,等你編好了之後,可以確認一下版本。

1
2
3
4
5
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 <j@w1.fi> and contributors

另外,你需要安裝 isc-dhcp-server 這個直接裝就好了,沒什麼特別的。接著是 hostapd.conf,這個檔案你隨便放都無所謂,名字隨便取也無所謂。

hostapd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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 這裡,

dhcpd.conf
1
2
3
4
5
6
7
8
9
10
11
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

/etc/network/interfaces
1
2
3
4
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 設定有關,

/etc/network/interfaces
1
2
3
4
5
6
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 出去,那恭喜你,你就成功了!

畫面紀錄

IMG_2555

IMG_2556

由於 isc-dhcp-server 預設是開機啟動(2,3,4,5),如果你不是要一直當 AP 的話,是可以把他做成不啟動啦其實。

結語

如果不會動,重開機或是看一下四爺會有效(喂

參考文件

用hostapd架设无线AP分享有线网络连接

Comments

Google 廣告