Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (oder Raspberry Router mat engem bloen Hutt)

Den Artikel Raspberry Pi + CentOS = Wi-Fi Hotspot (oder Himbeerrouter mat engem roude Hutt) Ech hunn iwwer e Wee geschwat fir e Raspberry an e drahtlose Zougangspunkt mat dem CentOS Betriebssystem ze maachen. Andeems ech mäin Heemrouter no dëser Zeechnung montéiert hunn, hunn ech mäi kreativen Ego zefridden a krut e Boost vu Fridden vum Geescht fir e kriteschen Element vu menger gemittlecher Infrastruktur. Wéi och ëmmer, d'Gefill vun der Onvollstännegkeet vun der Léisung an dem internen Perfektionismus huet mech verfollegt: "En onvollstänneg Resultat vun der Aarbecht huet kee Recht ze existéieren." De Gedanken, datt "dat Ideal kann a soll erreecht ginn" huet mech net fir eng Minutt verlooss.

An dunn enges Daags, op engem vun den thematesche Foren, sinn ech op eng Diskussioun iwwer d'Bitdéift vun existente Betribssystemer fir Raspberry (aarch64 vs armhfp) begéint: déi 64-Bit OS am Prinzip passt a funktionnéiert op Raspberry Versioun 3 ++?

Meng beléifte CentOS fir d'ARM Architektur vun "Userland" war net presséiert fir op déi lescht Versioun vum Kernel ze wiesselen an an 64-Bit ze maachen. An den EPEL Repository, vu Gott weess wou verbonnen ouni eng digital Ënnerschrëft, war en Albtraum a mengem onrouege Schlof...

Schwätzen als Anhänger vun RPM-baséiert Verdeelungen, Ech war iwwerrascht ze fannen datt den OS fir Raspberry komplett an Diskussiounen vergiess gouf. Fedora! An dat trotz der Tatsaach, datt seng Verëffentlechung
aus Versioun 28 et ënnerstëtzt offiziell Raspberry Pi 3B + an 64-bëssen Versioun!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (oder Raspberry Router mat engem bloen Hutt)
An dësem Artikel wäert ech iwwer d'Installatiounsmethod schwätzen Fedora (aarch64) op Raspberry Pi 3 Modell B + в extra minimal Leeschtung. Ech wäert kuerz op d'Features vun der Erhéijung vun engem Wi-Fi Zougangspunkt ophalen, identifizéiert als Resultat vun der Testoperatioun vu menger viregter Konfiguratioun op CentOS 7.

0. Wat Dir braucht

Alles ass d'selwecht wéi am viregten Artikel opgezielt:

  • Raspberry Pi 3 Modell B+;
  • microSD>= 4GB (spéider kënnt Dir de System op en 2GB Drive "übertragen");
  • Workstation mat Linux a microSD Kaart Lieser;
  • Wired Netzwierkverbindung tëscht dem Raspberry an enger Linux Workstation (an dësem Fall gëtt keng zousätzlech Monitor an Tastatur fir d'Setup gebraucht), Internetzougang vu béiden Apparater;
  • Fortgeschratt Fäegkeet am Linux (wëssen an net fäerten: hu, dd и mkfs).

Ähnlech wéi iterativ lfs-baut Ären eegene Linux, d'Fedora Verdeelungsbild gëtt benotzt, an dann baséiert op et gëtt e minimale System erstallt (ouni "aus der Quell ze kompiléieren").

1. Installatioun vun der Originalverdeelung

Koordinaten vum roude Bild vum System um Internet:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Nodeems Dir et op microSD opgeholl hutt a ier Dir se benotzt, musst Dir:

  1. Erweidert de "root" vum Dateiesystem (3rd Partition, ext4)
    parted /dev/mmcblk0 resizepart 3 100%
    e2fsck -f /dev/mmcblk0p3; resize2fs /dev/mmcblk0p3; e2fsck -f /dev/mmcblk0p3
    for i in 1 2 3; do mkdir -p /mnt/$i; mount /dev/mmcblk0p$i /mnt/$i; done
    

  2. SELinux auszeschalten
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Ewechzehuelen den Initial Setup Wizard:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Erlaabt Zougang iwwer ssh:
    mkdir -p /mnt/3/root/.ssh
    cp -fv ~/.ssh/id_rsa.pub /mnt/3/root/.ssh/authorized_keys
    sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/g' /mnt/3/etc/ssh/sshd_config
    

Elo kënnt Dir de "Hambierbéier" vu microSD eroflueden a mat dem Netz verbannen.

E kale Start dauert ongeféier annerhallef Minutt. TTX vum System nom Luede:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (oder Raspberry Router mat engem bloen Hutt)

rpm -qa | wc -l
444

2. Assemblée e minimale System

Leider ass déi "minimal Verdeelung" vun den Entwéckler wäit vun de bescheidensten am Ressourceverbrauch eraus. D'Systembild kann nach méi kleng gemaach ginn.

Fir dëst ze maachen, musst Dir de Skript op Malinka lafen:

#!/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

Nodeems de Skript ausgefouert gouf, gëtt en Ënnerverzeechnes am aktuellen Verzeechnes erstallt ($P) mam Inhalt vun der Root vun der neier minimaler OS Editioun. Dir kënnt de Raspberry ausschalten an d'MicroSD op d'Linux Workstation zréckginn.

3. Installatioun vun engem minimale System

D'Installatioun geet erof op d'Kopie vun de minimale OS "Bild" Dateien (kréien am virege Schrëtt) op eng speziell preparéiert MicroSD an déi entspriechend Verzeichnisser.

Eng 2GB Kaart an zwou Partitionen drop si genuch:

  1. / boot / efi - EFI+FAT32, Boot, 100MB;
  2. / (root) - EXT4, all Rescht Plaz.

Nodeems Dir d'MicroSD virbereet hutt an d'Dateien drop kopéiert hutt, musst Dir:

  • fix OS Boot;
  • Tour op de Reseau;
  • konfiguréieren Zougang iwwer ssh.

De Bootfix ass fir den UUID vun de Sektiounen an de Dateien ze ersetzen:

microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv

an Parameter gespäichert_entry= an der leschter Datei

Am Fichier:

microSD:/etc/fstab

Dir fannt déi al Wäerter, an déi aktuell (aktuell) Wäerter am Kommandoausgang:

blkid | grep mmcblk | sort

Nom Ersatz sollt Dir och den Inhalt korrigéieren fstab op microSD sou datt d'Montagepunkte mat der neier Partition UUIDs entspriechen.

Netzfunktionalitéit wann Dir d'Raspberry fir d'éischt schalt, kann mat enger klenger "Krütt" erreecht ginn - e Link erstellen (schematesch):

ln -s /usr/lib/systemd/system/systemd-networkd.service 
  microSD:/etc/systemd/system/multi-user.target.wants

an Datei:

mkdir -p microSD:/etc/systemd/network
cat > microSD:/etc/systemd/network/dhcp.network << EOF
[Match]
Name=*
[Network]
DHCP=ipv4
EOF

No engem erfollegräichen Download, raumt de Start op systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Superuser Zougang iwwer ssh ass ähnlech wéi Schrëtt 1 konfiguréiert.

Nodeems Dir alles suergfälteg an ouni Feeler gemaach hutt, kënnt Dir d'MicroSD an den "Hambierbéier" réckelen an ufänken mat engem 64-Bit OS an enger extra minimaler Versioun ze schaffen.

4. Prett System

De "Bild" vum fäerdege System, erstallt no den Instruktiounen hei uewen, kann aus dem Link erofgeluede ginn:
Fedora-Tiny-31-5.5.7-200.aarch64

Dëst wäert en Archiv sinn mat zwee Dateien: d'Installatiounsskript an TGZ mat OS Dateien. D'Archiv muss op enger Linux Workstation ausgepackt ginn, eng MicroSD setzen (eng 2GB Kaart ass genuch) an de Skript mat engem Parameter ausféieren - den Numm vum Apparat:

./install /dev/mmcblk0

Daacht vläicht!

Ouni Warnungen gëtt den Apparat formatéiert an de Betribssystem gëtt drop installéiert.

No der fehlerfräier Ausféierung vum Skript, kann d'Kaart an den "Hambierbéier" nei arrangéiert ginn a benotzt ginn: Fang iwwer dhcp, Passwuert - "1".

De System gëtt vun all IDen a Schlësselen geläscht, dofir ass all nei Installatioun eenzegaarteg.

Ech widderhuelen nach eng Kéier, de System - minimal! Dofir, maach der keng Suergen: DNF ass verfügbar, fir datt et funktionnéiert musst Dir déi richteg "erfannen" /etc/resolv.conf.

De kale Start vun der Raspberry dauert ongeféier 40 Sekonnen. TTX vum System nom Luede:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (oder Raspberry Router mat engem bloen Hutt)

rpm -qa | wc -l
191

5. Wifi

Ech wäert e bëssen iwwer d'Features vun der Ëmsetzung vun engem Wi-Fi Zougangspunkt wunnen. Fir Spezifizitéiten, kënnt Dir op meng virdrun referenzéieren Artikel.

EPEL ass net méi gebraucht - all Packagen sinn an den offiziellen Repositories enthale.

Et wier wahrscheinlech derwäert opginn dnsq, well Fedora, am Géigesaz zu CentOS, e relativ rezent Systemd-Networkd huet, deen normal agebaute DHCP / DNS Server huet. Awer de Fakt ass datt an RHEL8 Entwéckler refuséiert de Reseau Stack mat näischt anescht wéi NM ze ënnerstëtzen, inspiréiert net Vertrauen an déi helle Zukunft vum Projet (Scoundrels). Kuerz gesot, ech hunn et net probéiert.

Weider kënnen déi aktuell Chauffeuren fir den agebaute Wi-Fi Adapter net aus der Raspbian Verdeelung "geklaut" ginn, awer direkt erofgeluede ginn github.

Dëst ass wéi d'Broadcom Firmware Dateien op menger Raspberry ausgesinn (schematesch):

ls /usr/lib/firmware/brcm | grep 43455

 [612775] brcmfmac43455-sdio.bin
  [14828] brcmfmac43455-sdio.clm_blob
[symlink] brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt -> brcmfmac43455-sdio.txt
   [2099] brcmfmac43455-sdio.txt

Ouni si kritt Dir keng 5GHz / AC.

Wat d'Zuel an d'Nimm vun den Interfaces ugeet. Elo empfeelen ech jidderengem staark net op d'"Servicer" vu Softwareschalter ze reagéieren, ausser absolut néideg (Bréck), déi bedeitend Belaaschtung an den Netzwierkstack aféieren an de Routing depriméieren. Wann Dir net plangt méi drahtlos Adapter ze hunn, da sollt Dir nëmme kierperlech Interfaces benotzen. Ech hunn zwee Wi-Fi, also kombinéieren ech se nëmmen an eng Softwarebréck (obwuel Dir ouni dëst maache kënnt andeems Dir den Hostapd Setup anescht kuckt).

An ech hu gär Interfaces ëmbenennen.

Fir dëst an Fedora ze maachen, musst Dir e symbolesche Link erstellen:

/etc/systemd/network/99-default.link -> /dev/null

an dann ass et méiglech sënnvoll Nimm ze ginn ouni ronderëm ze pochen udev, awer nëmme mat systemd-networkd.

Zum Beispill, dat ass wat d'Netzadapter a mengem Router genannt ginn:

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 - agebaut, ext - extern (USB) Wi-Fi Adapter an eng "Bréck" versammelt Lan;
  • wan - Ethernet Adapter an deem den Internet ugeschloss ass.

Hutt Dir gemierkt? fq_codel - eng wierklech cool Saach. Zesumme mat engem frësche Linux Kernel schaffen se richteg Wonner am drahtlose Bereich: e schaarfen "Torrent Download" wäert net zu enger plötzlecher Verschlechterung vun der Geschwindegkeet tëscht den Noperen féieren. Och en Haus-IP-Fernseh, deen "iwwer der Loft" mat engem geluedene Kanal funktionnéiert, "zerbriechen" net a "stattert" guer net!

D'Daemon Service-Datei huet kleng Ännerunge gemaach hostapd.

Et gesäit elo esou aus (mat dem Beispill vun engem agebaute 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

An de "Magie" hostapd-int.conf fir an 5GHz / AC ze schaffen:

ssid=rpi
wpa_passphrase=FedoRullezZ

# 5180 MHz  [36] (20.0 dBm)
# 5200 MHz  [40] (20.0 dBm)
# 5220 MHz  [44] (20.0 dBm)
# 5240 MHz  [48] (20.0 dBm)
# 5745 MHz [149] (20.0 dBm)
# 5765 MHz [153] (20.0 dBm)
# 5785 MHz [157] (20.0 dBm)
# 5805 MHz [161] (20.0 dBm)
# 5825 MHz [165] (20.0 dBm)

channel=36
#channel=149

# channel+6
# http://blog.fraggod.net/2017/04/27/wifi-hostapd-configuration-for-80211ac-networks.html

vht_oper_centr_freq_seg0_idx=42
#vht_oper_centr_freq_seg0_idx=155

country_code=US

interface=int
bridge=lan

driver=nl80211

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

macaddr_acl=0

hw_mode=a
wmm_enabled=1

# N
ieee80211n=1
require_ht=1
ht_capab=[HT40+][SHORT-GI-40][SHORT-GI-20]

# AC
ieee80211ac=1
ieee80211d=0
ieee80211h=0
vht_oper_chwidth=1
require_vht=1
vht_capab=[SHORT-GI-80]

E klenge Photoshop gemaach aus mengem Ericsson A1018s:

(Internetverbindung - 100Mbit/s)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (oder Raspberry Router mat engem bloen Hutt)
An endlech eng kleng FAQ.

6.FAQ

6.1 Firwat e Wi-Fi Router op Raspberry maachen?

Et kéint een einfach beäntweren, wéi "et ass interessant ze probéieren an all dat."

Awer tatsächlech schéngt et mir datt d'Thema zimlech sérieux ass. An der Ära vum "bluddege" Internet, e Router an engem Geschäft ze kafen a Geisel ze bleiwen fir säin Hiersteller ass eng ganz déif Perspektiv. Vill Leit verstinn schon datt mat engem CVE oder agebauter Backdoor sëtzen net méiglech ass.

Natierlech kënnt Dir op WRT Firmware vun Enthusiaster migréieren. Et gëtt méiglecherweis méi Vertrauen an hinnen, awer wann Dir net vun hinnen ofhängeg wëllt, da benotzt just Ären eegene Produkt. Idealerweis e vollwäertege Computer, sou datt alles op der Welt op et ëmgesat ka ginn. A punkto Routing, natierlech.

Dofir ass d'Wiel vun engem "Hambierbéier" eng reng wirtschaftlech Beweegung: e richtege Computer a gläichzäiteg e bëllegen. Obwuel, vläicht och - mat hiren "Double" bannen.

6.2 Awer Raspberry ass e "niddereg Router": lues a mat engem Ethernet Hafen!

Als Heem Wi-Fi Router ass de Raspberry méi wéi zefriddestellend fir mech. Ech hu schonn iwwer Loftgeschwindegkeet uewen geschwat. An et gëtt nëmmen een Ethernet, gutt, an engem ähnleche Produkt vun Apple ass et ongeféier d'selwecht!

Mee eescht, natierlech hätt ech gär méi. An trotz der Tatsaach, datt a mengem Stot all Apparater drahtlos verbonne sinn, ass heiansdo nach eng Kupferverbindung néideg. Fir esou Fäll hunn ech e "mobilen Hub" op Lager:

Apparat - eppes wéi dëstRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (oder Raspberry Router mat engem bloen Hutt)

6.3 Wann dëst e Router ass, da gëtt näischt iwwer "tuning" TCP/IP gesot, well dëst ass wichteg!

Zousätzlech fir den Netzstack opzestellen (tcp_fastopen, YeAH, etc.), decken dësen an de fréiere Artikel keng aner Nuancen, besonnesch de Prozess vun der Virbereedung vun der MicroSD fir optimal Notzung (obwuel den Installateur probéiert d'Erënnerungskaart ze formatéieren an eng schwiereg Manéier). De Prozess vun der Verbesserung ass endlos, Dir musst just an der Zäit ophalen.

6.4 Firwat Fedora?

Well ech gär! Fedora ass e "Mainstream" System fir Geeks, fir déi dësen Artikel eigentlech geduecht ass. Zu der Zäit vum Schreiwen, vläicht dat eenzegt OS dat fir Raspberry an der 64-Bit Versioun offiziell ënnerstëtzt gëtt vun engem bedeitende Personal vun Entwéckler (vun deenen ech net waarden Kärel 5.6).

6.5 Wierker Bluetooth? Wéi ass de Video / Sound / GPIO?

Weess net. Den Artikel ass iwwer déi minimal Installatioun vum System a seng spéider Notzung als Wi-Fi Router.

6.6 Firwat fänken all Artikelen iwwer CentOS / Fedora / RedHat mat SELinux auszeschalten?

Well de System minimal ass, huet et net emol eng Firewall oder Utilities fir se opzestellen. Jiddereen deen et brauch kann zousätzlech alles installéieren wat se brauchen.

6.7 De System kann net benotzt ginn, d'Passwuert kann net geännert ginn - kee passwd. Kee Ping, nee näischt!

et ginn DNF. Oder dës Installatiounsoptioun ass net fir Iech - benotzt d'Verdeelungskit vun den Entwéckler.

6.8 Wou ass SWAP? Ech kann net ouni hien liewen!

Ass et wouer? OK dann:

fallocate -l 1G /swap
chmod -v 0600 /swap
mkswap -f /swap
swapon -v /swap
grep "/swap" /etc/fstab || echo "/swap swap swap defaults 0 0" >> /etc/fstab

6.9 Ech wéilt direkt e fäerdegt Bild mat engem konfiguréierten Wi-Fi Zougangspunkt eroflueden!

En Installateur "fir jiddereen" virbereeden wäert e bëssen Zäit an Effort verlaangen. Wann (op eemol!) een dat wierklech interessant an noutwenneg fënnt, da schreift eis a mir komme mat eppes.

Ech wäert mat dëser fäerdeg.

Ech wënschen jidderengem sécher Surfen a maximal Kontroll iwwer d'Infrastruktur!

Source: will.com

Setzt e Commentaire