Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eða hindberjabeini með bláum hatti)

Í greininni Raspberry Pi + CentOS = Wi-Fi Hotspot (eða hindberjabeini með rauðum hatti) Ég talaði um leið til að breyta Raspberry í þráðlausan aðgangsstað með CentOS stýrikerfinu. Með því að setja saman heimabeiniinn minn samkvæmt þessari teikningu, fullnægði ég skapandi sjálfinu mínu og fékk aukinn hugarró fyrir mikilvægan þátt í notalegum innviðum mínum. Tilfinningin um að lausnin væri ófullkomin og innri fullkomnunarárátta ofsótti mig hins vegar: „ófullkominn árangur vinnu hefur engan tilverurétt. Tilhugsunin um að „hið fullkomna megi og ætti að nást“ fór ekki frá mér í eina mínútu.

Og svo einn daginn, á einu af þemavettvangunum, rakst ég á umræðu um bitadýpt núverandi stýrikerfa fyrir Raspberry (aarch64 vs armhfp): hvaða 64-bita stýrikerfi getur í grundvallaratriðum passað og unnið á Raspberry útgáfu 3 ++?

Ástkæra CentOS minn fyrir ARM arkitektúrinn frá „Userland“ var ekkert að flýta sér að skipta yfir í nýjustu útgáfuna af kjarnanum og breytast í 64-bita. Og EPEL geymslan, tengd frá Guði má vita hvar án stafrænnar undirskriftar, var martröð í eirðarlausum svefni mínum...

Talandi sem fylgismaður RPM-undirstaða dreifingar, var ég hissa að komast að því að stýrikerfið fyrir Raspberry var algjörlega gleymt í umræðum Fedora! Og þetta þrátt fyrir að gefa út
frá útgáfu 28 styður það opinberlega Raspberry Pi 3B+ í 64-bita útgáfu!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eða hindberjabeini með bláum hatti)
Í þessari grein mun ég tala um uppsetningaraðferðina Fedora (aarch64) á Hindberjum Pi 3 Gerð B + в auka lágmarks afköst. Ég mun í stuttu máli staldra við eiginleika þess að hækka Wi-Fi aðgangsstað, auðkenndan sem afleiðing af prufuaðgerð á fyrri uppsetningu minni á CentOS 7.

0. Það sem þú þarft

Allt er það sama og skráð í fyrri grein:

  • Raspberry Pi 3 Model B+;
  • microSD >= 4GB (síðar er hægt að „flytja“ kerfið yfir á 2GB drif);
  • Vinnustöð með Linux og microSD kortalesara;
  • Þráðlaus nettenging milli Raspberry og Linux vinnustöðvar (í þessu tilfelli þarf ekki auka skjá og lyklaborð fyrir uppsetningu), Internetaðgangur frá báðum tækjum;
  • Háþróuð færni í Linux (að vita og ekki vera hræddur: skildu, dd и mkfs).

Svipað og endurtekið LFS-að byggja upp þitt eigið Linux, Fedora dreifingarmyndin verður notuð, og síðan byggt á henni verður lágmarkskerfi búið til (án þess að "þjappa saman frá uppruna").

1. Uppsetning upprunalegu dreifingarinnar

Hnit hrámyndar kerfisins á netinu:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Eftir að hafa tekið það upp á microSD og áður en þú notar það þarftu að:

  1. Stækkaðu „rót“ skráarkerfisins (þriðja skipting, ext3)
    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. Slökktu á SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Fjarlægðu upphafsuppsetningarhjálpina:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Leyfa aðgang í gegnum 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
    

Nú geturðu halað niður „hindberjum“ frá microSD og tengst því í gegnum netið.

Köld byrjun tekur um eina og hálfa mínútu. TTX kerfisins eftir hleðslu:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eða hindberjabeini með bláum hatti)

rpm -qa | wc -l
444

2. Að setja saman lágmarkskerfi

Því miður reynist „lágmarksdreifingin“ frá þróunaraðilum vera langt frá því að vera sú hóflegasta í auðlindanotkun. Hægt er að gera kerfismyndina enn minni.

Til að gera þetta þarftu að keyra handritið á 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

Eftir að hafa keyrt skriftuna verður undirskrá búin til í núverandi möppu ($P) með innihaldi rótar nýju lágmarks OS útgáfunnar. Þú getur slökkt á Raspberry og skilað microSD á Linux vinnustöðina.

3. Uppsetning lágmarkskerfis

Uppsetning snýst um að afrita lágmarks „mynd“ skrár stýrikerfisins (fengnar í fyrra skrefi) á sérútbúið microSD í viðeigandi möppur.

Nóg er 2GB kort og tvö skipting á því:

  1. / stígvél / efi - EFI+FAT32, ræsing, 100MB;
  2. / (rót) - EXT4, allt pláss sem eftir er.

Eftir að hafa undirbúið microSD og afritað skrár á það þarftu að:

  • laga OS ræsingu;
  • kveiktu á netinu;
  • stilla aðgang í gegnum ssh.

Stofnleiðréttingin er að skipta um UUID hlutanna í skránum:

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

og breytu vistuð_færsla= í síðustu skrá

Í skrá:

microSD:/etc/fstab

þú getur fundið gömlu gildin og núverandi (uppfærð) gildi í skipunarúttakinu:

blkid | grep mmcblk | sort

Eftir skipti ættirðu einnig að leiðrétta innihaldið fstab á microSD þannig að tengipunktarnir samsvari nýju UUID skiptingunum.

Netvirkni þegar þú kveikir á Raspberry fyrst er hægt að ná með lítilli „hækju“ - búðu til tengil (skírteini):

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

og skrá:

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

Eftir vel heppnaða niðurhal skaltu snyrta ræsinguna systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Ofurnotendaaðgangur í gegnum ssh er stilltur á svipaðan hátt og skref 1.

Eftir að hafa gert allt vandlega og án villna geturðu fært microSD inn í „hindberið“ og byrjað að vinna með 64-bita stýrikerfi í extra lágmarksútgáfu.

4. Tilbúið kerfi

Hægt er að hlaða niður „myndinni“ af fullbúnu kerfinu, búið til samkvæmt leiðbeiningunum hér að ofan:
Fedora-Tiny-31-5.5.7-200.aarch64

Þetta mun vera skjalasafn sem inniheldur tvær skrár: uppsetningarforskriftina og TGZ með OS skrám. Taka þarf upp skjalasafnið á Linux vinnustöð, setja inn microSD (2GB kort er nóg) og keyra skriftuna með færibreytu - heiti tækisins:

./install /dev/mmcblk0

Verið varkár!

Án nokkurra viðvarana verður tækið forsniðið og stýrikerfið sett upp á það.

Eftir villulausa framkvæmd handritsins er hægt að endurraða kortinu í „hindberjum“ og nota það: grípa í gegnum dhcp, lykilorð - „1“.

Kerfið er hreinsað af öllum auðkennum og lyklum og þess vegna er hver ný uppsetning einstök.

Ég endurtek enn og aftur, kerfið - lágmarks! Þess vegna, ekki vera brugðið: DNF er í boði, til að það virki þarftu að „finna upp“ rétta /etc/resolv.conf.

Köld byrjun á hindberjum tekur um 40 sekúndur. TTX kerfisins eftir hleðslu:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eða hindberjabeini með bláum hatti)

rpm -qa | wc -l
191

5. Þráðlaust net

Ég mun dvelja aðeins við eiginleika þess að útfæra Wi-Fi aðgangsstað. Fyrir sérstakar upplýsingar geturðu vísað til fyrri minnar grein.

EPEL er ekki lengur þörf - allir pakkar eru í opinberum geymslum.

Það væri líklega þess virði að gefast upp dnsmasq, þar sem Fedora, ólíkt CentOS, er með nokkuð nýlegt systemd-net, sem hefur venjulega innbyggða DHCP/DNS netþjóna. En staðreyndin er sú að í RHEL8 forriturum neitaði að styðja netstokkinn með öðru en NM, vekur ekki traust á bjartri framtíð verkefnisins (skúrkar). Í stuttu máli, ég hef ekki prófað það.

Ennfremur er ekki hægt að „stela“ núverandi rekla fyrir innbyggða Wi-Fi millistykkið úr Raspbian dreifingunni heldur hlaða niður beint frá GitHub.

Svona líta Broadcom vélbúnaðarskrárnar út á Raspberrynum mínum (skýrt):

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

Án þeirra færðu ekki 5GHz/AC.

Varðandi fjölda og nöfn viðmóta. Nú mæli ég eindregið með því við alla að grípa ekki til „þjónustu“ hugbúnaðarrofa nema brýna nauðsyn beri til (brú), sem setja umtalsvert álag inn í netstaflann og dregur úr leið. Ef þú ætlar ekki að hafa marga þráðlausa millistykki ættirðu aðeins að nota líkamlegt viðmót. Ég er með tvö Wi-Fi, svo ég sameina þau aðeins í hugbúnaðarbrú (þó að þú getir verið án þessa með því að skoða hostapd uppsetninguna öðruvísi).

Og ég elska að endurnefna tengi.

Til að gera þetta í Fedora þarftu að búa til táknrænan hlekk:

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

og þá verður hægt að gefa merkingarbær nöfn án þess að pæla í udev, en aðeins með því að nota systemd-networkd.

Til dæmis, þetta er það sem netkortin í beininum mínum heita:

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 - innbyggð, EXT — ytri (USB) Wi-Fi millistykki sett saman í „brú“ lan;
  • dvína — Ethernet millistykki sem internetið er tengt við.

Tókstu eftir því? fq_kóði - virkilega flottur hlutur. Ásamt ferskum Linux kjarna vinna þeir raunveruleg kraftaverk á þráðlausa sviðinu: grimmt „straumniðurhal“ mun ekki leiða til skyndilegrar hraðaskerðingar meðal nágranna. Jafnvel IP-sjónvarp heima sem starfar „í loftinu“ með hlaðinni rás „slitnar“ ekki og „stammar“ alls ekki!

Púkuþjónustuskráin hefur gengist undir smávægilegar breytingar hostapd.

Það lítur nú svona út (með því að nota dæmi um innbyggðan millistykki):

[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 „töfra“ hostapd-int.conf til að vinna í 5GHz/AC:

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]

Smá photoshop gert úr Ericsson A1018 vélunum mínum:

(Internettenging - 100Mbit/sek)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eða hindberjabeini með bláum hatti)
Og að lokum, smá algengar spurningar.

6. FAQ

6.1 Af hverju að búa til Wi-Fi bein á Raspberry?

Maður gæti svarað einfaldlega, eins og "það er áhugavert að prófa og allt það."

En reyndar sýnist mér að umræðuefnið sé nokkuð alvarlegt. Á tímum hins „blóðuga“ internets er mjög dapurleg möguleiki að kaupa bein í verslun og vera áfram í gíslingu framleiðanda þess. Margir skilja nú þegar að það er ekki hægt að sitja með CVE eða innbyggða bakdyr.

Auðvitað geturðu flutt yfir í WRT vélbúnaðar frá áhugamönnum. Það er líklega meira traust á þeim, en ef þú vilt ekki treysta á þá, notaðu þá bara þína eigin vöru. Helst fullgild tölva svo hægt sé að útfæra allt í heiminum á hana. Hvað varðar leiðarlýsingu, auðvitað.

Þess vegna er val á „hindberjum“ eingöngu efnahagsleg ráðstöfun: alvöru tölva og á sama tíma ódýr. Þó ef til vill líka - með "tvímenningana" sína inni.

6.2 En Raspberry er „lágur leið“: hægur og með einni Ethernet tengi!

Sem Wi-Fi leið fyrir heimili er Raspberry meira en fullnægjandi fyrir mig. Ég hef þegar talað um lofthraða hér að ofan. Og það er aðeins eitt Ethernet, jæja, í svipaðri vöru frá Apple er það um það bil það sama!

En í alvöru talað, auðvitað myndi ég vilja meira. Og þrátt fyrir að á mínu heimili séu öll tæki tengd þráðlaust, stundum er kopartenging samt nauðsynleg. Fyrir slík tilvik hef ég „farsímamiðstöð“ á lager:

tæki - eitthvað eins og þettaRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (eða hindberjabeini með bláum hatti)

6.3 Ef þetta er beini, þá er ekkert sagt um að „stilla“ TCP/IP, því þetta er mikilvægt!

Auk þess að setja upp netstafla (tcp_fastopen, YeAH, osfrv.), fjalla þessi og fyrri grein ekki um önnur blæbrigði, sérstaklega ferlið við að undirbúa microSD fyrir bestu notkun (þó að uppsetningarforritið reyni að forsníða minniskortið í erfið leið). Umbótaferlið er endalaust, þú þarft bara að stoppa í tíma.

6.4 Af hverju Fedora?

Vegna þess að mér líkar! Fedora er „almennt“ kerfi fyrir nörda, sem þessi grein er í raun ætluð fyrir. Þegar þetta er skrifað er kannski eina stýrikerfið sem fyrir Raspberry í 64-bita útgáfu er opinberlega stutt af verulegu starfsfólki þróunaraðila (sem ég get ekki beðið eftir kjarna 5.6).

6.5 Virkar Bluetooth? Hvernig er myndbandið/hljóðið/GPIO?

Veit ekki. Greinin fjallar um lágmarksuppsetningu kerfisins og síðari notkun þess sem Wi-Fi bein.

6.6 Af hverju byrja allar greinar um CentOS/Fedora/RedHat á því að slökkva á SELinux?

Vegna þess að kerfið er í lágmarki hefur það ekki einu sinni eldvegg eða tól til að setja það upp. Allir sem þurfa á því að halda geta sett upp til viðbótar allt sem þeir þurfa.

6.7 Ekki er hægt að nota kerfið, ekki er hægt að breyta lykilorðinu - ekkert passwd. Ekkert ping, ekkert ekkert!

Það er DNF. Eða þessi uppsetningarvalkostur er ekki fyrir þig - notaðu dreifingarsettið frá þróunaraðilum.

6.8 Hvar er SWAP? Ég get ekki lifað án hans!

Er það satt? Allt í lagi þá:

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 Mig langar strax að hlaða niður tilbúinni mynd með stilltum Wi-Fi aðgangsstað!

Að útbúa uppsetningarforrit „fyrir alla“ mun krefjast nokkurs tíma og fyrirhafnar. Ef (allt í einu!) einhverjum finnst þetta virkilega áhugavert og nauðsynlegt, skrifaðu okkur og við finnum upp á einhverju.

Ég ætla að klára þetta.

Ég óska ​​öllum öruggri brimbrettabrun og hámarks stjórn á innviðum!

Heimild: www.habr.com

Bæta við athugasemd