这是一个为了使用64位UEFI启动Linux做的一个尝试,通过长期的构建和相关文件的编译,在通过无数次内部测试后,我们正式发布测试系统,系统的情况如下。

树莓派俱乐部官方 Debian 系统镜像 支持UEFI-树莓派俱乐部

系统特点:

关于UEFI:

因为树莓派易用性的特点,我们在启动方式上选择了UEFI的启动方式,对于这种启动方式,不是单单把编译好的RPI_EFI.fd放在根目录下就掩人耳目地宣称自己支持UEFI,我们为了树莓派能够发挥易用性的特点,我们通过无数次试验以及对于树莓派本身特性的适配,我们根据UEFI启动的原理,最终实现了UEFI启动,这样,你就能在一个由UEFI启动的系统外又运行其他系统,例如Windows arm,并且在开机时可以用UEFI进行启动系统的选择。

树莓派俱乐部官方 Debian 系统镜像 支持UEFI-树莓派俱乐部
我们可以看到使用UEFI时启动命令与传统启动命令的不同
树莓派俱乐部官方 Debian 系统镜像 支持UEFI-树莓派俱乐部
可以看到EFI这里的显示信息

关于GRUB:

我们因为使用了UEFI,并且引入了grub启动,这样就能实现多系统,而且可以在开机时进行选择,从而替代了像berryboot等使用initrd来在启动时先启动一个轻级系统来进行系统的选择然后根据选择来更改cmdline.txt来启动系统的情况(并没有说berryboot哪里不好,berryboot是一个优秀的开源项目,感谢berryboot的卓越贡献后来才有了今天的noobs)。


关于F2FS:

F2FS (Flash Friendly File System) 是专门为基于 NAND 的存储设备设计的新型开源 flash 文件系统。特别针对NAND 闪存存储介质做了友好设计。F2FS 于2012年12月进入Linux 3.8 内核。F2FS仅支持Linux操作系统。 Nand Flash是存储芯片,而SD卡是将Nand Flash芯片叠加到一起,扩大容量,同时添加管理系统芯片。

看到这里,使用sd卡作为储存设备的树莓派为什么要使用f2fs的原因就不言而喻了吧。

树莓派俱乐部官方 Debian 系统镜像 支持UEFI-树莓派俱乐部
大家可以看到根目录(/dev/root)是挂载的f2fs文件系统

第一次使用时的前置系统:

一般来说,树莓派系统第一次使用时都会进行储存空间的扩容,而很多系统都是直接进入主系统进行扩容操作,然后在重启,我们使用了noobs的引导程序,基于buildroot自编译了一个用于初始化的前置系统,在前置系统中我们会完成根目录的初始化,例如扩容等操作,都直接一次完成,因为前置系统是划分了一个16M的ramdisk,所以对sd卡的操作是非常安全和有效的。

使用树莓派官方内核:

这里不做赘述,/proc/cpuinfo是raspi-gpio判断是否为树莓派的根据,而树莓派官方将树莓派整个系列的cpu都在cpuinfo中显示为bcm2835,而cpuinfo最后的cpu型号是非常关键的,树莓派官方内核对于以前内核中不显示cpu型号和设备型号的问题进行了补足,保证了64位系统的易用性。我们还内置了有关vc4的组件(官方32位),存放与/opt目录下,使用方式相同,需要提前开启32位兼容模式。

sudo dpkg --add-architecture armhf
sudo apt-get update
sudo apt-get install libc6:armhf
树莓派俱乐部官方 Debian 系统镜像 支持UEFI-树莓派俱乐部
这里可以看到树莓派官方内核对于cpuinfo的补足

系统详情:

  • 第一分区:引导分区(vfat)
  • 第二分区:存放内核(ext4)
  • 第三分区:根目录(f2fs)

第一次开机会进行初始化操作,用时可能较长,f2fs文件系统扩容的原因,具体时间根据储存卡的大小而定。

  • 默认用户名:pi
  • 默认密码:raspberry

自行构建:

我们提倡自行构建,构建脚本完全开源, 而且在脚本中我们进行了详细的注释,方便大家阅读,。

https://github.com/chainsx/cxcore

后期我们也会发表关于系统构建的文章,让每一个人都能体验树莓派的乐趣。

预构建公测版本下载如下,有问题请在评论区留言。

文件下载

文件验证:

debian-buster-prebuild-raspberrypi-uefi-f2fs-testedition.img.xz(20200131)

  • md5:484adedbf8bf0fb876eb9f598764a140
  • sha1:0a0671a14503cdbbc507557b2034737c9ff0813e

注意:因为f2fs文件系统扩容速度慢的原因,第一次开机需要耐心等待,具体时间由sd卡大小而定,如果未能成功完成扩容或者中途断电的话,会导致内核崩溃。本系统建议使用高速SD卡。