2021年5月19日 星期三

樹莓派架站 (一) : 燒錄 Raspbian 作業系統 (Buster)

因為要幫湘雲老師用樹莓派架設網站, 周末找出幾年前買的 Pi B+ 來試試, 本想直用裡面的舊版 Raspbian (應該是 Wheezy 吧), 但發現 VNC 安裝失敗, 這實在是太舊了, 所以昨天下載了最新的 Raspbian 作業系統映像檔 (v5.10 Buster), 並且開了一張 32GB SD 新卡來燒錄. 


1. 下載 Raspbian 映像檔 :


我下載的是含相關軟體 (如 Thonny) 的這個 zip 壓縮檔 (2.9GB), 解壓後是 8.4GB :




2. 燒錄映像檔 : 

因我這張 32GB 的是新卡, 出廠已經格式化為 FAT32, 故不需要用 "SD memory card formatter" 再格式化 (若是舊卡就必須格式化, 清掉裡面全部資料) : 




可直接將空白新卡插入讀卡機連接電腦 USB, 直接用 "Win32 Disk Imager" 燒錄映像檔 : 




要特別注意 Device 這欄位務必選對讀卡機, 如果電腦 USB 還有其他磁碟要很小心, 否則會把那個磁碟的資料毀掉. 確認 Device 是空白 SD 卡讀卡機後按 "Write" 即進行燒錄動作, 完畢後會出現 "Write Successful" 與 "需要格式化磁碟機 x: 中的磁片才能使用" 的視窗, 前者直接按 OK 關掉就好, 但後者要按 "取消", 千萬不可以按 "格式化磁片", 因為這是 Raspbian 作業系統燒錄完成後 Win10 不認識 Linux 的格式所致.  




參考 : 



3. 測試開機自動連線 WiFi 基地台 (無頭存取) : 

然後參考下面這篇, 順便測試這招首次開機自動連上無線基地台的方法 :


做法是用記事本編輯兩個純文字檔案 (都用 ANSI 格式存檔) : 
  • wpa_supplicant.conf
  • ssh
其中 wpa_supplicant.conf 是用來設定 WiFi 無線基地台連線用的, 內容為 :

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

network={
    ssid="TonyNote8"
    psk="a123456"
    }

另外 ssh 這檔案則內容空白即可 (無副檔名), 將這兩個檔案複製到 SD 卡的 boot 碟下 :




這樣就可以退出讀卡機 USB 連線, 取出 SD 卡裝入樹莓派開機了. 參考 :


但開機結果並未如預期自動連線基地台 (Why?  難道是對新版 Raspbian 無效了嗎?), 還好有事先接上螢幕的 HDMI 線與鍵鼠組 (否則首次開機卻得面臨暴力關機), Buster 的預設布景是廟宇 :

2021-06-28 補充 : 

前天燒錄完 Pi 4 要用的映像檔發現是我之前將 wpa_supplicant 檔名打錯變成 wpa_applicant.conf 所致, 這回更正錯誤後今天在 Pi 4 開機測試 OK, 可自動抓到指定知基地台. 




開啟終端機用 df -h 檢查 32GB 卡使用情形 :

pi@raspberrypi:~ $ df -h  
檔案系統        容量  已用  可用 已用% 掛載點
/dev/root        29G  7.6G   21G   28% /
devtmpfs        183M     0  183M    0% /dev
tmpfs           216M   18M  198M    8% /dev/shm
tmpfs           216M  3.2M  212M    2% /run
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           216M     0  216M    0% /sys/fs/cgroup
/dev/mmcblk0p1  253M   48M  205M   19% /boot
tmpfs            44M  4.0K   44M    1% /run/user/1000

主要是 Raspbian 系統用掉了 8 GB, 還剩 21 GB 可用. 


4. 開啟 SSH/VNC 登入 VNC Connect :

利用鍵鼠組用手動設定連線 SSID 與密碼與鍵盤類型等資訊後會要求重開機, 然後依照上一篇 "樹莓派燒錄 Raspbian Buster" 的程序開啟 SSH 與 VNC 功能後, 登入 VNC Cloud 帳號 (按 Sign in 連結) :






然後在 PC 端啟動 VNC Vierer Cloud 版軟體, 登入 VNC Cloud 帳號後就可看到群組中多了一台機器 (一個帳號最多 5 台), 可點此機器選 Rename 將此主機更名為容易辨認的 Yun's Raspberrypi :




點選此主機輸入連線密碼即可順利從 VNC Cloud 雲端穿過防火牆遠端連線樹莓派. 


5. 檢查 Python 版本與已安裝套件 :

開啟 Terminal, 分別輸入 python 與 python3 檢查 Python 版本, 發現最新版 Buster 內建 Python 2.7.16 與 Python 3.7.3 :




pi@raspberrypi:~ $ python    
Python 2.7.16 (default, Oct 10 2019, 22:02:15) 
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
pi@raspberrypi:~ $ python3  
Python 3.7.3 (default, Jan 22 2021, 20:04:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

用 pip3 list 檢查已安裝的 Python 3 套件, 發現這版 Buster 的 Python 3 已安裝資料科學套件 numpy 與 matplotlib, 爬蟲套件 requests, html5lib, urllib3, lxml, 以及架站套件 Flask, turnado, 與測試伺服器 Werkzeug 等 : 

pi@raspberrypi:~ $ pip3 list  
Package           Version    
----------------- -----------
appdirs           1.4.3      
asn1crypto        0.24.0     
astroid           2.1.0      
asttokens         1.1.13     
automationhat     0.2.0      
beautifulsoup4    4.7.1      
blinker           1.4        
blinkt            0.1.2      
buttonshim        0.0.2      
Cap1xxx           0.1.3      
certifi           2018.8.24  
chardet           3.0.4      
Click             7.0        
colorama          0.3.7      
colorzero         1.1        
cookies           2.2.1      
cryptography      2.6.1      
cupshelpers       1.0        
cycler            0.10.0     
decorator         4.3.0      
docutils          0.14       
drumhat           0.1.0      
entrypoints       0.3        
envirophat        1.0.0      
ExplorerHAT       0.4.2      
Flask             1.0.2      
fourletterphat    0.1.0      
gpiozero          1.5.1      
guizero           0.6.0      
html5lib          1.0.1      
idna              2.6        
ipykernel         4.9.0      
ipython           5.8.0      
ipython-genutils  0.2.0      
isort             4.3.4      
itsdangerous      0.24       
jedi              0.13.2     
Jinja2            2.10       
jupyter-client    5.2.3      
jupyter-core      4.4.0      
keyring           17.1.1     
keyrings.alt      3.1.1      
kiwisolver        1.0.1      
lazy-object-proxy 1.3.1      
logilab-common    1.4.2      
lxml              4.3.2      
MarkupSafe        1.1.0      
matplotlib        3.0.2      
mccabe            0.6.1      
microdotphat      0.2.1      
mote              0.0.4      
motephat          0.0.3      
mypy              0.670      
mypy-extensions   0.4.1      
nudatus           0.0.4      
numpy             1.16.2     
oauthlib          2.1.0      
olefile           0.46       
pantilthat        0.0.7      
parso             0.3.1      
pexpect           4.6.0      
pgzero            1.2        
phatbeat          0.1.1      
pianohat          0.1.0      
picamera          1.13       
pickleshare       0.7.5      
picraft           1.0        
piglow            1.2.5      
pigpio            1.78       
Pillow            5.4.1      
pip               18.1       
prompt-toolkit    1.0.15     
psutil            5.5.1      
pycairo           1.16.2     
pycodestyle       2.4.0      
pycrypto          2.6.1      
pycups            1.9.73     
pyflakes          2.0.0      
pygame            1.9.4.post1
Pygments          2.3.1      
PyGObject         3.30.4     
pyinotify         0.9.6      
PyJWT             1.7.0      
pylint            2.2.2      
pyOpenSSL         19.0.0     
pyparsing         2.2.0      
pyserial          3.4        
pysmbc            1.0.15.6   
python-apt        1.8.4.3    
python-dateutil   2.7.3      
pyxdg             0.25       
pyzmq             17.1.2     
qtconsole         4.3.1      
rainbowhat        0.1.0      
reportlab         3.5.13     
requests          2.21.0     
requests-oauthlib 1.0.0      
responses         0.9.0      
roman             2.0.0      
RPi.GPIO          0.7.0      
RTIMULib          7.2.1      
scrollphat        0.0.7      
scrollphathd      1.2.1      
SecretStorage     2.3.1      
semver            2.0.1      
Send2Trash        1.5.0      
sense-emu         1.1        
sense-hat         2.2.0      
setuptools        40.8.0     
simplegeneric     0.8.1      
simplejson        3.16.0     
six               1.12.0     
skywriter         0.0.7      
sn3218            1.2.7      
soupsieve         1.8        
spidev            3.4        
ssh-import-id     5.7        
thonny            3.3.6      
tornado           5.1.1      
touchphat         0.0.1      
traitlets         4.3.2      
twython           3.7.0      
typed-ast         1.3.1      
uflash            1.2.4      
unicornhathd      0.0.4      
urllib3           1.24.1     
wcwidth           0.1.7      
webencodings      0.5.1      
Werkzeug          0.14.1     
wheel             0.32.3     
wrapt             1.10.11    
pi@raspberrypi:~ $ 

資料科學少了 pandas, 爬蟲則少了 Beautifulsoup, 這些要另行安裝. 

沒有留言:

張貼留言