Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (jew router tal-lampun b'kappell blu)

Fl-artikolu Raspberry Pi + CentOS = Wi-Fi Hotspot (jew router tal-lampun b'kappell aħmar) Tkellimt dwar mod kif inbidel Lampun f'punt ta 'aċċess bla fili bl-użu tas-sistema operattiva CentOS. Billi assemblajt ir-router tad-dar tiegħi skont dan it-tpinġija, issodisfajt l-ego kreattiv tiegħi u rċevejt spinta ta 'paċi tal-moħħ għal element kritiku tal-infrastruttura cosy tiegħi. Madankollu, is-​sensazzjoni taʼ nuqqas taʼ kompletezza tas-​soluzzjoni u l-​perfezzjoniżmu intern ħassejtni: “riżultat imperfett tax-​xogħol m’għandux dritt li jeżisti.” Il-ħsieb li “l-ideal jista’ u għandu jintlaħaq” ma ħallinix għal minuta.

U mbagħad jum wieħed, fuq wieħed mill-fora tematiċi, iltqajt ma' diskussjoni dwar il-fond tal-bit tas-sistemi operattivi eżistenti għal Raspberry (aarch64 vs armhfp): liema OS 64-bit jista', fil-prinċipju, joqgħod u jaħdem fuq il-verżjoni 3 ta' Raspberry. ++?

Il-maħbub CentOS tiegħi għall-arkitettura ARM minn "Userland" ma kienx għaġla biex taqleb għall-aħħar verżjoni tal-qalba u tinbidel f'64-bit. U r-repożitorju tal-EPEL, imqabbad minn Alla jaf fejn mingħajr firma diġitali, kien ħmar il-lejl fl-irqad bla kwiet tiegħi...

Meta tkellem bħala aderenti tad-distribuzzjonijiet ibbażati fuq RPM, kont sorpriż li sibt li l-OS għal Raspberry intesa kompletament fid-diskussjonijiet Fedora! U dan minkejja l-fatt li r-rilaxx tiegħu
mill-verżjoni 28 jappoġġja uffiċjalment Raspberry Pi 3B+ f'verżjoni 64-bit!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (jew router tal-lampun b'kappell blu)
F'dan l-artikolu ser nitkellem dwar il-metodu ta 'installazzjoni Fedora (aarch64) fuq Raspberry Pi 3 Mudell B + в prestazzjoni minima żejda. Se noqgħod nitkellem fil-qosor fuq il-karatteristiċi tat-tgħollija ta' punt ta' aċċess Wi-Fi, identifikat bħala riżultat ta' tħaddim ta' prova tal-konfigurazzjoni preċedenti tiegħi fuq CentOS 7.

0. Dak li ser ikollok bżonn

Kollox huwa l-istess kif elenkat fl-artikolu preċedenti:

  • Lampun Pi 3 Mudell B +;
  • microSD >= 4GB (aktar tard tista '"tittrasferixxi" is-sistema għal drive ta' 2GB);
  • Workstation b'Linux u qarrej tal-kards microSD;
  • Konnessjoni tan-netwerk bil-fili bejn il-Raspberry u workstation Linux (f'dan il-każ, l-ebda monitor u tastiera addizzjonali ma jkunu meħtieġa għas-setup), aċċess għall-Internet miż-żewġ apparati;
  • Ħila avvanzata fil-Linux (li tkun taf u ma tibżax: indaqs, dd и mkfs).

Simili għal iterattiv LFS-bini tal-Linux tiegħek stess, se tintuża l-immaġni tad-distribuzzjoni Fedora, u mbagħad ibbażata fuqha, tinħoloq sistema minima (mingħajr "kompilazzjoni mis-sors").

1. Installazzjoni tad-distribuzzjoni oriġinali

Koordinati tal-immaġni mhux ipproċessata tas-sistema fuq l-Internet:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Wara li tirrekordjaha fuq microSD u qabel tużaha, għandek bżonn:

  1. Tespandi l-"għerq" tas-sistema tal-fajls (it-tielet partizzjoni, 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. Itfi SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Neħħi l-Initial Setup Wizard:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Ħalli aċċess permezz 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
    

Issa tista 'tniżżel il-"lampun" minn microSD u qabbad magħha permezz tan-netwerk.

Bidu kiesaħ jieħu madwar minuta u nofs. TTX tas-sistema wara t-tagħbija:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (jew router tal-lampun b'kappell blu)

rpm -qa | wc -l
444

2. Assemblaġġ ta 'sistema minima

Sfortunatament, id-"distribuzzjoni minima" mill-iżviluppaturi tirriżulta li hija 'l bogħod mill-aktar modesta fil-konsum tar-riżorsi. L-immaġni tas-sistema tista 'ssir saħansitra iżgħar.

Biex tagħmel dan, trid tmexxi l-iskrittura fuq 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

Wara li tħaddem l-iskript, jinħoloq sottodirettorju fid-direttorju attwali ($P) bil-kontenut tal-għerq tal-edizzjoni minima ġdida tal-OS. Tista 'titfi l-Raspberry u tirritorna l-microSD lill-workstation Linux.

3. Installazzjoni ta 'sistema minima

L-installazzjoni tirriżulta mill-ikkupjar tal-fajls minimi tal-“immaġini” tal-OS (kiseb fil-pass preċedenti) fuq microSD ippreparat apposta fid-direttorji xierqa.

Kard ta '2GB u żewġ diviżorji fuqha huma biżżejjed:

  1. / boot / efi - EFI+FAT32, boot, 100MB;
  2. / (għerq) - EXT4, l-ispazju kollu li fadal.

Wara li tipprepara l-microSD u tikkopja l-fajls miegħu, għandek bżonn:

  • tiffissa OS boot;
  • Ixgħel in-netwerk;
  • kkonfigurat aċċess permezz ssh.

It-tiswija tal-boot hija li tissostitwixxi l-UUID tas-sezzjonijiet fil-fajls:

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

u parametru dħul_salvat= fl-aħħar fajl

Fil-fajl:

microSD:/etc/fstab

tista' ssib il-valuri qodma, u l-valuri attwali (aġġornati) fl-output tal-kmand:

blkid | grep mmcblk | sort

Wara s-sostituzzjoni, għandek tikkoreġi wkoll il-kontenut fstab fuq microSD sabiex il-punti tal-muntaġġ jikkorrispondu għall-UUIDs tal-partizzjoni l-ġodda.

Il-funzjonalità tan-netwerk meta tixgħel il-Raspberry għall-ewwel darba tista 'tinkiseb bi "crutch" żgħir - oħloq rabta (skematikament):

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

u fajl:

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

Wara tniżżil b'suċċess, ippakkja t-tnedija systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

L-aċċess tas-superuser permezz ta' ssh huwa kkonfigurat b'mod simili għall-pass 1.

Wara li għamilt kollox bir-reqqa u mingħajr żbalji, tista 'timxi l-microSD fil-"lampun" u tibda taħdem b'OS 64-bit f'verżjoni minima żejda.

4. Sistema lesta

L-"immaġni" tas-sistema lesta, maħluqa skont l-istruzzjonijiet ta 'hawn fuq, tista' titniżżel mill-link:
Fedora-Tiny-31-5.5.7-200.aarch64

Dan se jkun arkivju li jkun fih żewġ fajls: l-iskrittura tal-installazzjoni u TGZ bil-fajls tal-OS. L-arkivju jeħtieġ li jiġi żppakkjat fuq workstation Linux, daħħal microSD (karta ta '2GB hija biżżejjed) u mexxi l-iskrittura b'parametru - l-isem tal-apparat:

./install /dev/mmcblk0

Oqgħod attent!

Mingħajr l-ebda twissijiet, l-apparat jiġi fformattjat u s-sistema operattiva tiġi installata fuqu.

Wara l-eżekuzzjoni mingħajr żbalji tal-iskrittura, il-karta tista 'tiġi rranġata mill-ġdid fil-"lampun" u użata: qabda permezz dhcp, password - "1".

Is-sistema titneħħa mill-IDs u ċ-ċwievet kollha, u għalhekk kull installazzjoni ġdida hija unika.

Nirrepeti għal darb'oħra, is-sistema - minimu! Għalhekk, toqgħodx allarmat: DNF huwa disponibbli, biex jaħdem ser ikollok "tivvinta" dik it-tajba /etc/resolv.conf.

Il-bidu kiesaħ tal-Raspberry jieħu madwar 40 sekonda. TTX tas-sistema wara t-tagħbija:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (jew router tal-lampun b'kappell blu)

rpm -qa | wc -l
191

5. Wifi

Ser nitkellem ftit fuq il-karatteristiċi tal-implimentazzjoni ta 'punt ta' aċċess Wi-Fi. Għal ispeċifiċitajiet, tista 'tirreferi għal preċedenti tiegħi artikolu.

EPEL m'għadux meħtieġ - il-pakketti kollha jinsabu fir-repożitorji uffiċjali.

Probabbilment ikun ta’ min iċedi dnsmasq, peress li Fedora, b'differenza CentOS, għandha systemd-networkd pjuttost reċenti, li għandha servers DHCP/DNS normali mibnija. Iżda l-fatt hu li fl-iżviluppaturi RHEL8 irrifjuta li jappoġġja l-munzell tan-netwerk b'xi ħaġa oħra għajr NM, ma jispirax fiduċja fil-futur sabiħ tal-proġett (scondrels). Fil-qosor, ma ppruvajtx.

Barra minn hekk, is-sewwieqa attwali għall-adapter Wi-Fi integrat ma jistgħux jiġu "misruqa" mid-distribuzzjoni Raspbian, iżda jitniżżel direttament minn GitHub.

Dan huwa kif jidhru l-fajls tal-firmware Broadcom fuq il-Raspberry tiegħi (skematikament):

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

Mingħajrhom ma jkollokx 5GHz/AC.

Rigward in-numru u l-ismijiet tal-interfaces. Issa nirrakkomanda bil-qawwa lil kulħadd biex ma jirrikorrix għas-"servizzi" ta' swiċċijiet tas-softwer sakemm ma jkunx assolutament meħtieġ (pont), li jintroduċu tagħbija sinifikanti fil-munzell tan-netwerk u jbaxxu r-rotot. Jekk ma tippjanax li jkollok adapters bla fili multipli, allura għandek tuża biss interfaces fiżiċi. Għandi żewġ Wi-Fi, għalhekk ngħaqqadhom biss f'pont tas-softwer (għalkemm tista 'tagħmel mingħajr dan billi tħares lejn is-setup hostapd b'mod differenti).

U nħobb insemmi mill-ġdid l-interfaces.

Biex tagħmel dan f'Fedora trid toħloq link simboliku:

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

u allura se jkun possibbli li tagħti ismijiet sinifikanti mingħajr ma poking madwar udev, iżda bl-użu biss ta' systemd-networkd.

Pereżempju, dan huwa kif jissejħu l-adapters tan-netwerk fir-router tiegħi:

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 - built-in, ext — adapters esterni (USB) tal-Wi-Fi immuntati f’“pont” lan;
  • wan — Adapter Ethernet li fih huwa konness l-Internet.

Innutajt? fq_codel - ħaġa tassew friska. Flimkien ma 'kernel Linux frisk, jaħdmu mirakli reali fil-firxa mingħajr fili: "download tat-torrent" ħarxa mhux se jwassal għal degradazzjoni f'daqqa tal-veloċità fost il-ġirien. Anke IP-TV tad-dar li jopera "fuq l-arja" b'kanal mgħobbi ma "jkissirx" u ma "stutter" xejn!

Il-fajl tas-servizz tad-daemon għadda minn bidliet żgħar hostapd.

Issa jidher bħal dan (bl-użu ta 'l-eżempju ta' adapter inkorporat):

[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

U l-hostapd-int.conf "maġika" biex taħdem f'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]

Photoshop żgħir magħmul mill-Ericsson A1018s tiegħi:

(Konnessjoni tal-Internet - 100Mbit/sec)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (jew router tal-lampun b'kappell blu)
U fl-aħħar, FAQ żgħira.

6 FAQ

6.1 Għaliex tagħmel router Wi-Fi fuq Raspberry?

Wieħed jista 'jwieġeb sempliċiment, bħal "huwa interessanti li tipprova u dak kollu."

Imma fil-fatt jidhirli li s-suġġett huwa pjuttost serju. Fl-era tal-Internet "imdemmi", ix-xiri ta 'router f'maħżen u li jibqa' ostaġġ tal-manifattur tiegħu huwa prospett ħażin ħafna. Ħafna nies diġà jifhmu li bilqiegħda b'CVE jew backdoor built-in mhux possibbli.

Naturalment, tista 'temigra għal firmware WRT minn dilettanti. Probabbilment hemm aktar fiduċja fihom, imma jekk ma tridx tiddependi minnhom, allura uża biss il-prodott tiegħek stess. Idealment, kompjuter sħiħ sabiex kollox fid-dinja jkun jista 'jiġi implimentat fuqu. F'termini ta 'routing, ovvjament.

Għalhekk, l-għażla ta '"lampun" hija mossa purament ekonomika: kompjuter reali u fl-istess ħin wieħed mhux għali. Għalkemm, forsi wkoll - bil-"doubles" tagħhom ġewwa.

6.2 Iżda Raspberry huwa "router baxx": bil-mod u b'port Ethernet wieħed!

Bħala router Wi-Fi tad-dar, il-Raspberry huwa aktar minn sodisfaċenti għalija. Diġà tkellimt dwar il-veloċità tal-arja hawn fuq. U hemm Ethernet wieħed biss, ukoll, fi prodott simili minn Apple huwa madwar l-istess!

Imma bis-serjetà, ovvjament nixtieq aktar. U minkejja l-fatt li fid-dar tiegħi l-apparati kollha huma konnessi mingħajr fili, xi drabi xorta tkun meħtieġa konnessjoni tar-ram. Għal każijiet bħal dawn, għandi "mobile hub" fl-istokk:

apparat - xi ħaġa bħal dinRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (jew router tal-lampun b'kappell blu)

6.3 Jekk dan huwa router, allura ma jingħad xejn dwar "irfinar" TCP/IP, għaliex dan huwa importanti!

Minbarra l-istabbiliment tal-munzell tan-netwerk (tcp_fastopen, YeAH, eċċ.), dan u l-artikolu preċedenti ma jkoprux sfumaturi oħra, b'mod partikolari, il-proċess ta 'preparazzjoni tal-microSD għall-aħjar użu (għalkemm l-installatur jipprova jifformattja l-karta tal-memorja f' mod delikat). Il-proċess ta 'titjib huwa bla tmiem, għandek bżonn biss tieqaf fil-ħin.

6.4 Għaliex Fedora?

Għax jogħġobni! Fedora hija sistema "mainstream" għall-geeks, li għalihom dan l-artikolu huwa attwalment maħsub. Fiż-żmien tal-kitba, forsi l-uniku OS li għal Raspberry fil-verżjoni 64-bit huwa appoġġjat uffiċjalment minn persunal sinifikanti ta 'żviluppaturi (minnhom ma nistax nistenna għadma 5.6).

6.5 Il-Bluetooth jaħdem? Kif inhi l-vidjo/ħoss/GPIO?

Ma nafx. L-artikolu huwa dwar l-installazzjoni minima tas-sistema u l-użu sussegwenti tagħha bħala router Wi-Fi.

6.6 Għaliex l-artikoli kollha dwar CentOS/Fedora/RedHat jibdew bid-diżattivazzjoni ta' SELinux?

Minħabba li s-sistema hija minima, lanqas għandha firewall jew utilitajiet biex twaqqafha. Kull min għandu bżonnha jista 'jinstalla wkoll dak kollu li jeħtieġ.

6.7 Is-sistema ma tistax tintuża, il-password ma tistax tinbidel - l-ebda passwd. L-ebda ping, l-ebda xejn!

Hemm DNF. Jew din l-għażla ta 'installazzjoni mhix għalik - uża l-kit tad-distribuzzjoni mill-iżviluppaturi.

6.8 Fejn hi SWAP? Ma nistax ngħix mingħajru!

Huwa veru? OK mela:

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 Nixtieq inniżżel immedjatament immaġni lesta b'punt ta 'aċċess Wi-Fi konfigurat!

It-tħejjija ta 'installatur "għal kulħadd" se teħtieġ ftit ħin u sforz. Jekk (f'daqqa waħda!) xi ħadd verament isib dan interessanti u meħtieġ, iktbilna u noħorġu b'xi ħaġa.

Nispiċċa b'dan.

Nawgura lil kulħadd surfing sigur u kontroll massimu fuq l-infrastruttura!

Sors: www.habr.com

Żid kumment