這裡介紹如何在樹莓派的終端機中以指令的方式,調整無線網路的組態設定,讓樹莓派可以連上網路。
樹莓派在有 X Window 桌面環境時,可以很方便使用圖形界面的網路工具設定無線網路,使用方式很直覺,直接從選單中選擇要連線的無線網路即可。
但如果是沒有啟用 X Window 桌面環境的樹莓派,要設定無線網路的話,就要在命令列中以指令的方式操作,以下是設定 Linux 無線網路相關的指令教學。
首先檢查一下所有的網路卡狀態:
ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:e4:3f:da inet6 addr: fe80::b7b3:9f32:8071:b682/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:328 errors:0 dropped:0 overruns:0 frame:0 TX packets:328 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:26616 (25.9 KiB) TX bytes:26616 (25.9 KiB) wlan0 Link encap:Ethernet HWaddr e8:4e:06:1f:ff:4e inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0 inet6 addr: fe80::ea4e:6ff:fe1f:ff4e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1363 errors:0 dropped:476 overruns:0 frame:0 TX packets:656 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:103353 (100.9 KiB) TX bytes:143070 (139.7 KiB) wlan1 Link encap:Ethernet HWaddr f8:1a:67:18:3a:ab inet6 addr: fe80::7cb0:b6af:2951:cbb2/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
以我的狀況來說,我在第一代的樹莓派上插上兩張 USB 的無線網路卡,第一張 wlan0
用於對內的區域網路,而第二張 wlan1
則準備用於對外的網際網路連線,所以接下來我要在命令列設定 wlan1
的網路組態,讓它可以對外連線。
sudo iwlist wlan1 scan
wlan1 Scan completed : [略] Cell 04 - Address: C4:6E:1F:C1:8E:EE Channel:6 Frequency:2.437 GHz (Channel 6) Quality=42/70 Signal level=-68 dBm Encryption key:on ESSID:"SEAL" 1 Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=000003a7f3f68cb7 Extra: Last beacon: 700ms ago IE: Unknown: 00045345414C IE: Unknown: 010882848B960C121824 IE: Unknown: 030106 IE: Unknown: 0706545720010B1B IE: Unknown: 2A0100 IE: IEEE 802.11i/WPA2 Version 1 2 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK IE: Unknown: 32043048606C IE: Unknown: 2D1A6E1103FF00000000000000000000000000000000000000000000 IE: Unknown: 3D1606071500000000000000000000000000000000000000 IE: WPA Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101030003A4000027A4000042435E0062322F00 IE: Unknown: DD1E00904C336E1103FF00000000000000000000000000000000000000000000 IE: Unknown: DD1A00904C3406071500000000000000000000000000000000000000 IE: Unknown: DD0900037F01010000FF7F IE: Unknown: DD990050F204104A0001101044000102103B0001031047001000000000000010000000C46E1FC18E101021000754502D4C494E4B10230009544C2D57523734304E10240003342E3010420003312E301054000800060050F204000110110019576972656C65737320526F7574657220544C2D57523734304E100800020086103C000101104900140024E26002000101600000020001600100020001 [略]
1 ESSID
就是無線網路的名稱。
2 IE: IEEE 802.11i/WPA2
代表這個 WiFi 無線網路支援目前比較新的 WPA2 加密。
依據 ESSID
名稱找到要連線的 WiFi 無線網路之後,編輯 /etc/wpa_supplicant/wpa_supplicant.conf
設定檔,加入這個無線網路的設定:
network={ ssid="SEAL" psk="your_password" }
其中的 psk
就是無線網路的密碼。若要查詢其他更詳細的設定方式,請參考 wpa_supplicant.conf
的 man page:
man wpa_supplicant.conf
一般來說,wpa_supplicant
會自動偵測到設定檔的變更並且載入新的設定,若沒有自動生效的話,就使用手動的方式重新啟動無限網路卡:
sudo ifdown wlan1 sudo ifup wlan1
查看 wlan1
的網路狀態:
ifconfig wlan1
wlan1 Link encap:Ethernet HWaddr f8:1a:67:18:3a:ab inet addr:192.168.0.104 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::7cb0:b6af:2951:cbb2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:69 errors:0 dropped:0 overruns:0 frame:0 TX packets:78 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14363 (14.0 KiB) TX bytes:13491 (13.1 KiB)
確認一下 inet addr
欄位的 IP 位址,通常只要有拿到 IP 位址就表示設定沒問題,這樣就完成無線網路的設定了。
如果在終端機之下,要設定網路又不想輸入那麼多指令,可以改用 wicd-curses
這個小工具,請參考 raspyFi 的教學。
參考資料:Raspberry Pi、葉難