ASUS C302

来自 ArchWiki

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

原因: 小作品 (在Talk:ASUS C302中讨论)

Asus C302 (也称为 Asus C302C 和 Asus C302CA) 是一款 Chromebook,可以安装 Linux。以下是一些关于 Arch Linux 顺利运行的提示。

安装

acpi_osi=Linux intel_iommu=on,igfx_off 添加到您的内核参数

intel_iommu=on,igfx_off 来自 BBS#228604,以防止以下错误出现在 dmesg 的输出中

[drm:intel_cpu_fifo_underrun_irq_handler [i915]] *ERROR* CPU pipe A FIFO underrun

CPU 是 Intel Core M3,因此请安装 intel-ucode

内核模块

例如,在 /etc/modprobe.d/skylake.conf 中

# Needed, for the nau8825 kernel sound modules to initialize
blacklist snd_hda_intel
options tpm_tis interrupts=0

屏幕

屏幕对角线为 12.5 英寸。在 1920x1080 分辨率下,这是 176 DPI,属于 HiDPI

在 ~/.xinitrc 中,设置屏幕尺寸(以毫米为单位测量)

xrandr --fbmm 277x156

垂直同步

为了在 XFCE 中实现正确的垂直同步(包括例如 Firefox 中的全屏 Youtube),请安装 xfwm4-gitAUR,并启用 XFCE 的合成器。

正确的垂直同步还需要 xf86-video-intel,而不是 modesetting。

在 /etc/X11/xorg.conf.d/20-intel.conf 中

Section "Device"
    Identifier "Intel Graphics"
    Driver "intel"
EndSection

屏幕翻转

要在帐篷模式下使用笔记本电脑,以下脚本将翻转屏幕和触摸输入

#!/bin/dash

set_normal() {
	r="normal"
	ctm="1 0 0 0 1 0 0 0 1"

}

set_upside_down() {
	r="inverted"
	ctm="-1 0 1 0 -1 1 0 0 1"
}

line=$(xrandr | grep '^eDP.* connected ')
screen=$(printf "%s" "$line" | cut -d" " -f1)

if $(printf "%s" "$line" | grep -q ' inverted (normal') ; then
	set_normal
else
	set_upside_down
fi

xrandr --output "$screen" --rotate "$r"
xinput set-prop "Elan Touchscreen" "Coordinate Transformation Matrix" $ctm

键盘

要将 Chromebook 顶行键用作 xorg 中的有用键,请使用例如

在 ~/.Xmodmap 中

keycode   9 = Escape NoSymbol Escape
keycode  22 = BackSpace BackSpace BackSpace BackSpace Delete NoSymbol Delete
keycode  37 = Control_L NoSymbol Control_L
keycode  50 = Shift_L NoSymbol Shift_L
keycode  66 = Caps_Lock NoSymbol Caps_Lock
keycode  67 = Home F1 Home F1 F1 F1 XF86Switch_VT_1
keycode  68 = End F2 End F2 F2 F2 XF86Switch_VT_2
keycode  69 = Prior F3 Prior F3 F3 F3 XF86Switch_VT_3
keycode  70 = Next F4 Next F4 F4 F4 XF86Switch_VT_4
keycode  71 = Delete F5 Delete F5 F5 F5 XF86Switch_VT_5
keycode  72 = XF86MonBrightnessDown F6 XF86MonBrightnessDown F6 F6 F6 XF86Switch_VT_6
keycode  73 = XF86MonBrightnessUp F7 XF86MonBrightnessUp F7 F7 F7 XF86Switch_VT_7
keycode  74 = XF86AudioMute F8 XF86AudioMute F8 F8 F8 XF86Switch_VT_8
keycode  75 = XF86AudioLowerVolume F9 XF86AudioLowerVolume F9 F9 F9 XF86Switch_VT_9
keycode  76 = XF86AudioRaiseVolume F10 XF86AudioRaiseVolume F10 F10 F10 XF86Switch_VT_10
keycode 111 = Up Up Up Up Prior Prior
keycode 112 = Prior NoSymbol Prior
keycode 113 = Left Left Left Left Home Home
keycode 114 = Right Right Right Right End End
keycode 115 = End NoSymbol End
keycode 116 = Down Down Down Down Next Next
keycode 117 = Next NoSymbol Next
keycode 118 = Insert NoSymbol Insert
keycode 119 = Delete NoSymbol Delete
keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
keycode 167 = XF86Forward NoSymbol XF86Forward
keycode 182 = XF86Close NoSymbol XF86Close
keycode 191 = XF86ScreenSaver NoSymbol XF86ScreenSaver

(此列表可以精简。)

~/.Xmodmap 将由 /etc/X11/xinit/xinitrc 加载,它实际上运行

xmodmap ~/.Xmodmap

键盘背光

为了能够以普通用户身份更改键盘背光亮度,请以 root 身份运行

b="/sys/devices/platform/GOOG0002:00/leds/chromeos::kbd_backlight/brightness"
chgrp users "$b" &&
chmod 660 "$b" &&
echo 6 > "$b"

它是一个介于 0(关闭)和 100(全亮度)之间的值。ChromeOS 上的默认值为 25。6 是一个合理的较低值。

当键盘未使用时,ChromeOS 能够禁用键盘背光 - 该功能似乎在 Linux 内核中不可用,但可以使用一个简单的脚本复制,借助 xprintidle,例如

#!/bin/dash

set_keyboard_backlight() {
	printf "%s" "$1" > "/sys/devices/platform/GOOG0002:00/leds/chromeos::kbd_backlight/brightness"
	b="$1"
}

b=0

while true ; do
	pgrep ^Xorg > /dev/null || exit 0

	seconds_to_sleep=10
	idle_millis=$(xprintidle)
	if [ "$idle_millis" -gt 10000 ] ; then
		nb=0
		seconds_to_sleep=5
	else
		nb=25
		seconds_to_sleep=15
	fi

	if [ "$nb" -ne "$b" ] ; then
		set_keyboard_backlight "$nb"
	fi

	echo "nb=$nb, sleeping for $seconds_to_sleep"
	sleep "$seconds_to_sleep"
done

触摸板

截至 libinput 1.12.0-2,触摸板工作良好,包括

  • 轻击
    • 单指轻击 = “左”键
    • 双指轻击 = “右”键
    • 三指轻击 = “中”键
  • 压感触控板(点击触摸板的下部)
    • 左侧 = “左”键
    • 右侧 = “右”键
    • 中间 = “中”键

鼠标

由于 USB 端口数量有限,蓝牙鼠标是一个不错的选择。罗技 M590 鼠标效果很好。

在启动时运行 “bluetoothctl power on &”,例如在 ~/.xinitrc 中

例如,在 /etc/X11/xorg.conf.d/99-mouse.conf 中

Section "InputClass"
    Identifier "Logitech M590"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "AccelProfile" "flat"
EndSection

然后,可以使用 XFCE GUI 在“设置 - 鼠标”中设置鼠标的“速度”,将“加速度”设置为例如 2.0

声音

声音是一个 正在进行的工作。仅使用耳机时,声音是可靠的。

将音频固件另存为 /lib/firmware/9d70-CORE-COREBOOT-0-tplg.bin (文件大小 23120 字节)。

要将音频设置为合理的水平,请在 ~/.xinitrc 中运行

amixer -q -c0 sset Headphone 70% &

Pulseaudio

为了防止音频“咔哒”声,请注释掉 /etc/pulse/default.pa 和 /etc/pulse/system.pa 中的 “load-module module-suspend-on-idle”

线圈啸叫

偶尔会出现线圈啸叫,可以通过运行以下命令大大减少

printf "1" > /sys/devices/system/cpu/intel_pstate/no_turbo