之前收到留言,用户提出想要在树莓派运行 deepin 23 系统,近期 deepin(深度)社区 deepin-raspberrypi SIG 内部发布了一个可以给树莓派使用的尝鲜版 deepin 23 镜像,接下来我们一起看看这个卡片电脑,运行 deepin 23 的效果吧。(已验证设备树莓派 4b,树莓派 5b,理论上该镜像通用其他型号,大家也可以自己尝试哦~)
一、构建内核
内核可以从官方仓库的 boot 目录下拷贝:https://github.com/raspberrypi/firmware
安装工具,这里选择交叉编译,安装 64 位工具链。
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
克隆代码
git clone --depth=1 https://github.com/raspberrypi/linux
根据 Raspberry Pi 型号运行以下命令来准备默认配置。这里以树莓派 4b 和5b 为例。
1.1 树莓派 4d
cd linux
KERNEL=kernel8
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
1.2 树莓派 5b
cd linux
KERNEL=kernel_2712
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2712_defconfig
使用配置构建,对于所有 64 位版本
make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image dtbs modules
更多内容请参考: https://www.raspberrypi.com/documentation/computers/linux_kernel.html
二、创建磁盘文件
dd if=/dev/zero of=deepin-raspberrypi.img bs=1M count=2G
(echo n; echo 1; echo ""; echo +300M; echo ef00; \
echo c; echo boot; \
echo n; echo 2; echo ""; echo ""; echo ""; \
echo c; echo 2; echo rootfs; \
echo w; echo y) | gdisk deepin-raspberrypi.img
挂载
LOOP=$(sudo losetup --partscan --find --show deepin-raspberrypi.img)
sudo mkfs.fat -F32 "${LOOP}p1"
sudo mkfs.ext4 "${LOOP}p2"
2.1 拷贝根文件系统和引导
mkdir /mnt/rootfs
ROOTFS="/mnt/rootfs"
sudo mount "${LOOP}p2" $ROOTFS
git clone https://github.com/chenchongbiao/deepin-raspberrypi.git
cd deepin-raspberrypi
# 构建根文件系统
./build-rootfs.sh
sudo mount "${LOOP}p1" $ROOTFS/boot
# 在物理设备上需要添加 cmdline.txt 定义 Linux内核启动时的命令行参数
PTUUID=$(sudo blkid /dev/loop0 | awk -F'PTUUID="' '{print $2}' | awk -F'"' '{print $1}')
echo "console=serial0,115200 console=tty1 root=PARTUUID=$PTUUID-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh" | sudo tee $ROOTFS/boot/cmdline.txt
# 拷贝引导加载程序/GPU 固件等, 从 https://github.com/raspberrypi/firmware/tree/master/boot 官方仓库中拷贝,另外放入了 cmdline.txt 和 config.txt 配置
sudo cp -r firmware/* $ROOTFS/boot
2.2 安装 raspi-config
树莓派官方系统配置工具
sudo mount --bind /dev $ROOTFS/dev
sudo mount -t proc chproc $ROOTFS/proc
sudo mount -t sysfs chsys $ROOTFS/sys
sudo mount -t tmpfs -o "size=99%" tmpfs $ROOTFS/tmp
sudo mount -t tmpfs -o "size=99%" tmpfs $ROOTFS/var/tmp
# 安装树莓派的 raspi-config
sudo chroot $ROOTFS /usr/bin/env bash -e -o pipefail -c "curl http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20240313_all.deb -o /tmp/raspi-config.deb"
sudo chroot $ROOTFS /usr/bin/env bash -e -o pipefail -c "apt update -y && apt install -y /tmp/raspi-config.deb"
sudo chroot $ROOTFS /usr/bin/env bash -e -o pipefail -c "rm /tmp/raspi-config.deb"
2.3 编辑分区表
PTUUID=$(sudo blkid $LOOP | awk -F'PTUUID="' '{print $2}' | awk -F'"' '{print $1}')
sudo tee $ROOTFS/etc/fstab << EOF
proc /proc proc defaults 0 0
PARTUUID=$PTUUID-01 /boot vfat defaults 0 2
PARTUUID=$PTUUID-02 / ext4 defaults,noatime 0 1
EOF
卸载磁盘
sudo umount -l $ROOTFS
sudo losetup -D $LOOP
三、自动化脚本
git clone https://github.com/deepin-community/deepin-raspberrypi.git
cd deepin-raspberrypi
./build.sh
构建的是最小系统。
默认账号密码都是deepin。
推荐使用树莓派官方的烧录工具。
四、扩容
镜像烧录完后可能没自动扩容需要手动操作下。
sudo e2fsck -f /dev/sda2sudo resize2fs /dev/sda2
sda 根据TF卡插入后显示的实际设备修改,可以通过命令 lsblk 查看。
五、安装桌面
export DEBIAN_FRONTEND=noninteractive
sudo apt update
sudo apt install deepin-desktop-environment-base \
deepin-desktop-environment-cli \
deepin-desktop-environment-core \
deepin-desktop-environment-extras
安装完毕后重启。
六、安装应用
建议直接前往应用官网、GitHub 等下载对应的应用安装包。
6.1 安装浏览器
sudo apt install firefox
6.2 安装 UOS AI
sudo apt update
sudo apt install uos-ai
可能需要重启,才能在 dock 栏看到 UOS AI 的插件。通过点击 UOS AI 图标,可以弹出界面,点击无账号可以免费领取账号使用。
6.3 中文输入法
需要安装插件
sudo apt update
sudo apt install deepin-fcitx5configtool-plugin
安装完成后,在控制中心=>键盘和语言=>输入法中设置。
七、效果图
原生的 QQ、微信、WPS 等应用都可以使用。
八、镜像下载
镜像下载链接:deepin-raspberrypi.img.xz官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
提取码:OiFA
后续优化后将提交镜像到 deepin 官网,敬请关注。
感谢 sig-deepin-raspberrypi 成员空木蓮華供稿,欢迎大家加入 SIG 组一起玩,有问题欢迎提交至 https://github.com/deepin-community/deepin-raspberrypi,期待各位的反馈。
相关阅读:
(1)deepin 全版本镜像下载(含 deepin V15)