ProHoster > Log > administrasjon > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eller bringebærruter med blå hatt)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eller bringebærruter med blå hatt)
Artikkelen Raspberry Pi + CentOS = Wi-Fi Hotspot (eller bringebærruter med rød lue) Jeg snakket om en måte å gjøre en bringebær til et trådløst tilgangspunkt ved å bruke CentOS-operativsystemet. Ved å sette sammen hjemmeruteren min i henhold til denne tegningen, tilfredsstilte jeg mitt kreative ego og fikk et løft av sinnsro for et kritisk element i den koselige infrastrukturen min. Imidlertid hjemsøkte følelsen av ufullstendighet av løsningen og intern perfeksjonisme meg: "et ufullkommen resultat av arbeid har ingen rett til å eksistere." Tanken om at "det ideelle kan og bør oppnås" forlot meg ikke et minutt.
Og så en dag, på et av de tematiske foraene, kom jeg over en diskusjon om bitdybden til eksisterende operativsystemer for Raspberry (aarch64 vs armhfp): hvilket 64-bit OS som i prinsippet kan passe og fungere på Raspberry versjon 3 ++?
Min elskede CentOS for ARM-arkitekturen fra "Userland" hadde ikke hastverk med å bytte til den nyeste versjonen av kjernen og bli til 64-bit. Og EPEL-lageret, koblet fra Gud vet hvor uten en digital signatur, var et mareritt i min urolige søvn...
I denne artikkelen vil jeg snakke om installasjonsmetoden Fedora (aarch64) på Raspberry Pi 3 Modell B + в ekstra minimal ytelse. Jeg vil kort dvele ved funksjonene ved å heve et Wi-Fi-tilgangspunkt, identifisert som et resultat av prøvedrift av min forrige konfigurasjon på 7 CentOS.
0. Hva du trenger
Alt er det samme som oppført i forrige artikkel:
Raspberry Pi 3 modell B+;
microSD >= 4GB (senere kan du "overføre" systemet til en 2GB-stasjon);
Arbeidsstasjon med Linux og microSD-kortleser;
Kablet nettverkstilkobling mellom Raspberry og en Linux-arbeidsstasjon (i dette tilfellet vil ingen ekstra skjerm og tastatur være nødvendig for oppsett), Internett-tilgang fra begge enhetene;
Avansert ferdighet i Linux (å vite og ikke være redd: skiltes, dd и mkfs).
Ligner på iterativ AKU-ved å bygge din egen Linux, vil Fedora-distribusjonsbildet bli brukt, og deretter basert på det, vil et minimalt system bli opprettet (uten å "kompilere fra kilden").
Nå kan du laste ned "bringebær" fra microSD og koble til den via nettverket.
En kaldstart tar omtrent ett og et halvt minutt. TTX av systemet etter lasting:
rpm -qa | wc -l
444
2. Montering av et minimalt system
Dessverre viser "minimalfordelingen" fra utviklerne seg å være langt fra den mest beskjedne i ressursforbruk. Systembildet kan gjøres enda mindre.
For å gjøre dette må du kjøre skriptet på 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
Etter å ha kjørt skriptet, vil en underkatalog bli opprettet i gjeldende katalog ($P) med innholdet i roten til den nye minimale OS-utgaven. Du kan slå av Raspberry og returnere microSD-en til Linux-arbeidsstasjonen.
3. Installasjon av et minimalt system
Installasjonen koker ned til å kopiere de minimale OS-bildefilene (hentet i forrige trinn) til en spesielt forberedt microSD til de riktige katalogene.
Et 2 GB-kort og to partisjoner på det er nok:
/ støvel / efi - EFI+FAT32, oppstart, 100MB;
/ (root) - EXT4, all gjenværende plass.
Etter å ha klargjort microSD-en og kopiert filer til den, må du:
fikse OS-oppstart;
slå på nettverket;
konfigurere tilgang via ssh.
Oppstartsreparasjonen er å erstatte UUID for seksjonene i filene:
Superbrukertilgang via ssh er konfigurert på samme måte som trinn 1.
Etter å ha gjort alt nøye og uten feil, kan du flytte microSD til "bringebær" og begynne å jobbe med et 64-bits OS i en ekstra minimal versjon.
4. Klart system
"Bildet" av det ferdige systemet, opprettet i henhold til instruksjonene ovenfor, kan lastes ned fra lenken: Fedora-Tiny-31-5.5.7-200.aarch64
Dette vil være et arkiv som inneholder to filer: installasjonsskriptet og TGZ med OS-filer. Arkivet må pakkes ut på en Linux-arbeidsstasjon, sette inn en microSD (et 2GB-kort er nok) og kjøre skriptet med en parameter - navnet på enheten:
./install /dev/mmcblk0
Vær forsiktig!
Uten noen advarsler vil enheten bli formatert og operativsystemet vil bli installert på den.
Etter feilfri utførelse av skriptet, kan kortet omorganiseres til "bringebær" og brukes: fange via dhcp, passord - "1".
Systemet er tømt for alle IDer og nøkler, og derfor er hver ny installasjon unik.
Jeg gjentar nok en gang, systemet - minimal! Vær derfor ikke skremt: DNF er tilgjengelig, for at det skal fungere må du "oppfinne" den riktige / Etc / resolv.conf.
Kaldstarten til Raspberry tar omtrent 40 sekunder. TTX av systemet etter lasting:
rpm -qa | wc -l
191
5. WiFi
Jeg vil dvele litt på funksjonene ved å implementere et Wi-Fi-tilgangspunkt. For detaljer, kan du referere til min forrige artikkel.
EPEL er ikke lenger nødvendig - alle pakker finnes i de offisielle depotene.
Det ville nok vært verdt å gi opp dnsmasq, siden Fedora, i motsetning til CentOS, har et ganske nylig systemd-nettverk, som har normale innebygde DHCP/DNS-servere. Men faktum er at i RHEL8 utviklere nektet å støtte nettverksstakken med noe annet enn NM, vekker ikke tillit til prosjektets lysende fremtid (slyngler). Kort sagt, jeg har ikke prøvd det.
Videre kan de nåværende driverne for den innebygde Wi-Fi-adapteren ikke "stjeles" fra Raspbian-distribusjonen, men lastes ned direkte fra GitHub.
Dette er hvordan Broadcom-fastvarefilene ser ut på min Raspberry (skjematisk):
Angående antall og navn på grensesnitt. Nå anbefaler jeg på det sterkeste til alle å ikke ty til "tjenestene" til programvarebrytere med mindre det er absolutt nødvendig (bro), som introduserer betydelig belastning i nettverksstakken og trykker ned ruting. Hvis du ikke planlegger å ha flere trådløse adaptere, bør du kun bruke fysiske grensesnitt. Jeg har to Wi-Fi, så jeg kombinerer bare dem til en programvarebro (selv om du kan klare deg uten dette ved å se på hostapd-oppsettet annerledes).
Og jeg elsker å gi nytt navn til grensesnitt.
For å gjøre dette i Fedora må du lage en symbolsk lenke:
/etc/systemd/network/99-default.link -> /dev/null
og da vil det være mulig å gi meningsfulle navn uten å rote rundt udev, men bare ved å bruke systemd-networkd.
Dette er for eksempel hva nettverkskortene i ruteren min heter:
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 - innebygd, ext - eksterne (USB) Wi-Fi-adaptere satt sammen til en "bro" lan;
wan — Ethernet-adapter som Internett er koblet til.
La du merke til? fq_codel - en veldig kul ting. Sammen med en fersk Linux-kjerne, gjør de virkelige mirakler i det trådløse området: en voldsom "torrent-nedlasting" vil ikke føre til en plutselig degradering av hastigheten blant naboer. Selv en hjemme-IP-TV som opererer "over luften" med en lastet kanal "bryter opp" og "stammer" ikke i det hele tatt!
Daemon-tjenestefilen har gjennomgått mindre endringer hostapd.
Det ser nå slik ut (ved å bruke eksempelet på en innebygd adapter):
[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
Og den "magiske" hostapd-int.conf for arbeid i 5GHz/AC:
(Internett-tilkobling - 100Mbit/sek.)
Og til slutt en liten FAQ.
6. FAQ
6.1 Hvorfor lage en Wi-Fi-ruter på Raspberry?
Man kan svare enkelt, som "det er interessant å prøve og alt det der."
Men faktisk virker det på meg som at temaet er ganske alvorlig. I en tid med det "blodige" Internett, er det et veldig dystert perspektiv å kjøpe en ruter i en butikk og forbli som gissel for produsenten. Mange forstår allerede at det ikke er mulig å sitte med en CVE eller innebygd bakdør.
Selvfølgelig kan du migrere til WRT-firmware fra entusiaster. Det er sannsynligvis mer tillit til dem, men hvis du ikke vil være avhengig av dem, er det bare å bruke ditt eget produkt. Ideelt sett en fullverdig datamaskin slik at alt i verden kan implementeres på den. Når det gjelder ruting, selvfølgelig.
Derfor er å velge en "bringebær" et rent økonomisk trekk: en ekte datamaskin og samtidig en billig. Skjønt, kanskje også - med sine "dobler" inni.
6.2 Men Raspberry er en "lav ruter": treg og med én Ethernet-port!
Som en hjemme-Wi-Fi-ruter er Raspberry mer enn tilfredsstillende for meg. Jeg har allerede snakket om lufthastighet ovenfor. Og det er bare ett Ethernet, vel, i et lignende produkt fra Apple er det omtrent det samme!
Men seriøst, selvfølgelig vil jeg gjerne ha mer. Og til tross for at i min husstand er alle enheter tilkoblet trådløst, noen ganger er det fortsatt nødvendig med en kobbertilkobling. For slike tilfeller har jeg en "mobilhub" på lager:
enhet - noe sånt som dette
6.3 Hvis dette er en ruter, sies det ingenting om "tuning" av TCP/IP, fordi dette er viktig!
I tillegg til å sette opp nettverksstakken (tcp_fastopen, YeAH, etc.), dekker ikke denne og forrige artikkelen andre nyanser, spesielt prosessen med å forberede microSD for optimal bruk (selv om installasjonsprogrammet prøver å formatere minnekortet i en vanskelig måte). Forbedringsprosessen er uendelig, du trenger bare å stoppe i tide.
6.4 Hvorfor Fedora?
Fordi jeg liker! Fedora er et "mainstream"-system for nerder, som denne artikkelen faktisk er ment for. I skrivende stund er kanskje det eneste operativsystemet som for Raspberry i 64-bit versjon offisielt støttet av en betydelig stab av utviklere (som jeg ikke kan vente fra kjerne 5.6).
6.5 Fungerer Bluetooth? Hvordan er videoen/lyden/GPIOen?
Vet ikke. Artikkelen handler om den minimale installasjonen av systemet og dets påfølgende bruk som en Wi-Fi-ruter.
6.6 Hvorfor begynner alle artikler om CentOS/Fedora/RedHat med å deaktivere SELinux?
Fordi systemet er minimalt, har det ikke engang en brannmur eller verktøy for å sette det opp. Alle som trenger det kan installere i tillegg alt de trenger.
6.7 Systemet kan ikke brukes, passordet kan ikke endres - ingen passwd. Ingen ping, ingen ingenting!
Det er DNF. Eller dette installasjonsalternativet er ikke for deg - bruk distribusjonssettet fra utviklerne.
6.9 Jeg vil umiddelbart laste ned et ferdig bilde med et konfigurert Wi-Fi-tilgangspunkt!
Å forberede en installatør "for alle" vil kreve litt tid og krefter. Hvis (plutselig!) noen virkelig finner dette interessant og nødvendig, skriv til oss, så finner vi på noe.
Jeg avslutter med dette.
Jeg ønsker alle trygg surfing og maksimal kontroll over infrastrukturen!