[基礎] 命令列設置無線網路

本文章使用的映像檔為 2014-09-09-wheezy-raspbian.img
setting-up-wifi-with-the-command-line

一般設置 Raspberry Pi 的無線網路大多是透過 WiFi Config 這個應用程式做設定。
wifi-config-gui

但在某些情況,例如 從序列埠登入到 Raspberry Pi,就只能靠命列列設置無線網路。但是記得,做任何修改前要先備份原始設定,以免出錯了無法回復原始狀態。

用命令列設置無線網路的步驟如下:

1. 確認硬體資訊,我們使用 EDIMAX 7811Un 這張無線網卡做設定。建議使用的網卡有在清單中,才可隨插即用。

pi@raspberrypi ~ $ lsusb
Bus 001 Device 005: ID 7392:7811 Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]

2. 查看目前無線網路設定,一開始還沒連接上無線網路,所以狀態會是 “unassociated”。

pi@raspberrypi ~ $  iwconfig wlan0
wlan0     unassociated  Nickname:""
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

3. 掃描無線網路,我們會根據掃描結果來設定無線網路。假設本例的 SSID 為 foo,加密方式為 WPA2,使用的 pre-shared key 為 1234567890123。

pi@raspberrypi ~ $  iwlist wlan0 scan
wlan0     Scan completed :
          Cell 03 - Address: 40:4A:03:92:BA:4B
                    ESSID:"foo"
                    Protocol:IEEE 802.11bgn
                    Mode:Master
                    Frequency:2.462 GHz (Channel 11)
                    Encryption key:on
                    Bit Rates:144 Mb/s
                    Extra:rsn_ie=30140100000fac040100000fac040100000fac020c00
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    Quality=88/100  Signal level=42/100  

4. 修改 /etc/wpa_supplicant/wpa_supplicant.conf

pi@raspberrypi:~$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

所對應的設定檔如下。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="foo"
        psk="1234567890123"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        auth_alg=OPEN
}

掃描結果與設定檔對應的欄位說明如下。

IE: IEEE 802.11i/WPA2 Version 1

表示加密方式為 WPA2,所對應的欄位 proto。
RSN:WPA(2)
WPA:WPA(1)

Group Cipher : CCMP 
Pairwise Ciphers (1) : CCMP

表示 WPA2 使用 AES 加密方式,所對應的欄位 pairwise。
CCMP:AES cipher,WPA(2)
TKIP:TKIP cipher,WPA(1)

Authentication Suites (1) : PSK

表示使用 pre-shared key 做鑑別,所對應的欄位為 key_mgmt。
WPA-PSK:Authentication via pre-shared key
WPA-EAP:Authentication via enterprise authentication server。

再例如使用 SSID 為 bar,加密的方式為 WEP,使用的 WEP key 為 1234567890123。

pi@raspberrypi ~ $  iwlist wlan0 scan
wlan0     Scan completed :
          Cell 03 - Address: 40:4A:03:92:BA:4B
                    ESSID:"bar"
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Encryption key:on
                    Bit Rates:54 Mb/s
                    Quality=72/100  Signal level=43/100  

所對應的設定檔如下。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
        ssid="bar"
        key_mgmt=NONE
        auth_alg=OPEN
        wep_key0="1234567890123"
}

更多 wpa_supplicant.conf 的範例可參考這裡

5. 停用 wlan0 網卡。

pi@raspberrypi ~ $ sudo ifdown wlan0

6. 啟用 wlan0 網卡。

pi@raspberrypi ~ $ sudo ifup wlan0

可能會回傳以下訊息,我們忽略掉。

ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

7. 將原來讀取 wpa_supplicant.conf 的程序 wpa_supplicant 殺掉。

pi@raspberrypi ~ $ sudo kill -9 $(ps -ef | grep wpa | awk '{print $2}')

8. 重新執行 wpa_supplicant,並讀取 wpa_supplicant.conf 設定。

pi@raspberrypi ~ $ sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

-B 表示以 daemon 方式在背景執行。
-i 表示指定介面(interface)名稱。
-c 表示設定檔路徑。

若回傳以下訊息,我們忽略掉。

rfkill: Cannot open RFKILL control device
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

9. 執行 DHCP 用戶端,取得 IP。

pi@raspberrypi ~ $ sudo dhclient

若回傳以下訊息,我們忽略掉。

RTNETLINK answers: File exists

10. 查尋 IP 位址,成功取得 192.168.1.117

pi@raspberrypi ~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 74:da:38:05:68:4c  
          inet addr:192.168.1.117  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1158 errors:0 dropped:79 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:109024 (106.4 KiB)  TX bytes:6214 (6.0 KiB)

 

常見問與答:

1. WiFi連不上怎麼辦?
接螢幕用 GUI 設定吧,可避免錯誤的設定。
wifi-config-gui-setting

2. WiFi Config的Adapter不見了怎麼辦?
wifi-config-gui-no-adapter
/etc/network/interfaces/etc/wpa_supplicant/wpa_supplicant.conf 回復成預設值吧。

##### Default configuration of /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
##### Default configuration of /etc/wpa_supplicant/wpa_supplicant.conf #####
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

[新聞] Raspbian出新版本了(2014-09-09)

Raspbian 出新版本了,最新的 image 為 2014-09-09。檔案大小為 934MB ,主要修改了 firmware 的部份,並預設安裝 Minecraft PiEpiphany 瀏覽器(原本 Midora 瀏覽器已經不再內建)。升級的軟體有 Sonic PiJava(從 7 升級到 8)、Mathematica 等。

從桌面快照可看出預設安裝軟體的方向為 1)有教育性質和 2)更高效能的軟體。
2014-09-09-wheezy-raspbian-desktop

改版的 release notes 如下:

2014-09-09:
  * New firmware with various fixes and improvements
  * Minecraft Pi pre-installed
  * Sonic Pi upgraded to 2.0
  * Include Epiphany browser work from Collabora
  * Switch to Java 8 from Java 7
  * Updated Mathematica
  * Misc minor configuration changes

[活動] Raspberry Pi社群聚會 #7 @ 2014/09/29

第七次 Raspberry Pi 社群聚會,希望能透過社群活動的分享和交流,找到更多 Rasperry Pi 的可能。本次主題是 Raspberry Pi 應用展示。

分享者1:sosorry (台灣樹莓派)
Topic:Raspberry Pi 應用展示 (PiPhone?)

分享者2:YiYu Chang
Topic:Java Embedded與Raspberry Pi
1)Java Embedded介紹
2)Java Embedded遠端開發環境
3)停車場模擬系統介紹
4)模組與零件介紹:超音波測距模組、伺服馬達、繼電器、閃光蜂鳴器、NFC與WebCam
5)應用程式介紹:Java Embedded與Java Web

展示照片:https://www.facebook.com/photo.php?fbid=1561193857433740


活動資訊

  • 活動時間: 2014/09/29 19:30 ~ 2014/09/29 21:30 (7:00pm 開始入場)
  • 語言: Chinese/中文
  • 活動人數上限: 100
  • 活動地點:CLBC台北市大安區復興南路一段293號4樓
  • 交通資訊:(地圖:http://clbc.tw/location/)至捷運大安站下車,出口後直走60秒內可抵達 CLBC 大安館


顯示詳細地圖

費用

  • 每人150元場地費用
  • 帶作品展示的參加者免收場地費用

備註

  • 活動場地有提供無線網路
  • 場地有飲料,另外請大家可先在附近用餐再入場

報名:http://raspberrypi-tw-bdfa45.kktix.cc/events/community07

[活動] Raspberry Pi工作坊 #3 自已的遊戲機自已做 @ 2014/09/13

第三次 Raspberry Pi 工作坊,這次的主題還是”從GPIO開始和世界連接”。但新增了超音波距離感測器的內容,並配合彈珠台成為體感遊戲。

這次的活動迅速額滿,以至於這邊還沒放上報名連結就結束了。

感謝 Taipei.py 社群們支持,節錄一下幾位朋友們在活動後的心得。
taipei.py_x_raspberrypi_01_comment_01taipei.py_x_raspberrypi_01_comment_02

一些活動照片。

該主題預計在 10 月還會再辦一次,到時會將投影片和範例程式修改完畢後公開。

[產品] EDIMAX 7811Un無線網卡

EDIMAX_7811Un

《特色》
* 使用 Realtek RTL8188CUS 晶片組,Raspbian 隨插即用
* elinux.org 測試可用
* 可做 master mode

《規格》

網路標準: IEEE 802.11b/g/n(1T1R)
使用頻段: 2.4000~2.4835GHz
傳輸速率: 11b:11Mbps; 11g:54Mbps; 11n:150Mbps (以上為最高傳輸速率)
加密機制: WEP; WPA; WPA2及IEEE 802.1x
外觀尺寸: 7.1 x 14.8 x 17.4 mm (Height x Width x Depth)

* 注意:本網卡不包含 Raspberry Pi

《教學》
* [基礎] 命令列設置無線網路

$ 300

[產品] PL2303HXD USB轉TTL傳輸線

PL2303HXD

《特色》
* 玖旺 PL2303 晶片
* 適合 Windows 全系列(包括 XP/Vista/7/8)、Linux、Mac 全系列(包括 OS X 10.6 Snow Leopard/OS X 10.7 Lion/OS X 10.8 Mountain Lion/OS X 10.9 Mavericks)使用
* 絕佳的除錯工具,適合多種開發板使用,Model B 和 Model B+ 都可以使用

《規格》
- 紅色線:5V
- 黑色線:GND
- 白色線:RX
- 綠色線:TX
- 黃色線:RTS
- 藍色線:CTS
- 線長:95cm
* 注意:本傳輸線不包含 Raspberry Pi

《下載》
* datasheet
* Windows 驅動程式下載
* Mac 驅動程式下載

《教學》
* [基礎] 從序列埠登入到 Raspberry Pi

$ 200

[產品] PL2303HX USB轉TTL傳輸線

PL2303HX

《特色》
* 玖旺 PL2303 晶片
* 適合 Windows XP/Vista/7、Linux 使用
* 絕佳的除錯工具,適合多種開發板使用,Model B 和 Model B+ 都可以使用

《規格》
- 紅色線:5V
- 黑色線:GND
- 白色線:RX
- 綠色線:TX
- 線長:95cm
* 注意:本傳輸線不包含 Raspberry Pi

《下載》
* datasheet
* Windows 驅動程式下載
* Mac 驅動程式下載

《教學》
* [基礎] 從序列埠登入到 Raspberry Pi

$ 100

[基礎] 從序列埠登入到 Raspberry Pi

購買產品:PL2303HX USB轉TTL傳輸線PL2303HXD USB轉TTL傳輸線

Raspberry Pi 有提供原生的序列(Serial)傳輸介面,因此只要透過 USB 轉 TTL 序列傳輸線,就可以在不需要螢幕和鍵盤滑鼠的情況下登入 Raspberry Pi (預設帳號密碼是 pi/raspberry),連上的虛擬終端機為 ttyAMA0。
序列傳輸介面至少需要有三條線,包括接地(GND)、接收(RX)和傳送(TX),參考接線圖如下。
connect-serial-to-raspberry-pi-model-b
connect-serial-to-raspberry-pi-model-b-plus本 Raspberry Pi B+ GPIO 腳位圖獲得授權使用

比較好的產品會有較多的連接線,例如做流量控制的 RTS/CTS 等。在不同作業系統使用的方式大同小異,詳細步驟如下。

注意:
1. 目前 PL2303HX 僅支援 Windows XP/Vista/7 和 Linux 使用,如果是 Windows 8 和 Mac 作業系統,需使用 PL2303HXD 才能正常使用。
2. 安裝 USB 轉 TTL 傳輸線設定時,Raspberry Pi 不需要開機。但是完成安裝後,記得要將 Raspberry Pi 開機,才能透過該序列傳輸線連接。

Windows XP
1. 沒有接上 USB 轉 TTL 序列傳輸線時的裝置管理員。
not-connect-to-serial

2. 接上 USB 轉 TTL 序列傳輸線時的裝置管理員,一開始會跳出”歡迎使用尋找新增硬體精靈”。我們先暫時忽略這訊息並下載驅動程式吧。
ask-for-insert-new-hardware

3. PL2303HXPL2303HXD 都是使用旺玖科技的晶片,官方網站驅動程式下載連結為:
http://www.prolific.com.tw/TW/ShowProduct.aspx?p_id=226&pcid=79
prolific-driver-download-url-windows

4. 下載後解壓縮執行 PL2303_Prolific_DriverInstaller_v1.8.0.exe,按照指示完成後重開機。再次開啟裝置管理員,可以發現多了一個連接埠 COM3。
connect-to-serial

5. 下載並開啟 putty。
putty-windows

6. 在 Connection type 先選擇 Serial,再根據剛剛的連接埠依序填入 Serial line、Speed的值。由於剛剛裝置管理員是看到 COM3,因此在 Serial line 也填入 COM3,Speed 填入 115200。
putty-serial-setting-windows

7. 相關的參數填完後,按 “Open” 就能連上 Raspberry Pi 如下圖。如果等了幾秒還是沒有畫面,可將 Raspberry Pi 重開(電源重插拔),應該就可以順利看到登入訊息。
successful-to-connect-to-raspberry-pi-via-serial-on-windows

Ubuntu Linux
1. 接上 USB 轉 TTL 序列傳輸線,打ls /dev/ttyUSB*,在我們的環境是長在 ttyUSB0。
tty-usb0

2. 開啟 putty,如果還沒安裝請執行sudo apt-get install putty安裝。
putty-linux

3. 在 Connection type 先選擇 Serial,再根據剛剛的連接埠依序填入 Serial line、Speed的值。由於該節點是長在 ttyUSB0,因此在 Serial line 也填入 ttyUSB0,Speed 填入 115200。
putty-serial-setting-linux

4. 相關的參數填完後,按 “Open” 將能連上 Raspberry Pi 如下圖。如果等了幾秒還是沒有畫面,可將 Raspberry Pi 重開(電源重插拔),應該就可以順利看到登入訊息。
successful-to-connect-to-raspberry-pi-via-serial-on-linux

Mac (該教學作者為 mosu)
1. 下載並安裝 PL2303HXD Driver,安裝後會重新開機。官方網站驅動程式下載連結為:
http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41
prolific-driver-download-url-mac

2. 接上 PL2303HXD,在網路確定是否有 USB-CONTROLL-D 的介面
usb-serial-controller-d-mac

3. 下載 ZTerm 並安裝,執行 ZTerm,Dial -> Directory,將 Data Rate 改為 115200
http://www.macupdate.com/app/mac/6888/zterm-x
zterm

4. 將 PL2303HXD 黑白綠依序接在 6 8 10 腳,開啟電源後即可登入
successful-to-connect-to-raspberry-pi-via-serial-on-mac
注意:拔掉 PL2303HXD 前,請先關掉 ZTerm,不然會出現錯誤畫面

常見問與答:

1. 我需要接紅色的線嗎?
如果將 USB 轉 TTL 傳輸線的紅色線接到 Pin 2,將會從傳輸線供電給 Pi 而讓 Pi 開機。由於我們已經有供給穩定的電源給 Pi,因此這邊我們不會將紅色線接到 Pin 2。

2. 我可以將序列埠的功能關掉嗎?
我們可以透過修改/boot/cmdline.txt,將

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

改為

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

還要再修改/etc/inittab,將

#Spawn a getty on Raspberry Pi serial line
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

改為

#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

再重開機即可。

[產品] anidees USB Charger (5 Port/6 Port)

太多的裝置用 USB 充電,橫的直的,插座永遠不夠用。

too many usb devices
圖片來源:Freecycling cables, ipod stuff++

 

anidees 5 Port USB Charger
anidees-USB-Charger-5-Port

《特色》
* 5 個USB插頭,總共最多提供 5A(25W)
* 兩個2.1A 輸出孔,快速充電
* 過電流保護,自動斷電設計

《規格》

輸入: AC 100V-240V 50-60Hz 650mA
輸出: DC USB x 5 5V/5A(MAX)
尺存: 98 x 60 x 26mm (Height x Width x Depth)
重量: 153g±5g
線長: 1.5M 分離式電源線

$ 735

anidees 6 Port USB Charger with Smart IC
anidees-USB-Charger-6-Port

《特色》
* 全球首創大電流 10A(50W)輸出,6個USB插頭,每個 port 最高到 2.5A 快充
* Smart IC 自動偵測設計,隨插即充,無須區分裝置
* 過電流保護,自動斷電設計

《規格》

輸入: AC 100V-240V 50-60Hz 650mA
輸出: DC USB x 6 5V/10A(MAX)
尺存: 100 x 69 x 26mm (Height x Width x Depth)
重量: 189g±10g
線長: 1.5M 分離式電源線

$ 1155

5 Port 和 6 Port 大小略不同,功能性 6 Port 有 Smart IC 可偵測所連接的裝置,提供適合的電流。適合多台 Raspberry Pi 連接使用,提供足夠的電力。
anidees-USB-Charger-5-Port-6-Port

看其他使用者的回應:
* [3C] anidees 50W 6 port USB Desktop Charger anidees USB 桌上型充電器