ProHoster > Блог > администрация > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или Raspberry Blue Hat Router)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (или Raspberry Blue Hat Router)
Статията Raspberry Pi + CentOS = Wi-Fi Hotspot (или Raspberry Red Hat Router) Говорих за това как да превърна малина в безжична точка за достъп с помощта на операционната система CentOS. Сглобявайки домашния си рутер според този чертеж, задоволявах творческото си его и получих заряд на спокойствие за критичен елемент от моята уютна инфраструктура. Усещането за непълнота на решението и вътрешният перфекционизъм обаче не дадоха почивка: „несъвършеният резултат от работата няма право на съществуване“. Мисълта, че „идеалът може и трябва да бъде постигнат“ не ме напускаше нито за минута.
И тогава един ден в един от тематичните форуми попаднах на дискусия за битовата дълбочина на съществуващите операционни системи за "малина" (aarch64 срещу armhfp): каква 64-битова ОС по принцип може да се побере и да печели пари на Raspberry версия 3++?
Любимата ми CentOS за ARM архитектура от "Userland" не бързаше да премине към най-новото ядро и да се превърне в 64-битова. И хранилището на EPEL, свързано от Бог знае къде без цифров подпис, беше кошмар в моя неспокоен сън ...
В тази статия ще ви покажа как да инсталирате Fedora (aarch64) на Малина Pi 3 Модел B + в допълнителна минимална производителност. Накратко ще се спра на характеристиките на повишаване на Wi-Fi точка за достъп, идентифицирани в резултат на пробната експлоатация на предишната ми конфигурация на CentOS 7.
0. Какво ви трябва
Всичко е същото, както е изброено в предишната статия:
Raspberry Pi 3 Модел B+;
microSD >= 4GB (по-късно можете да "прехвърлите" системата на 2GB устройство);
Работна станция с Linux и четец на microSD карти;
Кабелна мрежова свързаност на "малина" и работна станция с Linux (в този случай няма да имате нужда от допълнителен монитор и клавиатура за конфигуриране), достъп до интернет от двете устройства;
Разширени умения в Linux (да знаете и да не се страхувате: разединен, dd и mkfs).
Като итерация Наблюдението на работната сила-изграждане на ваш собствен 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 карта в съответните директории.
Достатъчно 2GB карта и два дяла на нея:
/ Обувка / EFI - EFI + FAT32, стартиращ, 100MB;
/ (корен) - EXT4, цялото оставащо пространство.
След като подготвите microSD и копирате файлове в нея, трябва да:
коригирайте стартирането на ОС;
включете мрежата;
настройте ssh достъп.
Корекцията за зареждане е да се замени UUID на секциите във файловете:
Достъпът до суперпотребителя чрез ssh се конфигурира подобно на стъпка 1.
След като направите всичко спретнато и без грешки, можете да пренаредите microSD на "малина" и да започнете да работите с 64-битова операционна система в допълнителна минимална версия.
4. Готова система
"Образът" на готовата система, създаден съгласно инструкциите по-горе, можете да изтеглите от връзката: Fedora-Tiny-31-5.5.7-200.aarch64
Това ще бъде архив, съдържащ два файла: инсталационния скрипт и TGZ с OS файлове. Архивът трябва да бъде разопакован на работна станция на Linux, поставете microSD карта (2GB карти са достатъчни) и стартирайте скрипта с параметъра име на устройството:
./install /dev/mmcblk0
Бъдете внимателни!
Без никакво предупреждение устройството ще бъде форматирано и операционната система ще бъде инсталирана на него.
След като скриптът е обработен без грешки, картата може да бъде пренаредена в "малина" и използвана: улавяне чрез dhcp, парола - "1".
Системата е изчистена от всякакви идентификатори и ключове, поради което всяка нова инсталация е уникална.
Отново системата минимален! Затова не се тревожете: DNF е наличен, за неговото изпълнение ще трябва да „композирате“ правилния / И т.н. / resolv.conf.
Студеният старт на "малина" отнема около 40 секунди. TTX на системата след зареждане:
rpm -qa | wc -l
191
5. WiFi
Ще се спра малко на характеристиките на внедряването на Wi-Fi точка за достъп. За подробности, моля, вижте предишния ми Статия.
EPEL вече не е необходим - всички пакети се съдържат в официалните хранилища.
Вероятно трябваше да се откаже dnsmasq, тъй като във Fedora, за разлика от CentOS, има доста свеж systemd-networkd, в който има нормални вградени DHCP / DNS сървъри. Но фактът, че в RHEL8 разработчиците отпадна поддръжката на мрежов стек за всичко различно от NM, не вдъхва увереност в светлото бъдеще на проекта (негодници). Накратко, не съм го пробвал.
Освен това действителните драйвери на вградения Wi-Fi адаптер не могат да бъдат „откраднати“ от разпространението на Raspbian, а изтеглени директно от GitHub.
Ето как изглеждат файловете на фърмуера на Broadcom на моята "малина" (схематично):
Относно броя и имената на интерфейсите. Сега силно препоръчвам на всички да не прибягват до „услугите“ на софтуерните превключватели без специална нужда (мост), които въвеждат значително натоварване на мрежовия стек и възпрепятстват маршрутизирането. Освен ако не планирате множество безжични адаптери, използвайте само физическите интерфейси. Имам две Wi-Fi мрежи, така че ги комбинирам само в софтуерен мост (въпреки че можете да направите и без това, като погледнете настройката на hostapd по различен начин).
И обичам да преименувам интерфейси.
За да направите това във Fedora, трябва да създадете символна връзка:
/etc/systemd/network/99-default.link -> /dev/null
и тогава ще бъде възможно да се дават смислени имена, без да се рови udev, но само чрез 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 - вградени вътр - външни (USB) Wi-Fi адаптери, събрани в "мост" LAN;
изнурен - Ethernet адаптер, към който е свързан интернет.
Забелязано? fq_codel - наистина страхотно нещо. Заедно с ново ядро на 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
И "магическият" hostapd-int.conf за работа в 5GHz/AC:
Малък "фотошоп", направен от моя "Ericsson A1018s":
(Интернет връзка - 100Mbps)
И накрая, малък ЧЗВ.
6. ЧЗВ
6.1 Защо да правите Wi-Fi рутер на Raspberry?
Човек може да отговори просто, казват те, „интересно е да опитам и всичко това“.
Но всъщност темата ми се струва доста сериозна. В ерата на „кървавия“ интернет, закупуването на рутер в магазин и оставането на заложник на неговия производител е много скучна перспектива. Много хора вече разбират, че е невъзможно да седнете с 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.9 Бих искал веднага да изтегля готово изображение с конфигурирана Wi-Fi точка за достъп!
Подготовката на инсталатор "за всеки" ще отнеме известно време и усилия. Ако (внезапно!) На някого наистина изглежда интересно и необходимо - пишете, ще измислим нещо.
На това ще завърша.
Пожелавам на всички безопасно сърфиране и максимален контрол върху инфраструктурата!