Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapa router ea raspberry e nang le katiba e putsoa)

Sengoloa Raspberry Pi + CentOS = Wi-Fi Hotspot (kapa router ea raspberry e nang le katiba e khubelu) Ke buile ka mokhoa oa ho fetola Raspberry sebakeng sa phihlello se se nang mohala ho sebelisa sistimi ea ts'ebetso ea CentOS. Ka ho kopanya router ea ka ea lapeng ho latela setšoantšo sena, ke ile ka khotsofatsa maikutlo a ka a boqapi mme ka fumana khotsofalo ea kelello bakeng sa karolo ea bohlokoa ea meaho ea ka e mabothobotho. Leha ho le joalo, maikutlo a ho se phethehe ha tharollo le boikutlo ba phetheho bo ka hare bo ile ba ntšoenya: “phello e sa phethahalang ea mosebetsi ha e na tokelo ea ho ba teng.” Khopolo ea hore “se nepahetseng se ka finyelloa ebile se lokela ho finyelloa” ha ea ka ea ntlohela le hanyenyane feela.

Mme ka tsatsi le leng, ho e 'ngoe ea liforomo tsa sehlooho, ke ile ka kopana le puisano e mabapi le botebo ba lits'ebetso tse teng tsa Raspberry (aarch64 vs armhfp): eo 64-bit OS e ka khonang, ha e le hantle, ea sebetsa ho Raspberry version 3. ++?

CentOS ea ka e ratoang bakeng sa meralo ea ARM e tsoang "Userland" e ne e sa potlaka ho fetohela mofuta oa morao-rao oa kernel ebe o fetoha 64-bit. 'Me polokelo ea EPEL, e hokahaneng ho tsoa ho Molimo o tseba moo ntle le signature ea dijithale, e ne e le toro e mpe borokong ba ka bo sa phomole ...

Ha ke bua ke le molateli oa liphaello tse thehiloeng ho RPM, ke ile ka makala ha ke fumana hore OS ea Raspberry e lebetsoe ka botlalo lipuisanong. Fedora! 'Me sena ho sa tsotellehe taba ea hore ho lokolloa ha eona
ho tsoa ho mofuta oa 28 e tšehetsa ka molao Raspberry Pi 3B+ ka mofuta oa 64-bit!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapa router ea raspberry e nang le katiba e putsoa)
Sehloohong sena ke tla bua ka mokhoa oa ho kenya Fedora (aarch64) mabapi le Raspberry Pi 3 Mohlala B + в tshebetso e fokolang e eketsehileng. Ke tla bua ka bokhutšoanyane ka likarolo tsa ho phahamisa sebaka sa phihlello sa Wi-Fi, se bonts'itsoeng ka lebaka la ts'ebetso ea teko ea tlhophiso ea ka ea pele. CentOS 7.

0. Seo o tla se hloka

Lintho tsohle li tšoana le tse thathamisitsoeng sehloohong se fetileng:

  • Raspberry Pi 3 Mohlala oa B +;
  • microSD> = 4GB (hamorao u ka "fetisetsa" tsamaiso ho koloi ea 2GB);
  • Sebaka sa ho sebetsa se nang le Linux le sebali sa karete ea microSD;
  • Khokahano ea marang-rang e nang le marang-rang pakeng tsa Raspberry le setsi sa mosebetsi sa Linux (tabeng ena, ha ho na lisebelisoa tse eketsehileng le keyboard e tla hlokahala bakeng sa ho seta), phihlello ea inthanete ho tsoa lisebelisoa ka bobeli;
  • Tsebo e tsoetseng pele ho Linux (ho tseba le ho se tšabe: arotsoe, dd и mkfs).

E ts'oanang le ho pheta-pheta lfs-ho haha ​​​​Linux ea hau, setšoantšo sa kabo ea Fedora se tla sebelisoa, ebe se thehiloe ho sona, ho tla etsoa tsamaiso e fokolang (ntle le "ho bokella ho tsoa mohloling").

1. Ho kenngoa ha kabo ea pele

Likhokahano tsa setšoantšo se tala sa sistimi Marang-rang:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Kamora ho e rekota ho microSD le pele o e sebelisa, o hloka ho:

  1. Eketsa "motso" oa sistimi ea faele (karohano ea 3, 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. Tlosa SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Tlosa Wizate ea Pele ea ho Seta:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Dumella ho kena ka 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
    

Hona joale o ka khoasolla "raspberry" ho tsoa ho microSD ebe o hokela ho eona ka marang-rang.

Ho qala ho bata ho nka metsotso e ka bang halofo le halofo. TTX ea sistimi ka mor'a ho kenya:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapa router ea raspberry e nang le katiba e putsoa)

rpm -qa | wc -l
444

2. Ho bokella tsamaiso e fokolang

Ka bomalimabe, "kabo e fokolang" e tsoang ho bahlahisi e fetoha hole le mokhoa o itekanetseng oa tšebeliso ea lisebelisoa. Setšoantšo sa tsamaiso se ka etsoa se senyenyane le ho feta.

Ho etsa sena, o hloka ho tsamaisa script ho 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

Kamora ho tsamaisa script, subdirectory e tla etsoa bukeng ea hajoale ($P) e nang le litaba tsa motso oa khatiso e ncha e fokolang ea OS. U ka tima Raspberry 'me u khutlisetsa microSD setsing sa mosebetsi sa Linux.

3. Ho kenya tsamaiso e fokolang

Ho kenya ho itšetlehile ka ho kopitsa lifaele tse fokolang tsa "setšoantšo" sa OS (tse nkiloeng mohatong o fetileng) ho microSD e lokiselitsoeng ka ho khetheha libukeng tse nepahetseng.

Karete ea 2GB le likarolo tse peli ho eona li lekane:

  1. / boot / efi - EFI + FAT32, boot, 100MB;
  2. / (motso) - EXT4, sebaka sohle se setseng.

Kamora ho lokisa microSD le ho kopitsa lifaele ho eona, o hloka ho:

  • lokisa OS boot;
  • bulela marang-rang;
  • lokisa phihlello ka ssh.

Tokiso ea boot ke ho nka sebaka sa UUID ea likarolo tse lifaeleng:

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

le parameter bolokoa_keno= faeleng ea ho qetela

Ka faele:

microSD:/etc/fstab

u ka fumana litekanyetso tsa khale, le litekanyetso tsa hona joale (tse morao-rao) ho tlhahiso ea taelo:

blkid | grep mmcblk | sort

Ka mor'a ho nkela sebaka, u lokela hape ho lokisa litaba tse ka hare fstab ho microSD e le hore lintlha tsa lithaba li tsamaisane le li-UUID tse ncha.

Ts'ebetso ea marang-rang ha u qala ho bulela Raspberry e ka finyelloa ka "crutch" e nyane - theha sehokelo (ka moralo):

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

le faele:

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

Ka mor'a ho khoasolla ka katleho, hlophisa ho qala systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Ho fihlella ha Superuser ka ssh ho hlophisitsoe ka mokhoa o ts'oanang le mohato oa 1.

Ha u se u entse ntho e 'ngoe le e' ngoe ka hloko le ntle le liphoso, u ka tsamaisa microSD ho "raspberry" 'me u qale ho sebetsa le 64-bit OS ka phetolelo e fokolang e eketsehileng.

4. Tsamaiso e itokiselitseng

"Setšoantšo" sa sistimi e felileng, e entsoeng ho latela litaelo tse kaholimo, e ka khoasolloa sehokelong:
Fedora-Tiny-31-5.5.7-200.aarch64

Ena e tla ba polokelo e nang le lifaele tse peli: script ea ho kenya le TGZ e nang le lifaele tsa OS. Sebaka sa polokelo se hloka ho buloa setsing sa mosebetsi sa Linux, kenya microSD (karete ea 2GB e lekane) 'me u tsamaise sengoloa ka paramethara - lebitso la sesebelisoa:

./install /dev/mmcblk0

Hlokomela!

Ntle le litemoso leha e le life, sesebelisoa se tla hlophisoa 'me tsamaiso ea ts'ebetso e tla kenngoa ho eona.

Kamora ho etsa sengoloa ntle le liphoso, karete e ka hlophisoa hape ho "raspberry" mme ea sebelisoa: tšoasa ka dhcp, password - "1".

Sistimi e hlakotsoe ho li-ID tsohle le linotlolo, ke ka lebaka leo ts'ebetso e 'ngoe le e' ngoe e ncha e ikhethang.

Ke pheta hape, sistimi - bonyane! Ka hona, u se ke ua tšoha: DNF e teng, hore e sebetse u tla tlameha ho "qapela" e nepahetseng /etc/resolv.conf.

Ho qala ho bata ha Raspberry ho nka metsotsoana e ka bang 40. TTX ea sistimi ka mor'a ho kenya:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapa router ea raspberry e nang le katiba e putsoa)

rpm -qa | wc -l
191

5. WiFi

Ke tla bua hanyane ka likarolo tsa ho kenya ts'ebetsong sebaka sa phihlello sa Wi-Fi. Bakeng sa lintlha tse qaqileng, o ka sheba ho ea pele sehlooho.

EPEL ha e sa hlokahala - liphutheloana tsohle li teng polokelong ea molao.

Mohlomong ho ka ba molemo hore u tele dnsmasq, kaha Fedora, ho fapana le CentOS, e na le systemd-networkd ea morao-rao, e nang le lisebelisoa tse tloaelehileng tsa DHCP/DNS. Empa 'nete ke hore ho baetsi ba RHEL8 o hanne ho ts'ehetsa marang-rang a marang-rang ka eng kapa eng ntle le NM, ha e khothalletse tšepo bokamosong bo khanyang ba morero (scoundrels). Ka bokhutšoanyane, ha ke e-s'o e leke.

Ho feta moo, bakhanni ba hona joale ba adaptara ea Wi-Fi e hahelletsoeng ba ke ke ba "utsuoa" ho tsa kabo ea Raspbian, empa ba jarolleloa ka kotloloho ho tsoa ho. github.

Sena ke seo lifaele tsa firmware tsa Broadcom li shebahalang ka sona ho Raspberry ea ka (ka moralo):

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

Ntle le bona u ke ke ua fumana 5GHz/AC.

Mabapi le palo le mabitso a li-interfaces. Joale ke khothaletsa motho e mong le e mong hore a se ke a sebelisa "litšebeletso" tsa li-switches tsa software ntle le haeba ho hlokahala.borokho), e hlahisang mojaro o moholo ka har'a stack ea marang-rang le mokhoa oa ho tepella maikutlo. Haeba u sa rera ho ba le li-adapter tse ngata tse se nang mohala, u lokela ho sebelisa li-interfaces tsa 'mele feela. Ke na le li-Wi-Fi tse peli, kahoo ke li kopanya feela ka borokho ba software (le hoja u ka etsa ntle le sena ka ho sheba setupo sa hostapd ka tsela e fapaneng).

'Me ke rata ho reha li-interfaces.

Ho etsa sena ho Fedora o hloka ho theha sehokelo sa tšoantšetso:

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

'me joale ho tla khoneha ho fana ka mabitso a nang le moelelo ntle le ho sotha udev, empa ho sebelisoa feela systemd-networkd.

Mohlala, sena ke seo li-adapter tsa marang-rang ho router ea ka li bitsoang:

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

  • eth - e hahiloeng, ho hang - li-adapter tsa Wi-Fi tsa kantle (USB) li kopantsoe ka "borokho" lan;
  • wan - Adapter ea Ethernet eo Marang-rang a hoketsoeng ho eona.

Na u hlokometse? fq_code - ntho e ntle haholo. Hammoho le kernel e ncha ea Linux, ba etsa mehlolo ea 'nete ka har'a marang-rang a se nang mohala: "ho jarolleloa ha molapo o phoroselang" ho ke ke ha lebisa ho senyeha ha lebelo ka tšohanyetso har'a baahelani. Esita le IP-TV ea lehae e sebetsang "moea-le-moea" e nang le mocha o laetsoeng ha e "robe" ebile ha e "hoeleketsa" ho hang!

Faele ea tšebeletso ea daemon e bile le liphetoho tse nyane hostapd.

Hona joale e shebahala tjena (ho sebelisa mohlala oa adaptara e hahelletsoeng):

[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

Le "boselamose" hostapd-int.conf bakeng sa ho sebetsa ho 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 e nyane e entsoeng ho tsoa ho Ericsson A1018s ea ka:

(Khokelo ea Marang-rang - 100Mbit/sec)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapa router ea raspberry e nang le katiba e putsoa)
'Me qetellong, FAQ e nyenyane.

6. SEBAKA

6.1 Hobaneng u etsa router ea Wi-Fi ho Raspberry?

Motho a ka araba ka mokhoa o bonolo, joalo ka "ho ea khahlisa ho leka le tseo kaofela."

Empa ha e le hantle, ke bona eka taba ena e tebile haholo. Nakong ea Inthanete "e nang le mali", ho reka router ka lebenkeleng le ho lula e le makhoba ho moetsi oa eona ke tebello e nyahamisang haholo. Batho ba bangata ba se ba ntse ba utloisisa hore ho lula le CVE kapa kamore e ka morao e hahelletsoeng ha ho khonehe.

Ehlile, o ka fallela ho firmware ea WRT ho tsoa ho batho ba chesehelang. Mohlomong ho na le tšepo e eketsehileng ho bona, empa haeba u sa batle ho itšetleha ka bona, sebelisa sehlahisoa sa hau feela. Ha e le hantle, k'homphieutha e feletseng e le hore ntho e 'ngoe le e' ngoe e lefatšeng e ka kenngoa ho eona. Mabapi le routing, ehlile.

Ka hona, ho khetha "raspberry" ke mohato oa moruo feela: k'homphieutha ea sebele 'me ka nako e ts'oanang e theko e tlaase. Leha ho le joalo, mohlomong hape - ka "habeli" ea bona kahare.

6.2 Empa Raspberry ke "router e tlase": e liehang ebile e na le kou e le 'ngoe ea Ethernet!

Joaloka router ea lehae ea Wi-Fi, Raspberry e nkhotsofatsa ho feta. Ke se ke buile ka lebelo la moea ka holimo. Mme ho na le Ethernet e le 'ngoe feela, sehlahisoa se tšoanang se tsoang ho Apple se batla se tšoana!

Empa ka botebo, ehlile ke rata ho feta. 'Me ho sa tsotellehe hore ka tlung ea ka lisebelisoa tsohle li kopantsoe ka mohala, ka linako tse ling ho ntse ho hlokahala khokahanyo ea koporo. Bakeng sa maemo a joalo, ke na le "mobile hub" setokong:

sesebelisoa - ntho e kang enaRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapa router ea raspberry e nang le katiba e putsoa)

6.3 Haeba ena ke router, joale ha ho letho le boleloang ka "tuning" TCP / IP, hobane sena ke sa bohlokoa!

Ntle le ho theha marang-rang a marang-rang (tcp_fastopen, YeAH, joalo-joalo), sengoloa sena le se fetileng ha se koahele lintlha tse ling, haholo-holo, ts'ebetso ea ho lokisa microSD bakeng sa ts'ebeliso e nepahetseng (leha sets'oants'o se leka ho fomata karete ea memori ho tsela e qhekellang). Mokhoa oa ho ntlafatsa ha o fele, o hloka feela ho emisa ka nako.

6.4 Ke hobane'ng ha Fedora?

Hobane ke rata! Fedora ke "tsamaiso e tloaelehileng" bakeng sa li-geek, tseo sehlooho sena se hlileng se reretsoeng tsona. Nakong ea ho ngola, mohlomong ke eona feela OS eo bakeng sa Raspberry ka 64-bit version e tšehetsoeng ka molao ke basebetsi ba bohlokoa ba bahlahisi (bao ke sitoang ho ba emela. kernel 5.6).

6.5 Na Bluetooth ea sebetsa? Video/molumo/GPIO e joang?

Ha ke tsebe. Sengoloa se mabapi le ho kengoa ho fokolang ha sistimi le ts'ebeliso ea eona e latelang joalo ka router ea Wi-Fi.

6.6 Hobaneng lingoloa tsohle tse mabapi le CentOS/Fedora/RedHat li qala ka ho tima SELinux?

Hobane sistimi e nyane, ha e na le firewall kapa lisebelisoa tsa ho e theha. Mang kapa mang ea e hlokang a ka kenya hape tsohle tseo a li hlokang.

6.7 Sistimi e ke ke ea sebelisoa, password e ke ke ea fetoloa - ha ho passwd. Ha ho na ping, ha ho letho!

Ho na le DNF. Kapa khetho ena ea ho kenya ha se ea hau - sebelisa lisebelisoa tsa kabo ho tsoa ho bahlahisi.

6.8 SWAP e hokae? Nke ke ka phela ntle le eena!

Na ke 'nete? Ho lokile joale:

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 Ke kopa ho khoasolla hang-hang setšoantšo se seng se entsoe se nang le sebaka sa phihlello sa Wi-Fi!

Ho lokisetsa sehlomathisi "bakeng sa motho e mong le e mong" ho tla hloka nako le boiteko bo itseng. Haeba (ka tšohanyetso!) motho e mong a hlile a fumana sena se thahasellisang le se hlokahalang, re ngolle 'me re tla tla le ho hong.

Ke tla qetella ka sena.

Ke lakaletsa motho e mong le e mong ho surfing a bolokehile le taolo e phahameng holim'a meaho!

Source: www.habr.com

Eketsa ka tlhaloso