Lenovo IdeaPad Flex 5 13IML05 Chromebook

出自 ArchWiki

此文章或章节不符合笔记本电脑页面指南

原因: 缺少硬件信息、辅助功能、固件和功能键章节(在Talk:Lenovo IdeaPad Flex 5 13IML05 Chromebook中讨论)
硬件 PCI/USB ID 工作?
GPU 8086:9b41
SSD 144d:a809
MicroSD 读卡器
键盘
键盘背光
WiFi 8086:02f0
蓝牙 8087:0026
扬声器 8086:02c8
麦克风
3.5mm 插孔 部分工作
触摸板 06cb:cde1
触摸屏 27c6:0e32
手写笔 27c6:0e32 未测试
网络摄像头 174f:244f

安装

此 Chromebook 不支持传统启动模式。即使您尝试在开发者模式启动屏幕上按 CTRL+L 调用它,它也会显示两个没有选择的选项。因此,有必要刷写自定义固件。

UEFI 固件刷写

警告
  • 此步骤依赖于第三方脚本和固件,可能会损坏您的硬件或数据。
  • 执行此步骤后,将无法使用 ChromeOS(除非您刷回原始固件)。
注意
  • 如果您决定在没有电池的情况下启动以禁用固件写保护,请根据官方手册取出电池,并在刷写新固件之前不要重新连接。
  • 如果您的 Chromebook 变成砖头,您可以尝试使用名为 SuzyQable 的专用电缆刷写原始固件来解除砖状态
  1. 通过在没有电池的情况下启动或使用 SuzyQable禁用固件写保护。
  2. 启用开发者模式.
  3. 使用 MrChromebox 的固件实用程序脚本

Arch Linux 安装

警告

如果您计划使用 F2FS,请先阅读关于电源管理问题的内容。

注意
  • 使用 UEFI 兼容的引导加载程序(例如 systemd-boot)。
  • SSD 磁盘是 /dev/nvme0n1

使用 auditctl(8) 来抑制每秒出现的审计消息

# auditctl -e0

按照安装指南进行操作。

电源管理

截至 2022 年 1 月 20 日,Linux 内核(5.16.1)中的电源管理已损坏。在官方 linux-lts (5.15.15) 软件包中也已损坏。

Chromebook 在合上盖子、重启和关机时会挂起。

可以使用旧版本的内核 linux-lts510AUR 作为解决方法。

截至内核版本 5.19.16 或更早版本,该问题似乎已得到解决。

Lid 传感器

截至内核版本 5.19.16 或更早版本,lid 传感器会导致系统在挂起后不久唤醒,无论盖子是否闭合。

一种解决方法是禁用来自 lid 传感器的唤醒事件。一个 udev 规则示例

/etc/udev/rules.d/lid.rules
# Disable wakeups from lid sensor
ACTION=="add", SUBSYSTEM=="acpi", KERNEL=="PNP0C0D:00", ATTR{power/wakeup}="disabled"

声音

注意
  • 3.5mm 插孔仅适用于耳机。在所有情况下都会使用 Chromebook 的麦克风。
  • 连接到 3.5mm 插孔的耳机将有轻微噪音,因此建议改用蓝牙。

安装以下软件包

使用 ALSA 配置文件描述声卡

/etc/asound.conf
# Devices for PulseAudio
pcm.speakers "hw:0,5"
pcm.microphone "plughw:0,1"
pcm.headphones "hw:0,0"

# Force ALSA based applications (e.g. speaker-test(1)) to use PulseAudio
pcm.!default pulse
ctl.!default pulse

强制 PulseAudio 使用上面定义的设备

/etc/pulse/default.pa.d/devices.pa
# This line is required for Bluetooth
load-module module-switch-on-connect

load-module module-alsa-sink device=speakers sink_name=speakers
load-module module-alsa-source device=microphone
load-module module-alsa-sink device=headphones sink_name=headphones

查找并删除或注释掉以下代码块以防止冲突

/etc/pulse/default.pa
### Automatically load driver modules depending on the hardware available
.ifexists module-udev-detect.so
load-module module-udev-detect
.else
### Use the static hardware detection module (for systems that lack udev support)
load-module module-detect
.endif

创建以下脚本以使用 acpid 自动切换 sinks,因为使用了 3.5mm 插孔

/etc/acpi/headphones_jack.sh
# License: 0BSD

#!/bin/bash

function get_active_pulseaudio_users_ids {
    active_pulseaudio_users_ids=`ps -C pulseaudio -o ruid=`
}

function set_up_environment {
    local user_id="$1"
    export HOME=`getent passwd $user_id | cut -d: -f6`
    export PULSE_RUNTIME_PATH="/var/run/user/$user_id/pulse"
}

function set_sink {
    local user_id="$1"
    local sink_name="$2"
    sudo -u "#$user_id" -E pacmd set-default-sink $sink_name
}

if [ "$2" == "HEADPHONE" ]; then
    get_active_pulseaudio_users_ids

    for user_id in $active_pulseaudio_users_ids; do
        set_up_environment $user_id
        if [ "$3" == "plug" ]; then
            set_sink $user_id "headphones"
        else
            set_sink $user_id "speakers"
        fi
    done
fi

使脚本可执行

将脚本注册为监听器

/etc/acpi/events/headphones_jack
event=jack/headphone
action=/etc/acpi/headphones_jack.sh %e

启用 acpid.service

声音应该在重启后工作。

触摸屏

截至 2022 年 1 月 12 日,由于 一个错误,Linux 内核(5.15.13)为触摸屏使用了错误的模块。

因此,有必要阻止它

/etc/modprobe.d/blacklist.conf
blacklist elants_i2c

内核将在重启后加载正确的模块。

参见