Në artikullin Unë tregova për një mënyrë për të transformuar "malinën" në një pikë aksesi pa kabllo duke përdorur sistemin operativ CentOS. Duke ndërtuar routerin tim shtëpiak sipas këtij projekti, kënaqësia e egos sime kreative u plotësua dhe mora një ndjenjë qetësie për një element kritik të infrastrukturës sime komode. Megjithatë, ndjenja e papërfunduar dhe perfeksionizmi i brendshëm nuk më linin të qetë: "rezultati i papërsosur i punës nuk ka të drejtë të ekzistojë". Mendimi se "ideali mund dhe duhet të arrihet" nuk më braktisi asnjë minutë.
Një ditë, në një nga forumet tematike, u ndesha me një diskutim mbi arkitekturën e sistemeve operative aktuale për "malinën" (aarch64 vs armhfp): cilat sisteme operative 64-bit mund të instalohet dhe të punojnë në versionin 3++ të Raspberry?
CentOS im i preferuar pĂ«r arkitekturĂ«n ARM nga "Userland" nuk kishte ndĂ«rmend tĂ« kalonte nĂ« bĂ«rthamĂ«n e fundit dhe tĂ« bĂ«hej 64-bit. Dhe depoja EPEL, e cila ishte e lidhur nĂ«n dija tĂ« Zotit pa nĂ«nshkrim digjital, ishte njĂ« makth nĂ« Ă«ndrrat e mia tĂ« shqetĂ«suaraâŠ
Si një adhurues i distribucioneve RPM-based, me habi zbuloja se në diskutimet për sistemet operative për "malinën" ishte tërësisht harruar Fedora! Dhe kjo ndodhi, edhe pse lëshimi i saj

Në këtë artikull do të flas për mënyrën e instalimit Fedora (aarch64) në Raspberry Pi 3 Model B+ në në një version ultra minimal. Do të ndaloj pak te karakteristikat e ngritjes së pikës së aksesit Wi-Fi, të zbuluara si rezultat i eksperiencës time me konfigurimin tim të mëparshëm në .
0. ĂfarĂ« do tĂ« nevojitet
E njëjta gjë që është përmendur në artikullin e mëparshëm:
- Raspberry Pi 3 Model B+;
- microSD >= 4GB (më pas mund të "transferohet" sistemi në një ruajtës 2GB);
- Një stacion pune me Linux dhe një letrar microSD;
- Për lidhje të kablluar midis "malinës" dhe stacionit tim të punës me Linux (në këtë rast, nuk do të nevojiten monitor dhe tastierë të tjera për konfigurim), qasje në internet me të dy pajisjet;
- Aftësi të avancuara në Linux (të dish dhe të mos kesh frikë: , dhe ).
Si një iteracion - ndërtimit të një Linuxi të personalizuar, do të përdoret imazhi i distribucionit të Fedora, dhe më pas do të krijohet një sistem minimal (pa "kompilim nga burimet").
1. Instalimi i distribucionit origjinal
Koordinatat e imazhit raw të sistemit në Internet:
Pasi është regjistruar në microSD dhe para fillimit të përdorimit duhet:
- Të zgjasësh "rrënjën" e sistemit të skedarëve (shkalla 3, ext4)
parted /dev/mmcblk0 resizepart 3 100% e2fsck -f /dev/mmcblk0p3; resize2fs /dev/mmcblk0p3; e2fsck -f /dev/mmcblk0p3 pĂ«r i nĂ« 1 2 3; bĂ«j mkdir -p /mnt/$i; ngjiti /dev/mmcblk0p$i /mnt/$i; bĂ«rĂ« - Ăaktivizo SELinux
echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config - Fshij Asistentin e Konfigurimit Fillestar:
find /mnt/3/etc/systemd/ -iname initial-setup.service -delete - Lejo qasje përmes 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ë ngarkohet "malinka" me microSD dhe të lidhesh me të përmes rrjetit.
Një fillim i ftohtë zgjat rreth një minutë e gjysmë. Të dhënat teknike të sistemit pas ngarkimit:

rpm -qa | wc -l
444
2. Ndërtimi i sistemit minimal
Fatkeqësisht, "distribucioni minimal" nga zhvilluesit është shumë larg të qenit modest në konsumimin e burimeve. Imazhi i sistemit mund të bëhet edhe më i vogël.
Për këtë, duhet të ekzekutohet skripti në "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
Pas përfundimit të skriptit, do të krijohet një nënkatalog në katalogun aktual ($P) me përmbajtjen e rrënjës së redaksisë së re minimale të OS. Mund të fiket "malinka" dhe të kthehet microSD në stacionin e punës Linux.
3. Instalimi i sistemit minimal
Instalimi reduktohet në kopjimin e skedarëve të "imazhit" minimal të OS (të marra në hapin e mëparshëm) 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, boot, 100MB;
- / (rrĂ«njĂ«s) â EXT4, gjithĂ« hapĂ«sira e mbetur.
Pas përgatitjes së microSD dhe kopjimit të skedarëve mbi të, duhet:
- të riparosh ngarkimin e OS;
- të aktivizosh rrjetin;
- të konfiguroni qasje përmes ssh.
Riperimi i ngarkimit përfshin zëvendësimin e UUID-të të pjesëve në skedarët:
microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv
dhe parametri saved_entry= në skedarin e fundit
NĂ« skedarin:
microSD:/etc/fstab
mund të gjenden vlerat e vjetra, ndërsa ato aktualet (të saktat) në daljen e komandës:
blkid | grep mmcblk | sort
Pas zëvendësimit, gjithashtu duhet të përmirësohet përmbajtja fstab në microSD, që pikat e montimit të përputhen me UUID-të e rinj të pjesëve.
Funksionaliteti i rrjetit nĂ« ngarkimin e parĂ« tĂ« "malinkĂ«s" mund tĂ« arrihet me njĂ« "zgjidhje" tĂ« vogĂ«l â krijo njĂ« lidhje (sipas skemĂ«s):
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 ngarkimit tĂ« suksesshĂ«m â rregullo nisjen :
systemctl disable systemd-networkd
systemctl enable systemd-networkd
Aksesi në superpërdorues përmes ssh konfiguroni në mënyrë të ngjashme me p.1.
Pas një punimi të saktë dhe pa gabime, mund të vendosni microSD në "malinkë" dhe të filloni të punoni me OS-në 64-bit në një realizim ekstra minimal.
4. Sistemi i gatshëm
"Imazhi" i sistemit të gatshëm, i krijuar sipas udhëzimeve të mësipërme, mund të shkarkohet në lidhjen:
Ky do tĂ« jetĂ« njĂ« arkiv qĂ« pĂ«rmban dy skedarĂ«: skripti i instalimit dhe TGZ me skedarĂ«t e OS-sĂ«. Arkivi duhet tĂ« shkarkohet nĂ« stacionin e punĂ«s Linux, tĂ« vendoset microSD (nĂ« dispozitĂ« Ă«shtĂ« mjaft njĂ« kartĂ« 2GB) dhe tĂ« ekzekutohet skripti me parametrin â emrin e pajisjes:
./install /dev/mmcblk0
Këshillohuni!
Pa ndonjë paralajmërim, pajisja do të formatohet dhe mbi të do të instalohet sistemi operativ.
Pas pĂ«rfundimit korrekt tĂ« skriptit, karta mund tĂ« vendoset nĂ« "malinkĂ«" dhe tĂ« pĂ«rdoret: kapni pĂ«rmes dhcp, fjalĂ«kalimi â "1."
Sistemi është pastruar nga çdo ID dhe çelës, duke e bërë çdo instalim të ri unik.
TĂ« them prapĂ«, sistemi â minimal! Prandaj mos u trembni: DNF Ă«shtĂ« nĂ« dispozicion, pĂ«r funksionimin e tij do tĂ« duhet tĂ« "shkruani" njĂ« tĂ« saktĂ« .
Nisja e ftohtë e "malinkës" zgjat rreth 40 sekonda. Të dhënat teknike të sistemit pas ngarkimit:

rpm -qa | wc -l
191
5. Wi-Fi
Do të ndalem pak në veçoritë e zbatimit të pikës së qasjes Wi-Fi. Për detaje mund të referoheni te e kaluara ime. .
EPEL tani nuk do tĂ« nevojitet â tĂ« gjitha paketat gjenden nĂ« depot zyrtare.
Ndoshta do tĂ« ishte mirĂ« tĂ« hiqnim dorĂ« nga , sepse nĂ« Fedora, ndryshe nga CentOS, â ekziston njĂ« systemd-networkd mjaft i freskĂ«t, nĂ« tĂ« cilin â ka serverĂ« tĂ« integruar DHCP/DNS normalĂ«. Por fakti qĂ« nĂ« RHEL8 zhvilluesit , nuk jep besim pĂ«r njĂ« tĂ« ardhme tĂ« ndritur tĂ« projektit (kĂ«ta tĂ« kĂ«qij). NĂ« pĂ«rfundim, nuk e kam provuar.
Pastaj, drejtuesit aktual të adaptorit të integruar Wi-Fi mund të mos "vjedhim" nga disitribucioni Raspbian, por t'i shkarkojmë drejtpërdrejt nga .
Ja si duken në "malinkën" time skedarët e firmware-t Broadcom (në mënyrë skematike):
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 këto nuk do të funksionojë 5GHz/AC.
Sa për numrin dhe emrat e interfazëve. Tani e rekomandoj me ngulm të gjithë që pa ndonjë nevojë të mos përdorin "shërbimet" e kalimtarëve programorë (), që sjellin një ngarkesë të konsiderueshme në grilën e rrjetit dhe shtypin ruterin. Nëse nuk parashihet përdorimi i disa adaptuesve wireless, atëherë duhet të përdoren vetëm ndërfaqe fizike. Unë kam dy Wi-Fi, kështu që vetëm ato i bashkoj në një urë programore (edhe pse kjo mund të arrihet edhe pa të, duke e parë ndryshe konfigurimin e hostapd).
Dhe më pëlqen të ribashkoj ndërfaqet.
Për këtë, në Fedora duhet të krijoni një lidhje simbolike:
/etc/systemd/network/99-default.link -> /dev/null
dhe kështu mund të jepni emra domethënës pa u ngatërruar në , por vetëm përmes mjeteve të systemd-networkd.
Ja si quhen, për shembull, adaptuesit e rrjetit në routerin 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 â adaptues Wi-Fi tĂ« jashtĂ«m (USB), tĂ« grumbulluar nĂ« njĂ« 'bridge' lan;
- wan â adaptues Ethernet, nĂ« tĂ« cilin Ă«shtĂ« i lidhur Interneti.
Vini re? â me tĂ« vĂ«rtetĂ« njĂ« gjĂ« e shkĂ«lqyer. SĂ« bashku me bĂ«rthamĂ«n mĂ« tĂ« re tĂ« Linux, krijojnĂ« mrekulli tĂ« vĂ«rteta nĂ« gamĂ«n wireless: njĂ« 'download' i ashpĂ«r nga torrente nuk do ta sjellĂ« njĂ« degradim tĂ« papritur tĂ« shpejtĂ«sisĂ« tek fqinjĂ«t. Edhe IPTV-ja shtĂ«piake qĂ« punon 'nĂ« ajĂ«r' nuk 'çoroditet' dhe nuk 'frenon' aspak, jo fare!
Dosja e shërbimit të demonit ka kaluar disa ndryshime .
Duket tani kështu (në shembullin e adaptuesit 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 'magjiku' hostapd-int.conf për punë 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 'Photoshop', i bërë nga 'Ericsson A1018s' im.
(lidhi me internetin â 100Mbit/s)
Dhe në përfundim një pyetje të vogël.
6. FAQ
6.1 Pse të krijosh një router Wi-Fi me Raspberry?
Mund të përgjigjemi thjesht, duke thënë "është interesante ta provojmë dhe kështu me radhë".
Por nĂ« tĂ« vĂ«rtetĂ«, siç mendoj, tema Ă«shtĂ« mjaft serioze. NĂ« epokĂ«n e internetit "tĂ« egĂ«r", tĂ« blesh njĂ« router nĂ« dyqan dhe tĂ« mbetesh njĂ« peng i prodhuesit tĂ« tij â Ă«shtĂ« njĂ« perspektivĂ« e mĂ«rzitshme. TĂ« qĂ«ndrosh me njĂ« CVE- ose njĂ« backdoor tĂ« integruar, tani shumĂ« e kuptojnĂ« se nuk Ă«shtĂ« e pranueshme.
Natyrisht, mund tĂ« migrosh nĂ« firmware WRT nga entuziastĂ«t. Besimi nĂ« to Ă«shtĂ« ndoshta mĂ« i madh, por nĂ«se nuk dĂ«shiron tĂ« varet nga ata, atĂ«herĂ« vetĂ«m - prodhimi yt personal. NĂ« mĂ«nyrĂ« ideale â njĂ« kompjuter i plotĂ« pĂ«r tĂ« realizuar çdo gjĂ«. Sigurisht, nĂ« fushĂ«n e routing-ut.
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 "dualizme" brenda.
6.2 Por, a nuk Ă«shtĂ« Raspberry â "jo router": i ngadaltĂ« dhe me njĂ« port Ethernet!
Si një router Wi-Fi shtëpiak, "malinka" më kënaq më shumë se sa mendoja. Për shpejtësinë "në ajër" e kam përmendur më sipër. Dhe një Ethernet, mirë, ashtu siç është në produktin e ngjashëm nga Apple, është po ashtu kështu!
Por nëse flasim seriozisht, do të doja më shumë. Dhe megjithëse në shtëpinë time të gjitha pajisjet janë të lidhura pa kabllo, ndonjëherë është e nevojshme një lidhje me fiber. Për këto raste, kam rezervuar një "hub mobil":
njĂ« pajisje â diçka si kjo
6.3 Nëse është router, atëherë nuk është thënë asgjë për "tunimin" TCP/IP, sepse kjo është e rëndësishme!
PĂ«rveç konfigurimit tĂ« stakut rrjetor (tcp_fastopen, YeAH etj.), nĂ« kĂ«tĂ« artikull dhe nĂ« atĂ« tĂ« mĂ«parshĂ«m nuk janĂ« zbuluar nuanca tĂ« tjera, veçanĂ«risht procesi i pĂ«rgatitjes sĂ« microSD pĂ«r pĂ«rdorim optimal (pavarĂ«sisht se instaluesi pĂ«rpiqet ta formatizojĂ« kartĂ«n e memories nĂ« njĂ« mĂ«nyrĂ« tĂ« zgjuar). Procesi i pĂ«rmirĂ«simit â Ă«shtĂ« pafund, Ă«shtĂ« e nevojshme vetĂ«m tĂ« ndalosh nĂ« momentin e duhur.
6.4 Pse Fedora?
Sepse mĂ« pĂ«lqen! Fedora Ă«shtĂ« "mainstream" â sistemi i geekĂ«ve, pĂ«r tĂ« cilĂ«t, nĂ« thelb, Ă«shtĂ« shkruar ky artikull. NĂ« momentin e shkrimit, ndoshta, sistemi i vetĂ«m operativ qĂ« pĂ«r Raspberry nĂ« versionin 64-bit mbĂ«shtetet zyrtarisht nga njĂ« ekip i konsiderueshĂ«m zhvilluesish (nga tĂ« cilĂ«t nuk po pres dot) ).
6.5 A punon Bluetooth? Si e ka 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 çaktivizimin e SELinux?
Sepse sistemi është minimal, nuk ka as firewall dhe as njësi për konfigurimin e tij. Ata që kanë nevojë, mund të instalojnë gjithçka që nevojitet shtesë.
6.7 Nuk Ă«shtĂ« e mundur tĂ« pĂ«rdorĂ«sh sistemin, nuk mund tĂ« ndryshosh fjalĂ«kalimin â sâka passwd. Sâka ping, sâka asgjĂ«!
Ka . Ose ky variant instalimi nuk Ă«shtĂ« pĂ«r ju â pĂ«rdorni distribucionin nga zhvilluesit.
6.8 Po ku është SWAP? Nuk mund të jetoj pa të!
Vërtet? Mirë, atëherë:
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 një imazh gati me pikën e qasjes Wi-Fi të konfiguruar!
PĂ«r pĂ«rgatitjen e instaluesit "pĂ«r tĂ« gjithĂ«" do tĂ« nevojitet njĂ« kohĂ« dhe pĂ«rpjekje e caktuar. NĂ«se (ndonjĂ«herĂ«!) dikujt i duket vĂ«rtet interesante dhe e nevojshme â shkruani, do tĂ« mendojmĂ« pĂ«r diçka.
Me kĂ«tĂ« â do tĂ« pĂ«rfundoj.
Ju uroj të gjithëve një shfletim të sigurt dhe kontroll maksimal mbi infrastrukturën!
Burimi: habr.com
