在 Apple Silicon 芯片上的 Macbook 上使用 NixOS

24 天前
 ityspace

众所周知,NixOS 是一个“懒人”发行版。在配置好 NixOS 之后,几乎就没多少操心的事了。所以集 Linux 的自由配置和 Macbook 的丝滑操作的体验就可以在 NixOS 下完美体现。

我们需要一个 U 盘,其次去 https://github.com/tpwrules/nixos-apple-silicon/releases 下载 liveCD 镜像。通过diskutil list命令找到 U 盘位置然后通过 dd 命令把镜像刻录到 U 盘。

Asahi Linux 项目提供了 M 系列芯片上安装 Linux 发行版的支持。首先我们要运行 Asahi Linux 项目提供的脚本。

curl https://alx.sh | sh

在选择安装系统时我们选择UEFI environment only。脚本运行快结束时提示我们要关机,关机后长按电源键进入恢复模式,找到新的启动项进去。(如果你关机后第一次没有进去恢复模式,这会导致安装失败,你需要重新运行一遍脚本)。

这个脚本提供了 UEFI 环境的支持。插入 U 盘,在没有安装系统的情况下自动进入 U 盘,在安装系统之后可以通过开机时按任意键打断启动,然后输入env set boot_efi_bootmgr ; run bootcmd_usb0进入 U 盘系统。

安装过程和正常 x86 平台电脑安装没有太大区别,但是在配置文件中需要添加额外的配置。你需要把apple-silicon-support模块添加进系统。

如果你使用 flake 配置,那么你需要手动指定固件位置。  hardware.asahi.peripheralFirmwareDirectory = ./firmware;。固件可以通过cp /boot/asahi/{all_firmware.tar.gz,kernelcache*}获取。

详细的安装教程可以在 https://github.com/tpwrules/nixos-apple-silicon/blob/main/docs/uefi-standalone.md 找到。

然而安装时我遇到了一些坑,是文档里没说的。

如果你用的 Macbook 的内存较小。安装系统时需要编译内核,那么你的内存就会爆掉。解决方法是把安装环境中的/tmp bind 到硬盘上。

mkdir /mnt/nix/tmp
mount --bind /mnt/nix/tmp /tmp

安装后你会发现 Hyprland 打不开,解决办法是开启实验性显卡驱动。

  hardware.asahi = {
    useExperimentalGPUDriver = true;
    experimentalGPUInstallMode = "overlay";
    };

如果你在国内,那么安装时的网络问题足以头痛了。最好准备一个软路由,或者手机 root 后下载 VPN hotspot 。

340 次点击
所在节点    MacBook
2 条回复
ityspace
24 天前
日常使用几乎没问题。对于有刘海屏的笔记本,刘海屏部分显示为黑色。
tiandishi
24 天前
体验过 fedora ,生态太差
本来 mac arm 生态就不怎么样
arm linux 更不怎么样,小众软件基本无解。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1034898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX