Artiklis RÀÀkisin, kuidas muuta «malina» traadita juurdepÀÀsupunktiks operatsioonisĂŒsteemi CentOS abil. Kogudes sellise plaani jĂ€rgi oma kodurouteri, rahuldasin oma loova ego ja sain rahu, teades, et mul onotsustava tĂ€htsusega element minu mugavas infrastruktuuris. Kuid lahenduse lĂ”petamatuse tunne ja sisemine perfektsionism ei andnud rahu: âebatĂ€iuslik töö ei tohi eksisteeridaâ. MĂ”te, et âideaali vĂ”ib ja peab saavutamaâ, ei lahkunud minust hetkekski.
Ning ĂŒhel pĂ€eval sattusin ĂŒhel temaatilisel foorumil arutelu keskele, kus rÀÀgiti olemasolevate operatsioonisĂŒsteemide arhitektuuride sobivusest «malinale» (aarch64 vs armhfp): millised 64-bitised operatsioonisĂŒsteemid saavad ĂŒldse mahutada ja töötada Raspberry Pi 3++ versioonil?
Minu lemmik CentOS ARM arhitektuuri jaoks «Userlandilt» ei kiirustanud viimase versiooni kerneli kasutuselevÔtuga, et muutuda 64-bitiseks. Ja EPEL hoidla, mille aktiivsus ei olnud digitallooja jÀrgi, oli ööunes mu rahutute unede kauge hirm...
RPM-pĂ”histe distributiivide pooldajana olin ĂŒllatunud, et aruteludes «malina» operatsioonisĂŒsteemidest oli tĂ€iesti unustatud Fedora! Ja see, et tema vĂ€ljaanne

Selles artiklis rÀÀgin paigaldamise viisist Fedora (aarch64) jĂ€rgnevaga Raspberry Pi 3 Model B+ ĂŒhes ĂŒlimalt minimalistlikus variandis. LĂŒhidalt kĂ€sitlen Wi-Fi juurdepÀÀsupunkti tĂ”stmise iseĂ€rasusi, mis ilmnesid minu eelneva konfiguratsiooni proovimise kĂ€igus .
0. Mida on vaja
KÔik, mis on loetletud eelnevas artiklis:
- Raspberry Pi 3 Model B+;
- microSD >= 4GB (hiljem vĂ”ib sĂŒsteemi viia 2GB mĂ€luseadmesse);
- Töötav tööjaam Linuxi ja microSD kaardilugejaga;
- Traadiga vĂ”rguĂŒhendus «malina» ja töötava Linuxi tööjaama vahel (sellisel juhul ei ole tĂ€iendavat monitori ja klaviatuuri seadistamist vaja), internetiĂŒhendus mĂ”lemas seadmes;
- EdasijÔudnud Linuxi oskus (teada ja mitte karta: , ja ).
Nagu iteratiivne - oma Linuxi ĂŒlesehitamine, kasutatakse distributiivset pilti Fedora, mille pĂ”hjal luuakse minimaalne sĂŒsteem (ilma «allika koode» kompileerimiseta).
1. Originaalse distributiivi paigaldamine
SĂŒsteemi raw-pildi koordinaadid veebis:
PĂ€rast selle kirjutamist microSD-le ja enne kasutamise alustamist tuleb:
- SĂŒsteemi faili sĂŒsteemi juur (3. osa, ext4) laiendada
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 - Keen vÀlja SELinux
echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config - Eemalda Esialgse seadistamise Meister:
find /mnt/3/etc/systemd/ -iname initial-setup.service -delete - Lubage SSH ligipÀÀs:
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
NĂŒĂŒd saab âmalinaâ kĂ€ivitada microSD-lt ja sellele vĂ”rgus ĂŒhenduda.
KĂŒlm kĂ€ivitamine vĂ”tab aega umbes poolteist minutit. SĂŒsteemi tehnilised andmed kĂ€ivitumise jĂ€rel:

rpm -qa | wc -l
444
2. Minimaalse sĂŒsteemi ĂŒlesehitamine
Kahjuks osutub arendajate âminimaalseks distributiiviksâ kaugelt mitte kĂ”ige tagasihoidlikumaks ressursside kasutuses. SĂŒsteemi kuju saab teha veel vĂ€iksemaks.
Selleks tuleb âmalinalâ kĂ€ivitada skript:
#!/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
PĂ€rast skripti tĂ€itmist luuakse praeguses kataloogis alamkataloog ($P) uue minimaalse OS redaktsiooni juure sisuga. Saab vĂ€lja lĂŒlitada âmalinaâ ja viia microSD tagasi Linuxi tööjaama.
3. Minimaalse sĂŒsteemi paigaldamine
Paigaldamine seisneb minimaalsete âpiltideâ failide (mis saadi eelmisel sammul) kopeerimises spetsiaalselt ette valmistatud microSD-le vastavatesse kataloogidesse.
Piisab 2GB kaardist ja kahest jaotist:
- /boot/efi â EFI+FAT32, kĂ€ivitus, 100MB;
- / (juur) â EXT4, kĂ”ik ĂŒlejÀÀnud ruum.
PĂ€rast microSD ettevalmistamist ja failide kopeerimist sellele tuleb:
- parandada OS kÀivitamist;
- lĂŒĂŒa vĂ”rku;
- seada SSH ligipÀÀs.
KĂ€ivitamise parandamine seisneb jaotiste UUID-de asendamises failides:
microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv
ja parameetrites saved_entry= viimases failis
Failis:
microSD:/etc/fstab
vÔib leida vanad vÀÀrtused, aga praegused (aktiivsed) vÀÀrtused on kÀskluse vÀljundis:
blkid | grep mmcblk | sort
PĂ€rast asendamist tuleb ka kohandada sisu fstab microSD-l, et montaaĆŸikohad vastaksid uutele UUID-dele.
Esimese kĂ€ivitamise aeg on vĂ”imalik tagada vĂ€ikese âlotogaâ â luua link (skeemiliselt):
ln -s /usr/lib/systemd/system/systemd-networkd.service
microSD:/etc/systemd/system/multi-user.target.wants
ja fail:
mkdir -p microSD:/etc/systemd/network
cat > microSD:/etc/systemd/network/dhcp.network << EOF
[Match]
Name=*
[Network]
DHCP=ipv4
EOF
PĂ€rast eduka kĂ€ivitamist â viia sĂŒsteem kĂ€ivitamine korda :
systemctl disable systemd-networkd
systemctl enable systemd-networkd
Superkasutaja ssh-ĂŒlevaade seade sarnaneb p.1-ga.
Kui kĂ”ik tehakse korralikult ja ilma vigadeta, saab microSD kaardi "malinikku" paigutada ja alustada 64-bitise operatsioonisĂŒsteemiga töötamist ÀÀrmiselt minimalistlikus vormis.
4. Valmis sĂŒsteem
Valmis sĂŒsteemi "pilt", mis on loodud eespooltoodud juhiste pĂ”hjal, on saadaval allolevalt lingilt:
See on arhiiv, mis sisaldab kahte faili: installatsiooniskript ja TGZ opsĂŒsteemi failidega. Arhiiv tuleb Linuxi tööjaama vĂ€lja pakkida, sisestada microSD (piisab 2GB kaardist) ja kĂ€ivitada skript parameetriga â seadme nimega:
./install /dev/mmcblk0
Olge ettevaatlik!
Ilma igasuguste hoiatusteta vormindatakse seade ja sellele installeeritakse operatsioonisĂŒsteem.
PĂ€rast skripti tĂ”rgeteta töötamist saab kaardi tagasi "malinikku" paigutada ja kasutada: vĂ”tke dhcp kaudu, parool â "1".
SĂŒsteem on vabanenud kĂ”igist ID-dest ja vĂ”tmetest, mistĂ”ttu iga uus installatsioon on unikaalne.
Kordan veel kord, et sĂŒsteem â minimalistlik! Seega Ă€rge muretsege: DNF on saadaval, tema tööks tuleb "vĂ€ljamĂ”elda" Ă”ige .
Malini kĂŒlm start kestab umbes 40 sekundit. SĂŒsteemi tehnilised andmed pĂ€rast kĂ€ivitamist:

rpm -qa | wc -l
191
5. Wi-Fi
Veidi peatuge Wi-Fi juurdepÀÀsupunkti rakenduse omadustel. Ăksikasjade jaoks vĂ”ite pöörduda minu eelneva .
EPEL ei ole enam vajalik â kĂ”ik paketid sisaldavad ametlikud repod.
VÔib-olla oleks mÔistlik loobuda , kuna Fedora's on, erinevalt CentOS'ist, piisavalt uus systemd-networkd, kus on normaalsed sisseehitatud DHCP/DNS serverid. Kuid fakt, et RHEL8 arendajad , ei inspireeri usaldust projekti helge tuleviku osas (kurja). KokkuvÔttes, ei proovinud.
Edasi, praegused sisseehitatud Wi-Fi adapteri draiverid ei pea "varastama" Raspbiani ja laadige otse .
Nii nÀevad minu "maliniku" Broadcomi tarkvarafailid vÀlja (skema),
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
Ilma nendeta ei saa 5GHz/AC.
KĂŒsimus arvestuste ja interface nimede osas. NĂŒĂŒd soovitan kĂ”igil ilmselgelt mitte kasutada tarkvaralisi sĂ”lme (), mis lisavad mĂ€rkimisvÀÀrset koormust vĂ”rgu stackile ja takistavad marsruutimist. Kui ei plaanita mitut traadita adapterit, tuleks kasutada ainult fĂŒĂŒsilisi liideseid. Minu puhul on kaks Wi-Fi-d, seega ainult neid ma koondan tarkvaraliseks sillaks (kuigi saab ka ilma, vaadates hostapd seadistust teistmoodi).
Ja ma armastan liideseid ĂŒmber nimetada.
Selleks peab Fedora's looma sĂŒmboolse lingi:
/etc/systemd/network/99-default.link -> /dev/null
ja siis saab sisutihedaid nimetusi anda, mitte nokitsedes , vaid âsystemd-networkdâ vahenditega.
NÀiteks on minu ruuteri vÔrgukaartide nimed:
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 â sisseehitatud, ext â vĂ€line (USB) Wi-Fi adapterid, mis on ĂŒhendatud "sillaga" lan;
- wan â Ethernet adapter, kuhu on ĂŒhendatud Internet.
Kas mĂ€rkate? â on tĂ”eliselt Ă€ge asi. Koos vĂ€rske Linuxi kĂ€rgiga teevad tĂ”elisi imesid traadita vahemikus: intensiivne "torrent allalaadimine" ei pĂ”hjusta naabrite jĂ”udlas kiiruseta eeliseid. Isegi kodune IP-TV, mis töötab "Ă”hu kaudu", ei "lagune" ega "hakkaks" sĂ”na otseses mĂ”ttes!
Teenindusfail demonile tegi vÀikeseid muudatusi .
NĂŒĂŒd nĂ€eb see vĂ€lja nii (sisseehitatud adapteri nĂ€itel):
[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
Ja "mĂŒrgine" hostapd-int.conf, et toimida 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]
Veidi "fototööd" minu "Ericsson A1018s"-lt:
(ĂŒhendamine Interneti â 100Mbit/sek)
Ja vÀike FAQ kokkuvÔte.
6. FAQ
6.1 Miks kasutada Raspberry't Wi-Fi ruuterina?
Saaks lihtsalt vastata, et "huvitav proovida ja nii edasi".
Aga tegelikult, nagu ma arvan, on teema piisavalt tĂ”sine. Veretuks muutunud interneti ajastul, on poe ruuteri ostmine ja selle tootjaga sunniviise seotud jÀÀmine ĂŒsna tuhm tulevik. Paljud hakkavad aru saama, et ei tohi kasutada CVE-dega vĂ”i sisse ehitatud tagauksedega seadmeid.
Muidugi, saab migratsiooni teha WRT-firmwareâide peale entusiastidelt. Neile on vĂ”ib-olla rohkem usaldust, kuid kui sa ei soovi neist sĂ”ltuda, siis ainus lahendus on â ise valminud toode. Ideaalis â tĂ€iskomplektne arvuti, et seda saaks kasutada kĂ”ikide vĂ”imaluste rakendamiseks. Ruutimise kontekstis, muidugi.
Seega, Raspberry valik â puhtalt majanduslik valik: tĂ”eline arvuti ja samas â odav. Kuigi, vĂ”imalik, et sellel on ka oma "kahtlused".
6.2 Aga Raspberry â "mitte-ruuter": aeglane ja ainult ĂŒhe Etherneti portiga!
Koduseks Wi-Fi ruuteriks rahuldab "malaika" mind rohkem kui piisavalt. Kiirusest "Ă”hus" olen juba rÀÀkimas ĂŒleval. Ja ainult ĂŒks Ethernet, noh, samasuguses tootearenduses Apple'ilt on ka peaaegu tĂ€pselt sama!
Aga tĂ”siselt, muidugi oleks hea rohkem. Ja hoolimata sellest, et minu majapidamises on kĂ”ik seadmed traadita ĂŒhenduses, mĂ”nikord on siiski vaja kaablilised ĂŒhendused. Selliste juhtumite jaoks on mul varuks "mobiliteet hub":
seade â midagi sellist
6.3 Kui see on ruuter, siis ei öeldud midagi TCP/IP âtuning'stâ, mis on oluline!
Lisaks vĂ”rgu staki seadistamisele (tcp_fastopen, YeAH jne) ei ole selles ega eelnevas artiklis kajastatud teisi nĂŒansse, sealhulgas microSD ettevalmistamise protsessi optimaalset kasutamist (kuigi installer pĂŒĂŒab salvestusseadet nutikalt vormata). TĂ€iustamisprotsess on lĂ”putu, tuleb lihtsalt Ă”igel ajal peatuda.
6.4 Miks Fedora?
Sest see meeldib mulle! Fedora â "peavool" â sĂŒsteem geeke, kellele selle artikli compendium ka mĂ”eldud. Kirjutamishetkel kindlalt ainus operatsioonisĂŒsteem, millel toetatakse Raspberry't ametlikult 64-bitises vormis arvestatava arendajate meeskonna poolt (keda ma ei ole suutnud Ă€ra oodata ).
6.5 Kas Bluetooth töötab? Kuidas on video/heli/GPIO-ga?
Ma ei tea. Artikkel kĂ€sitleb minimaalset sĂŒsteemi installimist ja selle jĂ€rgmist kasutamist Wi-Fi ruuterina.
6.6 Miks kÔik artiklid CentOS/Fedora/RedHat'is algavad SELinux'i keelamisest?
SellepĂ€rast, et sĂŒsteem on minimaalne, seal ei ole isegi tulemĂŒĂŒr ega seadistamise utiliidid. Kes vajab â vĂ”ivad paigaldada kĂ”ik vajalikud vahendid.
6.7 SĂŒsteemiga on vĂ”imatu töötada, parooli ei saa muuta â passwd puudub. Pole ping'i, pole midagi!
On . VĂ”i see installimise variant ei ole sinu jaoks â kasuta arendajate distributsiooni.
6.8 Aga kus on SWAP? Ilma selleta ei suuda ma elada!
TÔesti? Noh, hÀsti:
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 Tahaksin alla laadida kohe valmis pildi, seadistatud Wi-Fi pÀÀsupunktiga!
Installer 'kĂ”igile' valmistamine nĂ”uab teatud aega ja pingutust. Kui (juhtumisi!) kellelegi see tĂ”esti tundub huvitav ja vajalik â kirjutage, mĂ”tleme midagi vĂ€lja.
Sellega lÔpetan.
Soovin kĂ”igile ohutut surfamist ja maksimaalset kontrolli oma infrastruktuuri ĂŒle!
Allikas: habr.com
