blog-site

git clone git://git.lin.moe/blog-site.git

  1---
  2title: "Win 平板刷入 Arch Linux (64 Bit)"
  3date: 2020-10-07T22:50:33+08:00
  4---
  5## 前言
  6笔者有一个华硕 T100TA Windows 平板,由于性能太弱,在 Win10 2004 下的体验实在太差,于是动了刷成 Linux 的想法。  
  7
  8原来以为加个拓展坞后和普通的主机没什么两样,然后看到 [Windows 平板电脑安装 Linux](https://shan.si/ng/137/), 意识到事情不简单。  
  9
 10顺着关键词,在 [archwiki](https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface#Booting_64-bit_kernel_on_32-bit_UEFI) 里找到了相关的方法,这篇文章的步骤基本上是按照 wiki 的方法来的,只能算是一个总结和翻译。  
 11
 12以下操作皆在 Linux 系统中完成。  
 13
 14## 失败的尝试
 15首先试的不是 arch ,是 Manjaro ,找到了 Manjaro 的 [这个版本](https://manjaro.org/downloads/32bit/32bit-xfce/) 支持 uefi32 启动,但是 manjaro 32 位的源又少又慢,驱动也有点奇奇怪怪的,遂放弃。  
 16顺便记录一下 Manjaro 下解决 wifi 驱动问题的方法
 17```
 18sudo cp /sys/firmware/efi/efivars/nvram-XXXXXX /lib/firmware/brcm/brcmfmac43241b4-sdio.txt
 19sudo modprobe -r brcmfmac
 20sudo modprobe brcmfmac
 21```
 22
 23## 刻盘
 24这里刻盘的方式有要求,建议不要用 windows 下自动刻录的工具,至少我用 balenaEtcher 是不行的。也不能直接把镜像 dd 进 u 盘。    
 25
 26因为之后需要修改 efi 分区文件,而 dd 刻进去的 efi 分区是满的,无法修改。  
 27
 28刻盘方法参考 [Archwiki](https://wiki.archlinux.org/index.php/USB_flash_installation_medium_(简体中文)#手动方法),以下做一个简单阐述。  
 29
 30```
 31# 建 vfat(fat32) 分区,刻盘
 32fdisk /dev/sdX 
 33mkfs.vfat /dev/sdXn 
 34mkdir /mnt/{usb,iso} 
 35mount -o loop archlinux-<version>.iso /mnt/iso 
 36mount /dev/sdXn /mnt/usb
 37cp -a /mnt/iso/* /mnt/usb 
 38sync
 39umount /mnt/iso
 40```
 41
 42## 修改 u 盘启动方式
 43```
 44# 先给 u 盘分区打个 label,官方建议是 ARCH_YYYYMM,如 ARCH_202010,请随意。
 45fatlabel /dev/sdXn <Label> 
 46
 47# 制作 grub uefi32 启动文件
 48echo 'configfile ${cmdpath}/grub.cfg' > /tmp/grub.cfg
 49grub-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
 50```
 51添加 /mnt/usb/EFI/boot/grub.cfg 文件,写入以下内容,ARCH__YYYYMM 部分改为之前写的 u 盘分区 label 。
 52```
 53insmod part_gpt
 54insmod part_msdos
 55insmod fat
 56
 57insmod all_video
 58
 59insmod font
 60
 61if loadfont "${prefix}/fonts/unicode.pf2" ; then
 62    insmod gfxterm
 63    set gfxmode="1024x768x32;auto"
 64    terminal_input console
 65    terminal_output gfxterm
 66fi
 67
 68menuentry "Arch Linux archiso x86_64 UEFI USB" {
 69    set gfxpayload=keep
 70    # 下面这行与官方的有点不一样,我的要打上双引号才能用,不然找不到这个 label ,请自行尝试。
 71    search --no-floppy --set=root --label "ARCH_YYYYMM" 
 72    linux /arch/boot/x86_64/vmlinuz-linux archisobasedir=arch archisolabel=ARCH_YYYYMM add_efi_memmap
 73    initrd /arch/boot/intel-ucode.img /arch/boot/x86_64/initramfs-linux.img
 74}
 75```
 76然后
 77```
 78umount /mnt/usb
 79```
 80u 盘制作好了,正常情况可以通过 grub 从 uefi32 启动了。  
 81## 安装系统
 82与普通的 arch linux 差不多,在用 [grub](https://wiki.archlinux.org/index.php/GRUB_(简体中文)#UEFI_系统) 做启动引导时,把
 83```
 84grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB
 85```
 86改为 
 87```
 88grub-install --target=i386-efi --efi-directory=esp --bootloader-id=GRUB
 89```
 90其他启动引导方式笔者没用过,官方也没有说明,如有需要,请自行解决。  
 91
 92## 参考
 93* [Unified Extensible Firmware Interface ](https://wiki.archlinux.org/index.php/Unified_Extensible_Firmware_Interface_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#%E5%9C%A8_32_%E4%BD%8D_UEFI_%E4%B8%8A%E5%90%AF%E5%8A%A8_64_%E4%BD%8D%E5%86%85%E6%A0%B8)  
 94* [Windows 平板电脑安装 Linux](https://shan.si/ng/137/)  
 95* [Latest steps to install Ubuntu on the Asus T100TA](http://www.jfwhome.com/2016/01/04/latest-steps-to-install-ubuntu-on-the-asus-t100ta/)  
 96* [GRUB](https://wiki.archlinux.org/index.php/GRUB_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87))  
 97* [USB flash installation medium](https://wiki.archlinux.org/index.php/USB_flash_installation_medium_(简体中文)#手动方法)  
 98
 99## 后续
100没遇到 Manjaro 和 Ubuntu 那样的无线网卡驱动问题,声卡显卡之类的也没问题。  
101
102蓝牙没有试,还要装 pulseaudio 之类的东西,懒。  
103
104xfce4 装上了,触屏效果意料之中的差,虽然有看到可以改得友好一点,不过我不是很在意。  
105
106如果出现了什么问题再到这里补充吧。