當(dāng)開源生態(tài)遇上極客硬件,會(huì)碰撞出怎樣的火花?當(dāng) deepin 25 遇上香橙派 5 Plus 開發(fā)板,又會(huì)帶來什么樣的實(shí)踐體驗(yàn)?
感謝社區(qū)用戶@zc_zhu 的貢獻(xiàn)與投稿,本文將帶你深入體驗(yàn)這一融合過程:從環(huán)境準(zhǔn)備、系統(tǒng)構(gòu)建,到內(nèi)核編譯與桌面部署,為大家詳細(xì)講解如何在香橙派 5 Plus 上移植 deepin 25 操作系統(tǒng)。
一、環(huán)境準(zhǔn)備
系統(tǒng)準(zhǔn)備
我們推薦在 deepin 或 Ubuntu、Debian 等系統(tǒng)環(huán)境下進(jìn)行操作,使用 AMD64 主機(jī)配合 TF 卡構(gòu)建系統(tǒng)鏡像。若你希望將系統(tǒng)直接安裝至板載 eMMC,可先通過 TF 卡啟動(dòng) Armbian,再在開發(fā)板內(nèi)完成后續(xù)操作。
安裝工具及依賴
# 切換到超級(jí)賬戶(root) sudo su # 升級(jí)系統(tǒng),安裝依賴 apt update-y apt install-ycurlgit mmdebstrap qemu-userqemu-user-staticbinfmt-supportusrmerge apt install-ybuild-essentialcrossbuild-essential-arm64libncurses-devswig flex bison u-boot-toolsbc rsync libssh-devgit kmod cpio libelf-devlibssl-devdwarves python3-pyelftoolslibgnutls28-devpython3-devpython3-setuptoolsuuid-runtime
二、TF 卡分區(qū)與格式化
將 TF 卡通過讀卡器接入電腦,假設(shè)識(shí)別為/dev/sda(實(shí)際操作請根據(jù)實(shí)際情況確認(rèn)設(shè)備名)。
我們使用parted工具進(jìn)行分區(qū),預(yù)留 16MB 空白區(qū)域,并創(chuàng)建一個(gè)根分區(qū)。如果是安裝在emmc上,分區(qū)及掛載時(shí)替換相應(yīng)設(shè)備,一般應(yīng)該為mmcblk0。
# 我這里只有一個(gè)根分區(qū),磁盤前面留16M空白區(qū)域,你也可以使用其他工具分區(qū),比如cfdisk parted--script /dev/sda mklabelgpt mkpartprimary ext416MiB100%
接下來格式化分區(qū),并生成用于后續(xù)引導(dǎo)和 fstab 設(shè)置的 UUID。
# 生成一個(gè)根分區(qū)的uuid,后面設(shè)置引導(dǎo)和fstab的時(shí)候使用
root_uuid=$(uuidgen)
# 格式化成ext4
mkfs.ext4 -U"${root_uuid}"-L root /dev/sda1
最后掛載分區(qū)。
# 設(shè)置掛載點(diǎn) exportWORKSPACE=$(pwd)/deepin mkdir${WORKSPACE} # 掛載跟分區(qū) mount /dev/sda1${WORKSPACE}
三、構(gòu)建根文件系統(tǒng)
使用mmdebstrap構(gòu)建 deepin 25(代號(hào) Crimson)的最小根文件系統(tǒng)。
# deepin 25版本代號(hào) exportdist_version="crimson" exportdist_name="deepin" # 系統(tǒng)架構(gòu) exportarch="arm64" # 需要安裝的軟件包 exportPACKAGES="ca-certificates,locales,sudo,apt,adduser,polkitd,systemd,network-manager,dbus-daemon,apt-utils,bash-completion,curl,vim,bash,deepin-keyring,init,ssh,net-tools,iputils-ping,lshw,iproute2,iptables,procps,wpasupplicant,dmidecode,ntpsec-ntpdate,linux-firmware,fdisk,initramfs-tools" # 配置軟件源 exportREPOS="deb https://community-packages.deepin.com/beige/ crimson main commercial community" # 如果不是在deepin系統(tǒng)上構(gòu)建,需要執(zhí)行以下命令 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 425956BB3E31DF51 # 構(gòu)建根文件系統(tǒng) mmdebstrap --hook-dir=/usr/share/mmdebstrap/hooks/merged-usr --skip=check/empty --include=$PACKAGES --components="main,commercial,community" --variant=minbase --architectures=${arch} ${dist_version} ${WORKSPACE} "${REPOS}"
四、編譯 U-Boot 與內(nèi)核
接下來需編譯 U-Boot 引導(dǎo)程序和 Linux 內(nèi)核。
編譯 U-Boot:需下載并編譯 tf-a 和 u-boot,具體命令可參考原文件或作者項(xiàng)目倉庫。完成后需將生成的 u-boot 燒寫至開發(fā)板 SPI。
# 下載rkbin gitclonehttps://github.com/armbian/rkbin --depth=1 # 下載u-boot源碼 gitclonehttps://github.com/u-boot/u-boot -b v2025.07 --depth=1 # 下載tf-a源碼 gitclonehttps://github.com/TrustedFirmware-A/trusted-firmware-a -b v2.13.0 --depth=1 # 編譯tf-a pushd./trusted-firmware-a ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rk3588 bl31 popd # 編譯u-boot pushd./u-boot exportROCKCHIP_TPL=../rkbin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.15.bin exportBL31=../trusted-firmware-a/build/rk3588/release/bl31/bl31.elf ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make orangepi-5-plus-rk3588_defconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j$(nproc) popd # 在uboot目錄下找到u-boot-rockchip-bin文件,參考香橙派官方燒寫u-boot到spi的方法,將文件寫入到開發(fā)版的spi里面 ddif=./u-boot/u-boot-rockchip.bin of=/dev/sda1 seek=1 bs=32k conv=fsync status=none
編譯內(nèi)核:使用 Armbian 提供的 Linux 內(nèi)核源碼,配置并編譯生成 deb 包。
# 獲取內(nèi)核源碼
gitclonehttps://github.com/armbian/linux-rockchip -b rk-6.1-rkr5.1 --depth=1
# 配置并編譯內(nèi)核
wget https://raw.gitcode.com/zc_zhu/Deepin-OPi5Plus/blobs/8f39ccf42eb5e7058eb389ed1908fdddea1f84c3/.config -O ./linux-rockchip/.config
pushdlinux-rockchip
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make menuconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make bindeb-pkg -j$(nproc)
popd
# 將編譯好的deb內(nèi)核軟件包復(fù)制到TF卡上的根文件系統(tǒng)的boot目錄中等待后面步驟安裝
cp*.deb${WORKSPACE}/boot/
五、Chroot 配置與系統(tǒng)安裝
掛載虛擬文件系統(tǒng)并 Chroot 進(jìn)入目標(biāo)根環(huán)境。
# 掛載相關(guān)分區(qū)
mount--bind/dev"${WORKSPACE}/dev"
mount-tproc chproc"${WORKSPACE}/proc"
mount-tsysfs chsys"${WORKSPACE}/sys"
mount-ttmpfs-o"size=99%"tmpfs"${WORKSPACE}/tmp"
mount-ttmpfs-o"size=99%"tmpfs"${WORKSPACE}/var/tmp"
# chroot到根文件系統(tǒng)中
chroot${WORKSPACE}
# 不進(jìn)行交互式安裝
export DEBIAN_FRONTEND=noninteractive
接下來在 Chroot 環(huán)境中安裝內(nèi)核及桌面環(huán)境。
安裝內(nèi)核
# 上一步已經(jīng)chroot到deepin的根文件系統(tǒng)中,確保命令成功執(zhí)行 # 安裝內(nèi)核 dpkg-i /boot/*.deb
安裝桌面
# 安裝桌面環(huán)境
apt update -y
apt install -y
deepin-desktop-environment-core
deepin-desktop-environment-base
deepin-desktop-environment-cli
deepin-desktop-environment-extras
firefox
ddm
treeland
systemctldisablelightdm
systemctlenableddm
六、系統(tǒng)配置與用戶設(shè)置
設(shè)置主機(jī)名、root 密碼,并新建用戶。
# 設(shè)置主機(jī)名
echoOPi5Plus |tee/etc/hostname > /dev/null
# 設(shè)置root密碼
passwd
# 新建用戶
exportUSER=用戶名
useradd -m -Gusers,sudo,audio -s /bin/bash${USER}
passwd${USER}
配置 fstab 和 extlinux 引導(dǎo)。
# 配置fstab echo"#">${WORKSPACE}/etc/fstab echo"UUID=${root_uuid,,} / ext4 defaults,x-systemd.growfs 0 1">>${WORKSPACE}/etc/fstab # 配置extlinux mkdir-p${WORKSPACE}/boot/extlinux/ cat>${WORKSPACE}/boot/extlinux/extlinux.conf << EOF default?Deepin V25 menu?title OPi5Plus U-Boot prompt?1 timeout?5 label?Deepin V25 ? ??menu?Deepin V25 ? ??linux?/boot/vmlinuz-6.1.115 ? ??initrd?/boot/initrd.img-6.1.115 ? ??fdt?/usr/lib/linux-image-6.1.115/rockchip/rk3588-orangepi-5-plus.dtb ? ??fdtoverlays?/usr/lib/linux-image-6.1.115/rockchip/overlay/rockchip-rk3588-panthor-gpu.dtbo ? ??append?root=UUID=${root_uuid}?rootfs=ext4 rootwait rw console=ttyS2,1500000?console=tty1 cgroup_enable=cpuset cgroup_memory=1?cgroup_enable=memory loglevel=3 EOF
七、清理工作與首次啟動(dòng)
退出 Chroot 環(huán)境,清理臨時(shí)文件和軟件包緩存。
# 刪除內(nèi)核軟件包 rm-rf /boot/*.deb # 清理apt緩存 apt clean # 退出chroot環(huán)境 exit
隨后卸載相關(guān)設(shè)備。
umount${WORKSPACE}/tmp
umount${WORKSPACE}/var/tmp
umount${WORKSPACE}/proc
umount${WORKSPACE}/sys
umount${WORKSPACE}/dev
umount${WORKSPACE}
借著將 TF 卡插入香橙派 5 Plus,并接通電源與外設(shè),即可首次進(jìn)入 deepin 25 桌面!
以上便是在香橙派5Plus上運(yùn)行 deepin 25 的全過程,本教程至此結(jié)束。再次感謝 @zc_zhu 的貢獻(xiàn)及分享!
若您在實(shí)踐過程中遇到了任何問題,或者對(duì)我們的教程有任何建議,歡迎隨時(shí)在deepin 社區(qū)論壇中與我們交流。
-
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7267瀏覽量
128170 -
移植
+關(guān)注
關(guān)注
1文章
406瀏覽量
29121 -
開源
+關(guān)注
關(guān)注
3文章
3892瀏覽量
45356 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
6027瀏覽量
110738
原文標(biāo)題:我是這樣在香橙派5Plus上移植deepin 25的 | 實(shí)戰(zhàn)分享
文章出處:【微信號(hào):linux_deepin,微信公眾號(hào):深度操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
香橙派簡介:什么是香橙派 Orange Pi
【Orange Pi Zero Plus2試用體驗(yàn)】香橙派創(chuàng)客神器開箱鑒賞
【Orange Pi Zero Plus2試用體驗(yàn)】香橙派Orange Pi Zero Plus2開發(fā)板燒錄Linux系統(tǒng)
雙千兆網(wǎng)口開發(fā)板香橙派R1 Plus使用OpenWRT鏡像的操作說明
Linux操作系統(tǒng)搭建51單片機(jī)開發(fā)環(huán)境(國產(chǎn)桌面操作系統(tǒng)deepin)精選資料分享
如何在Linux操作系統(tǒng)deepin下搭建51單片機(jī)開發(fā)環(huán)境?
香橙派Orange Pi One plus技術(shù)解析
香橙派Orange Pi PC Plus技術(shù)分析
香橙派Orange Pi Win Plus技術(shù)分析
香橙派Orange Pi Prime技術(shù)分析
香橙派Orange Pi Zero Plus技術(shù)分析
深度操作系統(tǒng)deepin現(xiàn)已支持指定源更新
deepin操作系統(tǒng)介紹

如何在香橙派5 Plus上移植deepin 25操作系統(tǒng)
評(píng)論