[教學] 啟用 Pi 3B+的WiFi

當拿到 Pi 3B+ 以後,如果安裝目前最新版(2018-03-13)的映像檔開機後,會發現看不到這次改版最大的 WiFi 裝置。

default_pi3_bplus_no_wifi

如果從指令列 ifconfig 也會發現找不到內建的網卡。
default_pi3_bplus_ifconfig

查詢一下原來這次的 release noteswpa_supplicant.conf 的國碼設定拿掉了。

2018-03-13:
* Raspberry Pi 3 B+ support
  * WiFi is disabled until wireless regulatory domain is set (Pi 3 B+ only)
    - The domain can be done through 'Raspberry Pi Configuration' (rc_gui),
      'raspi-config' or by setting 'country=' to an appropriate ISO 3166
      alpha2 country code in /etc/wpa_supplicant/wpa_supplicant.conf.

可以從 sudo raspi-config 選單中設定 WiFi 的國碼即可,步驟如下。
4 Localisation Options > I4 Change Wi-fi Country > TW Taiwan
stretch_raspi_config_localisation
stretch_raspi_config_localisation_change_wifi_country
stretch_raspi_config_localisation_change_wifi_country_tw

完成後再執行 ifconfig 就可以看到 wlan0 出來了。
set_country_pi3_bplus_ifconfig

可以用 iw dev 查看支援的頻段,有到 5GHz 了。

$ iw dev
phy#0
	Unnamed/non-netdev interface
		wdev 0x2
		addr ba:27:eb:18:80:cb
		type P2P-device
		txpower 31.00 dBm
	Interface wlan0
		ifindex 3
		wdev 0x1
		addr b8:27:eb:18:80:cb
		type managed
		channel 165 (5825 MHz), width: 20 MHz, center1: 5825 MHz
		txpower 31.00 dBm

還有 iw list 查看支援的模式。

$ iw list
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * P2P-client
		 * P2P-GO
		 * P2P-device

如果設定完國碼還看不到 wlan0 這張網卡的話,可以用 rfkill list 確認無線的啟用狀況,看是被軟體或硬體的設定擋住。

$ sudo rfkill list
0: phy0: Wireless LAN
	Soft blocked: yes
	Hard blocked: no
1: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

如果是 phy0Soft blocked: yes,可以用 rfkill unblock wifi 啟用 WiFi 即可。

$ sudo rfkill unblock wifi
$ sudo rfkill list
0: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

另外,原本在 Jessie 使用的 ifconfig wlan0 up,在 Scretch 也不能用了,會出現這樣的訊息。

$ sudo ifconfig wlan0 up
SIOCSIFFLAGS: Operation not possible due to RF-kill

要改為下面的方式啟用/停用網路裝置。

$ ip link set wlan0 up
$ ip link set wlan0 down

或是啟用/停用內建的 WiFi 裝置。

$ sudo rfkill block 0
$ sudo rfkill unblock 0

更多有關 /etc/wpa_supplicant/wpa_supplicant.conf 的參數可以參考這篇

參考資料:
* New Pi3B+ Wireless issues
* Wifi on Raspberry Pi 3
* wpa_supplicant.conf

[常見問與答] 如何看 Raspbian 的版本資訊?

自從 Raspbian 從 Wheezy 升級到 Jessie 以後,許多系統性的設計都有所不同。那要如何看 Raspbian 的版本資訊呢?

1. uname -a 查詢 kernel 版本。

# 2015-05-05-raspbian-wheezy 
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 3.18.11-v7+ #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015 armv7l GNU/Linux
# 2016-02-03-raspbian-jessie
pi@raspberrypi:~ $ uname -a
Linux raspberrypi 4.1.17-v7+ #834 SMP Mon Feb 1 15:17:54 GMT 2016 armv7l GNU/Linux

 

2. /opt/vc/bin/vcgencmd version 查詢 firmware 版本。

# 2015-05-05-raspbian-wheezy 
pi@raspberrypi ~ $ /opt/vc/bin/vcgencmd version
Apr 21 2015 14:42:19 
Copyright (c) 2012 Broadcom
version 2d5ad04b63af4233440c3f7c8587108223201102 (clean) (release)
# 2016-02-03-raspbian-jessie
pi@raspberrypi:~ $ /opt/vc/bin/vcgencmd version
Feb  1 2016 17:51:17 
Copyright (c) 2012 Broadcom
version b3dc56931507f355d503ea69397778643f7a3dc3 (clean) (release)

 

3. strings /boot/start.elf | grep VC_BUILD_ID 查詢 firmware 版本。

# 2015-05-05-raspbian-wheezy 
pi@raspberrypi ~ $ strings /boot/start.elf | grep VC_BUILD_ID
VC_BUILD_ID_USER: dc4
VC_BUILD_ID_TIME: 14:42:19
VC_BUILD_ID_BRANCH: master
VC_BUILD_ID_TIME: Apr 21 2015
VC_BUILD_ID_HOSTNAME: dc4-XPS13-9333
VC_BUILD_ID_PLATFORM: raspberrypi_linux
VC_BUILD_ID_VERSION: 2d5ad04b63af4233440c3f7c8587108223201102 (clean)
# 2016-02-03-raspbian-jessie
pi@raspberrypi:~ $ strings /boot/start.elf | grep VC_BUILD_ID
VC_BUILD_ID_USER: dc4
VC_BUILD_ID_TIME: 17:51:17
VC_BUILD_ID_BRANCH: master
VC_BUILD_ID_TIME: Feb  1 2016
VC_BUILD_ID_HOSTNAME: dc4-XPS13-9333
VC_BUILD_ID_PLATFORM: raspberrypi_linux
VC_BUILD_ID_VERSION: b3dc56931507f355d503ea69397778643f7a3dc3 (clean)

 

4. cat /proc/version 查詢更完整的 kernel 資料。

# 2015-05-05-raspbian-wheezy 
pi@raspberrypi ~ $ cat /proc/version
Linux version 3.18.11-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #781 SMP PREEMPT Tue Apr 21 18:07:59 BST 2015
# 2016-02-03-raspbian-jessie
pi@raspberrypi:~ $ cat /proc/version
Linux version 4.1.17-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #834 SMP Mon Feb 1 15:17:54 GMT 2016

 

5. cat /etc/os-release 查詢 OS 版本資訊。

# 2015-05-05-raspbian-wheezy 
pi@raspberrypi ~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
# 2016-02-03-raspbian-jessie
pi@raspberrypi:~ $ cat /etc/os-release 
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

 

6. cat /etc/issue 查詢 Linux distro 版本。

# 2015-05-05-raspbian-wheezy 
pi@raspberrypi ~ $ cat /etc/issue
Raspbian GNU/Linux 7 \n \l

# 2016-02-03-raspbian-jessie
pi@raspberrypi:~ $ cat /etc/issue
Raspbian GNU/Linux 8 \n \l

 

7. cat /etc/debian_version 查詢 Debian 版本編號。

# 2015-05-05-raspbian-wheezy 
pi@raspberrypi ~ $ cat /etc/debian_version
7.8
# 2016-02-03-raspbian-jessie
pi@raspberrypi:~ $ cat /etc/debian_version
8.0

[常見問與答] Raspbian Jessie版本差異?

Raspbian 是最多人在 Raspberry Pi 上安裝的作業系統,也是 Raspberry Pi 基金會持續維護的版本。在 Raspberry Pi 官方網站的下載JessieJessie Lite 兩種選擇,這兩者有什麼差別呢?
Download-Raspbian-Jessie-and-Raspbian-Jessie-Lite

其實這兩者主要分別在於 Jessie Lite 沒有預設安裝 X-server 與相關的套件,因此無法用 startx 啟動視窗管理員。因為也沒有安裝 QtGTK+ 的函式庫,因此也無法執行相關的視窗程式。

比較 Jessie 和 Jessie Lite 這兩個映像檔的大小(2016-02-03),分別是 3.9G(Jessie) 和 1.4G(Jessie Lite)。
jessie-vs-jessie-lite-file-size

我們可以用 ncdu / 從根目錄開始比較目錄與檔案在磁碟的使用量。下圖左邊是 Jessie 右邊是 Jessie Lite。 /usr 目錄下主要放的是 shared library,例如 Jessie 有 libreoffice 和 libQtWebKit 等視窗應用程式函式庫。
jessie-vs-jessie-ncdu-root

也可以用 dpkg -l 列出已經安裝的套件列表,並用 dpkg -l|wc 統計安裝套件數目。左邊是 Jessie 約 1150 個,右邊是 Jessie Lite 約 411 個。
jessie-vs-jessie-lite-dpkg-list

再比較這兩個映像檔預設安裝套件,可以看到 Jessie Lite 少了 x11 和 xserver 相關套件。
meld-jessie-dpkg-list-vs-jessie-lite-dpkg-list

因為少了 X 與相關套件,因此 Jessie Lite 可以有更小的磁碟空間使用與更低的記憶體使用量。一般來說 Jessie 是適合個人桌面環境使用,而 Jessie Lite 適合安裝在伺服器上。

那要如何在 Jessie Lite 上安裝視窗環境呢? 只要用 sudo apt-get updatesudo apt-get install lxde 就可以將 LXDE 和相依的套件裝起來,大約會新裝 602 個套件共計 842MB。之後就可以用 startx 開始使用 GUI。
jessie-lite-install-lxde

如果執行 startx 無法順利啟動,或是想要安裝別的桌面環境,例如 PIXELXFCEMATE、i3 GUI 等,可以參考這篇文章。

另外,除了 Jessie Lite,還有一套針對單板電腦(Single-Board Computer)所優化過的系統 DietPi。DietPi 也做了一個比較表,列出與 Jessie Lite 不同的地方,是打造輕量級產品的另一個選擇。
DietPi-Jessie-vs-Raspbian-Jessie-Lite
圖片來源:Raspbian Jessie Lite now available

參考資料:
* Raspbian Jessie Lite now available
* 鳥哥的私房菜第二十三章、X Window 設定介紹
* Lightweight Debian: LXDE Desktop From Scratch
* [GUIDE] Raspbian Lite with PIXEL/LXDE/XFCE/MATE/i3 GUI

[新聞] Raspbian 出新版本了(2015-09-24),從 Wheezy 到 Jessie


圖片來源:JESSIE IS HERE

Raspbian 出新版本了,最新的 image2015-09-24。這次是重大的更新,是基於 Debian 穩定版本的發布,從 WheezyJessie,核心版本(kernel version)也上到 4.1。

幾個改變的地方:
1. 預設開機進入桌面環境,原本為純文字模式。
2. Raspbian 預設安裝的 GUI 程式使用 GTK+3 開發,原本為 GTK+2。
3. 預設安裝 LibreOffice 辦公室軟體和 Claws Mail 電子郵件軟體。
4. 預設安裝 BlueJ 的 Java 開發環境和 Greenfoot 的 Java 程式設計教學軟體。
5. 新增 raspi-config 的視窗設定工具。
6. 新增小工具,可安全移除 USB 儲存裝置(如隨身碟)。
7. 可以用一般使用者權限存取 GPIO,原本需要使用 sudo 提昇權限。
8. 預設安裝 scrot,可以使用 Print screen 快捷鍵抓取螢幕畫面。

建議從乾淨的 image 安裝,但如果要從原本的系統升級可參考論壇文章

改版的 release notes 如下:

2015-09-25:
  * Based on Debian Jessie
  * Upgraded applications - Epiphany browser, Scratch and Sonic Pi
  * Included applications - LibreOffice, Claws Mail, Greenfoot, BlueJ
  * Included utilities - Alacarte menu editor, Lxkeymap, scrot, tree, pip
  * New GUI-based Raspberry Pi Configuration application
  * GPIO control now possible without need for sudo
  * Web link to Magpi magazine included
  * New taskbar plugin to eject mounted USB drives
  * Default boot is now to GUI not desktop
  * Look and feel now based on GTK+3 default theme
  * Print screen key launches scrot to produce screenshot
  * Common keyboards autodetected by GUI and drivers loaded accordingly
  * Numerous small tweaks and bugfixes

新聞來源:
* JESSIE IS HERE
* How to upgrade a Wheezy image to Jessie