第 01 章 - 認識樹莓派並燒錄作業系統
上次更新日期 2022/09/15
樹莓派 (raspberry pi) 是由英國樹莓派基金會開發的一款單板電腦,使用的 CPU 是 ARM 架構的系統, 基本上,只要加上一片記憶卡 (SD card) 當作系統儲存媒體,就可以開機使用了。
學習目標:
- 取得樹莓派
- 連結官網燒錄所需要的作業系統
- 第一次開機與使用樹莓派 - 使用樹莓派原生系統
1.1: 取得樹莓派
樹莓派是一種單板電腦,最早開發給教育人員用來教學之用,希望小孩子可以在家的客廳裡面學習簡單的程式開發。 因此,最早樹莓派僅有 HDMI 影像輸出界面,原因為此。
樹莓派使用 ARM CPU 架構,跟手機相同。全部電腦需要的 CPU、記憶體、顯示界面、網路界面、USB界面、感測器界面與電源輸入等, 通通塞入到一張名片大小的卡片上。只是需要額外的記憶卡,通常是 SD card,並且燒錄正確的作業系統之後, 就可以開始開機使用了。樹莓派 3B 的正面圖示,有點像底下這樣 (底下為 3B+ 正面圖示,與 3B 有點不同,不過差異應該不大):
- 分組取得樹莓派
由於設備數量問題,沒有辦法提供一人一組樹莓派,請同學們進行分組,每組將取得底下的設備與數量, 請到學期末時繳回下列設備,若有遺失,請自行購買相同型號設備,於期末時繳回:
- 樹莓派 3B 本體一台
- 32G SD card 一片 (連同轉接器)
- 電源轉換器一顆 (USB 連接線一條)
- HDMI 轉 VGA 接頭一顆
- RJ-45 網路線一條
- 請立刻進行分組,並向助教提供組員名單。老師與助教具有主導分組的權利。 (由於設備問題,本課程只提供 8 組設備,請同學們自行分組)
- 請各組推派一人作為器材管理人員 (組長),並向助教簽領借用單,方可取得上述設備
- 取得設備後,先清點設備是否有短缺,若有短缺,請立即回報助教,否則就以器材為完整借出。
- 請立刻使用電源接上樹莓派,測試其電源燈號是否會亮起。若有亮燈代表樹莓派有通電,否則請回報助教。 (除了設備損壞之外,也可能是電源供應不佳所致)
- 拔除電源之後,各成員自行觀察樹莓派本體。
- 了解樹莓派硬體規格
查詢維基百科或樹莓派官網,然後回答相關問題:
- 維基百科對樹莓派說明: https://zh.wikipedia.org/wiki/树莓派
- 官方網站: https://www.raspberrypi.com/products/raspberry-pi-3-model-b/
- CPU 時脈與核心數,各為多少?
- 記憶體有多少 Gbytes
- 乙太網路的速度多快?
- 是否具有 Wifi 模組?
- 是否具有 GPIO 模組?
- 是否具有藍芽模組?
- 輸入的電壓與電流 (直流電喔!)
- 額定消耗的功率
1.2: 燒錄作業系統
樹莓派與一般 PC 還是不太一樣,一般 PC 沒有硬碟時,依舊可以開機進入 BIOS,但是樹莓派沒有安插系統的 SD 卡, 就無法開機了!所以,一定要先準備好需要的作業系統才行。但是,你一定需要讀卡機!因此,某些虛擬電腦教室不能使用底下的流程, 可能需要前往實體主機所在的教室,才有讀卡機可以使用喔!
- 1. 下載樹莓派映像檔
作業系統的燒錄很簡單,樹莓派官網也有相關的教學了!雖然資傳系大一、大二曾經使用過 Red Hat 系列的 RHEL 衍生 Linux 產品, 亦即是 RockyLinux 這套系統,這套系統也推出給樹莓派使用的映像檔 (image)。不過,鳥哥燒錄完成之後,這個系統確定可以在樹莓派上面啟動, 但是卻沒有 HDMI 顯示界面,只能透過網路的 ssh 連接到系統上,同時由於 SD 卡太慢,因此操作上面怪怪的! 所以,我們這邊直接使用樹莓派本身修改 debian 而來的 raspberry pi 的原生系統 raspberry pi OS 作為系統操作了。
- 樹莓派系統映像檔: https://www.raspberrypi.com/software/operating-systems/
從上述的網站上面下載映像擋到你的電腦上,在出現的畫面右手邊 Download 小框框內,選擇 Raspberry Pi OS (64-bit) 這個連結, 會跳頁到底下,查看一下適合的硬體 (Compatible with),是否存在 3B 這個硬體?如果 OK 的話,就選擇右邊的 Download 按鈕來下載即可。 如果沒有接觸過 Linux,建議下載 Raspberry Pi OS with desktop 較佳。 - RockyLinux 9 樹莓派映像檔: https://rockylinux.org/alternative-images/
找到『Alternative Architectures (SIG)』的項目,下載 Raspberry Pi (aarch64) 的版本,下載的容量大約是 500MB 左右。 檔名應該是 RockyLinuxRpi_9.0.img.xz 之類的檔名才對。(注意,你應該下載最新的 image file,所以版本不見得是 9.0, 請依據當時的情境下載適當的映像檔)
鳥哥在 2022/09/15 下載的樹莓派映像檔,檔名為 2022-09-06-raspios-bullseye-arm64.img.xz,在該日後的下載,可能會有更新的系統! 我將這個檔案放置到 D 槽,如果是在資傳系上課,則可以在 Q 槽內發現這個檔案喔!
- 2. 下載樹莓派的燒錄軟體 imager
接下來,請前往樹莓派官網,下載 for windows 或 Linux 或 MAC 的燒錄軟體,燒錄軟體名為『Raspberry Pi Imager』, 依據你的工作系統下載正確的版本即可。 (注意,下載前請觀看官網的 45 秒鐘影片介紹!)
- 3. 將 SD card 插入讀卡機,並啟動 imager 燒錄軟體
- 先將你的 SD 卡插入讀卡機當中
- 然後執行剛剛下載的 imager 軟體
- 在『選擇操作系統』的項目上面,選擇下拉式選單最下方的『使用自定義鏡像』,並勾選剛剛下載的樹莓派檔案即可。
- 之後選擇正確的儲存卡項目 (SD card)
- 如果還有其他想要進行的設定,在燒錄前,可以先按下右下角的齒輪。 (可以設定主機名稱、ssh 服務、甚至可以設定 wifi,相當有趣!)
- 最終按下『燒錄』來進行燒錄行為。
- 4. 將 SD 卡安插到樹莓派
接下來就簡單了,請將 SD 卡安插到樹莓派的插槽內,並且將電源插頭準備好,在學校單純的 VGA 螢幕接頭上面,還需要 HDMI 轉 VGA 轉接頭, 再加上螢幕、鍵盤、滑鼠的連接之後,讓我們準備來進入樹莓派的作業系統吧!
1.3: 啟動樹莓派
如果一切連線都確認沒問題,當插上電源之後,你會發現樹莓派的電源燈亮起之外,活動訊號登 (ACT) 也會閃爍, 這代表樹莓派已經開始動作。只是因為驅動程式的關係,螢幕要過一陣子才會啟動。如果一直沒有發現螢幕啟動, 很可能是 SD 卡燒錄到錯誤的映像擋了。這時可能得要重新燒錄。另外,因為樹莓派僅支援 HDMI 以及特殊規格的顯示界面, 我們得要使用 HDMI 轉 VGA 的轉接頭,因此解析度與傳輸速度也可能變得比較慢,請多點耐心。
- 1. 開機與設定語系
Linux 始終是多國語系支援的,因此,第一次操作,你得要規劃語系才行!否則未來可能都是非中文,那就比較傷腦筋。 如下所示,你應該要連接到螢幕、鍵盤、滑鼠,然後會看到如下的情境,請注意,要選擇的國家是 Taiwan,選擇的語言是 Chinese, 選擇的時趨勢 Taipei 才是喔!
- 2. 建立系統管理員的一般帳號
樹莓派第一個用戶最重要!該用戶是預設管理員,而且可以使用 sudo 的權限!所以,請組長進行這項工作! 並且記得自己的密碼!很重要!密碼不要流出去~未來我們會建立其他組員的帳號來使用!
- 3. 螢幕畫面範圍與 Wifi 的選擇
某些螢幕與畫面會有點誤差,導致邊緣可能會看不見,因此,建議可以選擇底下這個 Set Up Screen 的項目 (按鈕移到右側就是啟用)。 另外,你可以選擇 Wifi 的無線基地台,這樣就可以不用安插網路線。因為目前電腦教室沒有提供 AP 的功能,所以,你可能還是得要安插網路線才好。 底下是有 AP 的範例,你可以忽略!
- 4. 軟體升級
當樹莓派有網際網路的情況下,樹莓派會自動連結到官網,看看有沒有適合的可升級軟體使用。 雖然樹莓派就是小小的一個系統,但是仍然可能會被攻擊,畢竟網路怪客很愛測試 Linux 系統來當作跳板! 所以,還是得要升級、升級!還好,我們使用的是最新的系統,因此系統升級不會太過複雜! 如果你使用的是舊的 SD 卡內容,那可能就會有很多軟體要下載更新,會花比較多時間喔!
- 5. 重新開機
上面的初次登入處理完畢之後,你就可以重新開機!準備正式進入樹莓派啦!
1.4: 進入樹莓派桌面系統 (Desktop)
進入到樹莓派作業系統的桌面環境,你會看到工作列是在頂端,而不是像 windows 在底端~右上角會有一些項目顯示, 左上角最左邊一個,就是所謂的『開始程式集』,圖示是一個草莓模樣的小圖示。點下去之後,就會出現一堆軟體提供給妳! 現在,讓我們來操作一下這個系統吧。不過要注意的是,因為樹莓派 3B 的網路很慢!SD 卡也很慢...所以,顯示效能不太好, 不要覺得太難過喔!
- 1. 使用瀏覽器
左上角的開始程式集,點選『網際網路』就會出現『Chromium 網頁瀏覽器』,你可以嘗試 youtube.com 或鳥哥的網站看看, 基本上...速度確實很慢!所以,看看有連上系統就好!不用強迫自己要去使用啦!
- 2. 樹莓派額外設定與修改
如果在上一小節的設定裡面有地方設定錯誤,可以在開始程式集的『偏好設定』裡面選擇『Raspberry Pi 設定』項目來處理即可! 包括密碼變更、主機名稱設定、開機要不要使用桌面系統、是否需要調整螢幕寬度、要不要啟動 ssh 或 VNC 等遠端連線界面、 在地化的語系、時區、鍵盤等,都可以在這個地方進行修改與設定!
- 3. 建議使用的軟體項目
如果你真的在客廳使用了樹莓派。那麼可以連接無線鍵盤滑鼠,搭配客廳的電視機,就可以使用樹莓派了! 那麼此時你可以在客廳開始寫程式囉!資傳系的同學很愛用 Visual Studio Code,那也可以安裝這套軟體! 就能使用了!安裝也很簡單,在開始程式集的『偏好設定』裡面的『Recommended Software』就可以看到。 不過,樹莓派還是得要去官網抓軟體清單,這部份在一開始依舊會比較慢!
- 4. 樹莓派硬體測試 (好像只有 SD 卡速度)
原本鳥哥以為有一堆測試可以進行,結果只有 SD 卡的速度測試...速度測試在寫入 10Mbytes/s 就是成功... 所以,效能真的很不好...大家簡單的看看就可以了~
- 5. 啟動工作管理員
查看一下工作管理員~其實就是看一下 CPU 與記憶體有沒有超過使用的限值~事實上,樹莓派 3B 有 4 個 CPU 核心, 基本上效能不是太差!只是,SD 卡速度不好,所以在讀寫頻繁的情況下,速度會很慢很慢!如果是單純的文字界面, 其實效果是還不錯的啦!
- 5. 文字終端機偏好設定
預設的文字終端機字型有夠小...看到快要吐血...你可以修改一下字體,放大到 20 點字,應該就會好很多! 如下所示,大家來設定一下喔!
1.5: 文字界面觀察系統
透過文字界面的終端機形式,輸入一些 Linux 常用的指令,可以看到很多系統的資訊喔!那就讓我們來測試看看:
- 查看樹莓派 IP 資料
未來上課,可能許多同學都需要登入到這塊樹莓派上面去,因此就需要知道 IP 位址才行~探索 IP 位址的方法很簡單, 就直接使用 ifconfig 或 ip addr show 即可!
rasppi@raspberrypi:~ $ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.201.16 netmask 255.255.255.0 broadcast 192.168.201.255 inet6 fe80::141b:34cb:6d8e:f2c1 prefixlen 64 scopeid 0x20 ether b8:27:eb:8d:fb:dc txqueuelen 1000 (Ethernet) RX packets 135 bytes 62728 (61.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 153 bytes 24152 (23.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 27 bytes 2811 (2.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 27 bytes 2811 (2.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.181 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::5b4a:7c08:6165:29de prefixlen 64 scopeid 0x20<link> ether b8:27:eb:d8:ae:89 txqueuelen 1000 (Ethernet) RX packets 16587 bytes 21846948 (20.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 7085 bytes 811265 (792.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如上所示,我們會有兩張網卡,一張是有線網路的 eth0 網卡,另一張則是無線網路的 wlan0 網卡。如果你要用有線的桌機連線到系統, 就得要看 eth0 這個網卡的 IP 位址 (第二行 inet 後面接的數值)。如果要使用 ip addr show 的話,就會像這樣:
rasppi@raspberrypi:~ $ ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group... link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group... link/ether b8:27:eb:8d:fb:dc brd ff:ff:ff:ff:ff:ff inet 192.168.201.16/24 brd 192.168.201.255 scope global dynamic noprefixroute eth0 valid_lft 258712sec preferred_lft 226312sec inet6 fe80::141b:34cb:6d8e:f2c1/64 scope link valid_lft forever preferred_lft forever 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group.. link/ether b8:27:eb:d8:ae:89 brd ff:ff:ff:ff:ff:ff inet 192.168.0.181/24 brd 192.168.0.255 scope global dynamic noprefixroute wlan0 valid_lft 594332sec preferred_lft 518732sec inet6 fe80::5b4a:7c08:6165:29de/64 scope link valid_lft forever preferred_lft forever
這兩個指令展示的結果不太一樣,使用上面要注意一下喔!
1.6: 當週實做
- 使用 lscpu 查看一下系統,說明一下 CPU 是幾核心?每個核心幾個執行緒?CPU 時脈最大到多少?
- 使用 free -m 查看一下,目前的實體記憶體、記憶體置換各有多少容量 (MB)
- 使用 date 查看一下,時間是否為正常?
- 使用 lsusb 查看一下所有的 USB 裝置有哪些?
- 使用 top -d2 在文字界面啟用工作管理員,並使用 q 離開 top 軟體
.