I-Raspberry Pi + Fedora (aarch64) = I-Wi-Fi Hotspot (noma umzila we-raspberry onesigqoko esiluhlaza okwesibhakabhaka)

Esihlokweni I-Raspberry Pi + CentOS = i-Wi-Fi Hotspot (noma i-raspberry router enesigqoko esibomvu) Ngikhulume ngendlela yokuguqula i-Raspberry ibe yindawo yokufinyelela engenantambo usebenzisa uhlelo lokusebenza lwe-CentOS. Ngokuhlanganisa irutha yami yasekhaya ngokwalo mdwebo, nganelise inhloso yami yokudala futhi ngathola ukuthula kwengqondo okuthuthukile kwesici esibalulekile sengqalasizinda yami ethokomele. Nokho, umuzwa wokungapheleli wekhambi nokufuna ukuphelela kwangaphakathi kwangikhathaza: “umphumela ongaphelele womsebenzi awunalungelo lokuba khona.” Umcabango wokuthi “okufanelekile kungenziwa futhi kufanele kufinyelelwe” awuzange ungishiye nomzuzu owodwa.

Kwathi ngolunye usuku, kwenye yezinkundla ezinezihloko, ngathola ingxoxo mayelana nokujula kancane kwezinhlelo zokusebenza ezikhona zeRaspberry (aarch64 vs armhfp): iyiphi i-64-bit OS, empeleni, engalingana futhi isebenze kuRaspberry version 3. ++?

I-CentOS yami ethandekayo yokwakhiwa kwe-ARM evela ku- “Userland” ibingajahile ukushintshela enguqulweni yakamuva ye-kernel bese iphenduka i-64-bit. Futhi inqolobane ye-EPEL, exhunywe kuNkulunkulu uyazi lapho ngaphandle kwesiginesha yedijithali, bekuyiphupho elibi ebuthongweni bami obungaphumuli...

Ngikhuluma njengomlandeli wokusabalalisa okusekelwe ku-RPM, ngamangala ukuthola ukuthi i-OS ye-Raspberry yayikhohliwe ngokuphelele ezingxoxweni. Fedora! Futhi lokhu naphezu kweqiniso lokuthi ukukhululwa kwayo
kusuka kunguqulo 28 isekela ngokusemthethweni i-Raspberry Pi 3B+ ngenguqulo engu-64-bit!

I-Raspberry Pi + Fedora (aarch64) = I-Wi-Fi Hotspot (noma umzila we-raspberry onesigqoko esiluhlaza okwesibhakabhaka)
Kulesi sihloko ngizokhuluma ngendlela yokufaka I-Fedora (aarch64) on I-Raspberry Pi 3 Isibonelo B + в ukusebenza okuncane okungeziwe. Ngizogxila kafushane ezicini zokukhulisa indawo yokufinyelela ye-Wi-Fi, ekhonjwe njengomphumela wokusebenza kwesilingo sokucushwa kwami ​​kwangaphambilini I-CentOS 7.

0. Yini ozoyidinga

Konke kuyafana njengoba kubhalwe esihlokweni esedlule:

  • I-Raspberry Pi 3 Model B+;
  • microSD > = 4GB (kamuva ungakwazi "ukudlulisa" uhlelo kudrayivu engu-2GB);
  • Indawo yokusebenza ene-Linux kanye nesifundi sekhadi le-MicroSD;
  • Uxhumano lwenethiwekhi enezintambo phakathi kweRaspberry nesiteshi sokusebenzela se-Linux (kulokhu, akukho kuqapha okwengeziwe nekhibhodi ezodingeka ukuze kumiswe), ukufinyelela ku-inthanethi kusuka kumadivayisi womabili;
  • Ikhono elithuthukisiwe ku-Linux (ukwazi futhi ungesabi: ahlukaniswe, dd и mkfs).

Okufana nokuphindaphinda I-LFS-ukwakha i-Linux yakho, kuzosetshenziswa isithombe sokusabalalisa i-Fedora, bese ngokusekelwe kuso, kuzokwakhiwa uhlelo oluncane (ngaphandle "kokuhlanganisa okuvela emthonjeni").

1. Ukufakwa kokusatshalaliswa kwangempela

Izixhumanisi zesithombe esingahluziwe sesistimu ku-inthanethi:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Ngemuva kokuyiqopha ku-microSD nangaphambi kokuyisebenzisa, udinga:

  1. Nweba “impande” yesistimu yefayela (i-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. Khubaza i-SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Susa Iwizadi Yokusetha Yokuqala:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Vumela ukufinyelela nge-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
    

Manje usungakwazi ukulanda "i-raspberry" ku-microSD futhi uxhume kuyo ngenethiwekhi.

Ukuqala okubandayo kuthatha cishe umzuzu owodwa nesigamu. I-TTX yesistimu ngemva kokulayisha:

I-Raspberry Pi + Fedora (aarch64) = I-Wi-Fi Hotspot (noma umzila we-raspberry onesigqoko esiluhlaza okwesibhakabhaka)

rpm -qa | wc -l
444

2. Ukuhlanganisa isistimu encane

Ngeshwa, "ukusabalalisa okuncane" okuvela kubathuthukisi kuvela kude nokunesizotha kakhulu ekusetshenzisweni kwezinsiza. Isithombe sesistimu singenziwa sibe sincane nakakhulu.

Ukuze wenze lokhu, udinga ukusebenzisa iskripthi ku-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

Ngemva kokuqalisa iskripthi, uhlu lwemibhalo olungaphansi luzokwakhiwa ohlwini lwemibhalo lwamanje ($P) ngokuqukethwe kwempande yenguqulo encane ye-OS entsha. Ungacisha iRaspberry bese ubuyisela i-microSD endaweni yokusebenza ye-Linux.

3. Ukufakwa kwesistimu encane

Ukufakwa kubilisa ekukopishelweni okuncane kwamafayela "esithombe" se-OS (atholwe esinyathelweni sangaphambilini) ku-microSD elungiselelwe ngokukhethekile ezinhlwini zemibhalo ezifanele.

Ikhadi le-2GB nama-partitions amabili kulo kwanele:

  1. / i-boot / efi - EFI+FAT32, ibhuthi, 100MB;
  2. / (impande) - EXT4, sonke isikhala esisele.

Ngemuva kokulungisa i-microSD nokukopisha amafayela kuyo, udinga:

  • lungisa i-OS boot;
  • vula inethiwekhi;
  • lungisa ukufinyelela nge-ssh.

Ukulungiswa kokuqalisa ukufaka esikhundleni se-UUID yezigaba kumafayela:

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

kanye nepharamitha i-saved_entry= efayeleni lokugcina

Efayelini:

microSD:/etc/fstab

ungathola amanani amadala, kanye namanani amanje (abuyekeziwe) kokuphumayo komyalo:

blkid | grep mmcblk | sort

Ngemva kokushintsha, kufanele futhi ulungise okuqukethwe fstab ku-microSD ukuze izindawo zokukhweza zihambisane ne-UUID entsha yokuhlukanisa.

Ukusebenza kwenethiwekhi lapho uqala ukuvula i-Raspberry kungafinyelelwa "ngenduku" encane - dala isixhumanisi (ngokuhlelwa):

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

kanye nefayela:

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

Ngemva kokulanda ngempumelelo, lungisa ukwethulwa systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Ukufinyelela komsebenzisi omkhulu nge-ssh kulungiselelwe ngendlela efanayo nesinyathelo 1.

Ngemuva kokwenza konke ngokucophelela futhi ngaphandle kwamaphutha, ungahambisa i-microSD "ku-raspberry" futhi uqale ukusebenza nge-64-bit OS kunguqulo encane eyengeziwe.

4. Uhlelo olulungile

"Isithombe" sohlelo oluqediwe, oludalwe ngokwemiyalo engenhla, lungalandwa kusixhumanisi:
I-Fedora-Tiny-31-5.5.7-200.aarch64

Lokhu kuzoba ingobo yomlando equkethe amafayela amabili: iskripthi sokufaka kanye ne-TGZ enamafayela e-OS. Ingobo yomlando idinga ukuthululwa endaweni yokusebenza ye-Linux, faka i-microSD (ikhadi elingu-2GB lanele) bese uqhuba iskripthi ngepharamitha - igama ledivayisi:

./install /dev/mmcblk0

Qaphela!

Ngaphandle kwanoma yiziphi izexwayiso, idivayisi izofomethwa futhi isistimu yokusebenza izofakwa kuyo.

Ngemva kokukhishwa kweskripthi ngaphandle kwamaphutha, ikhadi lingahlelwa kabusha libe “ku-raspberry” futhi lisetshenziswe: bamba nge-dhcp, iphasiwedi - “1”.

Isistimu isuliwe kuwo wonke ama-ID nokhiye, yingakho ukufakwa okusha ngakunye kuhlukile.

Ngiyaphinda futhi, uhlelo - okuncane! Ngakho-ke, ungethuki: I-DNF iyatholakala, ukuze isebenze kuzodingeka “usungule” elungile /etc/resolv.conf.

Ukuqala okubandayo kwe-Raspberry kuthatha imizuzwana engama-40. I-TTX yesistimu ngemva kokulayisha:

I-Raspberry Pi + Fedora (aarch64) = I-Wi-Fi Hotspot (noma umzila we-raspberry onesigqoko esiluhlaza okwesibhakabhaka)

rpm -qa | wc -l
191

5. I-Wi-Fi

Ngizogxila kancane ezicini zokusebenzisa indawo yokufinyelela ye-Wi-Fi. Ukuze uthole imininingwane eyengeziwe, ungabheka okwedlule kwami isihloko.

I-EPEL ayisadingeki - wonke amaphakheji aqukethwe kumakhosombe asemthethweni.

Cishe kungakufanelekela ukuyeka dnsmasq, njengoba i-Fedora, ngokungafani ne-CentOS, ine-systemd-networkd yakamuva, enamaseva ajwayelekile akhelwe ngaphakathi e-DHCP/DNS. Kodwa iqiniso liwukuthi kubathuthukisi be-RHEL8 wenqabile ukusekela isitaki senethiwekhi nganoma yini enye ngaphandle kwe-NM, akukhuthazi ukuzethemba ngekusasa eliqhakazile lephrojekthi (ama-scoundrels). Ngamafuphi, angizange ngizame.

Ngaphezu kwalokho, abashayeli bamanje be-adaptha ye-Wi-Fi eyakhelwe ngaphakathi abakwazi "ukuntshontshwa" ekusabalaliseni i-Raspbian, kodwa balandwe ngqo kusuka. github.

Yilokhu amafayela e-firmware e-Broadcom abukeka ngayo ku-Raspberry yami (ngokuhlelwa):

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

Ngaphandle kwazo ngeke uthole i-5GHz/AC.

Mayelana nenombolo namagama ezindawo zokusebenzelana. Manje ngincoma kakhulu kuwo wonke umuntu ukuthi angaphendukeli “ezinsizakalweni” zokushintshwa kwesoftware ngaphandle uma kunesidingo (bridge), ezethula umthwalo obalulekile kusitaki senethiwekhi nokucindezela umzila. Uma ungahleleli ukuba nama-adaptha angenawaya amaningi, kufanele usebenzise izixhumi ezibonakalayo kuphela. Nginama-Wi-Fi amabili, ngakho ngiwahlanganisa kuphela ebhulohweni lesofthiwe (yize ungenza ngaphandle kwalokhu ngokubheka ukusethwa kwe-hostapd ngokuhlukile).

Futhi ngiyathanda ukuqamba kabusha i-interfaces.

Ukwenza lokhu ku-Fedora udinga ukudala isixhumanisi esingokomfanekiso:

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

futhi-ke kuzokwazi ukunikeza amagama anencazelo ngaphandle kokupopola udev, kodwa kusetshenziswa kuphela i-systemd-networkd.

Isibonelo, yilokhu okubizwa ngama-adaptha enethiwekhi kumzila wami:

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 - eyakhelwe ngaphakathi, ext - ama-adaptha angaphandle (e-USB) e-Wi-Fi ahlanganiswe “kwibhuloho” lan;
  • wan — I-adaptha ye-Ethernet lapho i-inthanethi ixhunywe khona.

Ubonile? fq_ikhodi - into epholile ngempela. Kanye ne-Linux kernel entsha, benza izimangaliso zangempela kububanzi obungenawaya: "ukulandwa kwesifufula" okunamandla ngeke kuholele ekwehlweni kwesivinini kungazelelwe phakathi komakhelwane. Ngisho ne-IP-TV yasekhaya esebenza “emoyeni” enesiteshi esilayishiwe “ayihlukani” futhi “ayingingiza” nhlobo!

Ifayela lesevisi ye-daemon lenze izinguquko ezincane hostapd.

Manje kubukeka kanje (usebenzisa isibonelo se-adaptha eyakhelwe ngaphakathi):

[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

Kanye ne-hostapd-int.conf “yomlingo” yokusebenza ku-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]

I-photoshop encane eyenziwe ngama-Ericsson A1018s ami:

(Uxhumano lwe-inthanethi - 100Mbit/sec)I-Raspberry Pi + Fedora (aarch64) = I-Wi-Fi Hotspot (noma umzila we-raspberry onesigqoko esiluhlaza okwesibhakabhaka)
Futhi ekugcineni, i-FAQ encane.

6. I-FAQ

6.1 Kungani wenze irutha ye-Wi-Fi ku-Raspberry?

Umuntu angaphendula kalula, njengokuthi “kuyajabulisa ukuzama nakho konke lokho.”

Kodwa empeleni, kubonakala kimi ukuthi isihloko sibucayi kakhulu. Esikhathini se-intanethi "egcwele igazi", ukuthenga i-router esitolo kanye nokuthunjwa okuhlala kumkhiqizi wayo kuyithemba elibi kakhulu. Abantu abaningi sebeyaqonda ukuthi ukuhlala ne-CVE noma i-backdoor eyakhelwe ngaphakathi akunakwenzeka.

Kunjalo, ungakwazi ukuthuthela ku-firmware ye-WRT kusuka kwabashisekayo. Cishe kukhona ukwethemba okwengeziwe kubo, kodwa uma ungafuni ukuncika kubo, vele usebenzise umkhiqizo wakho. Ngokufanelekile, ikhompuyutha egcwele ukuze konke okusemhlabeni kusetshenziswe kuyo. Mayelana nomzila, kunjalo.

Ngakho-ke, ukukhetha "okusajingijolo" kuwumnyakazo wezomnotho kuphela: ikhompyutha yangempela futhi ngesikhathi esifanayo engabizi. Nakuba, mhlawumbe futhi - "ngokuphindwe kabili" kwabo ngaphakathi.

6.2 Kodwa i-Raspberry “irutha ephansi”: ihamba kancane futhi inembobo eyodwa ye-Ethernet!

Njengomzila we-Wi-Fi yasekhaya, i-Raspberry ingaphezu kokunganelisa kimi. Sengike ngakhuluma ngesivinini somoya ngenhla. Futhi kune-Ethernet eyodwa kuphela, kahle, kumkhiqizo ofanayo ovela kwa-Apple icishe ifane!

Kodwa ngokungathí sina, yebo ngingathanda okwengeziwe. Futhi naphezu kweqiniso lokuthi endlini yami wonke amadivaysi axhunywe ngaphandle kwentambo, ngezinye izikhathi uxhumano lwethusi lusadingeka. Ezimweni ezinjalo, "nginehabhu yeselula" esitokweni:

idivayisi - into efana naleI-Raspberry Pi + Fedora (aarch64) = I-Wi-Fi Hotspot (noma umzila we-raspberry onesigqoko esiluhlaza okwesibhakabhaka)

6.3 Uma lokhu kuyi-router, ngakho-ke akukho okushiwo "ngokulungisa" i-TCP/IP, ngoba lokhu kubalulekile!

Ngaphezu kokusetha isitaki senethiwekhi (tcp_fastopen, YeAH, njll.), lesi sihloko kanye nendatshana edlule azibandakanyi amanye ama-nuances, ikakhulukazi, inqubo yokulungiselela i-microSD ukuze isetshenziswe kahle (yize isifaki sizama ukufometha imemori khadi ku. indlela ekhohlisayo). Inqubo yokuthuthukisa ayipheli, udinga nje ukuyeka ngesikhathi.

6.4 Kungani iFedora?

Ngoba ngithanda! I-Fedora iyisistimu “ejwayelekile” yama-geek, le ndatshana ehloselwe yona. Ngesikhathi sokubhala, mhlawumbe i-OS kuphela yokuthi i-Raspberry ku-64-bit version isekelwa ngokusemthethweni abasebenzi ababalulekile babathuthukisi (engingakwazi ukulinda kubo i-kernel 5.6).

6.5 Ingabe i-Bluetooth iyasebenza? Injani ividiyo/umsindo/GPIO?

Angazi. I-athikili imayelana nokufakwa okuncane kohlelo kanye nokusetshenziswa kwayo okulandelayo njengerutha ye-Wi-Fi.

6.6 Kungani zonke izindatshana ezimayelana ne-CentOS/Fedora/RedHat ziqala ngokukhubaza i-SELinux?

Ngenxa yokuthi uhlelo luncane, alunalo ngisho ne-firewall noma izinsiza zokulumisa. Noma ubani oyidingayo angafaka ngaphezu kwalokho konke akudingayo.

6.7 Uhlelo alukwazi ukusetshenziswa, iphasiwedi ayikwazi ukushintshwa - no passwd. Akukho ping, akukho lutho!

Zikhona DNF. Noma le nketho yokufaka akuyona eyakho - sebenzisa ikhithi yokusabalalisa evela kubathuthukisi.

6.8 Ikuphi i-SWAP? Angeke ngikwazi ukuphila ngaphandle kwakhe!

Ingabe kuliqiniso? Uma kunjalo kulungile:

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 Ngingathanda ukulanda ngokushesha isithombe esenziwe ngomumo ngendawo yokufinyelela ye-Wi-Fi emisiwe!

Ukulungiselela isifaki "sawo wonke umuntu" kuzodinga isikhathi nomzamo. Uma (ngokungazelelwe!) othile ethola ngempela lokhu okuthakazelisayo futhi kudingekile, sibhalele futhi sizofika nokuthile.

Ngizoqeda ngalokhu.

Ngifisela wonke umuntu ukusefa okuphephile nokulawula ingqalasizinda!

Source: www.habr.com

Engeza amazwana