摘要
本文概要介紹在Windows 10上的VMware Workstation 15 Player上跨平台編譯樹莓派3代單板電腦的Linux作業系統核心與根檔案系統、並將映像檔寫入SD卡的步驟。
本文
跨平台編譯的特點可以參考這裡的描述。隨後將使用Windows 10宿主作業系統,安裝VMware Workstation 15 Player虛擬化程式、並於VMware上執行Ubuntu 22.04作業系統。當Ubuntu虛擬機啟動後,便於其上安裝編譯樹莓派核心所需的套件,接著再下載樹莓派的Linux核心和根檔案系統(root filesystem)的原始碼pi-gen,隨後將pi-gen切換至2019-04-08-raspbian-stretch標籤,透過Docker執行跨平台編譯完後,便將編譯的成果寫入SD卡,最後再將該SD卡插入樹莓派進行測試與確認。主要步驟將參考這裡。
開發主機的資訊如下所示。
必須執行以下的指令來安裝相依套件、和下載pi-gen原始碼。
sudo apt-get install openssh-server
sudo apt-get install docker.io
git clone https://github.com/RPi-Distro/pi-gen.git
cd pi-gen
git checkout 2019-04-08-raspbian-stretch
nano config
./build-docker.sh
其中的組態設定檔config內容如下。
IMG_NAME='leo-raspbian'
LOCALE_DEFAULT=en_US.UTF-8
KEYBOARD_KEYMAP=us
KEYBOARD_LAYOUT='English (US)'
TIMEZONE_DEFAULT=Aisa/Taipei
部份套件在現今已無法存取,包含了PiMag、和Chromium等,必須予以剪裁(停用),所以修改相關的shell腳本。
diff --git a/stage3/00-install-packages/00-packages b/stage3/00-install-packages/00-packages
index 61c652f..90b4f63 100644
--- a/stage3/00-install-packages/00-packages
+++ b/stage3/00-install-packages/00-packages
@@ -7,7 +7,6 @@ raspberrypi-artwork
policykit-1
gvfs
rfkill
-chromium-browser rpi-chromium-mods
gldriver-test
fonts-droid-fallback
fonts-liberation2
diff --git a/stage3/00-install-packages/01-run.sh b/stage3/00-install-packages/01-run.sh
index d768747..679d84e 100755
--- a/stage3/00-install-packages/01-run.sh
+++ b/stage3/00-install-packages/01-run.sh
@@ -1,8 +1,8 @@
#!/bin/bash -e
on_chroot << EOF
-update-alternatives --install /usr/bin/x-www-browser \
- x-www-browser /usr/bin/chromium-browser 86
-update-alternatives --install /usr/bin/gnome-www-browser \
- gnome-www-browser /usr/bin/chromium-browser 86
+#update-alternatives --install /usr/bin/x-www-browser \
+# x-www-browser /usr/bin/chromium-browser 86
+#update-alternatives --install /usr/bin/gnome-www-browser \
+# gnome-www-browser /usr/bin/chromium-browser 86
EOF
diff --git a/stage4/03-magpi/00-run.sh b/stage4/03-magpi/00-run.sh
index cc5a820..169c0d8 100755
--- a/stage4/03-magpi/00-run.sh
+++ b/stage4/03-magpi/00-run.sh
@@ -1,15 +1,15 @@
#!/bin/sh -e
-magpi_regex="MagPi[[:digit:]]*.pdf"
-magpi_loc="https://www.raspberrypi.org/magpi-issues"
-magpi_latest="$(curl "$magpi_loc/?C=M;O=D" -s | grep "$magpi_regex" -m 1 -o | head -n 1)"
+#magpi_regex="MagPi[[:digit:]]*.pdf"
+#magpi_loc="https://www.raspberrypi.org/magpi-issues"
+#magpi_latest="$(curl "$magpi_loc/?C=M;O=D" -s | grep "$magpi_regex" -m 1 -o | head -n 1)"
-if [ ! -f "files/$magpi_latest" ]; then
- find files/ -regextype grep -regex "files/$magpi_regex" -delete
- wget "$magpi_loc/$magpi_latest" -O "files/$magpi_latest"
-fi
+#if [ ! -f "files/$magpi_latest" ]; then
+# find files/ -regextype grep -regex "files/$magpi_regex" -delete
+# wget "$magpi_loc/$magpi_latest" -O "files/$magpi_latest"
+#fi
-file "files/$magpi_latest" | grep -q "PDF document"
+#file "files/$magpi_latest" | grep -q "PDF document"
-install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/MagPi"
-install -v -o 1000 -g 1000 -m 644 "files/$magpi_latest" "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/MagPi/"
+#install -v -o 1000 -g 1000 -d "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/MagPi"
+#install -v -o 1000 -g 1000 -m 644 "files/$magpi_latest" "${ROOTFS_DIR}/home/${FIRST_USER_NAME}/MagPi/"
diff --git a/stage5/00-install-extras/00-packages b/stage5/00-install-extras/00-packages
index 23e682c..aad092b 100644
--- a/stage5/00-install-extras/00-packages
+++ b/stage5/00-install-extras/00-packages
@@ -1,6 +1,6 @@
python3-thonny
sonic-pi
-scratch nuscratch scratch2
+#scratch nuscratch scratch2
smartsim
minecraft-pi python-minecraftpi
編譯完畢的畫面如下所示。
編譯完畢的成果分佈如下所示。
以Win32DiskImager寫入SD卡並插入樹莓派3代單板電腦後的執行畫面(即deploy底下的2023-02-24-leo-raspbian.zip)。
完成。
參考文獻
pi-gen
Ubuntu 22.04 image from OSBoxes
Can I run Raspbian Stretch on Pi 4?
沒有留言:
張貼留言