NixOS 在 Lichee Pi 4A 上是如何启动的

NixOS 在 Lichee Pi 4A 上是如何启动的

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

继续阅读