2018年12月27日 星期四

樹莓派 Raspbian 升版

最近因為想在鄉下那台 Pi 3 上安裝 PyTorch 卻發現 SD 卡容量剩下 200MB 左右, 研究發現樹莓派支援最高 32GB, 所以跑去建國路維碁買了一張 32GB 的創見 C10 MicroSD 卡來替換. 昨天清查鉛筆盒裡的 SD 卡收藏盒, 找到一張 ADATA 16GB MicroSD 卡, 好像是買 2T 硬碟送的贈品, 最早是用在 INHON 筆電的擴充槽當 D 碟用, 後來買了 64GB 卡後就退下來了. 所以今天就先用 16GB 來安裝目前最新版的 Raspbian 吧!

首先將此卡在 PC 上以 FAT 格式化 :




完成後到樹莓派官網下載 2018-11-13 發布, Kernel 版本 4.14.79 的 Raspbian 映像檔 :

https://www.raspberrypi.org/downloads/raspbian/




我下載的是左上角含有 Desktop 桌面建議軟體的壓縮檔, 解壓後為一個 2018-11-13-raspbian-stretch-full.img 檔案, 然後用 Win32 Disk Imager 將此映像檔燒進 SD 卡中, 參考 :

樹莓派重新安裝 Raspbian 作業系統
樹苺派的 SD 卡與作業系統安裝
樹莓派 SD 卡覆寫格式化

燒錄完成後用檔案總管檢視, 發現此 SD 卡被分成兩個 drive, 一個是名稱為 boot 的啟動區, 另一個是未格式化的 drive :



然後將燒錄好的卡放進 Pi Zero W 裡, 還要準備一個 Micro USB 對 USB 母接頭, 一個無線鍵盤滑鼠組與一個 Mini HDMI 對 HDMI 轉接頭 :




開機後進入設定畫面, 按 Next :




Country 選 Taiwan, Language 選 Chinese, Timezone 選 Taipei, 且勾選 Use US keyboard :




按 Next 即開始設定 :




接著出現更改密碼視窗, 預設密碼是 raspberry, 務必更改以策安全 :




然後是軟體更新, 因為需要一些時間 (視網路速度而定, 我大約花了半小時), 所以按 Skip 跳過 :




安裝完成按 "Reboot" 重開機 :




現在的 Raspbian 設定比之前更方便, 更人性化了, 不但內建 VNC 功能, 而且會自動擴展可用之 SD 容量至最大, 不須再手動擴展.

重開機後按視窗右上角的無線網路設定按鈕 || (我使用 Pi Zero W, 已內建藍芽與 WiFi), 點選要連線的無線基地台, 輸入連線密碼即可看到右上角 || 按鈕變成電波形狀, 表示已連線成功 :






按左上角的樹莓派按鈕進入 "偏好設定/Raspberry Pi 設定" 頁面, 將預設關閉的 SSH 與 VNC 功能開啟 :




連上網路後開啟 Comand Line 介面用 ifconfig 指令查詢樹莓派分配到的 IP 就可以在 PC 上用 SSH 與 VNC 透過 WiFi 遠端連線樹莓派進行無頭存取 (headless access) 了, 參考 :

樹莓派的 "無頭存取" (headless access)

進行無頭存取之前要先知道樹莓派被分配到的 IP, 開啟 LX 終端機輸入 ifconfig 即可查得 IP :




這樣即可在 PC 用 Putty 以 SSH 協定連線此樹莓派了 (PC 須連線到同一基地台). 用 df -h 指令可查詢 SD 卡使用情形 :




我這張 16GB 卡實際上可用 15GB, 系統使用了 4.5GB, 佔掉 32%, 還有 9.5GB 可用.

完成後關機改安裝 32GB SD 卡也順利完成 :



此卡片可用 30GB, 系統一樣是 4.5GB, 佔掉 17%, 剩 24G 可用, 這用在鄉下的 Pi 3 抓資料儲存上應該綽綽有餘了.

檢視軟體開發工具, 主要的亮點是內建了 Thonny Python IDE 以及 IBM 開發的 IoT 視覺化開發工具 Node-RED :




Python 版本分別是 2.7.13 與 3.5.3 :

pi@raspberrypi:~ $ python 
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.

pi@raspberrypi:~ $ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "copyright", "credits" or "license()" for more information.

Node 則是 v8.11.1 版 :

pi@raspberrypi:~ $ node --version
v8.11.1
pi@raspberrypi:~ $ node
> console.log("hello")
hello
undefined

如果要升到最新版, 參考 :

如何更新樹莓派的 Node.js

樹莓派應用參考 :

「技術交流」樹莓派搭建智能家居 造就你心目中的變形金剛

最後進行 SD 卡更換前程式移植與設定複製作業 :

一. 複製網路運作監控程式 :
  1. reportip2.py : 在 ip 變更時發出郵件中
  2. reportip3.py : 每 10 分鐘會發出電郵通知目前的 ip
  3. checkwifi.sh : 檢查網路連線是否正常, 否則重開機 
注意, checkwifi.sh 須用 dos2unix 改檔案格式才能順利執行, 參考 :

樹莓派自動偵測網路斷線時重開機的方法


二. 複製 crontab :

在原系統中用 crontab -l 顯示目前 Crontab 內容 :

*/10 * * * * /usr/bin/python2 /home/pi/reportip2.py
0 * * * * sudo /usr/local/checkwifi.sh
30 * * * * /usr/bin/python3 /home/pi/reportip3.py

在新 SD 卡系統中, 以指令 crontab -e 編輯定時執行檔, 貼入上面的內容, 再按 Ctrl+O 存檔即可.

沒有留言 :