Přeskočit obsah

Arch na Asus x205ta

This guide details my experience with installing arch linux 6.17 on ASUS X205TA. If you share the same goal and somehow happened to land on this page, I'm sure that google translate will be competent enough to translate these czech ramblings into something you'll understand.

Na této stránce se pokusím zdokumentovat postup jakým se mi podařilo dostat arch linux na stárnoucí slaboučký asus x205ta. Píšu to s týdenním odstupem, ale snad se mi podaří, ještě dohledat všechno, kde jsem tápal oproti oficiální wiki. Vybral jsem si arch, protože na arch wiki má stránku přímo pro tento noťas, která tvrdí, že vše funguje. Bohužel většina migrace na linux na těchto mašinkách probíhala kolem let 2016-2017, takže dohledáte všechny možné problémy, které dnes již možná nejsou relevantní a mohl jsem jít do nějaké snazší distribuce. Výhodou určitě bylo, že v live distribuci mi jel bez problémů internet, zatímco v mx linuxu, který jsem taky zkoušel naživo mi internet na první dobrou nenaběhl.

1 Před samotnou instalací

1.1 Zálohování windows

Původní plán bylo zkopírovat si stávající instalaci windows na flashku, ale nakonec jsem to vzdal. Podle návodu jsem se měl zbavit bitlockeru, ale když to mělo být hotové, tak stroj naprosto zamrzl. Po restartu se mi menu s bitlockerem nedařilo najít, takže si nejsem jistý, jestli to bylo úspěšné, ale stejně jsem to s Bilem Gatesem vzdal.

1.2 Tvorba live distribuce

Prázdná flashka, Rufus a distribuce arch, takhle trojka (v rufusu jsem prostě vybral jen iso soubor a na nic nešahal) a během chvilky jsem měl flashku s live distribucí připravenou.

1.3 Spouštění live distra

Zuřivé mačkání klávesy delete během startu x205ta vám zobrazí tabulku s výběrem odkud bootovat. Escape vás dostane do BIOSu, kde je třeba vyřadit secure boot. Na bootovací obrazovce mi nefunguje klávesnice (naštěstí jediné místo) naštěstí po 15 sekundách se vybere první možnost a dostanete se do live distribuce běžící z flashky.

1.4 Klávesnice

Pokud jste jako já odkojeni českým rozložením kláves tak první pokyn, který chcete dostat do příkazové řádky je loadkeys:

loadkeys cz-qwertz

1.5 Přípojení k internetu

K internetu jsem se připojil pomocí iwd:

iwctl
Vypsání zařízení (v mém případě vyplivne wlan0)
[iwd]# device list
Zjištění wifi sítí (zbytečné pokud si pamatujete jméno vaší sítě)
[iwd]# station name scan
Zobrazení seznamu sítí:
[iwd]# station name get-networks
A konečně připojení k wifi
[iwd]# station wlan0 connect jmeno-nasi-wifi-site
Ctrl+c vyskočí z iwd a poté můžeme zkusit, jestli jsme skutečně na internetu (ctrl+c znovu přestane přijímat pakety)
ping ping.archlinux.org

1.6 Synchronizace času

Tady prostě posloucháme co nám wiki říká abychom udělali

timedatectl

1.7 Krájení disku

A teď si konečně naformátujeme disk (zabijeme windows) a rozdělíme ho na 3 oddíly: Boot, kde bude žít zavaděč, swap, kam si systém v případě potřeby odkládá ramku a pak zbytek disku připadne linuxu.

fdisk -l vypíše disky společně s oddíly.

fdisk -l
Spustíme fdisk pro disk, který chceme formátovat
fdisk /dev/mmcblk2
Ověříme si, že je to skutečně ten disk, který chceme.
p
A jdeme mazat, v obráceném pořadí je to prý jistější.
d   Delete partition
4   Select partition mmcblk2p4 (Windows Recovery)
d   Delete partition
3   Select partition mmcblk2p3 (Microsoft Basic Data)
d   Delete partition
2   Select partition mmcblk2p2 (Microsoft Reserved)
d   Delete partition
1   Select partition mmcblk2p1 (EFI System)
Pomocí n vytvoříme nové oddíly, číslujeme od jedničky, první sektor odklepneme co nám systém nabízí, poslední podle požadované velikosti.

boot

-Číslo: 1 -Poslední sektor:+512M -Změna typu (příkaz t): 1 (kód pro EFI systém)

swap

-Číslo: 2 -Poslední sektor:+4G -Změna typu (příkaz t): 19 (kód pro swap)

linux

-Číslo: 2 -Poslední sektor: stačí odklepnout enterem (až do konce disku)

Příkazem w se náš plán stane skutečností a windows tímto mizí z disku, i když v našich srdcích pochopitelně nadále zůstává.

w

1.8 Formátování oddílů

Teď budu o něco předbíhat, na bootloader přijde čas až za chvíli, ale má to spojitost právě s volbou formátu oddílů. To co je uvedené níže je formátování, které bylo nakonec úspěšné, ale ze začátku to tak nevypadalo: Nejspíš díky mojí nezkušenosti se mi nepodařilo přesvedčit grub (doporučovaný bootloader), aby načetl linuxovou instalaci. Pořád mi tvrdil, že nepoznává souborový systém a i když jsem se mu snažil dodat co potřeboval tak to prostě neklaplo. Možná je systém asusu x205ta příliš restriktivní a ani to klapnout nemohlo, to už se nedozvím, protože nakonec jsem grub opustil. Ale ještě předtím jsem dostal jeden z mých horších nápadů (v rámci této instalace). Pojďme všechno naformátovat na fat32, do bootu jsem se dostal, tak proč to nepoužít i pro linuxový oddíl. Byl jsem si vědom 4 GB omezení velikosti souborů, ale tenhle noťas má 32 gb paměti, tam si opravdu nebudu pouštět filmy v HD kvalitě. Vypadalo to skvěle než jsem začal instalovat linux a začaly selhávat některé balíčky, hluboce jsem to nezkoumal, ale nejspíš byl problém v omezeních, které má fat32 v pojmenovávání souborů. Takže toto se ukázalo jako slepá cesta. Nakonec jsem našel poznámku někoho kdo kráčel tuto cestu přede mnou, že s grubem rovněž neměl úspěch a úspěšně bootujeme pomocí systemd-boot. Ale o tom až za chvíli, nyní si naformátujme oddíly.

boot

mkfs.fat -F32 /dev/mmcblk2p1

swap

mkswap /dev/mmcblk2p2
swapon /dev/mmcblk2p2

linux

mkfs.ext4 /dev/mmcblk2p3

1.9 Osedlání disků (mounting)

Pomocí příkazu mount je třeba říct systému kde ve svém souborovém systému disky najde. Je zvyklostí připojovat disky do \/mnt, takže tam napojíme oddíl s linuxem:

mount /dev/mmcblk2p3 /mnt
Bootovací oddíl připojíme do \/mnt\/boot. Možná bude třeba složku první vytvořit pomocí mkdir (make directory):
mkdir /mnt/boot
mount /dev/mmcblk2p1 /mnt/boot

2 Instalace

Máte pocit, že už nějakou chvíli instalujete linux? Tak podle arch wiki jste se doposud jen flákali :D. Nyní následuje skutečná instalace.

2.1 Výběr serverů

Pokud chcete tak si můžete manuálně upravit servery ze kterých budete stahovat instalační balíčky. Živá distribuce by si měla automaticky vybrat nejrychlejší servery a v mém případě to fungovalo (aspoň soudím podle toho, že většinu serverů jsem měl z geograficky blízkého okolí). Pokud se v seznamu chcete rýpat ručně a třeba některé servery odebrat (stačí přidat # na řádek se serverem) tak to jde např pomocí editoru nano. Pokud otvíráte editor nano poprvé jako já tak v další sekci ho lehce popisuju.

nano /etc/pacman.d/mirrorlist

2.2 Editor nano

Na to abych abych něco upravil v editoru nano mi stačilo vědět tohle. Ctrl+o - uloží provedené změny (odsouhlasit enterem) a ctrl+x zavře editor. Víc jsem nepotřeboval, ty příkazy jsou popsány u spodního řádku, jen mi nebylo okamžitě zjevné, že write out = uložit.

2.3 Instalace

Pomocí nástroje pacstrap si stáhneme a nainstalujeme linux, ovladače a základní nástroje. Budeme toho instalovat víc ale mě se oplatilo to neinstalovat všechno naráz pro případ, že by něco selhávalo. Takže první to nejnutnější minimum:

pacstrap -K /mnt base linux linux-firmware
Po instalaci jsem dostal hromadu varování, že mi chybí firmware pro řadu modulů 'ast', 'xhci_pci_reneas', 'ged' , 'aic94xx' atd....Podle AI je to v pohodě, a notebook funguje takže asi dobrý (prý je to něco archaického co x205ta nevyužívá).

Další nezbytnosti: intel-ucode obsahuje opravy pro intelácké procesory, dhcpcd a networkmanager abychom se pak v našem novém systému mohli připojit k internetu, nano jako textový editor (ano naše nová instalace neobsahuje skoro žádný z nástrojů, který je v živé distribuci). Ještě je populární editor vim, ale mě na těch pár úprav stačilo jednodušší nano.

pacstrap -K /mnt intel-ucode dhcpcd networkmanager nano

3 Konfigurace systému

3.1 Fstab

Soubor fstab popisuje jak mají být jednotky osedlány při spuštění systému. Aspoň to tvrdí wiki, bezporblémový krok, takže vlastně netuším co to dělá a jak to funguje.

genfstab -U /mnt >> /mnt/etc/fstab
Pokud si chcete zkontrolovat, že obsahuje vše co potřebujete.
cat /mnt/etc/fstab
Což pokud jste jako já tak absolutně netušíte, jestli tam je vše co má být. Akorát jsem srovnal, že fstab sedí s tím co generuje blkid:

blkid

3.2 Chroot

Pomocí chrootu se dostaneme jakoby do našeho nainstalovaného systému a můžeme provádět úpravy přímo v něm. Pomocí exit z chrootu zase vyskočíme, už si nepamatuju co přesně to bylo, ale mám pocit že mi něco v chrootu nefungovalo a bylo to třeba pustit z příkazové řádky živé distribuce.

arch-chroot /mnt

3.3 Nastavení lokálního času

Český čas je Europe/Prague

ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime
Pokud potřebujete seznam časových zón
timedatectl list-timezones
Synchronizace hardwarových hodin na systémový čas

hwclock --systohc

3.4 Lokalizace

Původně jsem si nastavil českou lokalizaci, ale pak jsem zjistil, že všechno co vím o příkazové řádce je v angličtině a celé mi to přišlo divně přeložené a přišlo mi divné potvrzovat možnosti pomocí a-ano, místo tradičního y-yes. Takže jsem si změnil systém alespoň na britskou angličtinu, ale popíšu postup v češtině.

nano /etc/locale.gen
# najdětě cs_CZ.UTF-8 UTF-8
# odstraňte komentář(křížek) na začátku řádku
Vygenerujte lokalizaci
locale-gen
Vloží řádek o lokalizaci do locale.conf
echo "LANG=cs_CZ.UTF-8" > /etc/locale.conf
Permanentní nastavení českého rozložení klávesnice.
nano /etc/vconsole.conf
Vložit tyto dva řádky (už si nejsem jistý jestli jsou oba potřeba):
XKBLAYOUT=cz-qwertz
KEYMAP=cz-qwertz

3.5 Nastavení sítě

Dáme počítači jméno, které uvidíme v síti. Já jsem svůj počítač pojmenoval prostě "x205ta-arch" :

echo "x205ta-arch" > /etc/hostname
Pak (čistě podle ai) vytvoření základního nastavení.
cat <<EOF > /etc/hosts
127.0.0.1   localhost
::1     localhost
127.0.1.1   x205ta-arch
EOF

3.6 Heslo

Nastavení hesla pro root (administrátorský účet)

passwd
Rovnou si můžeme přidat i obyčejného uživatele.V mojem případě je to Kuba.
useradd -m -G wheel,audio,video,storage -s /bin/bash Kuba
A dáme mu heslo, v mojem případě to je MamRadLinux123 (vtip).
passwd Kuba
Možná bude třeba nainstalovat sudo. Vzhledem k tomu, že jsme v chrootu tak by měl fungovat pacman. (Pacman-jako package manager funguje v rámci normální instalace, pacstrap je jakýsi obal, který zabezpečuje aby pacman fungoval v živé distribuci)
pacman -S sudo
Privilegia nastavujeme v souboru sudoers, který se ale musí upravovat pomocí visudo.
EDITOR=nano visudo
Odkomentujeme (Odstraníme #) wheel skupinu.
%wheel ALL=(ALL:ALL) ALL

3.7 Bootloader

Jak už jsem zmínil nyní nastává kritický krok, instalace bootloaderu. Připomínám si co jsem dělal, tím, že si zpětně procházím na co jsem se dotazoval AI(Gemini) a část s grubem na mě působí pořád traumaticky (je to hodně dlouhá konverzace). Systemd-boot by už měl být součástí systému (je součástí základního balíčku), ale je třeba nakopírovat potřebné soubory do bootovacího oddílu.

bootctl install --path=/boot
Vytvoříme hlavní konfigurační soubor
nano /boot/loader/loader.conf
Vložíme tento text.
default  arch.conf
timeout  4
editor   no
Nyní potřebujeme vytvořit arch.conf a naplnit potřebnými informacemi. Pro system-boot potřebujeme PARTUUID (ne UUID) našeho linuxového oddílu
blkid -s PARTUUID -o value /dev/mmcblk2p3
Otevřeme arch.conf a vložíme tento text. Přiznám se, že jsem nezjistil jakým způsobem mám zkopírovat text z blkid, ale vymyslel jsem jak ho přesměrovat rovnou do konfiguračního souboru (viz další rámeček)
title   Arch Linux
linux   /vmlinuz-linux
initrd  /intel-ucode.img
initrd  /initramfs-linux.img
options root=PARTUUID=VAŠE-ROOT-PARTUUID rw
Přesměrování výstupu z blkid na konec arch.conf (místo kopírování)
echo "options root=PARTUUID=$(blkid -s PARTUUID -o value /dev/mmcblk2p3) rw" >> /boot/loader/entries/arch.conf

4 Spouštíme

4.1 Vypínáme živou distribuci

exit nebo ctrl+d na vyskočení z chrootu. Doporučuje se před vypnutím odebrat disky

umount -R /mnt
Vypnutí
shutdown now
Teď vytáhnout flashku a znovu zapnout počítač. Jestli se všechno povedlo tak by měl začít bootovat linux.

4.2 První spuštění nového systému

První spuštění se mi zaseklo na řádku "load json user/group record from credentials", trošku jsem hledal co s tím, ale mám pocit, že na druhý pokus se tato chyba už neopakovala a až na ten třetí proběhl celý boot. Login ještě vyhazoval nějaké errory, ale i přes ně se jde přihlásit do systému.

4.3 Kopírování wifi ovladačů

Další ze zádrhelů, nefunkční wifi ovladače. Dají se všemožně stáhnout, v mém případě už byly v počítači jen je třeba je přemístit. Zajímavá poznámka, nevím. jestli se změnil způsob jakým funguje cp (copy), ale navzdory tomu, že jsem to viděl minimálně ve dvou zdrojích, tak mi to zaboha nechtělo fungovat. Pořád jsem dostával illegal lseek a díky své nezkušenosti nevěděl co je špatně. Jestli jsem dobře pochopil příčinu chyby tak je to o tom, že je to speciální soubor, který se skládá z více zdrojů a nejde v něm tedy nijak přeskakovat (je třeba jej přečíst postupně). Řešením bylo tedy nekopírovat, ale přečíst soubor postupně a zapisovat jeho obsah na nové místo.

Copy:

sudo cp /sys/firmware/efi/efivars/nvram-* /lib/firmware/brcm/brcmfmac43340-sdio.txt
Přečtení a uložení (včetně skutečné cesty, ale netuším jestli to je na všech systémech stejné)
sudo cat /sys/firmware/efi/efivars/nvram-74b00bd9-805a-4d61-b51f-43268123d113 > /lib/firmware/brcm/brcmfmac43340-sdio.txt

Případné zjištění názvu souboru

ls /sys/firmware/efi/efivars/ | grep ^nvram-
alternativní přečtění a uložení (od ai)
sudo cat /sys/firmware/efi/efivars/<YOUR_NVRAM_FILENAME> | sudo dd of=/lib/firmware/brcm/brcmfmac43340-sdio.txt
možná bude třeba wifi modul odebrat a znovu přidat
sudo modprobe -r brcmfmac
sudo modprobe brcmfmac

4.4 Spuštění wifi

Nyní se budeme připojovat pomocí network manageru. Řadu služeb v Linuxu je třeba první spustit

sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
Nyní si zobrazíme dostupné wifi sítě, zde zjistíte zda vám fungují ovladače wifi.
nmcli device wifi list
Připojte se k vaší síti.
nmcli device wifi connect "JmenoSítě" password "HesloSítě"

4.5 Instalace grafického prostředí

Je na čase se zbavit příkazové řádky. Vybral jsem si prostředí xfce, protože by mělo být o něco málo méně náročné.

sudo pacman -S xorg xfce4 xfce4-goodies lightdm lightdm-gtk-greeter network-manager-applet
sudo systemctl enable lightdm.service
sudo systemctl start lightdm.service

4.6 Selhávání stahování balíčků

Vzhledem k tomu, že v mém případě tato instalace byla vícedenní proces, začalo mi stahování některých balíčků selhávat. Databázi balíčků je třeba synchronizovat pomocí "pacman -Sy". Ovšem společně s aktualizací databáze by se měl aktualizovat systém, aby nedocházelo ke konfliktům způsobeným různým stářím balíčků. Takže doporučovaný příkaz je:

pacman -Syu

4.7 Zvuk

Abychom v novém systému měli zvuk, je třeba si jej taky nainstalovat. Cest je asi více, já jsem si vybral pavucontrol protože mi ai tvrdilo, že je to defacto standard. Nemůžu každý den odporovat naší nové modle, že :D

sudo pacman -S pavucontrol xfce4-pulseaudio-plugin
Ještě jsem musel spustit pulseaudio.service. (AI tvrdí, že pipewire je nový standard, ale pulseaudio očividně taky funguje)
systemctl --user status pulseaudio.service
systemctl --user enable pulseaudio.service
systemctl --user start pulseaudio.service

4.8 Automatické připojování jednotek (usb disků a podobně)

Zde je co jsem si musel stáhnout, aby se mi automaticky připojovaly usbčka. Pro instalaci některých komponent bylo třeba vypnout thunar.

killall thunar
sudo pacman -S gvfs gvfs-backends gvfs-fuse gvfs-smb gvfs-mtp thunar-volman

4.9 Čtečka SD karet

Asus x205ta má integrovanou čtečku SD karet, kterou necháte trvale obsazenou SD kartou a využíváte ji jako náhradní úložistě. Ale nebyl by to asus x205ta, kdyby ta čtečka nebyla nestandardní. Jestli jsem to dobře pochopil tak je problém, že jeden z pinů reportuje zem místo 20 kOhm resistoru (nebo tak nějak, už si to nepamatuju). Našel jsem diskusi, kde psali, že v kernelu 4.5 je to už opravené, ale možná mezitím to už zase někdo zvládl rozbít, protože mě čtečka nefungovala.

Bylo to dost bolestivé, než jsem našel správný příkaz pro tuhle výjimečnost. Ale stačilo upravit konfiguraci boot loaderu a po restartu čtečka jako zázrakem fungovala.

sudo nano /boot/loader/entries.arch.conf
a na konec řádku s options přidat tento text
sdhci.debug_quirks=0x8000

4.10 Další (ne)zbytnosti

Prohlížeč
Zapnout firefox s 2gb paměti není moc zábava, takže jsem hledal nějakou nenáročnou alternativu. Nic jiného jsem netestoval, ale s funkčností falkonu jsem vcelku spokojený. Samozřejmě, že prohlížeč sežere skoro celou ramku při pár otevřených panelech, ale vcelku slušně reaguje na pokyny, což se o firefoxu říct nedalo.

sudo pacman -S falkon

Stav baterie

sudo pacman -S xfce4-battery-plugin

LibreOffice

sudo pacman -S libreoffice

5 Konec?

Přiznám se, že jsem se ještě nepouštěl do bluetooth, na arch wiki je k tomu návod, takže rozchodit ji bude určitě zábavička. :D Dole nejspíš nekompletní seznam zdrojů z kterých jsem čerpal.
- Distro-Agnostic Installation Guide for the X205TA
- Bootia32-efi
- Jeden z modernějších zdrojů
- Další modernější zdroj
- Guide na mac, ale je tam myslím jakási podobnost s 32bitovým uefi
- Další github
- jak nainstalovat lubuntu
- tohle mě zachránilo s SD kartami