ProHoster > Blog > podávání > Raspberry Pi + Fedora (aarch64) = Wi-Fi hotspot (nebo malinový router s modrým kloboukem)
Raspberry Pi + Fedora (aarch64) = Wi-Fi hotspot (nebo malinový router s modrým kloboukem)
Tento článek Raspberry Pi + CentOS = Wi-Fi Hotspot (nebo raspberry router s červeným kloboukem) Mluvil jsem o způsobu, jak proměnit Raspberry v bezdrátový přístupový bod pomocí operačního systému CentOS. Sestavením svého domácího routeru podle tohoto nákresu jsem uspokojil své kreativní ego a získal klid na kritický prvek mé útulné infrastruktury. Pronásledoval mě však pocit neúplnosti řešení a vnitřní perfekcionismus: „nedokonalý výsledek práce nemá právo na existenci“. Myšlenka, že „ideál může a měl by být dosažen“, mě neopustila ani na minutu.
A pak jsem jednoho dne na jednom z tematických fór narazil na diskusi o bitové hloubce existujících operačních systémů pro Raspberry (aarch64 vs armhfp): který 64bitový OS může v zásadě pasovat a fungovat na Raspberry verze 3 ++?
Můj milovaný CentOS pro architekturu ARM z „Userland“ nijak nespěchal s přechodem na nejnovější verzi jádra a přeměnou na 64-bit. A úložiště EPEL, připojené bůhví odkud bez digitálního podpisu, bylo noční můrou v mém neklidném spánku...
V tomto článku budu hovořit o způsobu instalace Fedora (aarch64) na Malina Pi 3 Model B + в extra minimální výkon. Krátce se zastavím u funkcí zvýšení přístupového bodu Wi-Fi, které byly zjištěny jako výsledek zkušebního provozu mé předchozí konfigurace na CentOS 7.
0. Co budete potřebovat
Vše je stejné jako v předchozím článku:
Raspberry Pi 3 Model B+;
microSD >= 4GB (později můžete systém „přenést“ na 2GB disk);
Pracovní stanice s Linuxem a čtečkou microSD karet;
Kabelová síťová konektivita mezi Raspberry a linuxovou pracovní stanicí (v tomto případě nebude k nastavení potřeba žádný další monitor a klávesnice), přístup k internetu z obou zařízení;
Podobné jako iterativní LFS-při vytváření vlastního Linuxu se použije obraz distribuce Fedory a na jeho základě se vytvoří minimální systém (bez „kompilace ze zdroje“).
Nyní si můžete stáhnout „malinu“ z microSD a připojit se k ní přes síť.
Studený start trvá asi jednu a půl minuty. TTX systému po načtení:
rpm -qa | wc -l
444
2. Sestavení minimálního systému
Bohužel se ukazuje, že „minimální distribuce“ od vývojářů není zdaleka nejskromnější ve spotřebě zdrojů. Obraz systému lze ještě zmenšit.
Chcete-li to provést, musíte skript spustit na Malinka:
#!/bin/bash
. /etc/os-release
P=$(mktemp --directory $(pwd)/$ID-$VERSION_ID.XXX)
dnf --installroot=$P --releasever=$VERSION_ID --setopt=install_weak_deps=false
--assumeyes install
bcm283x-firmware
dnf
grub2-efi-aa64
kernel
openssh-server
shim-aa64
for f in /boot/efi/EFI/fedora/grub.cfg
/boot/efi/EFI/fedora/grubenv
/boot/efi/rpi3-u-boot.bin
/etc/default/grub
/etc/fstab
do
cp -fv $f $P$f
done
rm -fv $P/dev/*
rm -rfv $P/var/cache/dnf
echo "--------------------------------------------------------------------------------"
du -hs $P
Po spuštění skriptu se v aktuálním adresáři vytvoří podadresář ($P) s obsahem kořenového adresáře nové minimální edice OS. Raspberry můžete vypnout a vrátit microSD do pracovní stanice Linux.
3. Instalace minimálního systému
Instalace se scvrkává na zkopírování minimálních souborů „image“ OS (získaných v předchozím kroku) na speciálně připravenou microSD do příslušných adresářů.
Stačí 2GB karta a dva oddíly na ní:
/ boot / efi - EFI+FAT32, boot, 100 MB;
/ (root) - EXT4, veškerý zbývající prostor.
Po přípravě microSD a zkopírování souborů na ni musíte:
opravit boot OS;
zapněte síť;
nakonfigurovat přístup přes ssh.
Oprava spouštění spočívá v nahrazení UUID sekcí v souborech:
Toto bude archiv obsahující dva soubory: instalační skript a TGZ se soubory OS. Archiv je potřeba rozbalit na linuxové pracovní stanici, vložit microSD (stačí 2GB karta) a spustit skript s parametrem - názvem zařízení:
./install /dev/mmcblk0
Buďte opatrní!
Bez jakéhokoli varování bude zařízení zformátováno a bude na něj nainstalován operační systém.
Po bezchybném provedení skriptu lze kartu přeskládat na „malinu“ a používat: catch přes dhcp, heslo – „1“.
Systém je vyčištěn od všech ID a klíčů, proto je každá nová instalace jedinečná.
Znovu opakuji, systém - minimální! Proto se nelekejte: DNF je k dispozici, aby fungovalo, budete muset „vymyslet“ ten správný / Etc / resolv.conf.
Studený start Raspberry trvá asi 40 sekund. TTX systému po načtení:
rpm -qa | wc -l
191
5. WiFi
Trochu se zastavím u funkcí implementace přístupového bodu Wi-Fi. Pro podrobnosti se můžete podívat na můj předchozí článek.
EPEL již není potřeba – všechny balíčky jsou obsaženy v oficiálních repozitářích.
Asi by stálo za to to vzdát dnsmasq, protože Fedora má na rozdíl od CentOS poměrně nedávný systemd-networkd, který má normální vestavěné servery DHCP/DNS. Faktem ale je, že v RHEL8 vývojáři odmítl podporovat síťový zásobník čímkoli jiným než NM, nevzbuzuje důvěru ve světlou budoucnost projektu (šmejdi). Zkrátka jsem to nezkoušel.
Dále platí, že aktuální ovladače pro vestavěný adaptér Wi-Fi nelze „ukrást“ z distribuce Raspbian, ale stáhnout je přímo z GitHub.
Takto vypadají soubory firmwaru Broadcom na mém Raspberry (schematicky):
Pokud jde o počet a názvy rozhraní. Nyní všem důrazně doporučuji, aby se neuchylovali ke „službám“ softwarových přepínačů, pokud to není nezbytně nutné (most), které významně zatěžují síťový zásobník a potlačují směrování. Pokud neplánujete mít více bezdrátových adaptérů, měli byste používat pouze fyzická rozhraní. Mám dvě Wi-Fi, takže kombinuji pouze je do softwarového mostu (i když se bez toho obejdete, když se na nastavení hostapd podíváte jinak).
A miluji přejmenování rozhraní.
Chcete-li to provést ve Fedoře, musíte vytvořit symbolický odkaz:
/etc/systemd/network/99-default.link -> /dev/null
a pak bude možné dávat smysluplná jména bez šťouchání udev, ale pouze pomocí systemd-networkd.
Například takto se nazývají síťové adaptéry v mém routeru:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
3: lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
4: int: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master lan state UP group default qlen 1000
5: ext: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master lan state UP group default qlen 1000
int - vestavěný, ext — externí (USB) Wi-Fi adaptéry sestavené do „mostu“ lan;
bledý — Ethernetový adaptér, do kterého je připojen internet.
Všimli jste si? fq_codel - opravdu skvělá věc. Společně s čerstvým linuxovým jádrem dokážou v bezdrátovém dosahu skutečné zázraky: prudké „stahování torrentů“ nepovede k náhlému snížení rychlosti mezi sousedy. Ani domácí IP-TV fungující „vzduchem“ s nabitým kanálem se „nerozbije“ a už vůbec „nezadrhne“!
Soubor služby démona prošel drobnými změnami hostapd.
Nyní to vypadá takto (na příkladu vestavěného adaptéru):
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=network.target
BindsTo=sys-subsystem-net-devices-int.device
[Service]
Type=forking
PIDFile=/run/hostapd-int.pid
#ExecStartPre=/usr/sbin/iw dev int set power_save off
ExecStart=/usr/sbin/hostapd /path/to/hostapd-int.conf -P /run/hostapd-int.pid -B
[Install]
RequiredBy=sys-subsystem-net-devices-int.device
A „kouzelný“ hostapd-int.conf pro práci v 5GHz/AC:
(Připojení k internetu - 100 Mbit/s)
A na závěr malý FAQ.
6. Nejčastější dotazy
6.1 Proč vytvořit Wi-Fi router na Raspberry?
Dalo by se odpovědět jednoduše, jako "je zajímavé vyzkoušet a tak."
Ale ve skutečnosti se mi zdá, že téma je docela vážné. V době „krvavého“ internetu je nákup routeru v obchodě a zůstat rukojmím jeho výrobce velmi tristní vyhlídkou. Mnoho lidí již chápe, že sezení s CVE nebo vestavěným zadním vrátkem není možné.
Samozřejmě můžete migrovat na firmware WRT od nadšenců. Pravděpodobně je v ně větší důvěra, ale pokud se na ně nechcete spoléhat, použijte svůj vlastní produkt. Ideálně plnohodnotný počítač, aby se na něm dalo implementovat vše na světě. Pokud jde o směrování, samozřejmě.
Proto je výběr „maliny“ čistě ekonomickým krokem: skutečný počítač a zároveň levný. I když možná také - s jejich „dvojníky“ uvnitř.
6.2 Ale Raspberry je „nízký router“: pomalý a s jedním ethernetovým portem!
Jako domácí Wi-Fi router je pro mě Raspberry více než vyhovující. O rychlosti vzduchu jsem již mluvil výše. A Ethernet je jen jeden, no, v podobném produktu od Applu je to zhruba stejné!
Ale vážně, samozřejmě bych chtěl víc. A přesto, že v mé domácnosti jsou všechna zařízení připojena bezdrátově, občas je stále potřeba měděné připojení. Pro takové případy mám na skladě „mobilní hub“:
zařízení - něco takového
6.3 Pokud se jedná o router, pak se nic neříká o „ladění“ TCP/IP, protože to je důležité!
Kromě nastavení síťového zásobníku (tcp_fastopen, YeAH atd.) se tento a předchozí článek nezabývají dalšími nuancemi, zejména procesem přípravy microSD pro optimální použití (i když se instalátor snaží naformátovat paměťovou kartu v záludný způsob). Proces zlepšování je nekonečný, jen je potřeba se včas zastavit.
6.4 Proč Fedora?
Protože mám rád! Fedora je „mainstreamový“ systém pro geeky, kterým je tento článek ve skutečnosti určen. V době psaní článku snad jediný OS, který pro Raspberry v 64bitové verzi oficiálně podporuje významný tým vývojářů (od kterých se nemůžu dočkat jádro 5.6).
6.5 Funguje Bluetooth? Jak je na tom video/zvuk/GPIO?
nevím. Článek je o minimální instalaci systému a jeho následném využití jako Wi-Fi routeru.
6.6 Proč všechny články o CentOS/Fedora/RedHat začínají deaktivací SELinuxu?
Protože je systém minimální, nemá ani firewall nebo nástroje pro jeho nastavení. Každý, kdo to potřebuje, si může dodatečně nainstalovat vše potřebné.
6.7 Systém nelze používat, heslo nelze změnit - žádné heslo. Žádný ping, nic!
K dispozici je DNF. Nebo tato možnost instalace není pro vás - použijte distribuční sadu od vývojářů.
6.9 Chtěl bych okamžitě stáhnout hotový obrázek s nakonfigurovaným přístupovým bodem Wi-Fi!
Příprava instalačního programu „pro každého“ bude vyžadovat určitý čas a úsilí. Pokud to (najednou!) někomu přijde opravdu zajímavé a potřebné, napište nám a něco vymyslíme.
Skončím s tím.
Přeji všem bezpečné surfování a maximální kontrolu nad infrastrukturou!