当开源生态遇上极客硬件,会碰撞出怎样的火花?当 deepin 25 遇上香橙派 5 Plus 开发板,又会带来什么样的实践体验?
感谢社区用户@zc_zhu 的贡献与投稿,本文将带你深入体验这一融合过程:从环境准备、系统构建,到内核编译与桌面部署,为大家详细讲解如何在香橙派 5 Plus 上移植 deepin 25 操作系统。
一、环境准备
系统准备
我们推荐在 deepin 或 Ubuntu、Debian 等系统环境下进行操作,使用 AMD64 主机配合 TF 卡构建系统镜像。若你希望将系统直接安装至板载 eMMC,可先通过 TF 卡启动 Armbian,再在开发板内完成后续操作。
安装工具及依赖
# 切换到超级账户(root) sudo su # 升级系统,安装依赖 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 卡分区与格式化
将 TF 卡通过读卡器接入电脑,假设识别为/dev/sda(实际操作请根据实际情况确认设备名)。
我们使用parted工具进行分区,预留 16MB 空白区域,并创建一个根分区。如果是安装在emmc上,分区及挂载时替换相应设备,一般应该为mmcblk0。
# 我这里只有一个根分区,磁盘前面留16M空白区域,你也可以使用其他工具分区,比如cfdisk parted--script /dev/sda mklabelgpt mkpartprimary ext416MiB100%
接下来格式化分区,并生成用于后续引导和 fstab 设置的 UUID。
# 生成一个根分区的uuid,后面设置引导和fstab的时候使用
root_uuid=$(uuidgen)
# 格式化成ext4
mkfs.ext4 -U"${root_uuid}"-L root /dev/sda1
最后挂载分区。
# 设置挂载点 exportWORKSPACE=$(pwd)/deepin mkdir${WORKSPACE} # 挂载跟分区 mount /dev/sda1${WORKSPACE}
三、构建根文件系统
使用mmdebstrap构建 deepin 25(代号 Crimson)的最小根文件系统。
# deepin 25版本代号 exportdist_version="crimson" exportdist_name="deepin" # 系统架构 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系统上构建,需要执行以下命令 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 425956BB3E31DF51 # 构建根文件系统 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 与内核
接下来需编译 U-Boot 引导程序和 Linux 内核。
编译 U-Boot:需下载并编译 tf-a 和 u-boot,具体命令可参考原文件或作者项目仓库。完成后需将生成的 u-boot 烧写至开发板 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的方法,将文件写入到开发版的spi里面 ddif=./u-boot/u-boot-rockchip.bin of=/dev/sda1 seek=1 bs=32k conv=fsync status=none
编译内核:使用 Armbian 提供的 Linux 内核源码,配置并编译生成 deb 包。
# 获取内核源码
gitclonehttps://github.com/armbian/linux-rockchip -b rk-6.1-rkr5.1 --depth=1
# 配置并编译内核
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内核软件包复制到TF卡上的根文件系统的boot目录中等待后面步骤安装
cp*.deb${WORKSPACE}/boot/
五、Chroot 配置与系统安装
挂载虚拟文件系统并 Chroot 进入目标根环境。
# 挂载相关分区
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到根文件系统中
chroot${WORKSPACE}
# 不进行交互式安装
export DEBIAN_FRONTEND=noninteractive
接下来在 Chroot 环境中安装内核及桌面环境。
安装内核
# 上一步已经chroot到deepin的根文件系统中,确保命令成功执行 # 安装内核 dpkg-i /boot/*.deb
安装桌面
# 安装桌面环境
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
六、系统配置与用户设置
设置主机名、root 密码,并新建用户。
# 设置主机名
echoOPi5Plus |tee/etc/hostname > /dev/null
# 设置root密码
passwd
# 新建用户
exportUSER=用户名
useradd -m -Gusers,sudo,audio -s /bin/bash${USER}
passwd${USER}
配置 fstab 和 extlinux 引导。
# 配置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
七、清理工作与首次启动
退出 Chroot 环境,清理临时文件和软件包缓存。
# 删除内核软件包 rm-rf /boot/*.deb # 清理apt缓存 apt clean # 退出chroot环境 exit
随后卸载相关设备。
umount${WORKSPACE}/tmp
umount${WORKSPACE}/var/tmp
umount${WORKSPACE}/proc
umount${WORKSPACE}/sys
umount${WORKSPACE}/dev
umount${WORKSPACE}
借着将 TF 卡插入香橙派 5 Plus,并接通电源与外设,即可首次进入 deepin 25 桌面!
以上便是在香橙派5Plus上运行 deepin 25 的全过程,本教程至此结束。再次感谢 @zc_zhu 的贡献及分享!
若您在实践过程中遇到了任何问题,或者对我们的教程有任何建议,欢迎随时在deepin 社区论坛中与我们交流。
-
操作系统
+关注
关注
37文章
7329浏览量
128643 -
移植
+关注
关注
1文章
407浏览量
29214 -
开源
+关注
关注
3文章
4033浏览量
45572 -
开发板
+关注
关注
25文章
6125浏览量
113380
原文标题:我是这样在香橙派5Plus上移植deepin 25的 | 实战分享
文章出处:【微信号:linux_deepin,微信公众号:深度操作系统】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
香橙派简介:什么是香橙派 Orange Pi
【Orange Pi Zero Plus2试用体验】香橙派创客神器开箱鉴赏
【Orange Pi Zero Plus2试用体验】香橙派Orange Pi Zero Plus2开发板烧录Linux系统
双千兆网口开发板香橙派R1 Plus使用OpenWRT镜像的操作说明
Linux操作系统搭建51单片机开发环境(国产桌面操作系统deepin)精选资料分享
如何在Linux操作系统deepin下搭建51单片机开发环境?
深度操作系统deepin现已支持指定源更新
deepin操作系统介绍

如何在香橙派5 Plus上移植deepin 25操作系统
评论