Win 平板刷入 Arch Linux (64 Bit)

前言

笔者有一个华硕 T100TA Windows 平板,由于性能太弱,在 Win10 2004 下的体验实在太差,于是动了刷成 Linux 的想法。
原来以为加个拓展坞后和普通的主机没什么两样,然后看到 Windows 平板电脑安装 Linux, 意识到事情不简单。
顺着关键词,在 archwiki 里找到了相关的方法,这篇文章的步骤基本上是按照 wiki 的方法来的,只能算是一个总结和翻译。
以下操作皆在 Linux 系统中完成。

失败的尝试

首先试的不是 arch ,是 Manjaro ,找到了 Manjaro 的 这个版本 支持 uefi32 启动,但是 manjaro 32 位的源又少又慢,驱动也有点奇奇怪怪的,遂放弃。
顺便记录一下 Manjaro 下解决 wifi 驱动问题的方法

sudo cp /sys/firmware/efi/efivars/nvram-XXXXXX /lib/firmware/brcm/brcmfmac43241b4-sdio.txt
sudo modprobe -r brcmfmac
sudo modprobe brcmfmac

刻盘

这里刻盘的方式有要求,建议不要用 windows 下自动刻录的工具,至少我用 balenaEtcher 是不行的。也不能直接把镜像 dd 进 u 盘。
因为之后需要修改 efi 分区文件,而 dd 刻进去的 efi 分区是满的,无法修改。
刻盘方法参考 Archwiki,以下做一个简单阐述。

# 建 vfat(fat32) 分区,刻盘
fdisk /dev/sdX 
mkfs.vfat /dev/sdXn 
mkdir /mnt/{usb,iso} 
mount -o loop archlinux-<version>.iso /mnt/iso 
mount /dev/sdXn /mnt/usb
cp -a /mnt/iso/* /mnt/usb 
sync
umount /mnt/iso

修改 u 盘启动方式

# 先给 u 盘分区打个 label,官方建议是 ARCH_YYYYMM,如 ARCH_202010,请随意。
fatlabel /dev/sdXn <Label> 

# 制作 grub uefi32 启动文件
echo 'configfile ${cmdpath}/grub.cfg' > /tmp/grub.cfg
grub-mkstandalone -d /usr/lib/grub/i386-efi -O i386-efi --modules="part_gpt part_msdos" --locales="en@quot" --themes="" -o "/mnt/usb/EFI/boot/bootia32.efi" "boot/grub/grub.cfg=/tmp/grub.cfg" -v

添加 /mnt/usb/EFI/boot/grub.cfg 文件,写入以下内容,ARCH__YYYYMM 部分改为之前写的 u 盘分区 label 。

insmod part_gpt
insmod part_msdos
insmod fat

insmod all_video

insmod font

if loadfont "${prefix}/fonts/unicode.pf2" ; then
    insmod gfxterm
    set gfxmode="1024x768x32;auto"
    terminal_input console
    terminal_output gfxterm
fi

menuentry "Arch Linux archiso x86_64 UEFI USB" {
    set gfxpayload=keep
    # 下面这行与官方的有点不一样,我的要打上双引号才能用,不然找不到这个 label ,请自行尝试。
    search --no-floppy --set=root --label "ARCH_YYYYMM" 
    linux /arch/boot/x86_64/vmlinuz-linux archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap
    initrd /arch/boot/intel-ucode.img /arch/boot/x86_64/initramfs-linux.img
}

然后

umount /mnt/usb

u 盘制作好了,正常情况可以通过 grub 从 uefi32 启动了。

安装系统

与普通的 arch linux 差不多,在用 grub 做启动引导时,把

grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB

改为

grub-install --target=i386-efi --efi-directory=esp --bootloader-id=GRUB

其他启动引导方式笔者没用过,官方也没有说明,如有需要,请自行解决。

参考

后续

没遇到 Manjaro 和 Ubuntu 那样的无线网卡驱动问题,声卡显卡之类的也没问题。
蓝牙没有试,还要装 pulseaudio 之类的东西,懒。
xfce4 装上了,触屏效果意料之中的差,虽然有看到可以改得友好一点,不过我不是很在意。
如果出现了什么问题再到这里补充吧。