Rasipiberi Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa cha buluu)

M'nkhaniyi Rasipiberi Pi + CentOS = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa chofiyira) Ndinalankhula za njira yosinthira Raspberry kukhala malo opanda zingwe pogwiritsa ntchito makina opangira a CentOS. Posonkhanitsa rauta yanga yakunyumba molingana ndi chojambulachi, ndidakhutiritsa malingaliro anga opanga ndikulandila mtendere wamumtima pazinthu zofunika kwambiri panyumba yanga yabwino. Komabe, kumverera kwa kusakwanira kwa yankho ndi kufunitsitsa kwamkati mwangwiro kunandivutitsa: "zotsatira zopanda ungwiro za ntchito zilibe ufulu kukhalapo." Lingaliro lakuti “zoyenera lingathe ndipo liyenera kukwaniritsidwa” silinandisiye kwa mphindi imodzi.

Ndiyeno tsiku lina, pa imodzi mwamabwalo akuluakulu, ndinapeza zokambirana za kuya kwa machitidwe omwe alipo a Raspberry (aarch64 vs armhfp): omwe 64-bit OS akhoza, makamaka, ndikugwira ntchito pa Raspberry version 3. ++?

CentOS wanga wokondedwa wa zomangamanga za ARM kuchokera ku "Userland" sanafulumire kusintha mtundu waposachedwa wa kernel ndikusintha kukhala 64-bit. Ndipo chosungira cha EPEL, cholumikizidwa kuchokera kwa Mulungu chimadziwa komwe popanda siginecha ya digito, chinali chovuta kwambiri m'tulo tosapumira ...

Kulankhula ngati wotsatira kugawa kochokera ku RPM, ndidadabwa kupeza kuti OS ya Raspberry idayiwalika pazokambirana. Fedora! Ndipo izi ngakhale kuti kumasulidwa kwake
kuchokera ku mtundu 28 imathandizira Raspberry Pi 3B+ mu mtundu wa 64-bit!

Rasipiberi Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa cha buluu)
M'nkhaniyi ine kulankhula za unsembe njira Fedora (aarch64) pa Rasipiberi Pi 3 Chitsanzo B + в magwiridwe antchito ocheperako. Ndikhala mwachidule pazomwe ndikukweza malo olowera pa Wi-Fi, odziwika chifukwa cha kuyesa kwa kasinthidwe kanga kakale pa. CentOS 7.

0. Zomwe mudzafunika

Zonse ndi zofanana ndi zomwe zalembedwa m'nkhani yapitayi:

  • Raspberry Pi 3 Model B +;
  • microSD> = 4GB (kenako mukhoza "kusamutsa" dongosolo ku 2GB pagalimoto);
  • Workstation yokhala ndi Linux ndi owerenga makhadi a microSD;
  • Kulumikizana kwa netiweki yamawaya pakati pa Raspberry ndi malo ogwirira ntchito a Linux (panthawiyi, palibe chowunikira china ndi kiyibodi chomwe chidzafunikire kukhazikitsa), kupeza intaneti kuchokera pazida zonse ziwiri;
  • Luso lapamwamba mu Linux (kudziwa komanso osachita mantha: adagawikana, dd и alireza).

Zofanana ndi zobwerezabwereza lfs-kumanga Linux yanu, chithunzi chogawa cha Fedora chidzagwiritsidwa ntchito, ndiyeno potengera izo, dongosolo lochepa lidzapangidwa (popanda "kulemba kuchokera ku gwero").

1. Kuyika kwa kugawa koyambirira

Ma Coordinates of the raw image of the system on the Internet:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Mukajambula pa microSD ndi musanagwiritse ntchito, muyenera:

  1. Wonjezerani "muzu" wamafayilo (gawo lachitatu, 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. Letsani SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Chotsani Wizard Yoyambira Yoyambira:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Lolani kulowa kudzera pa 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
    

Tsopano mutha kutsitsa "rasipiberi" kuchokera ku microSD ndikulumikizana nayo kudzera pa intaneti.

Kuyamba kozizira kumatenga pafupifupi mphindi imodzi ndi theka. TTX ya dongosolo pambuyo potsegula:

Rasipiberi Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa cha buluu)

rpm -qa | wc -l
444

2. Kusonkhanitsa dongosolo lochepa

Tsoka ilo, "kugawa pang'ono" kuchokera kwa omanga kumakhala kutali kwambiri ndi kugwiritsa ntchito zinthu zochepetsetsa. Chithunzi chadongosolo chikhoza kukhala chochepa kwambiri.

Kuti muchite izi, muyenera kuyendetsa script pa 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

Pambuyo poyendetsa script, subdirectory idzapangidwa m'ndandanda wamakono ($P) ndi zomwe zili muzu wa mtundu wocheperako wa OS. Mutha kuzimitsa Raspberry ndikubweza microSD ku Linux workstation.

3. Kuyika kachitidwe kakang'ono

Kuyika kumayambira mpaka kukopera mafayilo ochepa a "chithunzi" cha OS (omwe adapezeka pagawo lapitalo) pa microSD yokonzedwa mwapadera m'makalata oyenera.

Khadi la 2GB ndi magawo awiri pa izo ndizokwanira:

  1. / boot / efi - EFI + FAT32, boot, 100MB;
  2. / (muzu) - EXT4, malo onse otsala.

Mukakonza microSD ndikukopera mafayilo, muyenera:

  • kukonza OS boot;
  • kuyatsa maukonde;
  • sinthani kulowa kudzera pa ssh.

Kukonzekera kwa boot ndikulowetsa UUID m'mafayilo:

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

ndi parameter osungidwa_kulowa= mu fayilo yomaliza

Mu fayilo:

microSD:/etc/fstab

mutha kupeza zikhalidwe zakale, ndi zomwe zilipo (zatsopano) pazotsatira zalamulo:

blkid | grep mmcblk | sort

Mukasintha, muyeneranso kukonza zomwe zili mkati fstab pa microSD kuti malo okwera agwirizane ndi ma UUID atsopano.

Magwiridwe a netiweki mukayatsa Rasipiberi kwa nthawi yoyamba akhoza kukwaniritsidwa ndi "ndodo" yaying'ono - pangani ulalo (mwadongosolo):

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

ndi fayilo:

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

Mukatsitsa bwino, konzekerani kukhazikitsa systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Kufikira kwa Superuser kudzera ssh kumakonzedwa mofanana ndi sitepe 1.

Mukachita zonse mosamala komanso popanda zolakwika, mutha kusuntha microSD mu "rasipiberi" ndikuyamba kugwira ntchito ndi 64-bit OS mu mtundu wocheperako.

4. Okonzeka dongosolo

"Chithunzi" cha makina omalizidwa, opangidwa molingana ndi malangizo omwe ali pamwambapa, akhoza kutsitsidwa kuchokera pa ulalo:
Fedora-Tiny-31-5.5.7-200.aarch64

Ichi chidzakhala chosungira chokhala ndi mafayilo awiri: script yoyika ndi TGZ yokhala ndi mafayilo a OS. Zosungirako ziyenera kutsegulidwa pa Linux workstation, ikani microSD (khadi la 2GB ndilokwanira) ndikuyendetsa script ndi parameter - dzina la chipangizocho:

./install /dev/mmcblk0

Samalani!

Popanda machenjezo aliwonse, chipangizocho chidzasinthidwa ndipo makina ogwiritsira ntchito adzaikidwapo.

Pambuyo pochita zolakwika, khadi likhoza kusinthidwa kukhala "rasipiberi" ndikugwiritsidwa ntchito: kugwira kudzera pa dhcp, mawu achinsinsi - "1".

Dongosolo limachotsedwa ma ID ndi makiyi onse, chifukwa chake kukhazikitsa kwatsopano kulikonse kumakhala kwapadera.

Ndikubwereza kachiwiri, dongosolo - zochepa! Chifukwa chake, musachite mantha: DNF ilipo, kuti igwire ntchito muyenera "kuyambitsa" yolondola /etc/resolv.conf.

Kuyamba kozizira kwa Raspberry kumatenga pafupifupi masekondi 40. TTX ya dongosolo pambuyo potsegula:

Rasipiberi Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa cha buluu)

rpm -qa | wc -l
191

5. Wifi

Ndikhala ndikuyang'ana pang'ono pazomwe mungagwiritse ntchito polowera pa Wi-Fi. Kuti mumve zambiri, mutha kutchulanso zanga zam'mbuyomu nkhani.

EPEL sikufunikanso - mapaketi onse ali m'malo ovomerezeka.

Kungakhale koyenera kusiya dnsmasq, popeza Fedora, mosiyana ndi CentOS, ili ndi systemd-networkd yaposachedwa kwambiri, yomwe ili ndi ma seva a DHCP/DNS okhazikika. Koma zoona zake n'zakuti mu RHEL8 Madivelopa anakana kuthandizira stack network ndi china chilichonse kupatula NM, sichilimbikitsa chidaliro pa tsogolo lowala la polojekitiyi (scoundrels). Mwachidule, sindinayese.

Kupitilira apo, madalaivala apano a adapter ya Wi-Fi yolumikizidwa sangathe "kubedwa" pakugawa kwa Raspbian, koma kutsitsidwa mwachindunji kuchokera. github.

Izi ndi zomwe mafayilo a firmware a Broadcom amawonekera pa Raspberry wanga (mwadongosolo):

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

Popanda iwo simupeza 5GHz/AC.

Ponena za nambala ndi mayina a zolumikizira. Tsopano ndikupangira aliyense kuti asagwiritse ntchito "ntchito" zamapulogalamu apulogalamu pokhapokha ngati kuli kofunikira (mlatho), zomwe zimabweretsa katundu wambiri pamanetiweki ndikuwongolera njira. Ngati simukukonzekera kukhala ndi ma adapter opanda zingwe angapo, muyenera kugwiritsa ntchito mawonekedwe akuthupi okha. Ndili ndi ma Wi-Fi awiri, kotero ndimangowaphatikiza kukhala mlatho wamapulogalamu (ngakhale mutha kuchita popanda izi poyang'ana kukhazikitsidwa kwa hostapd mosiyana).

Ndipo ndimakonda kusintha ma interfaces.

Kuti muchite izi mu Fedora muyenera kupanga ulalo wophiphiritsa:

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

ndiyeno kudzakhala kotheka kutchula mayina atanthauzo popanda kukokomeza udev, koma kugwiritsa ntchito systemd-networkd.

Mwachitsanzo, izi ndizomwe ma adapter a network mu rauta yanga amatchedwa:

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 - yomangidwa, p - ma adapter akunja (USB) a Wi-Fi amasonkhanitsidwa kukhala "mlatho" LAN;
  • wan - Adaputala ya Ethernet momwe intaneti imalumikizidwa.

Kodi munazindikira? fq_kodi - chinthu chozizira kwambiri. Pamodzi ndi kernel yatsopano ya Linux, amagwira ntchito zodabwitsa pazida zopanda zingwe: "kutsitsa" kowopsa sikungadzetse kuthamanga kwadzidzidzi pakati pa oyandikana nawo. Ngakhale IP-TV yapanyumba ikugwira ntchito "pamlengalenga" yokhala ndi tchanelo chodzaza "sasweka" komanso "sachita chibwibwi" konse!

Fayilo ya service ya daemon yasinthidwa pang'ono hostapd.

Tsopano zikuwoneka motere (pogwiritsa ntchito chitsanzo cha adapter yomangidwa):

[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

Ndipo "matsenga" hostapd-int.conf yogwira ntchito mu 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 yaying'ono yopangidwa kuchokera ku Ericsson A1018s yanga:

(Kulumikizana kwa intaneti - 100Mbit / sec)Rasipiberi Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa cha buluu)
Ndipo potsiriza, FAQ yaying'ono.

6. FAQ

6.1 Chifukwa chiyani kupanga rauta ya Wi-Fi pa Raspberry?

Wina akhoza kuyankha mophweka, monga "ndizosangalatsa kuyesa ndi zonsezo."

Koma kwenikweni, zikuwoneka kwa ine kuti mutuwu ndi wovuta kwambiri. M'nthawi ya intaneti "yamagazi", kugula rauta m'sitolo ndikukhalabe ogwidwa kwa wopanga ndi chiyembekezo chokhumudwitsa kwambiri. Anthu ambiri amamvetsetsa kale kuti kukhala ndi CVE kapena kumangidwa kumbuyo sikutheka.

Zachidziwikire, mutha kusamukira ku firmware ya WRT kuchokera kwa okonda. Mwina pali chidaliro chochulukirapo mwa iwo, koma ngati simukufuna kudalira iwo, ingogwiritsani ntchito mankhwala anu. Momwemo, kompyuta yodzaza ndi zonse kuti chilichonse padziko lapansi chikwaniritsidwe. Pankhani ya mayendedwe, ndithudi.

Chifukwa chake, kusankha "rasipiberi" ndikusuntha kwachuma: kompyuta yeniyeni komanso yotsika mtengo. Ngakhale, mwinanso - ndi "awiri" awo mkati.

6.2 Koma Raspberry ndi "rauta otsika": pang'onopang'ono komanso ndi doko limodzi la Ethernet!

Monga rauta yapanyumba ya Wi-Fi, Rasipiberi ndiyabwino kuposa ine. Ndanena kale za liwiro la mpweya pamwambapa. Ndipo pali Ethernet imodzi yokha, chabwino, muzinthu zofanana kuchokera ku Apple ndizofanana!

Koma mozama, ndithudi, ndikufuna zambiri. Ndipo ngakhale kuti m'nyumba mwanga zipangizo zonse zimagwirizanitsidwa popanda zingwe, nthawi zina kugwirizana kwa mkuwa kumafunikabe. Pazochitika zotere, ndili ndi "mobile hub" yomwe ilipo:

chipangizo - chinachake chonga ichiRasipiberi Pi + Fedora (aarch64) = Wi-Fi Hotspot (kapena rauta ya rasipiberi yokhala ndi chipewa cha buluu)

6.3 Ngati iyi ndi rauta, ndiye kuti palibe chomwe chimanenedwa za "kukonza" TCP / IP, chifukwa izi ndizofunikira!

Kuphatikiza pakukhazikitsa ma network stack (tcp_fastopen, YeAH, etc.), iyi ndi nkhani yapitayi sizikuphimba ma nuances ena, makamaka, njira yokonzekera microSD kuti igwiritse ntchito bwino (ngakhale woyikirayo amayesa kupanga memori khadi mkati. njira yosavuta). Njira yosinthira ndiyosatha, muyenera kuyimitsa nthawi.

6.4 Chifukwa chiyani Fedora?

Chifukwa ndimakonda! Fedora ndi "mainstream" system ya geeks, omwe nkhaniyi idawakonzera. Panthawi yolemba, mwina OS yokhayo yomwe Raspberry mu 64-bit version imathandizidwa ndi antchito ofunikira (omwe sindingathe kudikira). kernel 5.6).

6.5 Kodi Bluetooth imagwira ntchito? Kodi kanema/sound/GPIO ili bwanji?

Sindikudziwa. Nkhaniyi ikunena za kukhazikitsidwa kochepa kwa kachitidweko ndikugwiritsa ntchito kwake ngati rauta ya Wi-Fi.

6.6 Chifukwa chiyani zolemba zonse za CentOS/Fedora/RedHat zimayamba ndikuletsa SELinux?

Chifukwa dongosololi ndi locheperako, ilibe ngakhale chozimitsa moto kapena zida zoikhazikitsira. Aliyense amene akufunikira akhoza kukhazikitsa zonse zomwe akufuna.

6.7 Dongosolo silingagwiritsidwe ntchito, mawu achinsinsi sangasinthidwe - palibe passwd. Palibe ping, palibe!

pali DNF. Kapena njira yoyika iyi si yanu - gwiritsani ntchito zida zogawa kuchokera kwa opanga.

6.8 Kodi SWAP ili kuti? Sindingathe kukhala popanda iye!

Ndi zoona? Chabwino ndiye:

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 Ndikufuna kutsitsa nthawi yomweyo chithunzi chopangidwa kale chokhala ndi malo ofikira a Wi-Fi!

Kukonzekera okhazikitsa "kwa aliyense" kudzafuna nthawi ndi khama. Ngati (mwadzidzidzi!) Wina apezadi izi zosangalatsa komanso zofunika, lembani kwa ife ndipo tidzabwera ndi chinachake.

Ndimaliza ndi izi.

Ndikulakalaka aliyense aziyenda motetezeka komanso kuti aziwongolera zomanga!

Source: www.habr.com

Kuwonjezera ndemanga