Skip to content

Instantly share code, notes, and snippets.

@amonks
Last active January 5, 2023 17:27
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save amonks/c089600bae9419013f3f9e801154d4e2 to your computer and use it in GitHub Desktop.
Save amonks/c089600bae9419013f3f9e801154d4e2 to your computer and use it in GitHub Desktop.

Install arch on a Lenovo Yoga 11e Chromebook

The Thinkpad Yoga 11e isn't the most popular chromebook, but you can readily pick one up for less than 200$, and it's physically built like a tank. You could throw it at a man, pick it back up, and go on typing.

This chromebook is a member of the categories "braswell" and "ULTIMA".

I'll describe the process I followed to get Arch running on it. The firmware steps should be the same if you'd like to install Gallium, an excellent chromebook-optimized distro forked from Xubuntu.

Firmware

Unlike some other Chromebooks, the Yoga 11e doesn't come with a linux-friendly bios, so you'll have to install custom firmware. In order to write to the firmware, you first need to remove a physical write-protect screw on the motherboard.

Lenovo publishes an excellent hardware maintenance manual, which provides detailed instructions (begin on page 22). You'll need a small phillips head screwdriver, and a couple of good spudgers.

Here's what to do:

turn off os verification (enter "developer mode")

  1. boot holding escape, refresh, and the power button (on the side)
  2. when "chrome os is missing or damaged" appears, press ctrl-d
  3. press enter

disable the battery

  1. boot, and enter chromeos (a guest session is fine) in developer mode
  2. press ctrl-alt-t to get to the "crosh shell"
  3. enter "shell" or maybe "sudo bash" to get a real bash shell
  4. enter "ectool batterycuttoff" to disable the battery.
  5. unplug your chromebook. The battery will re-enable when you plug it back in.

Remove the firmware write-protect screw

I'll refer to pages in the hardware maintenance manual.

Make sure you keep track of which screws are where. I like to draw labeled boxes on a piece of paper, and place the screws into the boxes. Make sure they don't roll around.

  1. take off the bottom cover (page 52)
  2. remove the battery (page 53-54)
  3. remove the keyboard (page 56-57)
  4. remove the keyboard bezel assembly (page 58-59)
    • the "bezel assembly" is the plastic surface your palms are over when you type.
    • after removing all the screws, I had a super difficult time snapping the bezel assembly off. I found I could get my spudger in above the hdmi port, kinda leave it in there, insert another spudger next to it and kinda slide it around. Each little bendy arrow marked 9 in the picture on page 59 is a snap that has to unsnap. Some of them won't want to. If you can get a spudger in on each side, it helps. The plastic bent pretty sharply at a couple points, but it flattened out just fine when I snapped it back in place.
  5. remove the write protect screw (page 23). It has a little red marker next to it. (Mine did, anyway).

Keep the screw somewhere really special, and put your chromebook back together.

You're gonna have to repeat the whole process to put the screw back in once the firmware's installed.

install the mrchromebox firmware

  1. boot, and enter chromeos (a guest session is fine) in developer mode
  2. press ctrl-alt-t to get to the "crosh shell"
  3. enter "shell" or maybe "sudo bash" to get a real bash shell
  4. run this:
cd ~
curl -LO https://mrchromebox.tech/firmware-util.sh && sudo bash firmware-util.sh

Now you can put the screw back in. Or, you know, leave it out.

Arch

Now you can install arch more or less normally. Your keyboard, trackpad, and touchscreen won't work until we downgrade the kernel later, so you'll need a usb keyboard.

make install media

download an arch iso from https://www.archlinux.org/download

flash it onto a usb drive:

sudo dd if=$PATH_TO_ISO/archlinux-whatever-x86_64.iso of=/dev/whatever bs=1m

install arch normally

You can pretty much install arch as you normally would. The arch wiki has a page with some extra chromebook advice, which might be applicable if you want to run X or use your touchscreen/touchpad or hear audio.

Here are the steps I followed:

plug it in, reboot, press escape, boot from usb, select "live install whatever"

loadkeys dvorak
wifi-menu
cfdisk /dev/mmcblk0 # go mbr
mkfs.ext4 /dev/mmcblk0s1
mount /dev/mmcblk0s1 /mnt
mkdir /mnt/boot
vim /etc/pacman.d/mirrorlist # make macedonia not be first
                             # you can use rankmirrors but it takes forever
pacstrap /mnt base
genfstab -U /mnt >> /mnt/etc/fstab
pacstrap /mnt grub-bios
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
hwclock --systohc
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo "KEYMAP=dvorak" > /etc/vconsole.conf
pacman -S terminus-font
echo "FONT=ter-v24b.psf.gz" >> /etc/vconsole.conf
echo "ptah" > /etc/hostname
pacman -S dialog
pacman -S sudo
pacman -S wpa_supplicant
EDITOR=vi visudo # uncomment the wheel group jawn
useradd -m -G wheel -s /bin/bash ajm

make sure you can boot into arch. If you can't, you can boot back into the live media, mount the drive and arch-chroot again.

Kernel

To get the keyboard working, you'll need to compile v4.8.17 of GalliumOS's kernel. More recent kernels don't work. It's possible that v4.8.14 from the archlinux package archive would work, I haven't tried it. If that doesn't work, it's possible that the necessary patches out of Gallium are available on the AUR. I haven't looked.

Gallium's kernel has some patches you might or might not be into (it uses bfs and bfq), removes a bunch of shit you definitely don't need, and adds support for some chromebook hardware.

Compiling the kernel on your chromebook will take a couple hours, so those binary options might be worth investigating. I'll describe how to compile the kernel on your chromebook:

cd ~
mkdir kernel
git clone https;//github.com/GalliumOS/linux.git
cd linux
git checkout v4.8.17
cp galliumos/config .config

then proceed to compile and install the kernel normally, just like you would the one from kernel.org:

make
sudo make modules_install
sudo cp -v arch/x86_64/boot/bzImage /boot/vmlinuz-linux48-galliumos
sudo cp /etc/mkinitcpio.d/linux.preset /etc/mkinitcpio.d/linux48-galliumos.preset
sudo sed -i 's/-linux/-linux-48-gallimuos/' /etc/mkinitcpio.d/linux48-galliumos.preset
sudo mkinitcpio -p linux48
cp System.map /boot/System.map-linux48-galliumos
ln -sf /boot/System.map-linux48-galliumos /boot/System.map
sudo grub-mkconfig -o /boot/grub/grub.cfg

You're done!

Reboot and select the right kernel at the grub menu.

@Ansermuhammad
Copy link

Can I install Windows 7 or 10 on Lenovo Yoga 11e Chromebook?

@makeuseoftech
Copy link

Hi amonks,

Thank you for this as it was very helpful for me.

As a side question, have you been able to find and configure the accelerometer on the 11e? I have had no luck finding the resources to do this.

@brittAlan2
Copy link

Is it not possible to build the kernel and modified live image beforehand? I am just wondering because before i read this that was my plan..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment