原文中文,约49000字,阅读约需117分钟。
📝
内容提要
本文记录了作者在Lichee Pi 4A上运行NixOS的过程,介绍了NixOS的启动流程和组件作用,总结为一次有趣的学习经历。
🎯
关键要点
-
作者在Lichee Pi 4A上运行NixOS的过程记录。
-
Lichee Pi 4A是当前性能最高的RISC-V开发板之一。
-
NixOS的移植过程经历了许多挑战,包括U-Boot、OpenSBI等新技术的学习。
-
最终成功编译出NixOS系统镜像,但初次尝试启动失败。
-
在外国友人的鼓励下,作者再次尝试,最终成功启动NixOS。
-
文章详细分析了NixOS的启动流程和各个组件的作用。
-
NixOS的文件树结构与传统Linux发行版不同,根目录下的文件夹较少。
-
启动流程分为OpenSBI、NixOS Stage 1和NixOS Stage 2三个阶段。
-
init程序是NixOS启动过程中的第一个用户态程序,负责挂载根文件系统。
-
activate程序负责配置系统的各种设置,包括创建/etc目录中的文件。
-
U-Boot是嵌入式系统常用的bootloader,LicheePi4A使用了二级加载器。
-
OpenSBI为RISC-V提供了标准接口,避免了硬件碎片化问题。
-
fw_dynamic.bin是OpenSBI的编译产物,u-boot-spl.bin是U-Boot的编译产物。
-
作者选择使用NixOS的标准工具链编译系统,解决了编译中的问题。
-
镜像构建方法与传统Linux发行版不同,使用Nix语言声明式编写。
🏷️