raspberrypi 官網 raspberrypi 官網

互動 IoT 系統應用 - 上課教材

互動 IoT 系統應用 > 課程內容 > 第 01 章 - 認識樹莓派並燒錄作業系統

第 01 章 - 認識樹莓派並燒錄作業系統

上次更新日期 2022/09/15

樹莓派 (raspberry pi) 是由英國樹莓派基金會開發的一款單板電腦,使用的 CPU 是 ARM 架構的系統, 基本上,只要加上一片記憶卡 (SD card) 當作系統儲存媒體,就可以開機使用了。

學習目標:

  1. 取得樹莓派
  2. 連結官網燒錄所需要的作業系統
  3. 第一次開機與使用樹莓派 - 使用樹莓派原生系統

1.1: 取得樹莓派

樹莓派是一種單板電腦,最早開發給教育人員用來教學之用,希望小孩子可以在家的客廳裡面學習簡單的程式開發。 因此,最早樹莓派僅有 HDMI 影像輸出界面,原因為此。

樹莓派使用 ARM CPU 架構,跟手機相同。全部電腦需要的 CPU、記憶體、顯示界面、網路界面、USB界面、感測器界面與電源輸入等, 通通塞入到一張名片大小的卡片上。只是需要額外的記憶卡,通常是 SD card,並且燒錄正確的作業系統之後, 就可以開始開機使用了。樹莓派 3B 的正面圖示,有點像底下這樣 (底下為 3B+ 正面圖示,與 3B 有點不同,不過差異應該不大):

樹莓派 3B+ 畫面示意
  • 分組取得樹莓派

由於設備數量問題,沒有辦法提供一人一組樹莓派,請同學們進行分組,每組將取得底下的設備與數量, 請到學期末時繳回下列設備,若有遺失,請自行購買相同型號設備,於期末時繳回:

  • 樹莓派 3B 本體一台
  • 32G SD card 一片 (連同轉接器)
  • 電源轉換器一顆 (USB 連接線一條)
  • HDMI 轉 VGA 接頭一顆
  • RJ-45 網路線一條
  1. 請立刻進行分組,並向助教提供組員名單。老師與助教具有主導分組的權利。 (由於設備問題,本課程只提供 8 組設備,請同學們自行分組)
  2. 請各組推派一人作為器材管理人員 (組長),並向助教簽領借用單,方可取得上述設備
  3. 取得設備後,先清點設備是否有短缺,若有短缺,請立即回報助教,否則就以器材為完整借出。
  4. 請立刻使用電源接上樹莓派,測試其電源燈號是否會亮起。若有亮燈代表樹莓派有通電,否則請回報助教。 (除了設備損壞之外,也可能是電源供應不佳所致)
  5. 拔除電源之後,各成員自行觀察樹莓派本體。
  • 了解樹莓派硬體規格

查詢維基百科或樹莓派官網,然後回答相關問題:

  1. CPU 時脈與核心數,各為多少?
  2. 記憶體有多少 Gbytes
  3. 乙太網路的速度多快?
  4. 是否具有 Wifi 模組?
  5. 是否具有 GPIO 模組?
  6. 是否具有藍芽模組?
  7. 輸入的電壓與電流 (直流電喔!)
  8. 額定消耗的功率

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: 當週實做

  1. 使用 lscpu 查看一下系統,說明一下 CPU 是幾核心?每個核心幾個執行緒?CPU 時脈最大到多少?
  2. 使用 free -m 查看一下,目前的實體記憶體、記憶體置換各有多少容量 (MB)
  3. 使用 date 查看一下,時間是否為正常?
  4. 使用 lsusb 查看一下所有的 USB 裝置有哪些?
  5. 使用 top -d2 在文字界面啟用工作管理員,並使用 q 離開 top 軟體

.