ProHoster > Блог > Administrado > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (aŭ frambo-enkursigilo kun blua ĉapelo)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (aŭ frambo-enkursigilo kun blua ĉapelo)
En la artikolo Raspberry Pi + CentOS = Wi-Fi Hotspot (aŭ frambo-enkursigilo kun ruĝa ĉapelo) Mi parolis pri maniero igi Raspberry en sendratan alirpunkton uzante la mastruman sistemon CentOS. Kunvenante mian hejman enkursigilon laŭ ĉi tiu desegno, mi kontentigis mian krean egoon kaj ricevis trankvilon por kritika elemento de mia komforta infrastrukturo. Tamen, la sento de nekompleteco de la solvo kaj interna perfektismo hantis min: "neperfekta rezulto de laboro ne rajtas ekzisti." La penso, ke "la idealo povas kaj devas esti atingita" ne forlasis min eĉ unu minuton.
Kaj tiam iun tagon, en unu el la temaj forumoj, mi renkontis diskuton pri la bitprofundo de ekzistantaj operaciumoj por Raspberry (aarch64 vs armhfp): kiu 64-bita OS povas, principe, adapti kaj labori sur Raspberry versio 3. ++?
Mia amata CentOS por la ARM-arkitekturo de "Userland" ne hastis ŝanĝi al la plej nova versio de la kerno kaj iĝi 64-bit. Kaj la deponejo de EPEL, konektita de Dio scias kie sen cifereca subskribo, estis koŝmaro en mia maltrankvila dormo...
En ĉi tiu artikolo mi parolos pri la instala metodo Fedora (aarch64) sur Frambo Pi 3 Modelo B + в ekstra minimuma rendimento. Mi mallonge pritraktos la funkciojn de altigi Wi-Fian alirpunkton, identigitan kiel rezulto de prova funkciado de mia antaŭa agordo sur CentOS 7.
0. Kion vi bezonos
Все тоже самое, что перечислено в предыдущей статье:
Raspberry Pi 3 Modelo B+;
microSD >= 4GB (poste vi povas "transloki" la sistemon al 2GB-disko);
Laborstacio kun Linukso kaj leganto de kartoj microSD;
Kablita retkonektebleco inter la Raspberry kaj Linuksa laborstacio (en ĉi tiu kazo, neniu kroma monitoro kaj klavaro estos bezonataj por aranĝo), Interreta aliro de ambaŭ aparatoj;
Altnivela kapablo en Linukso (por scii kaj ne timi: disigita, dd и mkfs).
Simila al ripeta lfs-konstruante vian propran Linukso, la distribua bildo Fedora estos uzata, kaj tiam surbaze de ĝi, minimuma sistemo estos kreita (sen "kompilo el fonto").
Nun vi povas elŝuti la "frambon" de microSD kaj konekti al ĝi per la reto.
Malvarma ekfunkciigo daŭras ĉirkaŭ unu kaj duono minutoj. TTX de la sistemo post ŝarĝo:
rpm -qa | wc -l
444
2. Kunmeti minimuman sistemon
Bedaŭrinde, la "minimuma distribuo" de la programistoj montriĝas malproksime de la plej modesta en konsumo de rimedoj. La sistema bildo povas esti eĉ pli malgranda.
Por fari tion, vi devas ruli la skripton sur 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
Post rulado de la skripto, subdosierujo estos kreita en la nuna dosierujo ($P) kun la enhavo de la radiko de la nova minimuma OS-eldono. Vi povas malŝalti la Raspberry kaj resendi la microSD al la Linuksa laborstacio.
3. Instalado de minimuma sistemo
Instalado resumas al kopiado de la minimumaj OS "bildaj" dosieroj (akiritaj en la antaŭa paŝo) sur speciale pretan microSD en la taŭgajn dosierujojn.
2GB-karto kaj du sekcioj sur ĝi sufiĉas:
/ boot / efi - EFI+FAT32, ekkuro, 100MB;
/ (radiko) - EXT4, tuta restanta spaco.
Post prepari la microSD kaj kopii dosierojn al ĝi, vi devas:
починить загрузку ОС;
ŝalti la reton;
agordi aliron per ssh.
La ekfunkciigo estas anstataŭigi la UUID de la sekcioj en la dosieroj:
Superuzanta aliro per ssh estas agordita simile al paŝo 1.
Farinte ĉion zorge kaj sen eraroj, vi povas movi la microSD en la "frambon" kaj komenci labori kun 64-bita OS en ekstra minimuma versio.
4. Preta sistemo
La "bildo" de la finita sistemo, kreita laŭ la supraj instrukcioj, povas esti elŝutita de la ligilo: Fedora-Tiny-31-5.5.7-200.aarch64
Ĉi tio estos arkivo enhavanta du dosierojn: la instala skripto kaj TGZ kun OS-dosieroj. La arkivo devas esti malpakita sur Linuksa laborstacio, enmeti microSD (2GB-karto sufiĉas) kaj ruli la skripton kun parametro - la nomo de la aparato:
./install /dev/mmcblk0
Atentu!
Sen avertoj, la aparato estos formatita kaj la operaciumo estos instalita sur ĝi.
Post senerara ekzekuto de la skripto, la karto povas esti rearanĝita en la "frambo" kaj uzata: kapti per dhcp, pasvorto - "1".
La sistemo estas forigita de ĉiuj identigiloj kaj ŝlosiloj, tial ĉiu nova instalaĵo estas unika.
Mi ripetas denove, la sistemo - minimuma! Tial, ne maltrankviliĝu: DNF estas disponebla, por ke ĝi funkciu, vi devos "inventi" la ĝustan /etc/resolv.conf.
La malvarma komenco de la Frambo daŭras ĉirkaŭ 40 sekundojn. TTX de la sistemo post ŝarĝo:
rpm -qa | wc -l
191
5. Wifi
Mi iom detenos pri la funkcioj de efektivigo de WiFi-alirpunkto. Por detaloj, vi povas raporti al mia antaŭa artikolo.
EPEL ne plu estas bezonata - ĉiuj pakaĵoj estas enhavitaj en la oficialaj deponejoj.
Verŝajne valorus rezigni dnsmasq, ĉar Fedora, male al CentOS, havas sufiĉe lastatempan systemd-networkd, kiu havas normalajn enkonstruitajn DHCP/DNS-servilojn. Sed la fakto estas, ke en RHEL8 programistoj rifuzis subteni la retan stakon per io ajn krom NM, ne inspiras fidon je la brila estonteco de la projekto (kanajloj). Resume, mi ne provis ĝin.
Plue, la nunaj ŝoforoj por la enkonstruita WiFi-adaptilo ne povas esti "ŝtelitaj" de la Raspbian-distribuo, sed elŝutitaj rekte de GitHub.
Jen kiel aspektas la firmware-dosieroj de Broadcom sur mia Raspberry (skeme):
Pri la nombro kaj nomoj de interfacoj. Nun mi forte rekomendas al ĉiuj ne recurrir al la "servoj" de programaraj ŝaltiloj krom se nepre necese (ponto), kiuj enkondukas signifan ŝarĝon en la retan stakon kaj subigas vojigon. Se vi ne planas havi plurajn sendratajn adaptilojn, tiam vi devus uzi nur fizikajn interfacojn. Mi havas du Wi-Fi, do mi kombinas nur ilin en programaran ponton (kvankam vi povas fari sen tio rigardante la hostapd-agordon alie).
Kaj mi amas renomi interfacojn.
Por fari tion en Fedora vi devas krei simbolan ligon:
/etc/systemd/network/99-default.link -> /dev/null
kaj tiam eblos doni signifoplenajn nomojn sen ĉirkaŭpiki udev, sed nur uzante systemd-networkd.
Ekzemple, jen kiel nomiĝas la retaj adaptiloj en mia enkursigilo:
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 - enkonstruita, ext - eksteraj (USB) WiFi-adaptiloj kunvenitaj en "ponton" lan;
wan — Ethernet-adaptilo en kiu la Interreto estas konektita.
Ĉu vi rimarkis? fq_kodo - vere bonega afero. Kune kun freŝa Linukso-kerno, ili faras verajn miraklojn en la sendrata gamo: furioza "torenta elŝuto" ne kondukos al subita malkresko de rapideco inter najbaroj. Eĉ hejma IP-televido funkcianta "super la aero" kun ŝarĝita kanalo ne "rompas" kaj tute ne "balbutiĝas"!
La demona servodosiero spertis etajn ŝanĝojn hostapd.
Ĝi nun aspektas jene (uzante la ekzemplon de enkonstruita adaptilo):
[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
Kaj la "magia" hostapd-int.conf por labori en 5GHz/AC:
(Interreta konekto - 100Mbit/sec)
Kaj finfine, malgranda Oftaj Demandoj.
6 Oftaj Demandoj
6.1 Kial fari Wifi-enkursigilon sur Raspberry?
Oni povus respondi simple, kiel "estas interese provi kaj ĉion ĉi."
Sed fakte, ŝajnas al mi, ke la temo estas sufiĉe serioza. En la epoko de la "sanga" Interreto, aĉeti enkursigilon en vendejo kaj resti ostaĝo de ĝia fabrikanto estas tre malgaja perspektivo. Multaj homoj jam komprenas, ke sidi kun CVE aŭ enkonstruita malantaŭa pordo ne eblas.
Kompreneble, vi povas migri al WRT-firmvaro de entuziasmuloj. Verŝajne estas pli da fido al ili, sed se vi ne volas dependi de ili, tiam simple uzu vian propran produkton. Ideale, plenrajta komputilo por ke ĉio en la mondo povas esti efektivigita sur ĝi. Koncerne enrutadon, kompreneble.
Tial, elekti "frambon" estas pure ekonomia movo: vera komputilo kaj samtempe malmultekosta. Kvankam, eble ankaŭ - kun iliaj "duobloj" interne.
6.2 Sed Raspberry estas "malalta enkursigilo": malrapida kaj kun unu Ethernet-haveno!
Kiel hejma Wifi-enkursigilo, la Raspberry estas pli ol kontentiga por mi. Pri aerrapideco mi jam parolis supre. Kaj estas nur unu Eterreto, nu, en simila produkto de Apple temas pri la sama!
Sed serioze, kompreneble mi ŝatus pli. Kaj malgraŭ tio, ke en mia hejmo ĉiuj aparatoj estas sendrate konektitaj, foje ankoraŭ necesas kupra konekto. Por tiaj kazoj, mi havas "poŝtelefonon" en stoko:
aparato - io tia
6.3 Se ĉi tio estas enkursigilo, tiam nenio estas dirita pri "agordado" TCP/IP, ĉar ĉi tio estas grava!
Krom agordi la retan stakon (tcp_fastopen, YeAH, ktp.), ĉi tiu kaj la antaŭa artikolo ne kovras aliajn nuancojn, precipe la procezon de preparado de microSD por optimuma uzo (kvankam la instalilo provas formati la memorkarton en malfacila maniero). La procezo de plibonigo estas senfina, vi nur bezonas ĉesi ĝustatempe.
6.4 Kial Fedora?
Ĉar mi ŝatas! Fedora estas "ĉefa" sistemo por geeks, por kiuj ĉi tiu artikolo estas fakte celita. En la momento de la skribado, eble la sola OS, kiu por Raspberry en 64-bita versio estas oficiale subtenata de signifa stabo de programistoj (de kiuj mi ne povas atendi. kerno 5.6).
6.5 Ĉu Bluetooth funkcias? Kiel fartas la video/sono/GPIO?
Ne scias. La artikolo temas pri la minimuma instalado de la sistemo kaj ĝia posta uzo kiel Wi-Fi-enkursigilo.
6.6 Kial ĉiuj artikoloj pri CentOS/Fedora/RedHat komenciĝas per malŝalto de SELinux?
Ĉar la sistemo estas minimuma, ĝi eĉ ne havas fajroŝirmilon aŭ ilojn por agordi ĝin. Ĉiu, kiu bezonas ĝin, povas instali aldone ĉion, kion ili bezonas.
6.7 La sistemo ne povas esti uzata, la pasvorto ne estas ŝanĝita - sen passwd. Neniu ping, neniu nenio!
Ekzistas DNF. Aŭ ĉi tiu instala opcio ne estas por vi - uzu la distribuan ilaron de la programistoj.