上个周末搜索 Asahi Linux 原理的时候,无意间看到:Project:Asahi - Gentoo wiki

激动地点进去(Installing Gentoo with LiveCD · AsahiLinux/docs Wiki · GitHub),果不其然,已经有人在 Mac 上原生擀碎引导装 Gentoo 了。这一周都在想着,周末立即着手开始安装。

首先是在 macOS 上分区, /dev/disk3s2 腾出 64 GB 空间,然后安装一个 Asahi Linux 并重启进去。

克隆仓库: git clone --recursive https://github.com/chadmed/asahi-gentoosupport.git ,下载一个最新的 Gentoo 安装映像(ARM64 的),更名为 install.iso 扔进仓库。运行 ./genstrap.sh ,这会生成可在 Mac 上启动的新映像。重启之后 Grub 已经列出来这个启动项了,引导启动。

然后自然是按照流程走一遍安装了。不过联网卡了一个小时,一直在用 iw ,就是 ping 不通。最后在 iPad 上受到这篇文章的启发:Linux 命令行无线网卡连接_linux 查看无线网卡支持什么格式 - CSDN 博客。随即:

联网
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ip link set wslp1s0f0 up

iw dev wslp1s0f0 scan

wpa_passphrase ${SSID} ${password} >> /etc/wpasupplicant/wpa_supplicant.conf

#注释第4行,取消注释第3行,在第4、5行中间插一行,按一次Tab键输入“priority=1”
nano /etc/wpasupplicant/wpa_supplicant.conf

wpa_supplicant -i wslp1s0f0 -c /etc/wpa_supplicant/wpa_supplicant.conf

dhcpcd wlan0

ping -c 3 gentoo.org

好了,分区、挂载、下载、 chroot ,然后开始编译 @world ,本地化一下,到内核步骤终止。

再次克隆 asahi-gentoosupport ,这个时候挂载 /dev/nvme0n1p5 (不一定是 5 号分区,反正里面有个 vendors 文件夹就对了)到 /boot ,运行 ./install.sh 。这边建议改一下脚本,尤其 emerge -q sys-apps/asahi-meta virtual/dist-kernel sys-kernel/linux-firmware 是那一步, --autounmask --autounmask-write 一下。

install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
install_meta() {
echo "We will now install the Asahi metapackage with some sane"
echo "defaults to get you started. This step will:"
echo " * Mask media-libs/mesa::gentoo"
echo " * Emerge rust-bin (you can switch to the compiled rust later)"
echo " * Create /etc/portage/package.use/asahi and set:"
echo " sys-apps/asahi-meta kernel -sources -audio"
echo " If you are planning to use this machine as a desktop, please"
echo " delete '-audio' from this file and emerge -1 asahi-meta BEFORE"
echo " emerging your DE/WM."
echo " * emerge the Asahi metapackage"
echo " * Unpack the Asahi firmware"
echo " * Update m1n1 and U-Boot"
read -sp "Press Enter to continue..."

[ ! -d /etc/portage/package.mask ] && mkdir /etc/portage/package.mask
cp resources/package.mask /etc/portage/package.mask/asahi
[ ! -d /etc/portage/package.use ] && mkdir /etc/portage/package.use
cp resources/package.use /etc/portage/package.use/asahi
[ ! -d /etc/portage/package.license ] && mkdir /etc/portage/package.license
echo "sys-kernel/linux-firmware linux-fw-redistributable no-source-code" > /etc/portage/package.license/firmware

emerge -q1 dev-lang/rust-bin
emerge -q virtual/rust
# 这里建议全部不要`-q`
emerge -q sys-apps/asahi-meta virtual/dist-kernel sys-kernel/linux-firmware
asahi-fwupdate
update-m1n1
}

自动 unmask,接着 etc-update 选择 -3 。然后有点尴尬,因为看脚本源码,一旦重新运行它会覆盖掉 unmask。我的解决办法是不运行脚本,看一行跑一行。

依次按照脚本装完了仓库、内核、引导。下面继续轻车熟路配置系统,只不过内核和引导跳过。重启,完美进入新系统。

截图附上:

《gentoo-arm64-native-mac-2.jpg
《gentoo-arm64-native-mac-3.jpg
《gentoo-arm64-native-mac-4.jpg
《gentoo-arm64-native-mac-5.jpg
《gentoo-arm64-native-mac-6.jpg
《gentoo-arm64-native-mac-7.jpg
《gentoo-arm64-native-mac-9.jpg
《gentoo-arm64-native-mac-10.jpg
《gentoo-arm64-native-mac-11.jpg
《gentoo-arm64-native-mac-12.jpg
《gentoo-arm64-native-mac-15.jpg
《gentoo-arm64-native-mac-16.jpg
《gentoo-arm64-native-mac-18.jpg
《gentoo-arm64-native-mac-19.jpg
《gentoo-arm64-native-mac-21.jpg