Në artikullin Unë tregova për mënyrën si ta shndërroje "malinën" në një pikë qasjeje pa tel me sistemin operativ CentOS. Duke ndërtuar routerin tim të shtëpisë sipas këtij skedari, kënaqa egon time krijuese dhe mora një ndjenjë qetësie për një element kritik të infrastrukturës sime të ngrohtë. Megjithatë, ndjenja e papërfundimin dhe perfeksionizmi tim nuk më lejuan të qetësohem: "nuk ka të drejtë të ekzistojë rezultati i papërsosur i punës". Mendimi se "ideali mund dhe duhet të arrihet" nuk më braktisi për asnjë çast.
Dhe kështu, një ditë në një nga forumet tematike, ndesha një diskutim mbi versionet ekzistuese të sistemeve operative për "malinën" (aarch64 vs armhfp): cilat sisteme operative 64-bit mund të instalohen dhe të funksionojnë në Raspberry versioni 3++?
CentOS, e preferuara ime për arkitekturën ARM nga "Userland", nuk po nxitohej të kalonte në kernelin e versionit të fundit dhe të shndërrohej në 64-bit. Dhe depoja EPEL, e lidhur nuk dihet se nga ku pa nënshkrim digjital, ishte një makth në ëndrrat e mia të paqes...
Duke qenë një adhurues i distribucioneve të bazuara në RPM, u habit kur zbulova se në diskutimet për sistemet operative për "malinën" ishte plotësisht e harruar Fedora! Dhe kjo, duke pasur parasysh se versioni i saj

Në këtë artikull, unë do të flas për mënyrën e instalimit të Fedora (aarch64) në Raspberry Pi 3 Model B+ në me një përmbajtje ekstra minimale. Shpejt do të ndalemi te veçoritë e ngritjes së pikës së qasjes Wi-Fi, të identifikuara si rezultat i përdorimit të mëparshëm të konfigurimit tim në .
0. ĂfarĂ« do tĂ« nevojitet
Të gjithë të njëjtat gjëra që janë përmendur në artikullin e mëparshëm:
- Raspberry Pi 3 Model B+;
- microSD >= 4GB (dhe më vonë mund ta "transferosh" sistemin në një kujtesë 2GB);
- Një stacion pune me Linux dhe lexues microSD;
- Lidhje e kablluar midis "malinës" dhe stacionit të punës me Linux (në këtë rast nuk do të nevojiten monitor dhe tastierë shtesë për konfigurimin), akses në internet nga të dy pajisjet;
- Aftësi të avancuara në Linux (të dish dhe të mos kesh frikë: , dhe ).
Siç është iterativja - ndërtimi i një Linux-i personal, do të përdoret imazhi i distribucionit të Fedora-s dhe pastaj mbi të - do të krijohet një sistem minimal (pa "kompilim nga burimi").
1. Instalimi i distribucionit origjinal
Koordinatat e imazhit raw të sistemit në Rrjet:
Pas regjistrimit të tij në microSD dhe para fillimit të përdorimit, ju duhet të:
- Zgjeroni ârrĂ«njĂ«nâ e sistemit tĂ« skedarĂ«ve (pjesa e tretĂ«, 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 - Ăaktivizoni SELinux
echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config - Fshini Masterin e Konfigurimit të Parë:
find /mnt/3/etc/systemd/ -iname initial-setup.service -delete - Lejoni aksesin për 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
Tani mund tĂ« ngarkoni âmalinkĂ«nâ nga microSD dhe tĂ« lidhni me tĂ« pĂ«rmes rrjetit.
Ngritja e ftohtë zgjat rreth një minutë e gjysmë. Të dhënat e sistemit pas ngarkimit:

rpm -qa | wc -l
444
2. Ndërto një sistem minimal
FatkeqĂ«sisht, âdistribucioni minimalâ nga zhvilluesit rezulton tĂ« mos jetĂ« aq i skromtĂ« nĂ« konsumimin e burimeve. NjĂ« imazh sistemi mund tĂ« jetĂ« edhe mĂ« i vogĂ«l.
PĂ«r kĂ«tĂ«, nĂ« âmalinkĂ«â duhet tĂ« ekzekutoni skriptin:
#!/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
Pas pĂ«rfundimit tĂ« skriptit, nĂ« katalogun aktual do tĂ« krijohet njĂ« nĂ«ndegĂ« ($P) me pĂ«rmbajtjen e rrĂ«njĂ«s sĂ« versionit tĂ« ri minimal tĂ« OS-sĂ«. Mund tĂ« fikni âmalinkĂ«nâ dhe tĂ« ktheheni nĂ« workstation-in tuaj Linux me microSD.
3. Instaloni sistemin minimal
Instalimi pĂ«rfshin kopjimin e skedarĂ«ve tĂ« âimazhitâ minimal tĂ« OS-sĂ« (tĂ« marrĂ« nga hapi paraprak) nĂ« microSD tĂ« pĂ«rgatitur posaçërisht nĂ« katalogĂ«t pĂ«rkatĂ«s.
Mjafton një kartë 2GB dhe dy pjesë në të:
- /boot/efi â EFI+FAT32, ngarkuese, 100MB;
- / (rrĂ«nja) â EXT4, gjithĂ« hapĂ«sira e mbetur.
Pas përgatitjes së microSD dhe kopjimit të skedarëve në të, ju duhet të:
- riparoni ngarkimin e OS-së;
- aktivizoni rrjetin;
- konfiguroni aksesin për ssh.
Riparimi i ngarkimit përfshin zëvendësimin e UUID-ve të pjesëve në skedarët:
microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv
dhe parametrin saved_entry= në skedarin e fundit
NĂ« skedarin:
microSD:/etc/fstab
mund të gjeni vlerat e vjetra, ndërsa aktualet (të sakta) janë në daljen e komandës:
blkid | grep mmcblk | sort
Pas zëvendësimit, duhet gjithashtu të rregulloni përmbajtjen fstab në microSD, në mënyrë që pikat e montimit të përputhen me UUID-të e rinj të pjesëve.
PĂ«r tĂ« siguruar funksionalitetin e rrjetit nĂ« fillim tĂ« âmalinkĂ«sâ, mund tĂ« pĂ«rdorni njĂ« âtrukâ tĂ« vogĂ«l â krijoni njĂ« lidhje (schematically):
ln -s /usr/lib/systemd/system/systemd-networkd.service
microSD:/etc/systemd/system/multi-user.target.wants
dhe skedari:
mkdir -p microSD:/etc/systemd/network
cat > microSD:/etc/systemd/network/dhcp.network << EOF
[Match]
Name=*
[Network]
DHCP=ipv4
EOF
Pas pasjes sĂ« suksesshĂ«m â vendosni nĂ« rend fillimin :
systemctl disable systemd-networkd
systemctl enable systemd-networkd
Pronarimi i super përdoruesit për ssh konfigurohet si në p.1.
Duke e bërë gjithçka me kujdes dhe pa gabime, mund të vendosni microSD në "malinka" dhe të filloni të punoni me një OS 64-bit në një version super minimal.
4. Sistema e gatshme
"Imazhi" i sistemit të gatshëm, i krijuar sipas udhëzimeve të përmendura më sipër, mund të shkarkohet përmes lidhjes:
Ky do tĂ« jetĂ« njĂ« arkiv, qĂ« pĂ«rmban dy skedarĂ«: skriptin e instalimit dhe TGZ me skedarĂ«t e OS. Arkivi duhet tĂ« nxirret nĂ« stacionin e punĂ«s Linux, vendosni microSD (ndihmon njĂ« kartĂ« prej 2GB) dhe nisi skriptin me parametrin â emrin e pajisjes:
.\/install \/dev\/mmcblk0
Kujdes!
Pa asnjë paralajmërim, pajisja do të formatohet dhe do të instalohet sistemi operativ.
Pas ekzekutimit pa gabime tĂ« skriptit, karta mund tĂ« vendoset nĂ« "malinka" dhe tĂ« pĂ«rdoret: kapni nga dhcp, fjalĂ«kalimi â "1".
Sistemi Ă«shtĂ« pastruar nga çdo ID dhe çelĂ«s, pĂ«r shkak tĂ« cilĂ«s çdo instalim i ri â Ă«shtĂ« unik.
PĂ«rsĂ«ris edhe njĂ« herĂ«, sistemi â minimal! Prandaj, mos u friksoni: DNF â Ă«shtĂ« nĂ« dispozicion, pĂ«r funksionimin e tij do t'ju duhet tĂ« "shkruani" njĂ« tĂ« drejtĂ« .
Nisja e ftohtë e "malinkës" zgjat rreth 40 sekonda. Të dhënat e sistemit pas ngarkimit:

rpm -qa | wc -l
191
5. Wi-Fi
Do të ndalem pak në veçoritë e implementimit të pikës së aksesit Wi-Fi. Për detajet mund të referoheni në artikullin tim të mëparshëm .
EPEL tani nuk do tĂ« nevojitet â tĂ« gjithĂ« paketat gjenden nĂ« depot zyrtare.
Ndoshta do tĂ« ishte mirĂ« tĂ« hiqja dorĂ« nga , pasi nĂ« Fedora, ndryshe nga CentOS, â ka njĂ« systemd-networkd mjaft tĂ« freskĂ«t, ku â janĂ« serverĂ«t e integruar DHCP/DNS tĂ« mirĂ«. Por fakti qĂ« nĂ« RHEL8 zhvilluesit , nuk ngjall besim pĂ«r tĂ« ardhmen e ndritur tĂ« projektit (pĂ«rfaqĂ«sues tĂ« kĂ«qij). NĂ« pĂ«rfundim, nuk kam provuar.
Pastaj, drejtorët aktualë të adaptorit të integruar Wi-Fi nuk mund të "vjedhen" nga distribucioni Raspbian, por mund të shkarkohen drejtpërdrejt nga .
Kështu duken në "malinkën" time skedarët e firmware-t Broadcom (në skemë):
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
Pa to nuk do të funksionojë 5GHz/AC.
Në lidhje me numrin dhe emrat e ndërfaqeve. Tani, unë tashmë rekomandoj fort të gjithëve që të mos përdorin "shërbimet" e kalimeve software pa një nevojë të veçantë (), të cilat sjellin një ngarkesë të konsiderueshme në shtresën rrjet dhe pengojnë rutimin. Nëse nuk planifikohen disa adapatorë dhebularë, duhet përdorur vetëm ndërfaqet fizike. Unë kam dy Wi-Fi, prandaj vetëm ato i bashkoj në një urë software (në të vërtetë, mund të shkonte pa këtë, duke e parë ndryshe konfigurimin e hostapd).
Unë gjithashtu e pëlqej të riemëroj ndërfaqet.
Për këtë në Fedora duhet të krijoni një lidhje simbolike:
/etc/systemd/network/99-default.link -> /dev/null
dhe atëherë do të jetë e mundur të jepen emra me kuptim pa u mërzit me , por vetëm me mjete systemd-networkd.
Ja, për shembull, si quhen adapatorët rrjet në router-in tim:
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: wan: mtu 1500 qdisc fq_codel state UP group default qlen 1000
3: lan: mtu 1500 qdisc noqueue state UP group default qlen 1000
4: int: mtu 1500 qdisc fq_codel master lan state UP group default qlen 1000
5: ext: mtu 1500 qdisc mq master lan state UP group default qlen 1000
- int â tĂ« integruar, ext â adapatorĂ« Wi-Fi tĂ« jashtĂ«m (USB) tĂ« mbledhur nĂ« "bridge" lan;
- wan â adapator Ethernet, nĂ« tĂ« cilin Ă«shtĂ« i lidhur interneti.
E vrejtĂ«t? â me tĂ« vĂ«rtetĂ« Ă«shtĂ« njĂ« gjĂ« e shkĂ«lqyer. SĂ« bashku me bĂ«rthamĂ«n e re tĂ« Linux-it, bĂ«jnĂ« mrekulli tĂ« vĂ«rteta nĂ« diapazonin e wireless: njĂ« "torrent-download" i fuqishĂ«m nuk do tĂ« shkaktojĂ« degradimin e papritur tĂ« shpejtĂ«sisĂ« te fqinjĂ«t. Edhe IP-TV-ja shtĂ«piake "nĂ« ajĂ«r" nuk "shkĂ«putet" dhe nuk "thotĂ«" fjalĂ« fare kur kanali Ă«shtĂ« i ngarkuar!
Ka përjetuar disa ndryshime të vogla skedari shërbimi për demonin .
Tani duket kështu (në shembullin e adapatorit të integruar):
[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
Dhe "magjik" hostapd-int.conf për funksionimin në 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]
Pak sa njĂ« pak âfotoshopâ, bĂ«rĂ« me âEricsson A1018sâ:
(lidhja nĂ« internet â 100Mbit/s)
Dhe përfundimisht një FAQ të vogël.
6. FAQ
6.1 Pse të bësh një router Wi-Fi në Raspberry?
Mund tĂ« pĂ«rgjigjemi thjesht, se âĂ«shtĂ« interesante tĂ« provohet dhe gjĂ«ra tĂ« tillaâ.
Por nĂ« tĂ« vĂ«rtetĂ«, siç mendoj, tema Ă«shtĂ« mjaft serioze. NĂ« epokĂ«n e Internetit âtĂ« tmerrshĂ«mâ, tĂ« blĂ«sh njĂ« router nĂ« dyqan dhe tĂ« mbetesh peng i prodhuesit tĂ« tij â Ă«shtĂ« njĂ« perspektivĂ« mjaft e trishtueshme. Tani shumĂ« e dinĂ« se nuk mund tĂ« jesh nĂ« njĂ« situatĂ« me CVE apo me njĂ« backdoor tĂ« inkorporuar.
Natyrisht, mund tĂ« kalosh nĂ« firmuerĂ« WRT nga entuziastĂ«t. Ka mĂ« shumĂ« besim tek ta, ndoshta, por nĂ«se nuk dĂ«shiron tĂ« varet nga ata ashtu, atĂ«herĂ« vetĂ«m â produkti yt i vet. NĂ« mĂ«nyrĂ« ideale - njĂ« kompjuter i plotĂ« pĂ«r tĂ« realizuar gjithçka.
Prandaj, zgjedhja e âmalinkĂ«sâ Ă«shtĂ« njĂ« lĂ«vizje krejtĂ«sisht ekonomike: njĂ« kompjuter i vĂ«rtetĂ« dhe njĂ«kohĂ«sisht â i lirĂ«. MegjithatĂ«, ndoshta gjithashtu â me disa âdyzimeâ brenda.
6.2 Por a nuk Ă«shtĂ« Raspberry njĂ« âjo-routerâ: i ngadalshĂ«m dhe me njĂ« port Ethernet!
Si njĂ« router Wi-Fi i shtĂ«pisĂ«, âmalinkaâ mĂ« kĂ«naq mĂ« shumĂ« se aq. PĂ«r shpejtĂ«sinĂ« ânĂ« ajĂ«râ, e kam treguar mĂ« lart. Dhe njĂ« port Ethernet, mirĂ«, po ashtu si nĂ« njĂ« produkt tĂ« ngjashĂ«m nga Apple!
Dhe nĂ«se flasim seriozisht, sigurisht do tĂ« dĂ«shiroja mĂ« shumĂ«. Dhe pavarĂ«sisht se nĂ« shtĂ«pinĂ« time tĂ« gjitha pajisjet janĂ« tĂ« lidhura pa tela, ndonjĂ«herĂ« Ă«shtĂ« e nevojshme njĂ« lidhje me tel. PĂ«r kĂ«to raste kam ruajtur njĂ« âhub mobilâ:
pajisja â diçka si kjo
6.3 NĂ«se kjo Ă«shtĂ« njĂ« router, atĂ«herĂ« nuk Ă«shtĂ« thĂ«nĂ« asgjĂ« pĂ«r âtuningâ TCP/IP, sepse kjo Ă«shtĂ« e rĂ«ndĂ«sishme!
Përveç konfigurimit të stack-ut rrjetor (tcp_fastopen, YeAH etj.), në këtë dhe artikullin e mëparshëm nuk janë zbuluar nuanca të tjera, në veçanti, procesi i përgatitjes së microSD për përdorim optimal (ndonëse installeri përpiqet të formatojë kartën e memories në një mënyrë të zgjuar). Procesi i përmirësimit është i pafund, thjesht duhet të ndaloni në kohë.
6.4 Pse Fedora?
Sepse më pëlqen! Fedora është një sistem 'mashtrimesh' për geek-un, për të cilin, në thelb, është shkruar ky artikull. Në momentin e shkruar, ndoshta është sistemi i vetëm operativ që për Raspberry, në versionin 64-bit, mbështetet zyrtarisht nga një ekip i madh zhvilluesish (nga të cilët nuk po pres dot). ).
6.5 A funksionon Bluetooth? Si është video/zëri/GPIO?
Nuk e di. Artikulli është për instalimin minimal të sistemit dhe përdorimin e tij të mëvonshëm si një router Wi-Fi.
6.6 Pse të gjitha artikujt mbi CentOS/Fedora/RedHat fillojnë me shkyçjen e SELinux?
Sepse sistemi është minimal, nuk ka as një firewall dhe as utilitete për konfigurimin e tij. Kush ka nevojë, mund të instalojë gjithçka që nevojitet.
6.7 Sistemi nuk mund tĂ« pĂ«rdoret, nuk mund tĂ« ndryshohet fjalĂ«kalimi â nuk ka passwd. Nuk ka ping, nuk ka asgjĂ«!
Ka . Ose ky opsion instalimi nuk Ă«shtĂ« pĂ«r ju â pĂ«rdorni njĂ« distribucion nga zhvilluesit.
6.8 Ku është SWAP? Nuk mund të jetoj pa të!
Vërtet? Mirë, mirë:
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 Do të doja të shkarkoja menjëherë një imazh të gatshëm me pikën e aksesit Wi-Fi të konfiguruar!
PĂ«rgatitja e installer-it "pĂ«r tĂ« gjithĂ«" do tĂ« kĂ«rkojĂ« njĂ« kohĂ« dhe pĂ«rpjekje tĂ« caktuara. NĂ«se (papritur!) dikujt kjo do t'i duket vĂ«rtet interesante dhe e nevojshme â shkruani, do tĂ« mendojmĂ« diçka.
Me kĂ«tĂ« â pĂ«rfundoj.
Ju uroj të gjithëve surfim të sigurt dhe kontroll maksimal mbi infrastrukturën!
Burimi: habr.com
