Raspberry PI 網路設定

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

    http://elinux.org/RPi_VerifiedPeripherals#USB_Wi-Fi_Adapters


我 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 中指定。

不過新版Raspbian(大約是2015年5月之後),改由dhcpcd管理,/etc/network/interfaces裡相關的那一行已變成:
iface eth0 inet manual
就算改成上述設定,也沒用。

應該要修改/etc/dhcpcd.conf,在最後加上:
interface eth0
static ip_address=192.168.1.177
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
(請根據你的網路組態,更換上面的設定。)

然後重開機即可。
這樣就完成了設定檔的修改,接下來重新啟動 network:

root@raspberry:~# /etc/init.d/networking restart
root@raspberry:~# /etc/init.d/networking reload

最後可以檢查一下自己的網路 IP 設定有沒有成功

root@raspberry:~# ifconfig

留言

這個網誌中的熱門文章

c語言-關於#define用法

CMD常用網管指令

PHP 與 JavaScript 之間傳值利用 json