ProHoster > Blog > uprava > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (ili raspberry router s plavim šeširom)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (ili raspberry router s plavim šeširom)
Članak Raspberry Pi + CentOS = Wi-Fi Hotspot (ili raspberry router s crvenim šeširom) Govorio sam o načinu da se Raspberry pretvori u bežičnu pristupnu točku pomoću CentOS operativnog sustava. Sastavljajući svoj kućni ruter prema ovom crtežu, zadovoljio sam svoj kreativni ego i dobio poticaj za mir za kritični element moje udobne infrastrukture. No, proganjao me osjećaj nedovršenosti rješenja i unutarnjeg perfekcionizma: „nesavršen rezultat rada nema pravo na postojanje“. Misao da se “ideal može i treba postići” nije me napuštala ni na minutu.
A onda sam jednog dana na jednom od tematskih foruma naišao na raspravu o bitnoj dubini postojećih operativnih sustava za Raspberry (aarch64 vs armhfp): koji 64-bitni OS u principu može stati i raditi na Raspberry verziji 3 ++?
Moj voljeni CentOS za ARM arhitekturu iz "Userlanda" nije se žurio prebaciti na najnoviju verziju kernela i pretvoriti u 64-bitnu. A EPEL repozitorij, spojen Bog zna odakle bez digitalnog potpisa, bio je noćna mora u mom nemirnom snu...
U ovom ću članku govoriti o načinu instalacije Fedora (aarch64) na Malina Pi 3 Model B + в ekstra minimalne performanse. Ukratko ću se zadržati na značajkama podizanja Wi-Fi pristupne točke, identificirane kao rezultat probnog rada moje prethodne konfiguracije na 7 CentOS.
0. Što će vam trebati
Sve je isto kao što je navedeno u prethodnom članku:
Raspberry Pi 3 Model B+;
microSD >= 4GB (kasnije možete “prebaciti” sustav na disk od 2GB);
Radna stanica s Linuxom i čitačem microSD kartica;
Žičana mrežna povezanost između Raspberry i Linux radne stanice (u ovom slučaju neće biti potreban dodatni monitor i tipkovnica za postavljanje), pristup Internetu s oba uređaja;
Napredna vještina u Linuxu (znati i ne bojati se: slomljen, dd и mkfs).
Slično iterativnom ARS-izgradnjom vlastitog Linuxa koristit će se Fedora distribucijska slika, a zatim će se na temelju nje kreirati minimalni sustav (bez “kompiliranja iz izvora”).
Sada možete preuzeti "malinu" s microSD kartice i spojiti se na nju putem mreže.
Hladno pokretanje traje oko jednu i pol minutu. TTX sustava nakon učitavanja:
rpm -qa | wc -l
444
2. Sastavljanje minimalnog sustava
Nažalost, "minimalna distribucija" programera pokazala se daleko od najskromnije u potrošnji resursa. Slika sustava može biti još manja.
Da biste to učinili, morate pokrenuti skriptu na Malinki:
#!/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
Nakon pokretanja skripte, poddirektorij će biti kreiran u trenutnom direktoriju ($P) sa sadržajem korijena novog minimalnog OS izdanja. Možete isključiti Raspberry i vratiti microSD na Linux radnu stanicu.
3. Ugradnja minimalnog sustava
Instalacija se svodi na kopiranje minimalnih datoteka "slike" OS-a (dobivenih u prethodnom koraku) na posebno pripremljenu microSD karticu u odgovarajuće direktorije.
Dovoljna je kartica od 2GB i dvije particije na njoj:
/ boot / efi - EFI+FAT32, boot, 100MB;
/ (root) - EXT4, sav preostali prostor.
Nakon što pripremite microSD i kopirate datoteke na njega, trebate:
popraviti pokretanje OS-a;
uključiti mrežu;
konfigurirajte pristup putem ssh-a.
Popravak pokretanja je zamjena UUID-a odjeljaka u datotekama:
Pristup superkorisnika putem ssh konfiguriran je slično kao u 1. koraku.
Nakon što ste sve učinili pažljivo i bez grešaka, možete premjestiti microSD u "malinu" i početi raditi s 64-bitnim OS-om u dodatnoj minimalnoj verziji.
Ovo će biti arhiva koja će sadržavati dvije datoteke: instalacijsku skriptu i TGZ s OS datotekama. Arhivu je potrebno raspakirati na Linux radnoj stanici, ubaciti microSD (dovoljna je kartica od 2GB) i pokrenuti skriptu s parametrom - nazivom uređaja:
./install /dev/mmcblk0
Budite oprezni!
Bez ikakvih upozorenja, uređaj će se formatirati i na njega će se instalirati operativni sustav.
Nakon izvođenja skripte bez grešaka, kartica se može preurediti u "malinu" i koristiti: uhvatiti putem dhcp-a, lozinka - "1".
Sustav je očišćen od svih ID-ova i ključeva, zbog čega je svaka nova instalacija jedinstvena.
Ponavljam još jednom, sustav - minimalan! Stoga, nemojte se uznemiriti: DNF je dostupan, da bi radio morat ćete „izmisliti“ ispravan / Etc / resolv.conf.
Hladni start Raspberry-a traje oko 40 sekundi. TTX sustava nakon učitavanja:
rpm -qa | wc -l
191
5. WiFi
Zadržat ću se malo na značajkama implementacije Wi-Fi pristupne točke. Za pojedinosti, možete pogledati moj prethodni članak.
EPEL više nije potreban - svi paketi se nalaze u službenim repozitorijima.
Vjerojatno bi vrijedilo odustati dnsmasq, budući da Fedora, za razliku od CentOS-a, ima prilično novi systemd-networkd, koji ima normalne ugrađene DHCP/DNS poslužitelje. Ali činjenica je da u RHEL8 programeri odbio je podržati mrežni stog s bilo čim drugim osim NM-a, ne ulijeva povjerenje u svijetlu budućnost projekta (podlaci). Ukratko, nisam probala.
Nadalje, trenutni upravljački programi za ugrađeni Wi-Fi adapter ne mogu se "ukrasti" iz Raspbian distribucije, već preuzeti izravno s Github.
Ovako izgledaju Broadcom firmware datoteke na mom Raspberryju (shematski):
Što se tiče broja i naziva sučelja. Sada toplo preporučam svima da ne pribjegavaju "uslugama" softverskih prekidača osim ako je to apsolutno neophodno (most), koji unose značajno opterećenje u mrežni stog i smanjuju usmjeravanje. Ako ne planirate imati više bežičnih adaptera, trebali biste koristiti samo fizička sučelja. Imam dva Wi-Fi-ja, pa kombiniram samo njih u softverski most (iako možete i bez toga ako drugačije pogledate postavku hostapd-a).
I volim preimenovati sučelja.
Da biste to učinili u Fedori, morate stvoriti simboličku vezu:
/etc/systemd/network/99-default.link -> /dev/null
i tada će biti moguće davati smislena imena bez čeprkanja udev, ali samo pomoću systemd-networkd.
Na primjer, ovako se zovu mrežni adapteri u mom ruteru:
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 - ugrađeni, ext — vanjski (USB) Wi-Fi adapteri sastavljeni u "most" lan;
blijed — Ethernet adapter na koji je povezan Internet.
Jeste li primijetili? fq_codel - stvarno super stvar. Zajedno sa svježim Linux kernelom, oni rade prava čuda u bežičnom dometu: žestoko "preuzimanje torrenta" neće dovesti do naglog pada brzine među susjedima. Čak i kućna IP-TV koja radi "preko zraka" s učitanim kanalom ne "raspada" i uopće ne "muca"!
Servisna datoteka demona pretrpjela je manje izmjene hostapd.
Sada izgleda ovako (na primjeru ugrađenog adaptera):
[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
Mali photoshop napravljen od mog Ericssona A1018s:
(Internet veza - 100Mbit/sec)
I na kraju, mali FAQ.
6. Pitanja
6.1 Zašto napraviti Wi-Fi ruter na Raspberry?
Moglo bi se odgovoriti jednostavno, poput "zanimljivo je probati i sve to."
Ali zapravo, čini mi se da je tema prilično ozbiljna. U eri "krvavog" interneta, kupnja usmjerivača u trgovini i ostati talac njegovog proizvođača vrlo je tužna perspektiva. Mnogi ljudi već razumiju da sjediti s CVE-om ili ugrađenim stražnjim vratima nije moguće.
Naravno, možete migrirati na WRT firmware od entuzijasta. Vjerojatno postoji više povjerenja u njih, ali ako ne želite ovisiti o njima, onda samo koristite svoj proizvod. U idealnom slučaju, punopravno računalo kako bi se na njemu moglo implementirati sve na svijetu. U smislu rutiranja, naravno.
Stoga je odabir "maline" čisto ekonomski potez: pravo računalo, a ujedno i jeftino. Iako, možda također - sa svojim "dvojnicima" unutra.
6.2 Ali Raspberry je "niski usmjerivač": spor i s jednim Ethernet priključkom!
Kao kućni Wi-Fi router, Raspberry mi je više nego zadovoljavajući. Gore sam već govorio o brzini zraka. I postoji samo jedan Ethernet, pa, u sličnom Appleovom proizvodu to je otprilike isto!
Ali ozbiljno, naravno da bih želio više. I unatoč činjenici da su u mom kućanstvu svi uređaji povezani bežično, ponekad je ipak potreban bakreni priključak. Za takve slučajeve imam na zalihi “mobilno čvorište”:
uređaj - ovako nešto
6.3 Ako je ovo usmjerivač, onda se ništa ne govori o "podešavanju" TCP/IP-a, jer je ovo važno!
Osim postavljanja mrežnog skupa (tcp_fastopen, YeAH, itd.), ovaj i prethodni članak ne pokrivaju druge nijanse, posebice proces pripreme microSD kartice za optimalnu upotrebu (iako instalacijski program pokušava formatirati memorijsku karticu u lukav način). Proces usavršavanja je beskrajan, samo treba stati na vrijeme.
6.4 Zašto Fedora?
Jer mi se sviđa! Fedora je “mainstream” sustav za geekove, kojima je ovaj članak zapravo i namijenjen. U trenutku pisanja, možda jedini OS koji za Raspberry u 64-bitnoj verziji službeno podržava značajan broj programera (od kojih jedva čekam kernel 5.6).
6.5 Radi li Bluetooth? Kakav je video/zvuk/GPIO?
ne znam U članku se govori o minimalnoj instalaciji sustava i njegovoj naknadnoj upotrebi kao Wi-Fi usmjerivača.
6.6 Zašto svi članci o CentOS/Fedora/RedHat počinju onemogućavanjem SELinuxa?
Budući da je sustav minimalan, nema čak ni vatrozid ili pomoćne programe za njegovo postavljanje. Tko treba može dodatno ugraditi sve što mu treba.
6.7 Sustav se ne može koristiti, lozinka se ne može promijeniti - nema lozinke. Nema pinga, nema ničega!
Tu je DNF. Ili ova opcija instalacije nije za vas - koristite distribucijski komplet programera.
6.9 Želio bih odmah preuzeti gotovu sliku s konfiguriranom Wi-Fi pristupnom točkom!
Priprema instalacijskog programa "za svakoga" zahtijevat će određeno vrijeme i trud. Ako (iznenada!) nekome ovo stvarno bude zanimljivo i potrebno, pišite nam i mi ćemo nešto smisliti.
Završit ću s ovim.
Svima želim sigurno surfanje i maksimalnu kontrolu nad infrastrukturom!