我最近在一台廉价的 Windows 平板电脑上安装了 Arch Linux。我选择了 arch linux,因为它有最新的内核,并且在内核 4.12 中,rtl8723bs wifi 驱动程序被主流化。我很惊讶它的表现如此之好。但有一件事一直让我恼火……
该平板电脑配备 Z3735G 处理器(支持 x86_64)。但是,它有臭名昭著的 32 位 UEFI。我修改了安装介质以包含 bootia32.efi 并启动 grub cmdline,然后加载 live iso。我不得不重新启动 live iso 几次,但问题就开始了。设备经常无法启动内核。失败有3种类型:
- grub 命令后立即重新启动
boot
- 挂起,然后在
boot
命令后突然重新启动 - 内核已加载,但几条消息后屏幕关闭[不常见]
- 屏幕开始闪烁白色水平条带,而不是内核消息[罕见]
即使安装后此问题仍然存在。我尝试了许多内核参数来抑制这个问题:
i915.modeset=0
没有效果i915.nomodeset=1
我不知道这是否正确nomodeset
没有效果add_efi_memmap
尽管缺少这个将允许内核覆盖 EFI 内存。video=SVIDEO-1:d
没有效果acpi=off
没有效果noapic
没有效果intel_idle.max_cstate=1
总是添加,但问题仍然存在。
启动失败时内核不会产生任何一行输出,所以我无法弄清楚发生了什么。也许是它从 32 位 grub&efi 启动 64 位内核的问题。有没有人经历过/解决过类似的问题?请告诉我。
系统规格:
CPU: Intel Atom Z3735G @ 1.33GHz
GPU: Intel IGP
RAM: 1GB LDDR3
Flash: 16GB internal
编辑#1 我认为原因是 grub2 gfxterm 模式设置。它可能会向 Linux 传递错误的值,从而导致 Linux 无法启动。在盲模式下引导会导致引导尝试成功。