Acer Chromebook 14 CB3-431 (Edgar)

From ArchWiki

Tango-edit-clear.pngThis article or section does not follow the Laptop page guidelines.Tango-edit-clear.png

Reason: Stub (Discuss in Talk:Acer Chromebook 14 CB3-431 (Edgar))
Warning: This article assumes the reader is willing to replace ChromeOS with Arch Linux.

The following article briefly explains all necessary procedures to install a fully-functional Arch Linux configuration on the Acer Chromebook 14 cb3-431 (Edgar).

Write Protection

Write Protection does not have to be voided to follow this guideline.

Developer Mode

Prior to the installation, certain actions must be taken to grant bios reading permission on unsigned installation mediums. This includes enabling Developer Mode, and flashing a custom SeaBios.

Warning: Enabling Developer Mode will wipe all of your data.

Enabling Developer Mode:

  1. Enter recovery mode by pressing the power button while holding down Esc+F3 (Refresh).
  2. Once greeted in recovery mode (large yellow exclamation mark) press Ctrl+d.
  3. You will be prompted for confirmation, press enter to confirm developer mode.
  4. The device will reset and greet the user with a warning screen on every boot, that can be skipped by pressing Ctrl+d.

Flashing a custom SeaBios

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Dubious installation instructions involving scripts from untrusted sources. (Discuss in Talk:Acer Chromebook 14 CB3-431 (Edgar))

A custom SeaBios is required to load unsigned or self-signed installation mediums, in our case, being the Arch Linux Installation Media.

In ChromeOS, estasblish internet connection and enter the superuser shell with Ctrl+Alt+F2 using the chronos username. Then obtain MrChromeBox's SeaBios utility:

# curl -L -O https://mrchromebox.tech/firmware-util.sh

Execute the firmware utility:

# bash firmware-util.sh

Select option 1 to Install RW_LEGACY, permitting booting from an external installation media from SeaBios.

Before selecting the reboot option and proceeding to the next part, ensure an Arch Linux Installation Media is inserted.

Installation

Booting the Installation Media

During the white "OS verification disabled" screen, toggle Ctrl+l to enter SeaBios. Then press the Esc key to load the boot menu, and select your external installation media.

Unless the installation media runs on a Linux version 4.8.14 or prior, the internal keyboard, sound, and trackpad will not function during the installation. From this point on, proceed with the official Arch Linux Installation Guide.

Note: If SeaBios has immediately attempted to load from the internal disk, or simply ignored the Esc key boot menu request, the device has been fully shut down prior to the SeaBios load. SeaBios must be entered on reboot from ChromeOS to enter the Boot Menu

Post installation

Unless RW protection has been voided and SeaBios has been set to boot as default, booting into grub is only possible by toggling Ctrl+l during the white "OS verification disabled" screen on boot.

Fixes

Merge-arrows-2.pngThis article or section is a candidate for merging with Advanced Linux Sound Architecture#ALSA firmware.Merge-arrows-2.png

Notes: This section mentions installing alsa-ucm-conf and #Sound mentions sof-firmware, both of which are mentioned in the aforementioned target article/section. Consider rewriting this section and #Sound to reference ALSA#ALSA firmware instead of directly referencing alsa-ucm-conf and sof-firmware. (Discuss in Talk:Acer Chromebook 14 CB3-431 (Edgar))

Due to the unpopularity of the Intel Braswell Chipset, a number of issues may be encountered which require manual fixes.

As of linux 4.12.4 the internal keyboard and trackpad now work out of the box without the need for any additional kernel patches. The following features are not expected to work out of the box:

  • Sound/Audio

As of Linux 5.10.16, the sound also works with alsa-ucm-conf 1.2.4.

Sound

To fix audio/sound output, install the Braswell config files from GalliumOS. Installing the galliumos-braswell-configAUR package using the pacman --overwrite *.* parameter automates this process.

Currently, the internal microphone does not function and there is no known workaround.

Note:
  • In the latest version of ALSA (1.2.2) the configuration file formats have been changed and are now stored in "/usr/share/alsa/ucm2" instead of "/usr/share/alsa/ucm", however, the galliumos-braswell-configAUR package only updates/creates files in "/usr/share/alsa/ucm", therefore, in order to get the sound working, manually delete the folder "usr/share/alsa/ucm2/chtrt5650", this will ensure the old formatted files from "/usr/share/alsa/ucm" are picked up which will resolve any sound issues.
  • Using alsa-lib 1.2.5, pipewire, and linux 5.12.12, galliumos-braswell-config is not required. Install sof-firmware, pipewire, and pipewire-pulse instead.

Internal Keyboard

The internal keyboard should be fully functional when using the latest kernel, with the exception of the top row hotkeys which are mapped to the function keys by default. See Chrome OS devices#Hotkeys for methods to implement the Chrome OS keyboard hotkeys.

Trackpad

To fix trackpad pressure sensitivity issues for the xf86-input-synaptics driver, add the following configuration file under /etc/X11/xorg.conf.d/10-synaptics.conf

/etc/X11/xorg.conf.d/10-synaptics.conf
Section "InputClass"
	Identifier "touchpad catchall"
	Driver "synaptics"
	MatchIsTouchpad "on"
	MatchDevicePath "/dev/input/event*"
	Option "FingerLow" "1"
	Option "FingerHigh" "5"
EndSection

To fix trackpad sensitivity issues when using the libinput driver, add the following local device quirk under /etc/libinput/local-overrides.quirks

/etc/libinput/local-overrides.quirks
[Touchpad pressure override]
MatchUdevType=touchpad
MatchName=*Elan Touchpad
MatchDMIModalias=dmi:*svnGOOGLE:*pnEdgar*
AttrPressureRange=4:3

After the XServer has been restarted, the changes will take place.

When using hibernation (Suspend and hibernate#Hibernation) an issue may be encountered where the module required for the touchpad elan_i2c is not loaded on resuming, meaning that the touchpad will not be operable. A workaround for this is to enable the required module during the initramfs stage.

/etc/mkinitcpio.conf
MODULES=(... elan_i2c ...)

After the recreating the initramfs image and rebooting the touchpad should now be working on resuming from hibernation.