ProHoster > Blog > administration > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eller hindbærrouter med en blå hat)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eller hindbærrouter med en blå hat)
I artiklen Raspberry Pi + CentOS = Wi-Fi Hotspot (eller hindbærrouter med en rød hat) Jeg talte om en måde at forvandle en hindbær til et trådløst adgangspunkt ved hjælp af CentOS-operativsystemet. Ved at samle min hjemmerouter efter denne tegning tilfredsstillede jeg mit kreative ego og fik et boost af ro i sindet for et kritisk element i min hyggelige infrastruktur. Følelsen af løsningens ufuldstændige og indre perfektionisme forfulgte mig imidlertid: "et ufuldkomment resultat af arbejde har ingen ret til at eksistere." Tanken om, at "det ideelle kan og bør opnås" forlod mig ikke et minut.
Og så en dag, på et af de tematiske fora, stødte jeg på en diskussion om bitdybden af eksisterende operativsystemer til Raspberry (aarch64 vs armhfp): hvilket 64-bit OS i princippet kan passe og fungere på Raspberry version 3 ++?
Mit elskede CentOS til ARM-arkitekturen fra "Userland" havde ikke travlt med at skifte til den nyeste version af kernen og blive til 64-bit. Og EPEL-depotet, forbundet fra Gud ved hvor uden en digital signatur, var et mareridt i min urolige søvn...
I denne artikel vil jeg tale om installationsmetoden Fedora (aarch64) på Hindbær Pi 3 Model B + в ekstra minimal ydeevne. Jeg vil kort dvæle ved funktionerne ved at hæve et Wi-Fi-adgangspunkt, identificeret som et resultat af prøvedrift af min tidligere konfiguration på 7 CentOS.
0. Hvad du skal bruge
Alt er det samme som angivet i den forrige artikel:
Raspberry Pi 3 Model B+;
microSD >= 4GB (senere kan du "overføre" systemet til et 2GB-drev);
Arbejdsstation med Linux og microSD-kortlæser;
Kablet netværksforbindelse mellem Raspberry og en Linux-arbejdsstation (i dette tilfælde vil der ikke være behov for yderligere skærm og tastatur til opsætning), internetadgang fra begge enheder;
Avanceret færdighed i Linux (at kende og ikke være bange: parted, dd и mkfs).
Svarende til iterativ LFS-ved at bygge dit eget Linux, vil Fedora distributionsbilledet blive brugt, og derefter baseret på det, vil et minimalt system blive oprettet (uden at "kompilere fra kilden").
Nu kan du downloade "hindbær" fra microSD og oprette forbindelse til det via netværket.
En kold start tager cirka halvandet minut. TTX af systemet efter indlæsning:
rpm -qa | wc -l
444
2. Samling af et minimalt system
Desværre viser "minimalfordelingen" fra udviklerne sig at være langt fra den mest beskedne i ressourceforbrug. Systembilledet kan gøres endnu mindre.
For at gøre dette skal du køre scriptet 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
Efter at have kørt scriptet, oprettes en undermappe i den aktuelle mappe ($P) med indholdet af roden af den nye minimale OS-udgave. Du kan slukke for Raspberry og returnere microSD til Linux-arbejdsstationen.
3. Installation af et minimalt system
Installation går ud på at kopiere de minimale OS "image"-filer (opnået i det foregående trin) til et specielt forberedt microSD til de relevante mapper.
Et 2GB kort og to partitioner på det er nok:
/ Boot / EFI - EFI+FAT32, boot, 100MB;
/ (rod) - EXT4, al resterende plads.
Efter at have forberedt microSD og kopieret filer til det, skal du:
reparere OS boot;
tænd for netværket;
konfigurere adgang via ssh.
Opstartsrettelsen er at erstatte UUID af sektionerne i filerne:
Superbrugeradgang via ssh er konfigureret på samme måde som trin 1.
Efter at have gjort alt omhyggeligt og uden fejl, kan du flytte microSD til "hindbær" og begynde at arbejde med et 64-bit OS i en ekstra minimal version.
4. Klar system
"Billedet" af det færdige system, oprettet i henhold til instruktionerne ovenfor, kan downloades fra linket: Fedora-Tiny-31-5.5.7-200.aarch64
Dette vil være et arkiv, der indeholder to filer: installationsscriptet og TGZ med OS-filer. Arkivet skal pakkes ud på en Linux-arbejdsstation, indsætte et microSD (et 2GB-kort er nok) og køre scriptet med en parameter - navnet på enheden:
./install /dev/mmcblk0
Pas på!
Uden nogen advarsler vil enheden blive formateret, og operativsystemet vil blive installeret på den.
Efter fejlfri udførelse af scriptet kan kortet omarrangeres til "hindbær" og bruges: fang via dhcp, adgangskode - "1".
Systemet ryddes for alle ID'er og nøgler, hvorfor hver ny installation er unik.
Jeg gentager endnu en gang, systemet - minimal! Vær derfor ikke foruroliget: DNF er tilgængelig, for at det skal virke, skal du "opfinde" den rigtige / Etc / resolv.conf.
Den kolde start af Raspberry tager omkring 40 sekunder. TTX af systemet efter indlæsning:
rpm -qa | wc -l
191
5. Trådløst internet
Jeg vil dvæle lidt ved funktionerne ved implementering af et Wi-Fi-adgangspunkt. For detaljer, kan du henvise til min tidligere artiklen.
EPEL er ikke længere nødvendig - alle pakker er indeholdt i de officielle repositories.
Det ville nok være værd at give op dnsmasq, da Fedora, i modsætning til CentOS, har et ret nyligt systemd-netværk, som har normale indbyggede DHCP/DNS-servere. Men faktum er, at i RHEL8 udviklere nægtede at støtte netværksstakken med andet end NM, indgyder ikke tillid til projektets lyse fremtid (slyngler). Kort sagt, jeg har ikke prøvet det.
Yderligere kan de nuværende drivere til den indbyggede Wi-Fi-adapter ikke "stjæles" fra Raspbian-distributionen, men downloades direkte fra github.
Sådan ser Broadcom-firmwarefilerne ud på min Raspberry (skematisk):
Med hensyn til antal og navne på grænseflader. Nu anbefaler jeg på det kraftigste til alle ikke at ty til "tjenesterne" af software switches, medmindre det er absolut nødvendigt (bro), som indfører betydelig belastning i netværksstakken og undertrykker routing. Hvis du ikke planlægger at have flere trådløse adaptere, bør du kun bruge fysiske grænseflader. Jeg har to Wi-Fi, så jeg kombinerer kun dem til en softwarebro (selvom du kan undvære dette ved at se anderledes på hostapd-opsætningen).
Og jeg elsker at omdøbe grænseflader.
For at gøre dette i Fedora skal du oprette et symbolsk link:
/etc/systemd/network/99-default.link -> /dev/null
og så bliver det muligt at give meningsfulde navne uden at rode rundt udev, men kun ved hjælp af systemd-networkd.
Dette er for eksempel, hvad netværksadapterne i min router hedder:
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 - indbygget, ext — eksterne (USB) Wi-Fi-adaptere samlet til en "bro" lan;
wan — Ethernet-adapter, som internettet er tilsluttet.
Lagde du mærke til det? fq_codel - en rigtig fed ting. Sammen med en frisk Linux-kerne udfører de virkelige mirakler i den trådløse rækkevidde: En voldsom "torrent-download" vil ikke føre til en pludselig forringelse af hastigheden blandt naboer. Selv et hjemme-IP-TV, der fungerer "over the air" med en indlæst kanal, "bryder ikke op" og "stammer" slet ikke!
Daemon-tjenestefilen har undergået mindre ændringer hostapd.
Det ser nu sådan ud (ved at bruge eksemplet med en indbygget 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 til at arbejde i 5GHz/AC:
(Internetforbindelse - 100Mbit/sek.)
Og til sidst en lille FAQ.
6. FAQ
6.1 Hvorfor lave en Wi-Fi-router på Raspberry?
Man kunne svare simpelt som "det er interessant at prøve og alt det der."
Men faktisk forekommer det mig, at emnet er ret seriøst. I en tid med det "blodige" internet er det en meget dyster udsigt at købe en router i en butik og forblive gidsel for dens producent. Mange mennesker forstår allerede, at det ikke er muligt at sidde med en CVE eller indbygget bagdør.
Selvfølgelig kan du migrere til WRT-firmware fra entusiaster. Der er nok mere tillid til dem, men hvis du ikke vil være afhængig af dem, så brug bare dit eget produkt. Ideelt set en fuldgyldig computer, så alt i verden kan implementeres på den. Med hensyn til routing, selvfølgelig.
Derfor er valget af "hindbær" et rent økonomisk træk: en rigtig computer og samtidig en billig. Selvom, måske også - med deres "double" indeni.
6.2 Men Raspberry er en "lav router": langsom og med én Ethernet-port!
Som en hjemme-Wi-Fi-router er Raspberry mere end tilfredsstillende for mig. Jeg har allerede talt om lufthastighed ovenfor. Og der er kun ét Ethernet, ja, i et lignende produkt fra Apple er det omtrent det samme!
Men seriøst, selvfølgelig vil jeg gerne have mere. Og på trods af at alle enheder i min husstand er tilsluttet trådløst, er der nogle gange stadig behov for en kobberforbindelse. Til sådanne tilfælde har jeg en "mobil hub" på lager:
enhed - sådan noget
6.3 Hvis dette er en router, så siges der ikke noget om at “tune” TCP/IP, for det er vigtigt!
Ud over at opsætte netværksstakken (tcp_fastopen, YeAH osv.), dækker denne og den forrige artikel ikke andre nuancer, især processen med at forberede microSD til optimal brug (selvom installationsprogrammet forsøger at formatere hukommelseskortet i en vanskelig måde). Forbedringsprocessen er uendelig, du skal bare stoppe i tide.
6.4 Hvorfor Fedora?
Fordi jeg kan lide! Fedora er et "mainstream"-system for nørder, som denne artikel faktisk er beregnet til. I skrivende stund er det måske eneste OS, der for Raspberry i 64-bit version officielt understøttes af en betydelig stab af udviklere (som jeg ikke kan vente fra kerne 5.6).
6.5 Virker Bluetooth? Hvordan er videoen/lyden/GPIO?
Ved ikke. Artiklen handler om den minimale installation af systemet og dets efterfølgende brug som Wi-Fi-router.
6.6 Hvorfor begynder alle artikler om CentOS/Fedora/RedHat med at deaktivere SELinux?
Fordi systemet er minimalt, har det ikke engang en firewall eller hjælpeprogrammer til at konfigurere det. Alle, der har brug for det, kan installere alt, hvad de har brug for.
6.7 Systemet kan ikke bruges, adgangskoden kan ikke ændres - ingen passwd. Intet ping, intet ingenting!
Der er DNF. Eller denne installationsmulighed er ikke noget for dig - brug distributionssættet fra udviklerne.
6.9 Jeg vil gerne straks downloade et færdigt billede med et konfigureret Wi-Fi-adgangspunkt!
At forberede en installatør "til alle" vil kræve noget tid og kræfter. Hvis (pludselig!) nogen virkelig finder dette interessant og nødvendigt, så skriv til os, så finder vi på noget.
Jeg slutter med det her.
Jeg ønsker alle sikker surfing og maksimal kontrol over infrastrukturen!