Lenovo IdeaPad Flex 3 CB 11IGL05 Chromebook
Hardware | PCI/USB ID | Working? |
---|---|---|
GPU | 8086:3185 |
Yes |
MicroSD card reader | Yes | |
Keyboard | Yes | |
WiFi | 8086:31dc |
Yes |
Bluetooth | 8087:0aaa |
Yes |
Audio | 8086:3198 |
Yes |
Touchpad | 04f3:00a2 |
Yes |
Touchscreen | Yes | |
Webcam | 30c9:001c |
Yes |
Firmware
This device is not supported by fwupd. To change or update the firmware, follow the instructions in Chrome OS devices/Custom firmware.
This Chromebook does not support Legacy Boot Mode. Even if you try to invoke it by pressing Ctrl+l
on the Developer Mode boot screen, it will show two options without a choice. Therefore it is necessary to flash a custom firmware before the installation.
- This step relies on third-party scripts and firmware and may damage your hardware or data.
- After performing this step, it will not be possible to use ChromeOS (unless you flash the original firmware back).
- If you decide to boot without the battery to disable Firmware Write Protection, remove the battery according to the official manual and do not connect it back until the new firmware is flashed.
- If your Chromebook has turned into a brick, you can try to unbrick it by flashing the original firmware with a special cable called SuzyQable.
- Disable Firmware Write Protection by booting without battery (use original power supply) or using SuzyQable.
- Enable Developer Mode.
- Use MrChromebox's Firmware Utility Script.
Accessibility
The appearance of the SeaBIOS is pretty simple and not very colorful, so it might work well with OCR software because it is completely in text mode.
Installation
- Use UEFI-compatible boot loaders.
- The MMC disk is
/dev/mmcblk0
.
Use auditctl(8) to suppress audit messages that appear every second:
# auditctl -e0
Follow the Installation guide.
Audio
Install the following packages:
- sof-firmware — sound driver
- alsa-ucm-conf — contains alsa configuration profile for sof-glkda7219max device
- pulseaudio — PulseAudio
- pulseaudio-alsa — required to connect ALSA with PulseAudio
- acpid — acpid is required to correctly respond to headset plug in
- pulseaudio-bluetooth — optional, required for Bluetooth headsets
- alsa-utils — optional, can be used to control the sound from a terminal (e.g. alsamixer(1))
Create the following script to switch sinks with acpid when plugging in a 3.5mm jack headset:
/etc/acpi/headphones_jack.sh
#!/bin/bash case "$1" in jack/headphone) case "$2" in HEADPHONE) case "$3" in plug) for i in `users` #adjust the sink for all active users do userid=`id -u $i` #get the ID for a user sudo -u "$i" XDG_RUNTIME_DIR=/run/user/$userid pacmd set-default-sink alsa_output.pci-0000_00_0e.0-platform-glk_da7219_mx98357a.HiFi__hw_sofglkda7219max_1__sink done ;; esac ;; esac ;; esac
Make the script executable.
Register the script as a listener:
/etc/acpi/events/headphones_jack
event=jack/headphone action=/etc/acpi/headphones_jack.sh %e
Enable acpid.service
, the sound should work after reboot.
Function keys
Default assignment
This Chromebook model [1] has many of the Chromebook special keys and they are mostly assigned correctly.
The Search
key is assigned to Super
by default.
Key | Visible? | Marked? | Effect |
---|---|---|---|
previous |
Yes | Yes | Previous/Back |
next |
Yes | Yes | Next |
refresh |
Yes | Yes | Refresh/Reload |
full screen |
Yes 1 | Yes | No default action -> adjust to F11
|
overview |
Yes | Yes | "Scale" action --> adjust to PrintScreen
|
decrease brightness |
Yes | Yes | Decrease Brightness |
increase brightness |
Yes | Yes | Increase Brightness |
mute |
Yes | Yes | Mute toggle |
decrease volume |
Yes | Yes | Decrease Volume |
increase volume |
Yes | Yes | Increase Volume |
lock |
Yes | Yes | Sleep |
Search |
Yes | Yes | Assigned "Left Meta" = Super
|
- This key is visible to kernel/udev but not within X11.
The following table gives an overview of the underlying default keycodes. This information is needed to change the configuration.
See Keyboard input for more information
Chromebook special key | Scancode | Keycode | Keysym |
---|---|---|---|
previous |
ea | 158 | KEY_BACK |
next |
e9 | 159 | KEY_FORWARD |
refresh |
e7 | 173 | KEY_REFRESH |
full screen |
91 | 372 | KEY_ZOOM |
overview |
92 | 120 | KEY_SCALE |
decrease brightness |
94 | 224 | KEY_BRIGHTNESSDOWN |
increase brightness |
95 | 225 | KEY_BRIGHTNESSUP |
mute |
ea0 | 113 | KEY_MUTE |
decrease volume |
ae | 114 | KEY_VOLUMEDOWN |
increase volume |
b0 | 115 | KEY_VOLUMEUP |
lock |
5d | 142 | KEY_SLEEP |
Adjust non-responsive keys for Xorg
There is only one key that is completely unresponsive in Xorg, because the keycode is above 255: KEY_ZOOM
has a keycode of 371.
By changing this key to an unused key with a lower keycode we can resolve this issue.
Create the following file as root:
/etc/udev/hwdb.db/60-keyboard.hwdb
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr* KEYBOARD_KEY_91=coffee
rebuild the database
# systemd-hwdb update # udevadm trigger
After reboot you will see this change in the table above:
Chromebook special key | Scancode | Keycode | Keysym |
---|---|---|---|
full screen |
91 | 152 | KEY_SCREENLOCK |
Create additional key bindings
To also have function keys, Chromebook shortcuts (page-up, home, delete, ...) by using a combination of the Search key (that is assigned meta or Super
by default) as an overlay, there are many options:
xbindkeys, sxhkd, desktop environments keyboard shortcuts,...
A good option is keyd, because this way all the bindings work in console, Xorg and Wayland without any delay.
After installing, create the following file:
/etc/keyd/chromebook.conf
[ids] * [main] coffee = f11 # reassign the coffee/scrollock key to F11 to emulate full-screen within most window managers scale = print # reassign the scale key to printscreen [meta] #assign the leftmeta (search) key as an overlay key, do not forget to hold the "search" key to use the shortcuts below back = f1 forward = f2 refresh = f3 coffee = f4 scale = f5 brightnessdown = f6 brightnessup = f7 mute = f8 volumedown = f9 volumeup = f10 up = pageup down = pagedown left = home right = end backspace = delete
Enable/start keyd.service
.
This makes it possible to go to a console tty by holding Ctrl+Alt+Search+Back
(which is translated to Ctrl+Alt+F1
)
And also to come back to graphical mode by holding Ctrl+Alt+Search+BrightnessUp
(which is translated to Ctrl+Alt+F7
)