💡
原文中文,约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语言声明式编写。
🏷️
标签
➡️