Gentoo Linux na Lenovo Legion Go — handheld jako stacja robocza
version 1.0, 2026-08-05
Cel
Niniejszy dokument to zbiór praktycznych notatek z konfiguracji Gentoo Linux na Lenovo Legion Go — konfiguracja jądra, sterowniki AMD, optymalizacje pod gry i pracę developerską. Legion Go to nie tylko handheld do gier — z Gentoo staje się kompaktową stacją roboczą AMD, gdzie każdy pakiet, opcja jądra i optymalizacja ma swoje uzasadnienie.
Specyfikacja sprzętu
| Komponent | Model |
|---|---|
| CPU | AMD Ryzen Z1 Extreme (8C/16T, Zen 4, 4nm) |
| GPU | AMD Radeon 780M (RDNA 3, 12 CU) |
| RAM | 16 GB LPDDR5X-7500 |
| Storage | 512 GB NVMe PCIe 4.0 |
| Display | 8.8" IPS, 2560×1600, 144 Hz, 500 nit |
| WiFi | MediaTek MT7922 (WiFi 6E) |
| Controllers | Wbudowane pady (XInput), detachable |
| Battery | 49.2 Wh |
Konfiguracja i ustawienia
1. Przygotowanie nośnika
Pobierz minimal installation CD dla amd64 z gentoo.org. Wypal na USB przez dd:
# dd if=install-amd64-minimal.iso of=/dev/sdX bs=4M status=progress
2. Konfiguracja jądra
Kluczowe opcje dla Legion Go — wszystko wbudowane (nie moduły), zero initramfs:
# AMD Ryzen Z1 Extreme / Phoenix CONFIG_X86_AMD_PLATFORM_DEVICE=y CONFIG_AMD_NB=y CONFIG_AMD_PMC=y CONFIG_SENSORS_K10TEMP=y # GPU — AMDGPU + RDNA 3 firmware CONFIG_DRM_AMDGPU=y CONFIG_DRM_AMDGPU_SI=n CONFIG_DRM_AMDGPU_CIK=n CONFIG_EXTRA_FIRMWARE="amdgpu/gc_11_0_1_mes_2.bin amdgpu/psp_14_0_0.bin ..." # Input — wbudowane kontrolery (Xbox 360/XInput) CONFIG_HID_XINMO=n CONFIG_JOYSTICK_XPAD=y CONFIG_JOYSTICK_XPAD_FF=y # WiFi — MediaTek MT7922 CONFIG_MT76x2E=m CONFIG_MT7921E=m # Display — 2560×1600 @ 144Hz przez eDP CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FB_EFI=y
2b. Wersje jądra — co działa
Sprawdzone wersje na Legion Go:
- 6.18.x — działa stabilnie, wszystko OK
- 7.0.13 — ostatnie znane działające jądro. Wszystko sprawne, shutdown poprawny
- 7.0.14+ — zwiecha. Po
poweroffnie gasną diody, system nie wyłącza się poprawnie
3. Kompilacja
Z1 Extreme ma 16 wątków, ale Gentoo potrafi się udławić bez swapu. 8-10 wątków — zależnie od kompilowanego pakietu:
# echo 'MAKEOPTS="-j10 -l8"' >> /etc/portage/make.conf # -j8 dla ciężkich pakietów (GCC, LLVM) # echo 'EMERGE_DEFAULT_OPTS="--jobs=4 --load-average=8"' >> /etc/portage/make.conf
USE flags dla handhelda gamingowego:
USE="X vulkan pipewire pulseaudio udev dbus
elogind -wayland -systemd -gnome -kde -qt5 -qt6
gaming joystick steamruntime
amdgpu radeonsi llvm lto pgo"
4. X11 + dwm / bandw-wm — własny window manager na handheld
Żaden Wayland — tylko sprawdzone X11. Dwa window managery w rotacji:
- dwm — minimalistyczny fallback, patchowany pod handheld (brak bara, klawisze pod pady)
- bandw-wm — autorski, deterministyczny tiling WM napisany pod stary sprzęt. Działa poprawnie ze Steamem. Wkrótce duży update (obecnie stara wersja na repo). Używany na przemian z dwm.
Oba kompilowane ze źródła, zero zależności poza Xlib:
# ~/src/dwm/config.h
static const unsigned int borderpx = 1;
static const unsigned int gappx = 4;
static const int showbar = 0; # brak bara — pełny ekran pod gry
# Klawisze pod pady: Super + klawisze
{ MODKEY, XK_g, spawn, {.v = gamescope_cmd } },
{ MODKEY, XK_Return, spawn, {.v = term_cmd } },
{ MODKEY, XK_w, spawn, {.v = bandw_wm_cmd } }, # przełącz na bandw-wm
5. Gaming: Steam + Proton
Steam na Gentoo przez overlay steam-overlay:
# emerge --ask games-util/steam-launcher # emerge --ask app-emulation/proton-ge-custom
Gamescope do zarządzania oknem gry:
# emerge --ask games-util/gamescope $ gamescope -W 1920 -H 1200 -r 144 -- %command%
Swap — obowiązkowy
Bez swapu Gentoo na Legion Go potrafi się zawiesić przy kompilacji większych pakietów (GCC, LLVM, WebKit). 8 GB swap na NVMe:
# dd if=/dev/zero of=/swapfile bs=1M count=8192 # chmod 600 /swapfile # mkswap /swapfile # swapon /swapfile # echo "/swapfile none swap sw 0 0" >> /etc/fstab
Optymalizacje wydajności
CPU governor — performance vs powersave
# Tryb gaming: pełna moc # cpupower frequency-set -g performance # Tryb bateria: oszczędzanie # cpupower frequency-set -g powersave
GPU — AMDGPU tuning
# Wymuś wysoki clock GPU podczas gamingu # echo "high" > /sys/class/drm/card0/device/power_dpm_force_performance_level # Wyłącz panel self refresh (PSR) — eliminuje tearing # echo 0 > /sys/kernel/debug/dri/0/amdgpu_dm_psr
ZRAM — więcej RAMu wirtualnie
# emerge --ask sys-block/zram-init # echo 'zram0) size=8192' >> /etc/conf.d/zram-init
Znane problemy i rozwiązania
| Problem | Rozwiązanie |
|---|---|
| Brak dźwięku po suspend | modprobe -r snd_hda_intel && modprobe snd_hda_intel |
| Kontrolery nie działają w Steam | Dodaj użytkownika do grupy input, przeładuj udev |
| GPU crash na Vulkan (RADV) | Aktualizuj mesa do >=24.1, firmware linux-firmware do latest |
| WiFi znika po suspend | echo "options mt7921e disable_aspm=1" > /etc/modprobe.d/mt7921e.conf |
| Ekran 2560×1600 za mały (skalowanie) | xrandr --output eDP-1 --mode 1920x1200 lub gamescope -W 1920 -H 1200 |
Podsumowanie
Gentoo na Legion Go to nie eksperyment — to codzienny driver. Kompilacja wszystkiego ze źródła na Z1 Extreme trwa akceptowalnie krótko (kernel ~8 minut, tygodniowa aktualizacja @world ~30 min do 1h). System jest absolutnie minimalny, nie ma w nim niczego zbędnego. Każda flaga USE, każda opcja jądra jest świadomym wyborem.
Lenovo Legion Go z Gentoo to prawdopodobnie jedyna taka konfiguracja na świecie — kompaktowa stacja robocza AMD z Linuksem zbudowanym od zera pod konkretny sprzęt.
Ciekawostka: Na tym samym sprzęcie stał również FreeBSD -CURRENT. Dźwięk działał, przeglądarka internetowa działała. Czyli się da — tylko po co, skoro jest Gentoo.