Installing Gentoo on a ThinkPad X220
Contents
DRAFT! Installationdiary - Gentoo on a X220 DRAFT!
Model Specs
X220 - 4290-W1B
replaced internal HD with SSD Intel SSD 320 Series 120GB, 2.5", SATA II (SSDSA2CW120G310)
BIOS Update
Turns out to be very Linux unfriendly. There a ways to boot the .iso image with grub. I tried grub2 with help from syslinux memdisk, reached some kind of bios update menu. But got stuck there. After all I did it by installing Win7 and running the Windows BIOS update tool.
Boot from USB Stick
Sysresccd (2.2.0), which has a pretty nice script to create a bootable USB-Stick, failed to boot on the X220. Created an bootable usb stick from the gentoo-minimal.iso with unetbootin. Works.
Partition the Drive
parted
mklabel gpt
mkpart primary fat32 1 201
set 1 boot on
mkpart primary linux-swap 202 4047
mkpart pimrary ext2 4048 120GB
Gentoo stage3
Just like the handbook, boot from gentoo-minimal-image. Unpack stage3 and portage. Edit fstab and set a root password. Everything else can be done later on.
Grub with efi support installation
This was by far the hardest part yet. Because UEFI and GPT a relatively new and I am not so familiar with it and the documentation isn't so good yet. Basically EFI on the X220 looks for a FAT32 formatted GPT partition with the boot flag set. If it finds one it tries to start /EFI/boot/bootx64.efi (Note that this is actually case-insensitive because of FAT32).
Grub-1.99 from scarabeus overlay is needed. Fix the STRIP_MASK error, remove last "a". Enable GRUB_PLATFORMS=efi-64 in make.conf. TODO add tar.gz with fixed ebuild for adding to overlay
Not sure if this is needed:
cp /usr/share/grub/{unicode.pf2,ascii.pf2} /boot/efi/efi/grub/
grub2-install --boot-directory=/boot/efi/efi --bootloader-id=grub --no-floppy --recheck
Important part:
grub-mkimage -d /lib/grub/x86_64-efi -O x86_64-efi -p "" -o /boot/efi/efi/boot/bootx64.efi part_gpt btrfs fat ext2 normal chain boot configfile linux multiboot efi_gop
Optional but useful:
cp /lib/grub/x86_64-efi/*.mod /boot/efi/efi/boot/
cp /lib/grub/x86_64-efi/*.lst /boot/efi/efi/boot/
Put grub.cf in same directory as bootx64.efi -> /boot/efi/efi/boot/