Acer Chromebook 14 CB3-431 (Edgar)

This article or section does not follow the
Laptop page guidelines
.
Reason:
Duplicates advice from
Chrome OS devices
, bad style. (Discuss in
Talk:Acer Chromebook 14 CB3-431 (Edgar)
)
Note
This article assumes the reader is willing to replace ChromeOS with Arch Linux if following the coreboot method. The SeaBios method will preserve ChromeOS.
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
Option with SeaBios
This laptop does not come preloaded with SeaBios. Attempting to flash it if not already flashed will cause an error message due to it having reached End of Life. If SeaBios is already installed, no additional steps are necessary. Reboot into Developer Mode if not already done and continue with
#Installation
.
Option with coreboot
Another option would be by using the third party
coreboot Script
where you need to disable write protection by removing the screws nearby the Wi-Fi chip and battery which are marked with a white arrow first.
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 or coreboot.
Warning
Enabling Developer Mode will wipe all of your data.
Enabling Developer Mode:
Enter recovery mode by pressing the power button while holding down
Esc+F3
(Refresh).
Once greeted in recovery mode (large yellow exclamation mark) press
Ctrl+d
.
You will be prompted for confirmation, press enter to confirm developer mode.
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
See
Chrome OS devices/Custom firmware#Flashing the custom firmware
.
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 a
USB flash installation medium
is inserted.
Flashing with the
Coreboot Script
Download the file with
cd;curl -LO mrchromebox.tech/firmware-util.sh
, view it:
cat firmware-util.sh
, and run the script
sudo install -Dt /usr/local/bin -m 755 firmware-util.sh && sudo firmware-util.sh
to execute the script. Choose the option of
Install/Update UEFI (FUll ROM) Firmware
When the installation is finished you can reboot, where you have UEFI with coreboot.
Installation
Booting the Installation Media
Using SeaBios
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
Using Coreboot
In default it would boot into UEFI if you have no OS which supports UEFI on the drive which includes ChromeOS.
In UEFI you can select the
USB flash installation medium
.
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
Sound
See
Sound Open Firmware
.
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.