ProHoster > Blog > Verwaltung > Raspberry Pi + Fedora (aarch64) = WLAN-Hotspot (oder Himbeer-Router mit blauem Hut)
Raspberry Pi + Fedora (aarch64) = WLAN-Hotspot (oder Himbeer-Router mit blauem Hut)
Artikel Raspberry Pi + CentOS = Wi-Fi Hotspot (oder Himbeer-Router mit rotem Hut) Ich habe über eine Möglichkeit gesprochen, einen Raspberry mithilfe des CentOS-Betriebssystems in einen drahtlosen Zugangspunkt zu verwandeln. Indem ich meinen Heimrouter nach dieser Zeichnung zusammenbaute, befriedigte ich mein kreatives Ego und erhielt einen Schub an Seelenfrieden für ein wichtiges Element meiner gemütlichen Infrastruktur. Allerdings verfolgte mich das Gefühl der Unvollständigkeit der Lösung und des inneren Perfektionismus: „Ein unvollkommenes Arbeitsergebnis hat keine Daseinsberechtigung.“ Der Gedanke, dass „das Ideal erreicht werden kann und sollte“, ließ mich keine Minute los.
Und dann stieß ich eines Tages in einem der Themenforen auf eine Diskussion über die Bittiefe bestehender Betriebssysteme für Raspberry (aarch64 vs. armhfp): Welches 64-Bit-Betriebssystem kann im Prinzip auf Raspberry Version 3 passen und funktionieren? ++?
Mein geliebtes CentOS für die ARM-Architektur von „Userland“ hatte es nicht eilig, auf die neueste Version des Kernels umzusteigen und auf 64-Bit umzusteigen. Und das EPEL-Repository, von Gott weiß woher ohne digitale Signatur verbunden, war in meinem unruhigen Schlaf ein Albtraum ...
In diesem Artikel werde ich über die Installationsmethode sprechen Fedora (aarch64) auf Raspberry Pi 3 Modell B + в extra minimale Leistung. Ich werde kurz auf die Funktionen der Einrichtung eines WLAN-Zugangspunkts eingehen, die sich aus dem Testbetrieb meiner vorherigen Konfiguration ergeben haben 7 CentOS.
0. Was Sie brauchen
Alles ist das Gleiche wie im vorherigen Artikel aufgeführt:
Raspberry Pi 3 Modell B+;
microSD >= 4GB (später können Sie das System auf ein 2GB-Laufwerk „übertragen“);
Workstation mit Linux und microSD-Kartenleser;
Kabelgebundene Netzwerkverbindung zwischen dem Raspberry und einer Linux-Workstation (in diesem Fall sind für die Einrichtung kein zusätzlicher Monitor und keine zusätzliche Tastatur erforderlich), Internetzugang von beiden Geräten;
Fortgeschrittene Kenntnisse in Linux (wissen und keine Angst haben: geteilt, dd и mkfs).
Ähnlich wie iterativ LFS- Beim Erstellen Ihres eigenen Linux wird das Fedora-Distributions-Image verwendet und dann darauf basierend ein Minimalsystem erstellt (ohne „Kompilieren aus dem Quellcode“).
Jetzt können Sie die „Himbeere“ von der microSD herunterladen und über das Netzwerk damit verbinden.
Ein Kaltstart dauert etwa eineinhalb Minuten. TTX des Systems nach dem Laden:
rpm -qa | wc -l
444
2. Zusammenbau eines Minimalsystems
Leider erweist sich die „minimale Verteilung“ der Entwickler als bei weitem nicht die bescheidenste im Ressourcenverbrauch. Das Systemabbild kann noch kleiner gemacht werden.
Dazu müssen Sie das Skript auf Malinka ausführen:
#!/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
Nach der Ausführung des Skripts wird im aktuellen Verzeichnis ein Unterverzeichnis erstellt ($P) mit dem Inhalt des Stammverzeichnisses der neuen Minimal-OS-Edition. Sie können den Raspberry ausschalten und die microSD an die Linux-Workstation zurückgeben.
3. Installation eines Minimalsystems
Die Installation läuft darauf hinaus, die minimalen „Image“-Dateien des Betriebssystems (die Sie im vorherigen Schritt erhalten haben) auf eine speziell vorbereitete microSD in die entsprechenden Verzeichnisse zu kopieren.
Eine 2GB Karte und zwei Partitionen darauf genügen:
/ boot / efi - EFI+FAT32, Booten, 100 MB;
/ (root) – EXT4, der gesamte verbleibende Speicherplatz.
Nachdem Sie die microSD vorbereitet und Dateien darauf kopiert haben, müssen Sie Folgendes tun:
Betriebssystemstart reparieren;
schalten Sie das Netzwerk ein;
Konfigurieren Sie den Zugriff über SSH.
Der Boot-Fix soll die UUID der Abschnitte in den Dateien ersetzen:
und Parameter gespeicherter_Eintrag= in der letzten Datei
Im Ordner:
microSD:/etc/fstab
Die alten Werte und die aktuellen (aktuellen) Werte finden Sie in der Befehlsausgabe:
blkid | grep mmcblk | sort
Nach dem Austausch sollten Sie auch den Inhalt korrigieren fstab auf microSD, sodass die Mount-Punkte den neuen Partitions-UUIDs entsprechen.
Die Netzwerkfunktionalität beim ersten Einschalten des Raspberry kann mit einer kleinen „Krücke“ erreicht werden – erstellen Sie einen Link (schematisch):
Der Superuser-Zugriff über SSH wird ähnlich wie in Schritt 1 konfiguriert.
Nachdem Sie alles sorgfältig und fehlerfrei erledigt haben, können Sie die microSD in die „Himbeere“ verschieben und mit einem 64-Bit-Betriebssystem in einer extra minimalen Version arbeiten.
4. Bereites System
Das nach obiger Anleitung erstellte „Image“ des fertigen Systems kann unter folgendem Link heruntergeladen werden: Fedora-Tiny-31-5.5.7-200.aarch64
Dies wird ein Archiv sein, das zwei Dateien enthält: das Installationsskript und TGZ mit Betriebssystemdateien. Das Archiv muss auf einer Linux-Workstation entpackt werden, eine microSD einlegen (eine 2-GB-Karte reicht aus) und das Skript mit einem Parameter ausführen – dem Namen des Geräts:
./install /dev/mmcblk0
Seien Sie vorsichtig!
Ohne Vorwarnung wird das Gerät formatiert und das Betriebssystem darauf installiert.
Nach fehlerfreier Ausführung des Skripts kann die Karte in die „Himbeere“ umgeordnet und verwendet werden: Abfangen über DHCP, Passwort - „1“.
Das System wird von allen IDs und Schlüsseln befreit, weshalb jede Neuinstallation einzigartig ist.
Ich wiederhole noch einmal, das System - minimal! Seien Sie daher nicht beunruhigt: DNF ist verfügbar. Damit es funktioniert, müssen Sie das richtige „erfinden“. / Etc / resolv.conf.
Der Kaltstart des Raspberry dauert etwa 40 Sekunden. TTX des Systems nach dem Laden:
rpm -qa | wc -l
191
5. W-lan
Ich werde ein wenig auf die Funktionen der Implementierung eines Wi-Fi-Zugangspunkts eingehen. Einzelheiten finden Sie in meinem vorherigen Artikel Artikel.
EPEL wird nicht mehr benötigt – alle Pakete sind in den offiziellen Repositories enthalten.
Es würde sich wahrscheinlich lohnen, aufzugeben dnsmasq, da Fedora im Gegensatz zu CentOS über ein relativ neues systemd-networkd verfügt, das über normale integrierte DHCP/DNS-Server verfügt. Tatsache ist jedoch, dass in RHEL8-Entwicklern weigerte sich, den Netzwerkstapel mit etwas anderem als NM zu unterstützen, weckt kein Vertrauen in die glänzende Zukunft des Projekts (Schurken). Kurz gesagt, ich habe es nicht ausprobiert.
Darüber hinaus können die aktuellen Treiber für den integrierten WLAN-Adapter nicht von der Raspbian-Distribution „geklaut“ werden, sondern direkt von heruntergeladen werden github.
So sehen die Broadcom-Firmware-Dateien auf meinem Raspberry aus (schematisch):
Bezüglich der Anzahl und Namen der Schnittstellen. Jetzt empfehle ich jedem dringend, nicht auf die „Dienste“ von Software-Switches zurückzugreifen, es sei denn, dies ist unbedingt erforderlich (Brücke), die den Netzwerkstapel erheblich belasten und das Routing beeinträchtigen. Wenn Sie nicht vorhaben, über mehrere WLAN-Adapter zu verfügen, sollten Sie nur physische Schnittstellen verwenden. Ich habe zwei Wi-Fi, daher kombiniere ich nur diese zu einer Software-Bridge (obwohl Sie darauf verzichten können, indem Sie das Hostapd-Setup anders betrachten).
Und ich liebe es, Schnittstellen umzubenennen.
Dazu müssen Sie in Fedora einen symbolischen Link erstellen:
/etc/systemd/network/99-default.link -> /dev/null
und dann wird es möglich sein, aussagekräftige Namen zu vergeben, ohne herumzustöbern udev, aber nur mit systemd-networkd.
So heißen zum Beispiel die Netzwerkadapter in meinem Router:
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 - eingebaut, ext — Externe (USB-)WLAN-Adapter zu einer „Brücke“ zusammengefügt lan;
fahl — Ethernet-Adapter, an den das Internet angeschlossen ist.
Bemerkte? fq_codel - eine wirklich coole Sache. Zusammen mit einem frischen Linux-Kernel bewirken sie wahre Wunder im WLAN-Bereich: Ein heftiger „Torrent-Download“ führt nicht zu einem plötzlichen Geschwindigkeitsabfall bei Nachbarn. Selbst ein Heim-IP-TV, der „über Funk“ mit einem geladenen Kanal betrieben wird, „bricht nicht ab“ und „stottert“ überhaupt nicht!
Die Daemon-Dienstdatei wurde geringfügig geändert Hostapd.
Das sieht nun so aus (am Beispiel eines eingebauten Adapters):
[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
Und die „magische“ hostapd-int.conf für die Arbeit in 5GHz/AC:
(Internetverbindung – 100 Mbit/s)
Und zum Schluss noch eine kleine FAQ.
6. FAQ
6.1 Warum einen WLAN-Router auf Raspberry erstellen?
Man könnte einfach antworten: „Es ist interessant, das alles auszuprobieren.“
Aber tatsächlich scheint mir das Thema ziemlich ernst zu sein. Im Zeitalter des „blutigen“ Internets ist der Kauf eines Routers in einem Geschäft und die Geisel seines Herstellers eine sehr düstere Aussicht. Viele Menschen verstehen bereits, dass es nicht möglich ist, mit einem CVE oder einer eingebauten Hintertür herumzusitzen.
Natürlich können Sie von Enthusiasten auf die WRT-Firmware migrieren. Ihnen wird wahrscheinlich mehr Vertrauen entgegengebracht, aber wenn Sie sich nicht auf sie verlassen möchten, dann verwenden Sie einfach Ihr eigenes Produkt. Idealerweise ein vollwertiger Computer, auf dem alles auf der Welt umgesetzt werden kann. Was das Routing angeht, natürlich.
Daher ist die Wahl einer „Himbeere“ ein rein wirtschaftlicher Schachzug: ein echter Computer und gleichzeitig ein preiswerter. Obwohl, vielleicht auch – mit ihren „Doppelgängern“ im Inneren.
6.2 Aber Raspberry ist ein „Low-Router“: langsam und mit einem Ethernet-Port!
Als Heim-WLAN-Router ist der Raspberry für mich mehr als zufriedenstellend. Über die Luftgeschwindigkeit habe ich oben bereits gesprochen. Und es gibt nur ein Ethernet, aber bei einem ähnlichen Produkt von Apple ist es ungefähr das Gleiche!
Aber im Ernst, ich hätte natürlich gerne mehr. Und obwohl in meinem Haushalt alle Geräte drahtlos miteinander verbunden sind, ist manchmal immer noch eine Kupferverbindung erforderlich. Für solche Fälle habe ich einen „mobilen Hub“ auf Lager:
Gerät - so etwas in der Art
6.3 Wenn es sich um einen Router handelt, wird nichts über das „Tuning“ von TCP/IP gesagt, denn das ist wichtig!
Abgesehen vom Einrichten des Netzwerkstapels (tcp_fastopen, YeAH usw.) behandeln dieser und der vorherige Artikel keine anderen Nuancen, insbesondere den Prozess der Vorbereitung von microSD für die optimale Verwendung (obwohl das Installationsprogramm versucht, die Speicherkarte zu formatieren). eine knifflige Art). Der Verbesserungsprozess ist endlos, Sie müssen nur rechtzeitig anhalten.
6.4 Warum Fedora?
Weil ich mag! Fedora ist ein „Mainstream“-System für Geeks, für die dieser Artikel eigentlich gedacht ist. Zum Zeitpunkt des Verfassens dieses Artikels vielleicht das einzige Betriebssystem, das für Raspberry in der 64-Bit-Version offiziell von einem bedeutenden Team von Entwicklern unterstützt wird (von denen ich es kaum erwarten kann). Kernel 5.6).
6.5 Funktioniert Bluetooth? Wie ist das Video/Ton/GPIO?
Weiß nicht. Der Artikel befasst sich mit der minimalen Installation des Systems und seiner anschließenden Verwendung als WLAN-Router.
6.6 Warum beginnen alle Artikel über CentOS/Fedora/RedHat mit der Deaktivierung von SELinux?
Da das System minimal ist, verfügt es nicht einmal über eine Firewall oder Dienstprogramme zum Einrichten. Wer es braucht, kann zusätzlich alles installieren, was er braucht.
6.7 Das System ist nicht nutzbar, das Passwort kann nicht geändert werden – kein Passwort. Kein Ping, kein Nichts!
Es gibt DNF. Oder diese Installationsoption ist nichts für Sie – verwenden Sie das Distributionskit der Entwickler.
6.9 Ich möchte sofort ein fertiges Bild mit einem konfigurierten WLAN-Zugangspunkt herunterladen!
Die Vorbereitung eines Installationsprogramms „für alle“ erfordert einige Zeit und Mühe. Wenn (plötzlich!) jemand das wirklich interessant und notwendig findet, schreiben Sie uns und wir lassen uns etwas einfallen.
Damit komme ich zum Schluss.
Ich wünsche allen sicheres Surfen und maximale Kontrolle über die Infrastruktur!