2013年4月1日 星期一

Raspberry PI : wireless network 無線網路

2013年4月1日 星期一
雖然 Raspberry PI Model B 已內建一個 ethernet 可供有線網路的連接,如果不想拉條長尾巴在小巧的 Raspberry PI 上,我們可以使用 USB 的無線網卡來進行網路連線。至於哪一種比較好用,可能要上網研究一下,最基本的條件當然是得要省電囉!我手上剛好有一個 D-Link DWA-110 (Ver. A1),試過了,它雖然體積大了一點,可以直接插在 Raspberry PI Model B 的 USB 上使用。
關於有哪些 USB 無線網卡有支援的,可以參考下列的網址:


我 SD 卡中安裝的系統版本如下:
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux
當 D-Link DWa-110 插入 USB 後,利用 sudo lsusb 指令可以查到類似以下的訊息:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 005: ID 07d1:3c07 D-Link System DWA-110 Wireless G Adapter(rev.A1) [Ralink RT2571W]

由最後一個裝置的訊息看來,DWA-110 已經直接抓到,不用再特別安裝驅動程式了。

這樣,我們只要修改兩個和無線網路相關的設定檔後,即可進行無線網路的連線了。


修改 /etc/network/interfaces

無論有線或是無線網卡的設定都在 /etc/network/interfaces 中,我的系統安裝後即有底下的預設值:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
其中,粗體字那三行是和無線網路有關的,我們把那三行換成底下的四行設定:
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
粗體字的部份是不同的地方。
這樣的設定讓無線網路可以:
  • 在下次啟動系統時順便將網卡自動設定好
  • 使用 DHCP 的方式來動態設定網路組態。
  • 無線網路 wpa 認證的相關資訊則由 /etc/wpa_supplicant/wpa_supplicant.conf 來提供。


修改 /etc/wpa_supplicant/wpa_supplicant.conf

修改完前述的 /etc/network/interfaces 後,我們要把要和無線網路基地台的連線資訊寫入設定檔中,這裡使用的檔案路徑是用和 GUI 設定程式使用同一個檔案(/etc/wpa_supplicant/wpa_supplicant.conf),這樣才不會有找不到設定到哪裡去的困擾。

執行底下的指令來開啟檔案修改:
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
假設我們和 AP 連線的資訊如下:

  • ssid : happy
  • wpa 密碼 : 12345678

就在 /etc/wpa_supplicant/wpa_supplicant.conf 中加入以下的內容:

network={
ssid="happy"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="12345678"
}

增修改設定就按 Ctrl + x 儲存並結束。

都好了,我們就可以來測試一下囉!執行底下指令來重啟各網路界面:
sudo /etc/init.d/networking restart
如果成功,我們可以執行底下的指令來觀察各界面拿的 IP:
ifconfig -a
特別注意 wlan0 的那個 interface ,它是無線網卡的。


可不可以直接將 AP 的連線資訊寫在 /etc/network/interfaces 中呢?可以先將 wpa-conf 那一行註解掉(在最前面加一個井字號),然後試試底下的設定:

auto wlan0
iface wlan0 inet dhcp
       wpa-ssid "happy"
       wpa-psk "12345678"
不過,要注意的是,/etc/network/interfaces 預設的權限是任何人都可以讀取的,安全要特別注意。



網卡的固定 IP

如果想用固定 IP ,在 /etc/network/interfaces 中的設定格式如下:

iface eth0 inet static
        address 192.168.2.100
        netmask 255.255.255.0
       gateway 192.168.2.254

無線網路的話,就將 eth0 換成 wlan0 ,上述的設定指定了:

  • 網址:192.168.2.100
  • 遮罩:255.255.255.0
  • 閘道:192.168.2.254


DNS 則必須在 /etc/resolv.conf 中指定。






沒有留言:

張貼留言

 
雄::gsyan © 2009. Design by Pocket