[ Content contribution] 树莓派运行 deepin v23
Tofloor
default avatar
空木蓮華
deepin
2024-03-26 08:17
Author

介绍

树莓派运行 deepin 系统。

构建内核

内核可以从官方 raspberrypi/firmware 仓库的 boot 目录下拷贝。

安装工具,这里选择交叉编译

sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev

为 64 位内核安装 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

cd linux KERNEL=kernel8 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig

使用配置构建,对于所有 64 位版本

make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image dtbs modules

分区

用读卡器将 SD 插入电脑,用 lsblk 识别设备。后面的操作和插入一个 SD 卡一样。

这里 dd 个磁盘文件,来当作 SD 卡。

dd if=/dev/zero of=deepin-raspberrypi.img bs=1M count=16384

如果是 SD 卡,进行下格式化, lsblk 查看具体设备。

如果分区被挂载了需要卸载 sudo umount /media/xxx, 用 fdisk 删除下已有的分区,下面是对磁盘进行分区, SD 卡同理。

sudo fdisk deepin-raspberrypi.img << EOF n p 1 +300M t c n p 2 w EOF

挂载

DEV=$(sudo losetup --partscan --find --show deepin-raspberrypi.img)
sudo mkfs.fat -F32 "${DEV}p1" sudo mkfs.ext4 "${DEV}p2" # 根分区 (/)

拷贝根文件系统和引导

mkdir /mnt/rootfs ROOTFS="/mnt/rootfs" sudo mount "${DEV}p2" $ROOTFS # 根文件系统 ./build-rootfs.sh sudo mount "${DEV}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

额外的包

# deepin 源里目前没有 raspi-config 这个包,需要另外下载 sudo mount --bind /dev $ROOTFS/dev sudo mount -t proc none $ROOTFS/proc sudo mount -t sysfs none $ROOTFS/sys sudo chroot $ROOTFS bash # 进入根文件系统 curl http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20240313_all.deb -o raspi-config.deb apt install ./raspi-config.deb rm ./raspi-config.deb # 退出系统 exit

编辑分区表

PTUUID=$(sudo blkid /dev/loop0 | 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

启动

尝试使用 qemu 启动

下面使用的内核和设备树是我编译的,也可以直接拷贝 firmware 中的 kernel.img 和 bcm2710-rpi-3-b.dtb

qemu-system-aarch64 -machine type=raspi3b \ -m 1G -dtb ~/code/raspberrypi/linux/arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b.dtb \ -kernel ~/code/raspberrypi/linux/arch/arm64/boot/Image \ -drive id=hd-root,format=raw,file=deepin-raspberrypi.img \ -append "rw earlycon=pl011,0x3f201000 console=ttyAMA0 console=ttyS0,115200 loglevel=8 root=/dev/mmcblk0p2 fsck.repair=yes net.ifnames=0 rootwait memtest=1 dwc_otg.fiq_fsm_enable=0" \ -serial stdio \ -netdev user,id=net0,net=10.0.2.0/24,hostfwd=tcp::8022-:22 \ -usb -device usb-kbd -device usb-tablet -device usb-net,netdev=net0

从 SD 卡启动

直接将 SD 插入树莓派,通电,插入显示屏,无需额外操作。

pc1.png

安装桌面环境

arm 的稳定源可能缺一些包,先添加上构建用的 ci

sudo vim /etc/apt/sources.list
deb [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/Develop:/main/standard/ ./ deb-src [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/Develop:/main/standard/ ./ deb [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/Develop:/community/deepin_develop/ ./ deb-src [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/Develop:/community/deepin_develop/ ./ deb [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/Develop:/dde/deepin_develop/ ./ deb-src [trusted=yes] https://ci.deepin.com/repo/obs/deepin:/Develop:/dde/deepin_develop/ ./
sudo apt update && sudo apt upgrade
sudo apt install deepin-desktop-environment-base sudo apt install deepin-desktop-environment-cli sudo apt install deepin-desktop-environment-core sudo apt install deepin-desktop-environment-extras sudo apt install deepin-desktop-environment-ll

安装完成后可以选择注释掉 ci 源,避免依赖冲突。

desktop1.png

desktop2.png

完结撒花。

参考

QEMU仿真树莓派1和3B-保姆级教程

raspberrypi document0ation

项目

deepin-raspberrypi

镜像文件

Reply Favorite View the author
All Replies
dxy2020
deepin
2024-03-26 08:31
#1

like

Reply View the author
jjcui8595
deepin
Resources Team Moderator
2024-03-26 08:49
#2

楼主威武like

Reply View the author
depend
deepin
2024-03-26 09:13
#3

6

Reply View the author
yanjuner
deepin
2024-03-26 09:20
#4

学到了学到了

Reply View the author
晚秋(lateautumn)
Moderator
2024-03-26 09:22
#5

厉害like

Reply View the author
阿尼樱奈奈
deepin
2024-03-26 09:36
#6

like

Reply View the author
Amber
deepin
2024-03-26 10:32
#7

没玩过,但是好高级like

Reply View the author
许自强
deepin
Ecological co-builder
2024-03-26 11:45
#8
like
Reply View the author
lchunghan
deepin
2024-03-26 12:44
#9

like

Reply View the author
不会开车有驾照
deepin
2024-03-27 01:45
#10

支持所有折腾

Reply View the author
盘灶车站
deepin
2024-03-29 02:20
#11

楼主,用你这个法子,在pine64开发板上成功,但安装完截图录屏应用之后,运行不起来截图功能,你那边怎么样?

Reply View the author
空木蓮華
deepin
2024-03-29 03:33
#12
盘灶车站

楼主,用你这个法子,在pine64开发板上成功,但安装完截图录屏应用之后,运行不起来截图功能,你那边怎么样?

那个截图工具系统预装的是玲珑运行的,你试试直接安装 deepin-screen-recorder 这个包,截图的,用快捷键 ctrl + alt + a 或者你直接命令 deepin-screen-recorder 看看输出。

原本应该去掉一些包的,省事我直接全装了。

Reply View the author
晴空一鹤
deepin
2024-07-31 12:34
#13

默认账号密码是啥呀

Reply View the author
空木蓮華
deepin
2024-07-31 14:06
#14
晴空一鹤

默认账号密码是啥呀

密码:deepin

Reply View the author
a***1@163.com
deepin
2024-08-28 02:43
#15

我比较好奇装deepin23的话,树莓派5硬件本身自带的风扇和RTC时钟系统能否完美驱动?

就是温控和掉电记时。如果是deepin装完就不用折腾了,那值得搞搞。

树莓派4的话估计不好搞了吧,

毕竟硬件本身不带散热风扇PWM和时钟RTC,

之前就是装ubuntu树莓派4实现这俩都得自己装python写脚本😖

Reply View the author
a***1@163.com
deepin
2024-08-28 02:48
#16

在树莓派4上安装过华为欧拉openeuler22版本,之后安装深度的dde桌面也就是deepin的桌面界面。

跑起来没问题,但是时钟和风扇温控就没相关的资料了。

按自己ubuntu和树莓派原装系统下成功实例的文档撸缺东西。

然后测试了下openeuler22或24装到树莓派5没法显示,也可能是我的外接显示器格式问题。

就没折腾了。

楼主这个,打算找时间搞搞。毕竟装上后如果仓库里大多能用的话那可玩性提高不少。

Reply View the author
空木蓮華
deepin
2024-08-28 03:12
#17
a***1@163.com

我比较好奇装deepin23的话,树莓派5硬件本身自带的风扇和RTC时钟系统能否完美驱动?

就是温控和掉电记时。如果是deepin装完就不用折腾了,那值得搞搞。

树莓派4的话估计不好搞了吧,

毕竟硬件本身不带散热风扇PWM和时钟RTC,

之前就是装ubuntu树莓派4实现这俩都得自己装python写脚本😖

我试试,有人试了5,https://bbs.deepin.org/post/277759

Reply View the author
159******58
deepin
2024-09-23 03:34
#18

这个镜像是能直接跟树莓派官方的一样烧录到SD卡吗

Reply View the author
空木蓮華
deepin
2024-09-24 06:06
#19
159******58

这个镜像是能直接跟树莓派官方的一样烧录到SD卡吗

是的,用官方工具烧录也可以。

Reply View the author