Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kana raspberry router ine ngowani yebhuruu)

Chinyorwa Raspberry Pi + CentOS = Wi-Fi Hotspot (kana raspberry router ine ngowani tsvuku) Ndakataura nezve nzira yekushandura Raspberry kuita isina waya yekuwana nzvimbo uchishandisa iyo CentOS inoshanda sisitimu. Nekuunganidza router yangu yekumba zvinoenderana nedhirowa iyi, ndakagutsa hunhu hwangu hwekugadzira uye ndakawana kukwidziridzwa kwerunyararo rwepfungwa kune chinhu chakakosha chezvivakwa zvangu zvinotonhorera. Nekudaro, manzwiro ekusakwana kwemhinduro uye mukati mekuda kukwana zvakandishungurudza: "mhedzisiro isina kukwana yebasa haina kodzero yekuvepo." Pfungwa yokuti “zvakanakisisa zvinogona uye zvinofanira kuitwa” hazvina kundisiya kweminiti.

Zvino rimwe zuva, pane imwe yemaforamu ezvidzidzo, ndakasangana nenhaurirano nezve kudzika kweiyo iripo masisitimu ekushandisa eRaspberry (aarch64 vs armhfp): iyo 64-bit OS inogona, mumusimboti, kukwana uye kushanda paRaspberry vhezheni 3. ++?

Wangu wandinoda CentOS weArM architecture kubva ku "Userland" haana kukurumidza kushandura kune yazvino vhezheni yekernel uye kushandura kuita 64-bit. Uye iyo EPEL repository, yakabatana kubva kuna Mwari inoziva kupi pasina siginecha yedhijitari, yaive yakashata muhope dzangu dzisina kugadzikana ...

Ndichitaura semuteveri weRPM-based distributions, ndakashamisika kuona kuti OS yeRaspberry yakanga yakanganwa zvachose muhurukuro. Fedora! Uye izvi pasinei nokuti kusunungurwa kwayo
kubva mushanduro 28 inotsigira zviri pamutemo Raspberry Pi 3B+ mune 64-bit vhezheni!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kana raspberry router ine ngowani yebhuruu)
Muchikamu chino ndichataura pamusoro pekugadzirisa nzira Fedora (aarch64) pamusoro Raspberry Pi 3 Mhando B + в kuwedzera kuita kushoma. Ini ndichataura muchidimbu nezve maficha ekusimudza nzvimbo yeWi-Fi yekupinda, yakaonekwa semhedzisiro yekushanda kwekuyedza kwekumisikidzwa kwangu kwekare pa. CentOS 7.

0. Zvauchazoda

Zvose zvakafanana nezvakanyorwa munyaya yapfuura:

  • Raspberry Pi 3 Muenzaniso B+;
  • microSD> = 4GB (gare gare unogona "kutamisa" system kune 2GB drive);
  • Workstation neLinux uye microSD kadhi muverengi;
  • Wired network yekubatanidza pakati peRaspberry neLinux workstation (mune iyi kesi, hapana yekuwedzera yekutarisa uye keyboard ichadikanwa pakuseta), kuwana Internet kubva kune ese maturusi;
  • Unyanzvi hwepamusoro muLinux (kuziva uye kusatya: akaparadzaniswa, dd и mkfs).

Zvakafanana nekudzokorora lfs-kuvaka yako Linux, iyo Fedora yekugovera mufananidzo ichashandiswa, uye zvadaro zvichibva pairi, diki system ichagadzirwa (pasina "kuunganidza kubva kunobva").

1. Kuiswa kwekugovera kwepakutanga

Coordinates emufananidzo wakasvibira weiyo system paInternet:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Mushure mekurekodha pamicroSD uye usati waishandisa, unofanirwa:

  1. Wedzera iyo "mudzi" wefaira system (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. Dzima SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Bvisa Yekutanga Setup Wizard:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Bvumira kupinda kuburikidza ne 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
    

Iye zvino unogona kudhawunirodha "raspberry" kubva kumicroSD uye batanidza kwairi kuburikidza netiweki.

Kutanga kunotonhora kunotora maminitsi imwe nehafu. TTX yehurongwa mushure mekurodha:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kana raspberry router ine ngowani yebhuruu)

rpm -qa | wc -l
444

2. Kuunganidza hurongwa hushoma

Nehurombo, iyo "kugovera kushoma" kubva kune vanogadzira inoshanduka kuva kure kubva kune yakanyanya mwero mukushandisa zviwanikwa. Mufananidzo wehurongwa unogona kuitwa kunyange diki.

Kuti uite izvi, unofanirwa kumhanya script paMalinka:

#!/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

Mushure mekushandisa script, subdirectory ichagadzirwa mune yazvino dhairekitori ($P) nezviri mukati memudzi weiyo diki OS edition. Unogona kudzima Raspberry uye wodzosera iyo microSD kuLinux workstation.

3. Kuiswa kwemaitiro mashoma

Kuiswa kunowira pasi kukopa mashoma OS "mufananidzo" mafaera (akawanikwa munhanho yapfuura) pane yakanyatsogadzirirwa microSD mumadhairekitori akakodzera.

A 2GB kadhi uye zvikamu zviviri pairi zvakakwana:

  1. / bhuti / efi - EFI + FAT32, bhutsu, 100MB;
  2. / (mudzi) - EXT4, nzvimbo yese yasara.

Mushure mekugadzirira iyo microSD uye kukopa mafaera kwairi, unofanirwa:

  • gadzirisa OS boot;
  • vhura network;
  • gadzirisa kupinda kuburikidza ne ssh.

Iyo bhutsu inogadzirisa ndeye kutsiva iyo UUID yezvikamu mumafaira:

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

uye parameter saved_entry= mufaira rekupedzisira

Mufaira:

microSD:/etc/fstab

iwe unogona kuwana hunhu hwekare, uye hwazvino (up-to-date) kukosha mune yekuraira kubuda:

blkid | grep mmcblk | sort

Mushure mekutsiva, iwe unofanirwawo kugadzirisa zviri mukati fstab pane microSD kuitira kuti mapoinzi egomo aenderane neiyo itsva partition UUIDs.

Kushanda kwetiweki paunotanga kuvhura Raspberry kunogona kuwanikwa nediki "crutch" - gadzira chinongedzo (schematically):

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

uye faira:

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

Mushure mekubudirira kudhawunirodha, rongedza kutanga systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Superuser kuwana kuburikidza ne ssh inogadziriswa zvakafanana kune nhanho 1.

Kana waita zvese nemazvo uye pasina zvikanganiso, unogona kufambisa iyo microSD mu "raspberry" uye wotanga kushanda ne64-bit OS mune imwe yakawedzera shoma shanduro.

4. Yakagadzirira system

Iyo "mufananidzo" weiyo yapera sisitimu, yakagadzirwa zvinoenderana nemirairo iri pamusoro, inogona kutorwa kubva pane iyi link:
Fedora-Tiny-31-5.5.7-200.aarch64

Iyi ichava dura rine mafaera maviri: iyo yekuisa script uye TGZ ine OS mafaera. Iyo chengetedzo inoda kuvhurwa paLinux workstation, isa microSD (2GB kadhi yakakwana) uye mhanyisa script neparameter - zita rechishandiso:

./install /dev/mmcblk0

Chenjera!

Pasina chero yambiro, mudziyo uchagadziriswa uye inoshanda sisitimu ichaiswa pairi.

Mushure mekuita kukanganisa-isina script, kadhi rinogona kurongwa zvakare mu "raspberry" uye rinoshandiswa: kubata kuburikidza nedhcp, password - "1".

Iyo sisitimu inocheneswa maID ese nemakiyi, ndosaka kuisirwa kutsva kwega kwega kwakasiyana.

Ndinodzokorora zvakare, iyo system - shoma! Naizvozvo, usavhunduke: DNF iripo, kuti ishande uchafanirwa "kugadzira" iyo chaiyo /etc/resolv.conf.

Kutanga kunotonhora kweRaspberry kunotora anenge 40 seconds. TTX yehurongwa mushure mekurodha:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kana raspberry router ine ngowani yebhuruu)

rpm -qa | wc -l
191

5. WiFi

Ini ndichagara zvishoma pane maficha ekushandisa Wi-Fi yekuwana nzvimbo. Kuti uwane mamwe mashoko, unogona kutarisa kune yangu yapfuura chinyorwa.

EPEL haichadiwi - mapakeji ese ari muzvinyorwa zvepamutemo.

Zvingava zvakakodzera kurega dnsmasq, sezvo Fedora, kusiyana neCentOS, ine ichangoburwa systemd-networkd, ine yakajairika yakavakirwa-mukati DHCP/DNS maseva. Asi chokwadi ndechekuti muRHEL8 vagadziri yakaramba kutsigira network stack nechimwe chinhu kunze kweNM, haisi kukurudzira kuvimba mune ramangwana rakajeka reprojekti (scoundrels). Muchidimbu, handina kumbozviedza.

Kupfuurirazve, madhiraivha azvino eiyo yakavakirwa-mukati Wi-Fi adapta haigone "kubiwa" kubva kuRaspbian kugovera, asi kutorwa zvakananga kubva. github.

Izvi ndizvo zvinotaridzika seBroadcom firmware mafaera paRaspberry yangu (schematically):

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

Pasina ivo hauwane 5GHz/AC.

Nezve nhamba nemazita enzvimbo dzekubatanidza. Zvino ini ndinokurudzira zvakasimba kumunhu wese kuti asashandise "masevhisi" ekuchinja kwesoftware kunze kwekunge zvichidikanwa (zambuko), iyo inosuma yakakosha mutoro mune network stack uye kudzvinyirira nzira. Kana iwe usingaronge kuve nemaadapta akawanda asina waya, saka iwe unofanirwa kushandisa chete nzvimbo dzemuviri. Ndine maWi-Fi maviri, saka ndinosanganisa iwo chete kuita bhiriji resoftware (kunyangwe iwe uchigona kuita pasina izvi nekutarisa iyo hostapd setup zvakasiyana).

Uye ini ndinoda renaming interfaces.

Kuti uite izvi muFedora unofanirwa kugadzira chinongedzo chekufananidzira:

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

uye zvino zvinozokwanisika kupa mazita ane musoro pasina kupuruzira udev, asi kushandisa systemd-networkd chete.

Semuenzaniso, izvi ndizvo zvinodaidzwa nemadhiri etiweki mune yangu router:

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 - yakavakirwa mukati, ext - ekunze (USB) maadapta eWi-Fi akaungana kuita "zambuko" Lan;
  • wan - Ethernet adapta mune iyo Internet yakabatana.

Wazviona here? fq_codel - chinhu chakanaka chaizvo. Pamwe chete neLinux kernel nyowani, ivo vanoshanda zvishamiso chaizvo muwaya isina waya: inotyisa "torrent download" haizotungamira mukudzikira kamwe kamwe kwekumhanya pakati pevavakidzani. Kunyangwe imba yeIP-TV inoshanda "pamusoro pemhepo" ine chiteshi chakaremerwa "haiputsi" uye "haiti kundandama" zvachose!

Iyo daemon sevhisi faira yaita shanduko diki hostapd.

Izvozvi zvinotaridzika seizvi (uchishandisa muenzaniso weiyo yakavakirwa-mukati adapta):

[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

Uye iyo "magic" hostapd-int.conf yekushanda mu5GHz/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]

Idiki photoshop yakagadzirwa kubva yangu Ericsson A1018s:

(Kubatana kweInternet - 100Mbit/sec)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kana raspberry router ine ngowani yebhuruu)
Uye pakupedzisira, diki FAQ.

6. MIBVUNZO

6.1 Sei uchigadzira Wi-Fi router paRaspberry?

Mumwe anogona kupindura zviri nyore, senge "zvinonakidza kuyedza uye zvese izvo."

Asi kutaura zvazviri, zvinoratidzika kwandiri kuti musoro wacho wakakomba. Munguva yeInternet "yeropa", kutenga router muchitoro uye kuramba uchibatwa kumugadziri wayo itarisiro yakaipa kwazvo. Vanhu vazhinji vanotonzwisisa kuti kugara neCVE kana yakavakirwa-mukati kumashure hazvigoneke.

Ehe, iwe unogona kutamira kune WRT firmware kubva kune vanofarira. Panogona kunge paine kuvimba kwakawanda mavari, asi kana iwe usingade kuvimba navo, saka ingoshandisa chako chigadzirwa. Zvakanaka, komputa yakazara-yakazara kuitira kuti zvese zviri munyika zvigone kuitwa pairi. Panyaya yekufambisa, hongu.

Naizvozvo, kusarudza "raspberry" inzira yehupfumi chete: komputa chaiyo uye panguva imwechete isingadhuri. Kunyangwe, pamwe zvakare - ne "mbiri" yavo mukati.

6.2 Asi Raspberry i "yakaderera router": inononoka uye ine imwe Ethernet port!

Semusha Wi-Fi router, iyo Raspberry inondigutsa kupfuura ini. Ndatotaura nezve air speed kumusoro. Uye kune imwe chete Ethernet, zvakanaka, mune yakafanana chigadzirwa kubva kuApple yakafanana!

Asi zvakakomba, hongu ndinoda zvimwe. Uye zvisinei nekuti mumba mangu zvese zvishandiso zvakabatana zvisina waya, dzimwe nguva kubatana kwemhangura kuchiri kudikanwa. Panyaya dzakadai, ndine "mobile hub" mustock:

mudziyo - chinhu chakadaiRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (kana raspberry router ine ngowani yebhuruu)

6.3 Kana iyi iri router, saka hapana chinonzi "tuning" TCP / IP, nokuti izvi zvakakosha!

Pamusoro pekumisikidza network stack (tcp_fastopen, YeAH, nezvimwewo), ichi uye chinyorwa chakapfuura hachifukidze mamwe nuances, kunyanya, maitiro ekugadzirira microSD kuti ishandiswe zvakakwana (kunyangwe muisi achiedza kufomatika memori kadhi mukati. nzira inonyengera). Iyo nzira yekuvandudza haiperi, iwe unongoda kumira nenguva.

6.4 Nei Fedora?

Nokuti ndinoda! Fedora i "mainstream" system ye geeks, iyo chinyorwa ichi chakagadzirirwa chaizvo. Panguva yekunyora, pamwe iyo chete OS iyo yeRaspberry mu64-bit vhezheni inotsigirwa zviri pamutemo neakakosha vashandi vevagadziri (kubva vandisingakwanise kumirira. kernel 5.6).

6.5 Ko Bluetooth inoshanda here? Vhidhiyo/ruzha/GPIO yakamira sei?

Kusaziva. Chinyorwa chiri pamusoro pekuiswa kushoma kweiyo sisitimu uye kushandiswa kwayo kunotevera seWi-Fi router.

6.6 Nei zvese zvinyorwa nezve CentOS/Fedora/RedHat zvichitanga nekudzima SELinux?

Nekuti iyo sisitimu ishoma, haina kana firewall kana zvishandiso zvekuimisa. Ani nani anoida anogona kuisa nekuwedzera zvese zvavanoda.

6.7 Iyo sisitimu haigone kushandiswa, password haigone kuchinjwa - hapana passwd. Hapana ping, hapana chinhu!

kune DNF. Kana iyi sarudzo yekuisa haisi yako - shandisa kit yekugovera kubva kune vanogadzira.

6.8 SWAP iripi? Handigoni kurarama pasina iye!

Ichokwadi here? OK ipapo:

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 Ndinoda kudhawunirodha chifananidzo chakagadzirirwa-chakagadzirwa chine yakagadziriswa Wi-Fi yekupinda nzvimbo!

Kugadzirira yekuisa "yemunhu wese" kunoda imwe nguva uye kushanda nesimba. Kana (kamwe kamwe!) Mumwe munhu anonyatsoona izvi zvinonakidza uye zvakakosha, nyora kwatiri uye tichauya nechimwe chinhu.

Ndichapedzisa neizvi.

Ndinoshuvira munhu wese kusefa kwakachengeteka uye kutonga kwakanyanya pamusoro pezvivakwa!

Source: www.habr.com

Voeg