ProHoster > Блог > басқарма > Raspberry Pi + Fedora (aarch64) = Wi-Fi қосылу нүктесі (немесе көк қалпақшасы бар таңқурай маршрутизаторы)
Raspberry Pi + Fedora (aarch64) = Wi-Fi қосылу нүктесі (немесе көк қалпақшасы бар таңқурай маршрутизаторы)
Мақалада Raspberry Pi + CentOS = Wi-Fi қосылу нүктесі (немесе қызыл қалпақшасы бар таңқурай маршрутизаторы) Мен CentOS операциялық жүйесі арқылы таңқурайды сымсыз кіру нүктесіне айналдыру әдісі туралы айттым. Осы сызбаға сәйкес үйдегі маршрутизаторды жинай отырып, мен өзімнің шығармашылық эгомды қанағаттандырдым және жайлы инфрақұрылымымның маңызды элементі үшін жан тыныштығына ие болдым. Дегенмен, шешімнің толық еместігі және ішкі перфекционизм мені алаңдатты: «еңбектің жетілмеген нәтижесі өмір сүруге құқығы жоқ». «Идеалға қол жеткізуге болады және керек» деген ой мені бір минутқа қалдырған жоқ.
Содан кейін бір күні тақырыптық форумдардың бірінде мен Raspberry (aarch64 vs armhfp) үшін бар операциялық жүйелердің бит тереңдігі туралы пікірталасқа тап болдым: ол 64 биттік ОЖ негізінен Raspberry 3 нұсқасына сай және жұмыс істей алады. ++?
Менің сүйікті ARM архитектурасына арналған «Userland» CentOS ядроның соңғы нұсқасына ауысуға және 64-биттікке ауысуға асықпады. Ал EPEL репозиторийі ЭЦҚ-сыз қайдан бір құдайға қосылды, менің мазасыз ұйқымдағы қорқынышты түс болды...
Бұл мақалада мен орнату әдісі туралы айтатын боламын Федора (aarch64) туралы Raspberry Pi 3 моделі B + в қосымша минималды өнімділік. Мен алдыңғы конфигурациямның сынақ жұмысының нәтижесінде анықталған Wi-Fi кіру нүктесін көтеру мүмкіндіктеріне қысқаша тоқталамын. CentOS 7.
Linux және microSD картасын оқу құрылғысы бар жұмыс станциясы;
Raspberry және Linux жұмыс станциясы арасындағы сымды желі қосылымы (бұл жағдайда орнату үшін қосымша монитор мен пернетақта қажет болмайды), екі құрылғыдан да Интернетке қол жеткізу;
Linux жүйесінде жоғары біліктілік (білу және қорықпау үшін: бөлінді, dd и mkfs).
Итеративтіге ұқсас LFS-өз Linux-ті құрастыру үшін Fedora тарату кескіні пайдаланылады, содан кейін оның негізінде минималды жүйе жасалады («көзден құрастырусыз»).
Енді сіз «таңқурайды» microSD картасынан жүктеп алып, оған желі арқылы қосыла аласыз.
Суық бастау шамамен бір жарым минутты алады. Жүктелгеннен кейін жүйенің TTX:
rpm -qa | wc -l
444
2. Минималды жүйені құрастыру
Өкінішке орай, әзірлеушілер тарапынан «минималды үлестіру» ресурстарды тұтынудағы ең қарапайымдылықтан алыс болып шықты. Жүйе кескінін одан да кішірейтуге болады.
Мұны істеу үшін сіз Малинкадағы сценарийді іске қосуыңыз керек:
#!/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) жаңа минималды ОЖ басылымының түбірінің мазмұнымен. Таңқурайды өшіріп, microSD дискісін Linux жұмыс станциясына қайтаруға болады.
3. Минималды жүйені орнату
Орнату операциялық жүйенің ең аз «кескін» файлдарын (алдыңғы қадамда алынған) арнайы дайындалған microSD дискісіне тиісті каталогтарға көшіруге дейін созылады.
2 ГБ картасы және оған екі бөлім жеткілікті:
/ boot / efi - EFI+FAT32, жүктеу, 100 МБ;
/ (түбір) - EXT4, барлық қалған бос орын.
MicroSD картасын дайындап, оған файлдарды көшіргеннен кейін сізге қажет:
ОЖ жүктелуін түзету;
желіні қосыңыз;
ssh арқылы қол жеткізуді теңшеңіз.
Жүктеуді түзету файлдардағы бөлімдердің UUID кодын ауыстыру болып табылады:
ssh арқылы суперпайдаланушы қатынасы 1-қадамға ұқсас конфигурацияланған.
Барлығын мұқият және қатесіз орындағаннан кейін, сіз microSD картасын «таңқурайға» жылжытып, қосымша минималды нұсқада 64 биттік ОЖ-мен жұмыс істей бастай аласыз.
4. Дайын жүйе
Жоғарыдағы нұсқауларға сәйкес жасалған дайын жүйенің «бейнесін» мына сілтемеден жүктеп алуға болады: Fedora-Tiny-31-5.5.7-200.aarch64
Бұл екі файлды қамтитын мұрағат болады: орнату сценарийі және ОЖ файлдары бар TGZ. Мұрағатты Linux жұмыс станциясында ашу керек, microSD салыңыз (2 ГБ карта жеткілікті) және сценарийді құрылғының атымен бірге іске қосыңыз:
./install /dev/mmcblk0
Сақ болыңыз!
Ешқандай ескертусіз құрылғы пішімделеді және оған операциялық жүйе орнатылады.
Сценарий қатесіз орындалғаннан кейін картаны «таңқурайға» қайта орналастыруға және пайдалануға болады: dhcp арқылы ұстау, құпия сөз - «1».
Жүйе барлық идентификаторлар мен кілттерден тазартылған, сондықтан әрбір жаңа орнату бірегей.
Мен тағы бір рет қайталаймын, жүйе - минималды! Сондықтан үрейленбеңіз: DNF бар, ол жұмыс істеуі үшін сізге дұрысын «ойлап шығару» керек. /etc/resolv.conf.
Таңқурайдың суық басталуы шамамен 40 секундты алады. Жүктелгеннен кейін жүйенің TTX:
rpm -qa | wc -l
191
5. Сымсыз дәлдiк
Мен Wi-Fi кіру нүктесін енгізу мүмкіндіктеріне аздап тоқталамын. Нақтырақ айтсақ, менің алдыңғы нұсқама сілтеме жасай аласыз мақала.
EPEL енді қажет емес - барлық пакеттер ресми репозиторийлерде бар.
Бұл бас тартуға тұрарлық шығар dnsmasq, өйткені Fedora, CentOS-тен айырмашылығы, әдеттегі кірістірілген DHCP/DNS серверлері бар жүйелік желіге жақында бар. Бірақ бұл RHEL8 әзірлеушілерінде желі стегін NM-ден басқа ештеңемен қолдаудан бас тартты, жобаның жарқын болашағына сенім ұялатпайды (шұбарлар). Қысқасы, мен оны сынап көрмедім.
Сонымен қатар, кірістірілген Wi-Fi адаптеріне арналған ағымдағы драйверлерді Raspbian дистрибутивінен «ұрлауға» болмайды, бірақ оны тікелей жүктеуге болады. GitHub.
Broadcom микробағдарлама файлдары менің Raspberry-де осылай көрінеді (сызба бойынша):
Интерфейстердің саны мен атауларына қатысты. Енді мен барлығына өте қажет болмаса, бағдарламалық қамтамасыз ету қосқыштарының «қызметтеріне» жүгінбеуді қатты ұсынамын (көпір), бұл желі стекіне айтарлықтай жүктеме енгізеді және маршруттауды азайтады. Бірнеше сымсыз адаптерлерді пайдалануды жоспарламасаңыз, тек физикалық интерфейстерді пайдалану керек. Менде екі Wi-Fi бар, сондықтан мен оларды тек бағдарламалық құрал көпіріне біріктіремін (бірақ сіз hostapd орнатуына басқаша қарау арқылы онсыз жасай аласыз).
Мен интерфейстердің атын өзгертуді жақсы көремін.
Мұны Fedora-да орындау үшін символдық сілтеме жасау керек:
/etc/systemd/network/99-default.link -> /dev/null
сосын тырп еткізбей мағыналы атаулар беруге болады удев, бірақ тек systemd-networkd арқылы.
Мысалы, менің маршрутизаторымдағы желілік адаптерлер осылай аталады:
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 - кіріктірілген, EXT — «көпірге» жиналған сыртқы (USB) Wi-Fi адаптерлері LAN;
wan — Интернет қосылған Ethernet адаптері.
Сіз байқадыңыз ба? fq_код - шынымен керемет нәрсе. Жаңа Linux ядросымен бірге олар сымсыз диапазонда нағыз ғажайыптар жасайды: қатал «торрент жүктеп алу» көршілер арасында жылдамдықтың кенет төмендеуіне әкелмейді. Тіпті жүктелген арнасы бар «әуе арқылы» жұмыс істейтін үйдегі IP-теледидар да «үзілмейді» және мүлде «кекірмейді»!
Демон қызметінің файлы шамалы өзгерістерге ұшырады hostapd.
Енді ол келесідей көрінеді (кіріктірілген адаптердің мысалын пайдалана отырып):
[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
Және 5 ГГц/АС жиілігінде жұмыс істеуге арналған «сиқырлы» hostapd-int.conf:
Менің Ericsson A1018 құрылғыларымнан жасалған шағын фотошоп:
(Интернет қосылымы - 100 Мбит/сек)
Соңында, шағын жиі қойылатын сұрақтар.
6. Жиі қойылатын сұрақтар
6.1 Неліктен Raspberry-де Wi-Fi маршрутизаторын жасау керек?
Қарапайым жауап беруге болады, мысалы, «бәрі де қызық».
Бірақ, шындығында, маған тақырып айтарлықтай салмақты сияқты. Интернеттің «қанды» дәуірінде дүкенде маршрутизаторды сатып алу және оны өндірушінің кепілінде қалу - бұл өте қайғылы перспектива. Көптеген адамдар CVE немесе кірістірілген бэкдормен отыру мүмкін емес екенін түсінеді.
Әрине, энтузиастардан WRT микробағдарламасына көшуге болады. Оларға көбірек сенім артатын шығар, бірақ егер сіз оларға тәуелді болғыңыз келмесе, өз өніміңізді пайдаланыңыз. Ең дұрысы, әлемдегі барлық нәрсені іске асыруға болатын толыққанды компьютер. Маршруттау тұрғысынан, әрине.
Сондықтан «таңқурайды» таңдау - бұл таза экономикалық қадам: нақты компьютер және сонымен бірге арзан. Дегенмен, мүмкін, сонымен қатар - ішіндегі «қостарымен».
6.2 Бірақ Raspberry - бұл «төмен маршрутизатор»: баяу және бір Ethernet порты бар!
Үйдегі Wi-Fi маршрутизаторы ретінде таңқурай мен үшін қанағаттанарлық. Мен жоғарыда ауа жылдамдығы туралы айттым. Бір ғана Ethernet бар, Apple компаниясының ұқсас өнімінде ол шамамен бірдей!
Бірақ шындап айтсам, мен, әрине, көбірек алғым келеді. Менің үй шаруашылығымдағы барлық құрылғылар сымсыз қосылғанына қарамастан, кейде мыс қосылымы қажет. Мұндай жағдайларда менде «мобильді хаб» бар:
құрылғы - осындай нәрсе
6.3 Егер бұл маршрутизатор болса, онда TCP/IP «баптау» туралы ештеңе айтылмайды, өйткені бұл маңызды!
Желілік стек (tcp_fastopen, YeAH және т.б.) орнатудан басқа, осы және алдыңғы мақала басқа нюанстарды қамтымайды, атап айтқанда, оңтайлы пайдалануға microSD дайындау процесі (бірақ орнатушы жад картасын пішімдеуге тырысады. қиын жол). Жақсарту процесі шексіз, тек уақытында тоқтау керек.
6.4 Неліктен Fedora?
Өйткені маған ұнайды! Fedora - бұл мақала шын мәнінде арналған гектерге арналған «негізгі» жүйе. Жазу кезінде, мүмкін, Raspberry үшін 64 биттік нұсқадағы жалғыз ОЖ-ны әзірлеушілердің айтарлықтай құрамы ресми түрде қолдайды (мен оларды күте алмаймын) ядро 5.6).
6.5 Bluetooth жұмыс істей ме? Бейне/дыбыс/GPIO қалай?
Білмеймін. Мақалада жүйені ең аз орнату және оны Wi-Fi маршрутизаторы ретінде кейіннен пайдалану туралы.
6.6 Неліктен CentOS/Fedora/RedHat туралы барлық мақалалар SELinux-ты өшіруден басталады?
Жүйе минималды болғандықтан, оны орнатуға арналған желіаралық қалқан немесе утилиталар да жоқ. Оны қажет ететін кез келген адам өзіне қажет нәрсенің бәрін қосымша орната алады.
6.7 Жүйені пайдалану мүмкін емес, құпия сөзді өзгерту мүмкін емес - passwd жоқ. Пинг жоқ, ештеңе жоқ!
бар DNF. Немесе бұл орнату опциясы сіз үшін емес - әзірлеушілердің тарату жинағын пайдаланыңыз.
6.8 SWAP қайда орналасқан? Мен онсыз өмір сүре алмаймын!
6.9 Мен конфигурацияланған Wi-Fi кіру нүктесі бар дайын кескінді дереу жүктеп алғым келеді!
Орнатушыны «барлығына» дайындау біраз уақыт пен күш жұмсайды. Егер (кенеттен!) біреу мұны шынымен қызықты және қажет деп тапса, бізге жазыңыз, біз бірдеңе ойлап табамыз.
Мен мұнымен аяқтаймын.
Барлығына қауіпсіз серфинг және инфрақұрылымды барынша бақылауды тілеймін!