ProHoster > blog > administratie > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (of frambozenrouter met een blauwe hoed)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (of frambozenrouter met een blauwe hoed)
In het artikel Raspberry Pi + CentOS = Wi-Fi Hotspot (of frambozenrouter met rode hoed) Ik had het over een manier om van een Raspberry een draadloos toegangspunt te maken met behulp van het CentOS-besturingssysteem. Door mijn thuisrouter volgens deze tekening in elkaar te zetten, bevredigde ik mijn creatieve ego en kreeg ik een boost aan gemoedsrust voor een cruciaal onderdeel van mijn gezellige infrastructuur. Het gevoel van onvolledigheid van de oplossing en het interne perfectionisme achtervolgden mij echter: “een onvolmaakt resultaat van werk heeft geen bestaansrecht.” De gedachte dat “het ideaal verwezenlijkt kan en moet worden” liet mij geen minuut los.
En toen kwam ik op een dag op een van de thematische forums een discussie tegen over de bitdiepte van bestaande besturingssystemen voor Raspberry (aarch64 versus armhfp): welk 64-bit besturingssysteem kan in principe passen en werken op Raspberry versie 3 ++?
Mijn geliefde CentOS voor de ARM-architectuur van "Userland" had geen haast om over te schakelen naar de nieuwste versie van de kernel en deze in 64-bit te veranderen. En de EPEL-repository, verbonden vanuit God weet waar zonder een digitale handtekening, was een nachtmerrie in mijn rusteloze slaap...
In dit artikel zal ik het hebben over de installatiemethode Fedora (aarch64) op Framboos Pi 3 Model B + в extra minimale prestaties. Ik zal kort stilstaan bij de kenmerken van het opzetten van een Wi-Fi-toegangspunt, geïdentificeerd als resultaat van het proefdraaien van mijn vorige configuratie op 7 CentOS.
0. Wat je nodig hebt
Alles is hetzelfde als vermeld in het vorige artikel:
Framboos Pi 3 Model B+;
microSD >= 4GB (later kunt u het systeem “overzetten” naar een schijf van 2 GB);
Werkstation met Linux en microSD-kaartlezer;
Bekabelde netwerkverbinding tussen de Raspberry en een Linux-werkstation (in dit geval zijn er geen extra monitor en toetsenbord nodig voor de installatie), internettoegang vanaf beide apparaten;
Geavanceerde vaardigheden in Linux (weten en niet bang zijn: gescheiden, dd и mkfs).
Vergelijkbaar met iteratief LFS-je eigen Linux bouwen, het Fedora distributie-image zal worden gebruikt, en op basis daarvan zal een minimaal systeem worden gemaakt (zonder “compileren vanaf de bron”).
Nu kunt u de “framboos” downloaden van microSD en er via het netwerk verbinding mee maken.
Een koude start duurt ongeveer anderhalve minuut. TTX van het systeem na het laden:
rpm -qa | wc -l
444
2. Een minimaal systeem samenstellen
Helaas blijkt de “minimale distributie” van de ontwikkelaars verre van de meest bescheiden in het verbruik van hulpbronnen. Het systeemimage kan nog kleiner worden gemaakt.
Om dit te doen, moet je het script op Malinka uitvoeren:
#!/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
Na het uitvoeren van het script wordt er een submap aangemaakt in de huidige map ($P) met de inhoud van de root van de nieuwe minimale OS-editie. U kunt de Raspberry uitschakelen en de microSD terugbrengen naar het Linux-werkstation.
3. Installatie van een minimaal systeem
De installatie komt neer op het kopiëren van de minimale “image”-bestanden van het besturingssysteem (verkregen in de vorige stap) naar een speciaal voorbereide microSD in de juiste mappen.
Een kaart van 2 GB en twee partities erop zijn voldoende:
/ Boot / efi - EFI+FAT32, opstarten, 100 MB;
/ (root) - EXT4, alle resterende ruimte.
Nadat u de microSD hebt voorbereid en de bestanden ernaar hebt gekopieerd, moet u het volgende doen:
het opstarten van het besturingssysteem repareren;
schakel het netwerk in;
configureer de toegang via ssh.
De opstartfix is om de UUID van de secties in de bestanden te vervangen:
Superuser-toegang via ssh is op dezelfde manier geconfigureerd als stap 1.
Nadat je alles zorgvuldig en zonder fouten hebt gedaan, kun je de microSD naar de "framboos" verplaatsen en gaan werken met een 64-bits besturingssysteem in een extra minimale versie.
4. Klaar systeem
De “image” van het voltooide systeem, gemaakt volgens de bovenstaande instructies, kan worden gedownload via de link: Fedora-Tiny-31-5.5.7-200.aarch64
Dit wordt een archief met twee bestanden: het installatiescript en TGZ met OS-bestanden. Het archief moet worden uitgepakt op een Linux-werkstation, een microSD plaatsen (een kaart van 2 GB is voldoende) en het script uitvoeren met een parameter: de naam van het apparaat:
./install /dev/mmcblk0
Wees voorzichtig!
Zonder enige waarschuwing wordt het apparaat geformatteerd en wordt het besturingssysteem erop geïnstalleerd.
Na een foutloze uitvoering van het script kan de kaart worden herschikt in de “framboos” en worden gebruikt: catch via dhcp, wachtwoord - “1”.
Het systeem wordt ontdaan van alle ID's en sleutels, waardoor elke nieuwe installatie uniek is.
Ik herhaal nogmaals: het systeem - minimaal! Wees daarom niet ongerust: DNF is beschikbaar, om het te laten werken, moet je de juiste “uitvinden” / Etc / resolv.conf.
De koude start van de Raspberry duurt ongeveer 40 seconden. TTX van het systeem na het laden:
rpm -qa | wc -l
191
5. Wifi
Ik zal even stilstaan bij de kenmerken van het implementeren van een Wi-Fi-toegangspunt. Voor details kunt u mijn vorige raadplegen статье.
EPEL is niet langer nodig - alle pakketten bevinden zich in de officiële repositories.
Het zou waarschijnlijk de moeite waard zijn om op te geven dnsmasq, omdat Fedora, in tegenstelling tot CentOS, een vrij recent systemd-networkd heeft, dat normale ingebouwde DHCP/DNS-servers heeft. Maar het feit is dat bij RHEL8-ontwikkelaars weigerde de netwerkstack te ondersteunen met iets anders dan NM, wekt geen vertrouwen in de mooie toekomst van het project (schurken). Kortom, ik heb het niet geprobeerd.
Verder kunnen de huidige stuurprogramma's voor de ingebouwde Wi-Fi-adapter niet worden "gestolen" uit de Raspbian-distributie, maar rechtstreeks worden gedownload van GitHub.
Zo zien de Broadcom-firmwarebestanden eruit op mijn Raspberry (schematisch):
Wat betreft het aantal en de namen van interfaces. Nu raad ik iedereen ten zeerste aan om geen toevlucht te nemen tot de “diensten” van softwareswitches, tenzij dit absoluut noodzakelijk is (brug), die een aanzienlijke belasting in de netwerkstack introduceren en de routering verminderen. Als u niet van plan bent meerdere draadloze adapters te hebben, moet u alleen fysieke interfaces gebruiken. Ik heb twee Wi-Fi, dus ik combineer ze alleen in een softwarebridge (hoewel je dit ook zonder kunt doen door anders naar de hostapd-configuratie te kijken).
En ik hou ervan om interfaces te hernoemen.
Om dit in Fedora te doen, moet je een symbolische link maken:
/etc/systemd/network/99-default.link -> /dev/null
en dan is het mogelijk betekenisvolle namen te geven zonder rond te snuffelen udev, maar alleen met systemd-networkd.
Zo heten de netwerkadapters in mijn router bijvoorbeeld:
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 - ingebouwd, ext — externe (USB) Wi-Fi-adapters gemonteerd in een “brug” lan;
gemaakt — Ethernet-adapter waarop internet is aangesloten.
Merkte op? fq_codel - echt een cool ding. Samen met een frisse Linux-kernel verrichten ze echte wonderen in het draadloze bereik: een felle “torrent-download” zal niet leiden tot een plotselinge snelheidsdaling bij buren. Zelfs een IP-TV thuis die “via de ether” werkt met een geladen kanaal, valt niet uit elkaar en “stottert” helemaal niet!
Het daemon-servicebestand heeft kleine wijzigingen ondergaan hostapd.
Het ziet er nu zo uit (aan de hand van het voorbeeld van een ingebouwde 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
En de “magische” hostapd-int.conf voor het werken in 5GHz/AC:
Een kleine photoshop gemaakt van mijn Ericsson A1018s:
(Internetverbinding - 100Mbit/sec)
En tot slot nog een kleine FAQ.
6. FAQ
6.1 Waarom een Wi-Fi-router op Raspberry maken?
Je zou eenvoudig kunnen antwoorden, in de trant van: “Het is interessant om het te proberen en zo.”
Maar eigenlijk lijkt het mij dat het onderwerp behoorlijk serieus is. In het tijdperk van het ‘bloedige’ internet is het kopen van een router in een winkel en gegijzeld blijven door de fabrikant een zeer somber vooruitzicht. Veel mensen begrijpen al dat zitten met een CVE of ingebouwde achterdeur niet mogelijk is.
Natuurlijk kun je migreren naar WRT-firmware van liefhebbers. Er is waarschijnlijk meer vertrouwen in hen, maar als je er niet afhankelijk van wilt zijn, gebruik dan gewoon je eigen product. Idealiter een volwaardige computer zodat alles van de wereld erop geïmplementeerd kan worden. Qua routering natuurlijk.
Daarom is het kiezen van een "framboos" een puur economische zet: een echte computer en tegelijkertijd een goedkope. Hoewel, misschien ook - met hun "dubbels" erin.
6.2 Maar Raspberry is een “low router”: langzaam en met één Ethernet-poort!
Als wifi-router voor thuis is de Raspberry voor mij meer dan bevredigend. Ik heb hierboven al gesproken over de luchtsnelheid. En er is maar één Ethernet, nou ja, in een soortgelijk product van Apple is het ongeveer hetzelfde!
Maar serieus, ik zou natuurlijk meer willen. En ondanks dat in mijn huishouden alle apparaten draadloos met elkaar verbonden zijn, is er soms toch een koperverbinding nodig. Voor dergelijke gevallen heb ik een “mobiele hub” op voorraad:
apparaat - zoiets als dit
6.3 Als dit een router is, wordt er niets gezegd over het “tunen” van TCP/IP, omdat dit belangrijk is!
Naast het instellen van de netwerkstack (tcp_fastopen, YeAH, enz.), behandelen dit en het vorige artikel geen andere nuances, in het bijzonder het proces van het voorbereiden van microSD voor optimaal gebruik (hoewel het installatieprogramma probeert de geheugenkaart te formatteren in een lastige manier). Het verbeteringsproces is eindeloos, je hoeft alleen maar op tijd te stoppen.
6.4 Waarom Fedora?
Omdat ik het leuk vind! Fedora is een “mainstream” systeem voor nerds, voor wie dit artikel eigenlijk bedoeld is. Op het moment van schrijven is misschien wel het enige besturingssysteem dat voor Raspberry in 64-bit versie officieel wordt ondersteund door een aanzienlijke staf van ontwikkelaars (van wie ik niet kan wachten kernel 5.6).
6.5 Werkt Bluetooth? Hoe is het beeld/geluid/GPIO?
Weet het niet. Het artikel gaat over de minimale installatie van het systeem en het daaropvolgende gebruik ervan als Wi-Fi-router.
6.6 Waarom beginnen alle artikelen over CentOS/Fedora/RedHat met het uitschakelen van SELinux?
Omdat het systeem minimaal is, heeft het niet eens een firewall of hulpprogramma's om het in te stellen. Iedereen die het nodig heeft, kan bovendien alles installeren wat hij nodig heeft.
6.7 Het systeem kan niet worden gebruikt, het wachtwoord kan niet worden gewijzigd - geen passwd. Geen ping, niets!
Er is DNF. Of deze installatieoptie is niets voor jou - gebruik de distributiekit van de ontwikkelaars.
6.9 Ik wil graag meteen een kant-en-klaar image downloaden met een geconfigureerd Wi-Fi-toegangspunt!
Het voorbereiden van een installateur “voor iedereen” zal enige tijd en moeite vergen. Als iemand dit (plotseling!) echt interessant en noodzakelijk vindt, schrijf ons dan, dan bedenken we iets.
Ik zal hiermee eindigen.
Ik wens iedereen veilig surfen en maximale controle over de infrastructuur!