Rakstā Es runāju par veidu, kā, izmantojot operētājsistēmu, Raspberry Pi pārvērst par bezvadu piekļuves punktu. CentOSSaliekot savu mājas maršrutētāju, izmantojot šo dizainu, es apmierināju savu radošo ego un ieguvu sirdsmieru par savas mājīgās infrastruktūras kritiski svarīgo elementu. Tomēr mani vajāja nepabeigtības sajūta un iekšējais perfekcionisms: "nepilnīgam rezultātam nav tiesību pastāvēt". Doma, ka "pilnību var un vajag sasniegt", mani ne mirkli nepameta.
Un tad kādu dienu vienā no tematiskajiem forumiem es saskāros ar diskusiju par Raspberry esošo operētājsistēmu bitu dziļumu (aarch64 vs armhfp): kura 64 bitu operētājsistēma principā var būt piemērota un darboties Raspberry 3. ++?
Mana mīļākā CentOS ARM arhitektūrai Userland nesteidzās pāriet uz jaunāko kodola versiju un kļūt par 64 bitu. Un EPEL repozitorijs, kas bija savienots no Dieva prāta no kurienes bez digitālā paraksta, bija īsts murgs manā nemierīgajā miegā…
Runājot kā uz RPM balstītu izplatīšanu piekritējs, es biju pārsteigts, atklājot, ka Raspberry operētājsistēma diskusijās tika pilnībā aizmirsta. Fedora! Un tas neskatoties uz to, ka tā izlaišana

Šajā rakstā es runāšu par instalēšanas metodi Fedora (aarch64) par Aveņu Pi 3 B + modelis в īpaši minimāla veiktspēja. Es īsi pakavēšos pie Wi-Fi piekļuves punkta paaugstināšanas funkcijām, kas tika identificētas manas iepriekšējās konfigurācijas izmēģinājuma darbības rezultātā .
0. Kas jums būs nepieciešams
Viss ir tāds pats kā iepriekšējā rakstā:
- Raspberry Pi 3 modelis B+;
- microSD >= 4GB (vēlāk varēsiet “pārnest” sistēmu uz 2GB disku);
- Darbstacija ar Linux un microSD karšu lasītājs;
- Vadu tīkla savienojums starp Raspberry Pi un darbstaciju Linux (šajā gadījumā iestatīšanai nebūs nepieciešams papildu monitors un tastatūra), piekļuve internetam no abām ierīcēm;
- Padziļinātas prasmes Linux (zināt un nebaidīties: , и ).
Līdzīgi iteratīvajam - salikt savu Linux, tiks izmantots Fedora izplatīšanas attēls, un pēc tam uz tā bāzes tiks izveidota minimāla sistēma (bez “kompilēšanas no pirmkoda”).
1. Sākotnējā izplatīšanas instalēšana
Sistēmas neapstrādātā attēla koordinātas internetā:
Pēc ierakstīšanas microSD kartē un pirms lietošanas, jums ir nepieciešams:
- Paplašiniet failu sistēmas “sakni” (3. nodalījums, 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 - Atspējot SELinux
echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config - Noņemiet sākotnējās iestatīšanas vedni:
find /mnt/3/etc/systemd/ -iname initial-setup.service -delete - Atļaut piekļuvi, izmantojot 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
Tagad jūs varat lejupielādēt “aveņu” no microSD un izveidot savienojumu ar to, izmantojot tīklu.
Aukstā palaišana aizņem apmēram pusotru minūti. Sistēmas TTX pēc ielādes:

rpm -qa | wc -l
444
2. Minimālās sistēmas salikšana
Diemžēl izstrādātāju “minimālais sadalījums” ir tālu no pieticīgākā resursu patēriņa ziņā. Sistēmas attēlu var padarīt vēl mazāku.
Lai to izdarītu, Malinka ir jāpalaiž skripts:
#!/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ēc skripta palaišanas pašreizējā direktorijā tiks izveidots apakšdirektorijs ($P) ar jaunās minimālās OS versijas saknes saturu. Varat izslēgt Raspberry Pi un atgriezt microSD karti darbstacijā. Linux.
3. Minimālās sistēmas uzstādīšana
Instalēšana ir saistīta ar minimālo OS “attēla” failu (iegūto iepriekšējā solī) kopēšanu uz īpaši sagatavotu microSD atbilstošajos direktorijos.
Pietiek ar 2 GB karti un diviem nodalījumiem tajā:
- / boot / efi - EFI+FAT32, sāknēšana, 100 MB;
- / (sakne) - EXT4, visa atlikušā vieta.
Pēc microSD sagatavošanas un failu kopēšanas tajā, jums ir nepieciešams:
- labot OS sāknēšanu;
- ieslēdziet tīklu;
- konfigurēt piekļuvi, izmantojot ssh.
Sāknēšanas labojums ir aizstāt failu sadaļu UUID:
microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv
un parametrs saved_entry= pēdējā failā
Failā:
microSD:/etc/fstab
komandas izvadē varat atrast vecās vērtības un pašreizējās (jaunākās) vērtības:
blkid | grep mmcblk | sort
Pēc nomaiņas jums vajadzētu arī izlabot saturu fstab microSD, lai pievienošanas punkti atbilstu jaunajiem nodalījumu UUID.
Tīkla funkcionalitāti, pirmo reizi ieslēdzot Raspberry, var sasniegt ar nelielu “kruķi” - izveidojiet saiti (shēmiski):
ln -s /usr/lib/systemd/system/systemd-networkd.service
microSD:/etc/systemd/system/multi-user.target.wants
un fails:
mkdir -p microSD:/etc/systemd/network
cat > microSD:/etc/systemd/network/dhcp.network << EOF
[Match]
Name=*
[Network]
DHCP=ipv4
EOF
Pēc veiksmīgas lejupielādes sakārtojiet palaišanu :
systemctl disable systemd-networkd
systemctl enable systemd-networkd
Superlietotāja piekļuve, izmantojot ssh, ir konfigurēta līdzīgi kā 1. darbībā.
Paveicot visu rūpīgi un bez kļūdām, varat pārvietot microSD uz "aveņu" un sākt strādāt ar 64 bitu OS papildu minimālajā versijā.
4. Gatava sistēma
Gatavās sistēmas “attēlu”, kas izveidots saskaņā ar iepriekš sniegtajiem norādījumiem, var lejupielādēt no saites:
Šis būs arhīvs, kurā būs divi faili: instalācijas skripts un TGZ fails ar OS failiem. Arhīvs ir jāatpako darbstacijā. Linux, ievietojiet microSD karti (pietiek ar 2 GB karti) un palaidiet skriptu ar ierīces nosaukumu kā parametru:
./install /dev/mmcblk0
Esi uzmanīgs!
Bez brīdinājumiem ierīce tiks formatēta un tajā tiks instalēta operētājsistēma.
Pēc skripta izpildes bez kļūdām karti var pārkārtot "avenē" un izmantot: noķert caur dhcp, parole - "1".
Sistēma ir atbrīvota no visiem ID un atslēgām, tāpēc katra jauna instalācija ir unikāla.
Es atkārtoju vēlreiz, sistēma - minimāls! Tāpēc neuztraucieties: DNF ir pieejams, lai tas darbotos, jums būs “jāizgudro” pareizais. .
Raspberry aukstā palaišana aizņem apmēram 40 sekundes. Sistēmas TTX pēc ielādes:

rpm -qa | wc -l
191
5. Bezvadu internets
Es nedaudz pakavēšos pie Wi-Fi piekļuves punkta ieviešanas funkcijām. Lai iegūtu sīkāku informāciju, varat skatīt manu iepriekšējo .
EPEL vairs nav vajadzīgs - visas pakotnes atrodas oficiālajos repozitorijos.
Droši vien būtu vērts atteikties , jo Fedorā, atšķirībā no CentOS, ir diezgan jauns systemd-networkd, kam ir pienācīgi iebūvēti DHCP/DNS serveri. Taču patiesībā RHEL8 izstrādātāji , nevieš pārliecību par projekta gaišo nākotni (neliešiem). Īsāk sakot, neesmu mēģinājis.
Turklāt pašreizējos iebūvētā Wi-Fi adaptera draiverus nevar “nozagt” no Raspbian izplatīšanas, bet gan lejupielādēt tieši no .
Šādi izskatās Broadcom programmaparatūras faili manā Raspberry (shēmiski):
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
Bez tiem jūs nesaņemsit 5 GHz/AC.
Par saskarņu skaitu un nosaukumiem. Tagad es stingri iesaku visiem neizmantot programmatūras slēdžu “pakalpojumus”, ja vien tas nav absolūti nepieciešams (), kas rada ievērojamu slodzi tīkla stekam un nomāc maršrutēšanu. Ja neplānojat izmantot vairākus bezvadu adapterus, izmantojiet tikai fiziskās saskarnes. Man ir divi Wi-Fi, tāpēc es apvienoju tikai tos programmatūras tiltā (lai gan jūs varat iztikt bez tā, citādi aplūkojot hostapd iestatījumus).
Un man patīk pārdēvēt saskarnes.
Lai to izdarītu programmā Fedora, jums ir jāizveido simboliska saite:
/etc/systemd/network/99-default.link -> /dev/null
un tad varēs jēdzīgus vārdus dot bez bakstīšanās , bet tikai izmantojot systemd-networkd.
Piemēram, šādi tiek saukti tīkla adapteri manā maršrutētājā:
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 - iebūvēts, ext — ārējie (USB) Wi-Fi adapteri, kas samontēti “tiltā” lan;
- bāls — Ethernet adapteris, kuram ir pievienots internets.
Vai pamanījāt? — tiešām forša lieta. Kopā ar svaigu kodolu Linux Tie dara brīnumus bezvadu spektrā: brutāla torrenta lejupielāde neizraisīs pēkšņu ātruma kritumu jūsu kaimiņiem. Pat mājas IPTV pa gaisu "nesadalās" un nemaz neraujas, kad kanāls ir aizņemts!
Dēmona pakalpojuma failā ir veiktas nelielas izmaiņas .
Tagad tas izskatās šādi (izmantojot iebūvētā adaptera piemēru):
[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
Un “maģiskais” hostapd-int.conf darbam ar 5 GHz/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]
Neliels fotošops no maniem Ericsson A1018s:
(Interneta savienojums - 100Mbit/sek)
Un visbeidzot neliels FAQ.
6. Bieži uzdotie jautājumi
6.1 Kāpēc izveidot Wi-Fi maršrutētāju vietnē Raspberry?
Varētu atbildēt vienkārši, piemēram, "ir interesanti izmēģināt un viss."
Bet patiesībā man šķiet, ka tēma ir diezgan nopietna. “Asiņainā” interneta laikmetā maršrutētāja iegāde veikalā un tā ražotāja ķīlnieka palikšana ir ļoti drūma perspektīva. Daudzi jau saprot, ka sēdēt ar CVE vai iebūvētām aizmugures durvīm nav iespējams.
Protams, jūs varat migrēt uz WRT programmaparatūru no entuziastiem. Iespējams, ka viņiem ir lielāka uzticība, taču, ja nevēlaties no viņiem paļauties, izmantojiet tikai savu produktu. Ideālā gadījumā pilnvērtīgs dators, lai tajā varētu realizēt visu pasaulē. Protams, maršrutēšanas ziņā.
Tāpēc “aveņu” izvēle ir tīri ekonomisks solis: īsts dators un tajā pašā laikā lēts. Lai gan, iespējams, arī - ar saviem “dubultiem” iekšā.
6.2 Bet Raspberry ir “zems maršrutētājs”: lēns un ar vienu Ethernet portu!
Kā mājas Wi-Fi maršrutētājs Raspberry man ir vairāk nekā apmierinošs. Iepriekš jau runāju par gaisa ātrumu. Un ir tikai viens Ethernet, labi, līdzīgā Apple produktā tas ir aptuveni vienāds!
Bet ja nopietni, protams, gribētos vairāk. Un, neskatoties uz to, ka manā mājsaimniecībā visas ierīces ir savienotas bezvadu režīmā, dažkārt joprojām ir nepieciešams vara savienojums. Šādiem gadījumiem man ir pieejams “mobilais centrmezgls”:
ierīce - kaut kas līdzīgs šim
6.3 Ja šis ir maršrutētājs, tad par “skaņošanu” nekas netiek teikts. TCP/IP, jo tas ir svarīgi!
Papildus tīkla steka iestatīšanai (tcp_fastopen, YeAH utt.) šis un iepriekšējais raksts neaptver citas nianses, jo īpaši microSD sagatavošanas procesu optimālai lietošanai (lai gan instalētājs mēģina formatēt atmiņas karti sarežģīts veids). Uzlabošanas process ir bezgalīgs, jums vienkārši jāapstājas laikā.
6.4 Kāpēc Fedora?
Tapec ka man patik! Fedora ir “mainstream” sistēma dīķiem, kuriem šis raksts patiesībā ir paredzēts. Rakstīšanas laikā, iespējams, vienīgā OS, kuru Raspberry 64 bitu versijā oficiāli atbalsta ievērojams izstrādātāju personāls (no kuriem es nevaru sagaidīt ).
6.5 Vai Bluetooth darbojas? Kā ir ar video/skaņu/GPIO?
Nezinu. Raksts ir par sistēmas minimālo uzstādīšanu un turpmāko izmantošanu kā Wi-Fi maršrutētāju.
6.6 Kāpēc visi raksti ir par CentOS/Fedora/RedHat startē ar atspējotu SELinux?
Tā kā sistēma ir minimāla, tai pat nav ugunsmūra vai utilītu tās iestatīšanai. Ikviens, kam tas ir nepieciešams, var papildus uzstādīt visu nepieciešamo.
6.7 Sistēmu nevar izmantot, paroli nevar mainīt - no passwd. Nav ping, nav nekā!
Ir . Vai arī šī instalēšanas opcija nav paredzēta jums - izmantojiet izstrādātāju izplatīšanas komplektu.
6.8 Kur ir SWAP? Es nevaru dzīvot bez viņa!
Tā ir patiesība? Tad labi:
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 Vēlos nekavējoties lejupielādēt gatavu attēlu ar konfigurētu Wi-Fi piekļuves punktu!
Lai sagatavotu uzstādītāju “visiem”, būs vajadzīgs zināms laiks un pūles. Ja (pēkšņi!) kādam tas tiešām šķiet interesants un vajadzīgs, rakstiet mums un mēs kaut ko izdomāsim.
Es pabeigšu ar šo.
Novēlu visiem drošu sērfošanu un maksimālu kontroli pār infrastruktūru!
Avots: www.habr.com
