Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vagy málna útválasztó kék kalappal)

A cikk Raspberry Pi + CentOS = Wi-Fi Hotspot (vagy málna router piros kalappal) Arról beszéltem, hogyan lehet egy Raspberry-t vezeték nélküli hozzáférési ponttá alakítani a CentOS operációs rendszer használatával. Azáltal, hogy a rajz szerint összeállítottam otthoni routeremet, kielégítettem kreatív egómat, és megnyugvást kaptam hangulatos infrastruktúrám egyik kritikus eleme miatt. A megoldás befejezetlenségének és a belső perfekcionizmus érzése azonban kísértett: „a munka tökéletlen eredményének nincs létjogosultsága”. A gondolat, hogy „az ideált el lehet és el is kell érni”, egy percig sem hagyott nyugodni.

Aztán egy nap az egyik tematikus fórumon vitába akadtam a Raspberry meglévő operációs rendszereinek bitmélységéről (aarch64 vs armhfp): melyik 64 bites operációs rendszer tud elvileg illeszkedni és működni a Raspberry 3-as verzióján. ++?

A „Userland” ARM architektúrához készült, szeretett CentOS-em nem sietett átváltani a kernel legújabb verziójára, és 64 bitesre váltani. Az isten tudja hova digitális aláírás nélkül csatlakoztatott EPEL-tár pedig rémálom volt nyugtalan álmomban...

Az RPM-alapú disztribúciók híveként meglepve tapasztaltam, hogy a Raspberry operációs rendszert teljesen elfelejtették a viták során. Fedora! És ez annak ellenére, hogy a megjelenése
a 28-as verziótól hivatalosan is támogatja a Raspberry Pi 3B+ 64 bites verzióját!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vagy málna útválasztó kék kalappal)
Ebben a cikkben a telepítés módjáról fogok beszélni Fedora (aarch64) on Málna Pi 3 Modell B + в extra minimális teljesítmény. Röviden kitérek a Wi-Fi hozzáférési pont emelésének jellemzőire, amelyeket az előző konfigurációm próbaüzemének eredményeként azonosítottak. 7 CentOS.

0. Amire szüksége lesz

Minden ugyanaz, mint az előző cikkben:

  • Raspberry Pi 3 Model B+;
  • microSD >= 4 GB (később „átviheti” a rendszert 2 GB-os meghajtóra);
  • Munkaállomás Linux és microSD kártyaolvasóval;
  • Vezetékes hálózati kapcsolat a Raspberry és egy Linux munkaállomás között (ebben az esetben nincs szükség további monitorra és billentyűzetre a beállításhoz), internet hozzáférés mindkét eszközről;
  • Haladó Linux-készség (tudni, és nem kell félni: megosztott, dd и mkfs).

Hasonló az iteratívhoz lfs-saját Linuxot építve a Fedora disztribúciós kép kerül felhasználásra, majd ennek alapján egy minimális rendszert készítenek (anélkül, hogy "forrásból fordítanám").

1. Az eredeti disztribúció telepítése

A rendszer nyers képének koordinátái az Interneten:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Miután rögzítette microSD-re, és használat előtt a következőket kell tennie:

  1. Bontsa ki a fájlrendszer „gyökérét” (3. partíció, 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. A SELinux letiltása
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Távolítsa el a Kezdeti beállítás varázslót:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Hozzáférés engedélyezése ssh-n keresztül:
    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
    

Most letöltheti a „málnát” a microSD-ről, és a hálózaton keresztül csatlakozhat hozzá.

A hidegindítás körülbelül másfél percig tart. A rendszer TTX-je betöltés után:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vagy málna útválasztó kék kalappal)

rpm -qa | wc -l
444

2. Minimális rendszer összeállítása

Sajnos a fejlesztők „minimális elosztása” messze nem a legszerényebb erőforrás-felhasználásban. A rendszerkép még kicsinyíthető.

Ehhez le kell futtatnia a szkriptet a Malinkán:

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

A szkript futtatása után egy alkönyvtár jön létre az aktuális könyvtárban ($P) az új minimális operációs rendszer kiadásának gyökér tartalmával. Kikapcsolhatja a Raspberry-t, és visszaküldheti a microSD-t a Linux-munkaállomásra.

3. Minimális rendszer telepítése

A telepítés abból áll, hogy a minimális operációs rendszer „image” fájljait (amelyeket az előző lépésben kaptunk) egy speciálisan előkészített microSD-kártyára másolunk a megfelelő könyvtárakba.

Elég egy 2 GB-os kártya és két partíció rajta:

  1. / boot / efi - EFI+FAT32, rendszerindítás, 100 MB;
  2. / (gyökér) - EXT4, az összes maradék hely.

A microSD előkészítése és a fájlok másolása után a következőket kell tennie:

  • OS rendszerindítás javítása;
  • kapcsolja be a hálózatot;
  • konfigurálja a hozzáférést ssh-n keresztül.

A rendszerindítási javítás célja, hogy lecserélje a fájlok szakaszainak UUID-jét:

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

és paraméter saved_entry= az utolsó fájlban

Fájlban:

microSD:/etc/fstab

a parancskimenetben megtalálhatja a régi értékeket és az aktuális (aktuális) értékeket:

blkid | grep mmcblk | sort

Csere után a tartalmat is javítani kell fstab microSD-n, hogy a csatolási pontok megfeleljenek az új partíció UUID-jének.

A Raspberry első bekapcsolásakor a hálózati funkciók egy kis „mankóval” érhetők el - hozzon létre egy hivatkozást (vázlatosan):

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

és fájl:

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

Sikeres letöltés után tegye rendbe az indítást systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Az ssh-n keresztüli szuperfelhasználói hozzáférés az 1. lépéshez hasonlóan van beállítva.

Miután mindent gondosan és hibamentesen megtett, áthelyezheti a microSD-t a „málnába”, és elkezdhet dolgozni egy 64 bites operációs rendszerrel egy extra minimális verzióban.

4. Kész rendszer

A fenti instrukciók szerint elkészített, kész rendszer „képe” letölthető a linkről:
Fedora-Tiny-31-5.5.7-200.aarch64

Ez egy archívum, amely két fájlt tartalmaz: a telepítő szkriptet és a TGZ-t operációs rendszer fájlokkal. Az archívumot ki kell csomagolni egy Linux munkaállomáson, be kell helyezni egy microSD-t (egy 2 GB-os kártya elég), és le kell futtatni a szkriptet egy paraméterrel - az eszköz neve:

./install /dev/mmcblk0

Légy óvatos!

Figyelmeztetés nélkül megtörténik az eszköz formázása és az operációs rendszer telepítése.

A szkript hibamentes végrehajtása után a kártya átrendezhető a „málna”-ba, és használható: fogás dhcp-n keresztül, jelszó - „1”.

A rendszer mentes minden azonosítótól és kulcstól, ezért minden új telepítés egyedi.

Még egyszer megismétlem, a rendszer - minimális! Ezért ne ijedjen meg: a DNF elérhető, hogy működjön, ki kell „találnia” a megfelelőt / Etc / resolv.conf.

A Raspberry hidegindítása körülbelül 40 másodpercet vesz igénybe. A rendszer TTX-je betöltés után:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vagy málna útválasztó kék kalappal)

rpm -qa | wc -l
191

5. WiFi

Kicsit foglalkozom a Wi-Fi hozzáférési pont megvalósításának jellemzőivel. A részletekért az előző oldalamban olvashatsz cikk.

Az EPEL-re már nincs szükség - minden csomag megtalálható a hivatalos tárolókban.

Valószínűleg érdemes lenne feladni dnsmasq, mivel a Fedora a CentOS-szal ellentétben meglehetősen friss systemd-networkd-vel rendelkezik, amely normál beépített DHCP/DNS szerverekkel rendelkezik. De tény, hogy az RHEL8 fejlesztőiben megtagadta a hálózati verem támogatását az NM-en kívül semmi mással, nem ébreszt bizalmat a projekt fényes jövőjében (gazemberek). Egyszóval nem próbáltam.

Ezenkívül a beépített Wi-Fi adapter jelenlegi illesztőprogramjait nem lehet „ellopni” a Raspbian disztribúcióból, hanem közvetlenül letölthető GitHub.

Így néznek ki a Broadcom firmware-fájlok a Raspberry-n (vázlatosan):

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

Ezek nélkül nem lesz 5 GHz/AC.

Az interfészek számával és elnevezésével kapcsolatban. Most mindenkinek erősen ajánlom, hogy ne vegye igénybe a szoftverváltások „szolgáltatásait”, hacsak nem feltétlenül szükséges (híd), amelyek jelentős terhelést jelentenek a hálózati veremben, és csökkentik az útválasztást. Ha nem tervez több vezeték nélküli adaptert, akkor csak fizikai interfészt használjon. Két Wi-Fi-m van, ezért csak azokat kombinálom szoftverhídba (bár ezt is megteheti, ha másképp nézi a hostapd beállítását).

És szeretem az interfészek átnevezését.

Ehhez a Fedorában szimbolikus hivatkozást kell létrehoznia:

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

és akkor lehet majd értelmes neveket adni piszkálás nélkül udev, de csak a systemd-networkd használatával.

Például így hívják az útválasztóm hálózati adaptereit:

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 - beépített, ext — külső (USB) Wi-Fi adapterek „hídba” összeszerelve lan;
  • halvány — Ethernet adapter, amelyhez az internet csatlakozik.

Megjegyezte? fq_code - Nagyon klassz dolog. Egy friss Linux kernellel együtt igazi csodákat tesznek a vezeték nélküli tartományban: egy heves „torrentletöltés” ​​nem vezet a szomszédok sebességének hirtelen csökkenéséhez. Még az „éteren keresztül” működő, feltöltött csatornával működő otthoni IP-TV sem „szakad fel” és egyáltalán nem „dadog”!

A démon szolgáltatás fájlja kisebb módosításokon ment keresztül hostapd.

Most így néz ki (egy beépített adapter példájával):

[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

És a „varázslatos” hostapd-int.conf az 5 GHz/AC technológiához:

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]

Egy kis photoshop az Ericsson A1018-asaimból:

(Internet kapcsolat - 100Mbit/sec)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vagy málna útválasztó kék kalappal)
És végül egy kis GYIK.

6. GYIK

6.1 Miért készítsünk Wi-Fi útválasztót a Raspberry-n?

Egyszerűen lehetne válaszolni: „Érdekes kipróbálni, meg minden.”

De valójában úgy tűnik számomra, hogy a téma elég komoly. A „véres” internet korszakában egy router vásárlása egy boltban és a gyártó túsza maradása nagyon lehangoló kilátás. Sokan már megértik, hogy CVE-vel vagy beépített hátsó ajtóval ülni nem lehet.

Természetesen a rajongóktól áttérhet a WRT firmware-re. Valószínűleg nagyobb a bizalom bennük, de ha nem akarsz tőlük függeni, akkor csak használd a saját termékedet. Ideális esetben egy teljes értékű számítógép, hogy a világon minden megvalósítható legyen rajta. Természetesen az útválasztást illetően.

Ezért a „málna” kiválasztása pusztán gazdasági lépés: valódi számítógép és egyben olcsó. Bár talán az is - a benne lévő „kettősökkel”.

6.2 De a Raspberry egy „alacsony útválasztó”: lassú és egyetlen Ethernet porttal!

Otthoni Wi-Fi routerként számomra a Raspberry több mint kielégítő. A légsebességről fentebb már beszéltem. És csak egy Ethernet van, nos, az Apple hasonló termékében ez körülbelül ugyanaz!

De komolyan, persze többet szeretnék. És annak ellenére, hogy az én háztartásomban minden eszköz vezeték nélkül csatlakozik, néha még mindig szükség van réz csatlakozásra. Ilyen esetekre van raktáron egy „mobil hub”:

készülék - valami ilyesmiRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (vagy málna útválasztó kék kalappal)

6.3 Ha ez egy router, akkor nem mondanak semmit a TCP/IP „tuningolásáról”, mert ez fontos!

A hálózati verem beállítása mellett (tcp_fastopen, YeAH stb.) ez és az előző cikk nem tér ki más árnyalatokra, különös tekintettel a microSD optimális felhasználásra való előkészítésének folyamatára (bár a telepítő megpróbálja formázni a memóriakártyát trükkös módszer). A fejlődés folyamata végtelen, csak időben meg kell állni.

6.4 Miért a Fedora?

Mert szeretem! A Fedora egy „mainstream” rendszer a strébereknek, akiknek ez a cikk valójában szól. A cikk írásakor talán az egyetlen olyan operációs rendszer, amelyet a Raspberry 64 bites verziójában hivatalosan is támogat a fejlesztők jelentős része (akiktől alig várom kernel 5.6).

6.5 Működik a Bluetooth? Milyen a videó/hang/GPIO?

Nem tudom. A cikk a rendszer minimális telepítéséről és Wi-Fi útválasztóként való későbbi használatáról szól.

6.6 Miért kezdődik az összes CentOS/Fedora/RedHat cikk a SELinux letiltásával?

Mivel a rendszer minimális, még tűzfal vagy segédprogramok sincsenek a beállításához. Akinek szüksége van rá, az mindent felszerelhet, amire szüksége van.

6.7 A rendszer nem használható, a jelszó nem módosítható - nincs passwd. Se ping, se semmi!

Van DNF. Vagy ez a telepítési lehetőség nem az Ön számára - használja a fejlesztők terjesztési készletét.

6.8 Hol van a SWAP? Nem tudok nélküle élni!

Ez igaz? Rendben, akkor:

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 Azonnal szeretnék letölteni egy kész képet beállított Wi-Fi hozzáférési ponttal!

A telepítő „mindenki számára” előkészítése némi időt és erőfeszítést igényel. Ha valaki (hirtelen!) ezt tényleg érdekesnek és szükségesnek találja, írjon nekünk, és kitalálunk valamit.

Ezzel befejezem.

Mindenkinek biztonságos szörfözést és az infrastruktúra feletti maximális kontrollt kívánok!

Forrás: will.com

Hozzászólás