跳至主要內容
CJCJ Kuo

全站文章搜尋

輸入關鍵字即刻在靜態索引中快速搜尋
↑↓ 導航 · Enter 選取前往獨立搜尋頁 →
Raspberry Pi 4 Ubuntu 從 USB 開機 (無 SD Card)
資訊技術••約 2 分鐘•561 字

Raspberry Pi 4 Ubuntu 從 USB 開機 (無 SD Card)

本文目錄共 5 節

請先參考”樹梅派 Raspberry Pi 更新韌體 EEPROM“把韌體更新到最新版本,並下載最新版本的 Ubuntu 刷入 USB 中,不知道如何將 OS 刷入 USB 可以參考: “樹梅派使用 balenaEtcher 將 OS 刷入 MicroSD 或 USB 步驟教學”。

Step 1 解壓縮系統核心

需要先解壓縮系統核心,因 Pi 的開機引導程式無法正確讀取壓縮的系統核心檔案,請根據目前操作系統類型執行解壓縮系統核心。

Linux 系統上

zcat vmlinuz> vmlinux

Windows 系統上

請用 7-zip 解壓縮 vmlinuz 內容,並將檔案重新命名由 vmlinuz~ 改成 vmlinux。

Step 2 編輯 config.txt 設定檔

config.txt 標示各Raspberry Pi 版本啟動方式,請更新 內的內容成以下內容:


max_framebuffers=2
dtparam=sd_poll_once
boot_delay 
kernel=vmlinux 
initramfs initrd.img followkernel

注意:
dtparam=sd_poll_once 參數將會關閉 SD 卡插槽,解決開機後未插入SD卡導致 CPU 攀升的問題,但有需要使用SD卡請將此行註解。

Step 3 建立自動解壓縮腳本

ubuntu 系統更新系統核心檔案會將系統核心再次變成 vmlinuz ,而重開機時無法確讀取系統核心檔而導致無法開機,為解決此問題需建立自動解壓縮腳本。

在啟動分區中創建一個名為 auto_decompress_kernel 的腳本。在 Linux 中可以使用 nano、vi 或 vim 等來達成。在 windows 請刪除副檔名未刪除將無法正常運作,例如刪除附檔名“txt”。

將以下內容添加至檔案中

#!/bin/bash -e

#Set Variables
BTPATH=/boot/firmware
CKPATH=$BTPATH/vmlinuz
DKPATH=$BTPATH/vmlinux

#Check if compression needs to be done.
if [ -e $BTPATH/check.md5 ]; then
     if md5sum --status --ignore-missing -c $BTPATH/check.md5; then
         echo -e "\e; then
     echo -e "\e; then
    echo -e "\e; then
    echo -e "\e[31mMD5 GENERATION FAILED!\e[0m"
    else echo -e "\e[32mMD5 generated Succesfully\e[0m"
fi
#Exit
exit 0

Step 4 套用自動解壓縮腳本

將 Step 3 建立的腳本套用使每次安裝軟體包時都會自動解壓縮檔案,為達成此目的需要建立一個執行檔。

注意:
該檔案需在 Ubuntu 文件系統中建立,如果在 Linux 系統上進行此類型操作可以在執行USB開機前就設定好,在 Windows 或 MacOS上則需要在系統第一次開機後立刻設定。

在 /etc/apt/apt.conf.d/ 建立檔案名稱為 999_decompress_rpi_kernel 指令如下:

sudo vi /etc/apt/apt.conf.d/999_decompress_rpi_kernel

999_decompress_rpi_kernel 檔案需添加以下程式碼:

DPkg::Post-Invoke {"/bin/bash /boot/firmware/auto_decompress_kernel"; };

修改檔案權限,使檔案有權限執行:

sudo chmod +x /etc/apt/apt.conf.d/999_decompress_rpi_kernel

參考來源:

查看此系列所有文章 →
CJ Kuo (郭仕杰)

CJ Kuo (郭仕杰)

創辦人兼主筆

熱愛軟體架構、DevOps、系統調優與新技術探索的工程實踐者,也會寫寫投資和生活。

獨立技術專刊推播

訂閱技術電子報

有新文章發布時寄送到您的信箱,不發送垃圾信。