diff --git a/_posts/2022-10-22-rpi-arch.md b/_posts/2022-10-22-rpi-arch.md new file mode 100644 index 0000000..8dd6bfa --- /dev/null +++ b/_posts/2022-10-22-rpi-arch.md @@ -0,0 +1,99 @@ +--- +layout: post +title: Instalujeme Arch Linux ARM na Raspberry Pi 3 +subtitle: Protože proč ne +categories: tutoriál +tags: návod rpi arch +sidebar: [] +--- +![Arch Linux ARM logo](https://archlinuxarm.org/public/images/alarm.png) + +Raspbian OS už je ohraný. Pojďme si nainstalovat [ARM verzi Arch Linuxu](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3) na Raspberry Pi 3. Proces je relativně prostý. + +# Připravujeme SD kartu +Nejdřív je nutné SD kartu naformátovat a rozdělit oddíly. Můžete to udělat svým oblíbeným způsobem, já použiji GUI nástroj GParted. + +Odstraníme všechny oddíly skrz kontextové menu pravého kliknutí a potvrzení fajfkou. + +![Odstraněné oddíly v GParted](/assets/images/rpi-arch/01.png) + +Následně vytvoříme jeden FAT32 oddíl, který bude sloužit jako bootovací. Bude stačit 128 MiB. + +![Vytváření FAT32 oddílu v GParted](/assets/images/rpi-arch/02.png) + +Druhý oddíl bude náš systémový, který bude ext4. + +![Vytváření ext4 oddílu v GParted](/assets/images/rpi-arch/03.png) + +Jakmile fajfkou potvrdíme a necháme oddíly vytvořit, můžete je ještě zformátovat, nicméně je nejdůležitější nastavit `boot` příznak na našem boot oddílu skrz kontextové menu. + +![Výběr příznaků v GParted](/assets/images/rpi-arch/04.png) + +Tak je všechno hotovo v GParted. + +# Přesouváme systém +Dále připojíme naše oddíly podle jejich identifikátoru a čísla připojíme. + +Nejdřív si vytvoříme složky, `sudo mkdir -p /mnt/archpi/{root,boot}` nám vytvoří složky `root` a `boot` pro naše oddíly. + +Dále příkazem `sudo mount /dev/sdc1 /mnt/archpi/root` připojíme náš FAT32 bootovácí oddíl (**Označení `sdc1` se u vás může lišit, podívejte se do GPartedu nebo skrz příkaz `lsblk` na označení jednotlivých oddílů**) a příkazem `sudo mount /dev/sdc2 /mnt/archpi/boot` připojíme systémový oddíl. + +Dle oficiální [dokumentace](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3) se další proces má dělat skrz root uživatele, takže se přepneme příkazem `sudo su`. + +Příkazem `wget http://os.archlinuxarm.org/os/ArchLinuxARM-rpi-armv7-latest.tar.gz` stáhneme archiv a příkazem `tar -xf ArchLinuxARM-rpi-armv7-latest.tar.gz -C /mnt/archpi/root` ho rozbalíme. + +Pak musíme přesunout bootovací soubory do bootovacího oddílu: `mv /mnt/archpi/root/boot/* boot` a tím jsme hotovi, stačí oddíly odpojit příkazem `umount /mnt/archpi/root` a `umount /mnt/archpi/boot`. Jakmile se příkazy dokončí, můžete SD kartu vložit do RPi a zapnout. + +Výchozí jméno a zároveň heslo uživatele je `alarm` a roota `root`. Než bude systém nastavený, doporučuji použít `root` účet. + +# Připojení k Wi-Fi síti +*Pokud používáte kabelové připojení, tak můžete přeskočit* +Nyní se připojíme skrz terminál k Wi-Fi síti. Předpokládám, že název (SSID) sítě a heslo znáte a že zabezpečení je WPA2 Personal. Jinak si můžete prohlédnout [Arch Wiki](https://wiki.archlinux.org/title/Network_configuration/Wireless) pro více návodů. + +Příkazem `iw dev` zjistíte název vašeho interfacu (např. já mám `wlan0`). Zapneme ho pomocí `ip link wlan0 up` (místo `wlan0` tedy použijte váš název interfacu). + +Dále se tedy připojíme k nějaké Wi-Fi síti. Nejdřív musíme vytvořit konfigurační soubor pro `wpa_supplicant`, který slouží jako [suplikant](https://cs.wikipedia.org/wiki/Suplikant) s podporou WPA, WPA2 a WPA3. + +Pomocí příkazu `nano /etc/wpa_supplicant/wpa_supplicant.conf` vstoupíme do editace konfiguračního souboru. Do něj vložíme následující dva řádky: + +``` +ctrl_interface=/run/wpa_supplicant +update_config=1 +``` + +Klávesovou zkratkou `Ctrl+X`, zadáním `y` a potvrzením enterem uložíme soubor a opustíme editaci. wpa_supplicant teď můžeme spustit příkazem `wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf`. + +S běžícím wpa_supplicant můžeme použít příkaz `wpa_cli`, kde můžeme konfigurovat síť. + +Sítě zde můžete hledat příkazem [`scan`](https://wiki.archlinux.org/title/Wpa_supplicant#Connecting_with_wpa_cli), následováný `scan_results`. + +Pro přidání sítě použijeme příkaz `add_network`. Terminál vrátí `0`, což je ID sítě, které můžeme konfigurovat. Příkazem `set_network 0 ssid "MYSSID"` nastavíme SSID (název) sítě na `MYSSID`. Příkazem `set_network 0 psk "passphrase"` nastavíme heslo na `passphrase`. Jakmile je nastaveno, můžeme povolit síť pomocí `enable_network 0`. Konfiguraci uložíme příkazem `save_config` a opustíme pomocí `quit`. + +Jelikož ale právě teď nemáme IP adresu, musíme nastavit službu DHCP (pokud ji samozřejmě váš router má). Stačí zapnout službu `dhcpcd` pomocí příkazu `systemctl enable dhcpcd`. Abychom při každém zapnutí nemuseli síť manuálně zapínat, můžeme do `dhcpcd` přidat [hook](https://wiki.archlinux.org/title/Dhcpcd#10-wpa_supplicant), který ji automaticky zapne, stačí použít `ln -s /usr/share/dhcpcd/hooks/10-wpa_supplicant /usr/lib/dhcpcd/dhcpcd-hooks/`. + +V tomto stádiu doporučuji restartovat příkazem `reboot`. + +# Nastavujeme správce balíků +Aktuálně bychom měli mít funkční síť, nicméně je potřeba pár dalších příkazů pokud chceme používat `pacman` správce balíků. + +Nejdřív musíme vytvořit klíčenku příkazem `pacman-key --init`, poté přidáme klíče Arch ARM repozitářů příkazem `pacman-key --populate archlinuxarm`. Teď můžete příkazem `pacman -Sy` repozitáře synchronizovat. + +Jako první balík bychom měli stáhnout [`sudo`](https://wiki.archlinux.org/title/sudo), abychom nemuseli používat `root` uživatele pro všechno nastavování. Nainstalujeme ho příkazem `pacman -S sudo`. Dále příkazem `nano /etc/sudoers` upravíme konfiguraci. Najdeme následující řádky (`Ctrl+W` pro hledání): +``` +## Uncomment to allow members of group wheel to execute any command +#%wheel ALL=(ALL:ALL) ALL +``` +a odstraníme mřížku před `%` pro odstranění komentáře. Tím umožníme uživatelům v uživatelské skupině `wheel` používat příkaz `sudo`. + +Nyní přidáme uživatele `alarm` do skupiny `wheel` příkazem `gpasswd -a alarm wheel`. A teď už můžeme používat uživatele `alarm` pro různé administrativní operace místo roota. + +# Nastavení SSH přístupu +Možná vás nebaví zapojovat RPi do monitoru nebo u něj klapat věci do klávesnice v terminálu nebo jen chcete vzdálený přístup. SSH lze povolit skrz OpenSSH, které je na Archu předinstalované. Stačí povolit službu pomocí `systemctl enable sshd`. Pro nějakou pokročilou konfiguraci si prohlédněte [Arch Wiki](https://wiki.archlinux.org/title/OpenSSH#Server_usage). + +Nyní se stačí připojit skrz nějaký SSH klient na vaše zařízení (pokud neznáte IP, podívejte se skrz příkaz `ip a`), třeba skrz `ssh alarm@vase.ip.adresa`. + +# Závěr + +![Arch neofetch](/assets/images/rpi-arch/05.png) + +Instalace je opravdu prostý a snadný proces (i když jsem ho sám dělal asi 5x než mi to nabootovalo), takže určitě zkoušejte a zkoušejte. diff --git a/assets/images/rpi-arch/01.png b/assets/images/rpi-arch/01.png new file mode 100644 index 0000000..9966ec1 Binary files /dev/null and b/assets/images/rpi-arch/01.png differ diff --git a/assets/images/rpi-arch/02.png b/assets/images/rpi-arch/02.png new file mode 100644 index 0000000..523f24d Binary files /dev/null and b/assets/images/rpi-arch/02.png differ diff --git a/assets/images/rpi-arch/03.png b/assets/images/rpi-arch/03.png new file mode 100644 index 0000000..3c31dd5 Binary files /dev/null and b/assets/images/rpi-arch/03.png differ diff --git a/assets/images/rpi-arch/04.png b/assets/images/rpi-arch/04.png new file mode 100644 index 0000000..4ea29f8 Binary files /dev/null and b/assets/images/rpi-arch/04.png differ diff --git a/assets/images/rpi-arch/05.png b/assets/images/rpi-arch/05.png new file mode 100644 index 0000000..f41f96c Binary files /dev/null and b/assets/images/rpi-arch/05.png differ