Распберри Пи + Федора (аарцх64) = Ви-Фи Хотспот (или распберри рутер са плавим шеширом)

У чланку Распберри Пи + ЦентОС = Ви-Фи Хотспот (или распберри рутер са црвеним шеширом) Говорио сам о начину да се малина претвори у бежичну приступну тачку користећи оперативни систем ЦентОС. Састављањем кућног рутера према овом цртежу, задовољио сам свој креативни его и добио сам подстицај за критичан елемент моје удобне инфраструктуре. Међутим, прогањао ме је осећај недовршености решења и унутрашњег перфекционизма: „несавршен резултат рада нема право да постоји“. Помисао да се „идеал може и треба постићи“ није ме напуштала ни на минут.

А онда сам једног дана, на једном од тематских форума, наишао на дискусију о битној дубини постојећих оперативних система за Распберри (аарцх64 вс армхфп): који 64-битни ОС може, у принципу, да одговара и ради на Распберри верзији 3 ++?

Мој вољени ЦентОС за АРМ архитектуру из „Усерланда“ није журио да пређе на најновију верзију кернела и претвори се у 64-битни. А ЕПЕЛ репозиторијум, повезан од Бога зна где без дигиталног потписа, био је ноћна мора у мом немирном сну...

Говорећи као присталица дистрибуција заснованих на РПМ-у, био сам изненађен када сам открио да је ОС за Распберри потпуно заборављен у дискусијама федора! И то упркос чињеници да је његово ослобађање
од верзије 28 званично подржава Распберри Пи 3Б+ у 64-битној верзији!

Распберри Пи + Федора (аарцх64) = Ви-Фи Хотспот (или распберри рутер са плавим шеширом)
У овом чланку ћу говорити о начину инсталације Федора (аарцх64) на Малина Пи КСНУМКС Модел Б + в екстра минималне перформансе. Укратко ћу се задржати на карактеристикама подизања Ви-Фи приступне тачке, идентификоване као резултат пробног рада моје претходне конфигурације на КСНУМКС Уник.

0. Шта ће вам требати

Све је исто као што је наведено у претходном чланку:

  • Распберри Пи 3 Модел Б+;
  • мицроСД >= 4ГБ (касније можете да „пребаците“ систем на диск од 2ГБ);
  • Радна станица са Линуком и читачем мицроСД картица;
  • Жичана мрежна повезаност између Распберри-а и Линук радне станице (у овом случају за подешавање неће бити потребни додатни монитор и тастатура), приступ Интернету са оба уређаја;
  • Напредна вештина у Линуку (да знате и да се не плашите: подељен, dd и мкфс).

Слично итеративном АРС-изградњом сопственог Линука, користиће се слика Федора дистрибуције, а затим ће се на основу ње креирати минимални систем (без „компајлирања из извора“).

1. Инсталација оригиналне дистрибуције

Координате сирове слике система на Интернету:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Након што га снимите на мицроСД и пре употребе, потребно је да:

  1. Проширите „корен“ система датотека (3. партиција, ект4)
    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
    

  2. Онемогућите СЕЛинук
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Уклоните чаробњака за почетно подешавање:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Дозволите приступ преко ссх-а:
    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
    

Сада можете да преузмете „малину“ са мицроСД картице и повежете се са њом преко мреже.

Хладан почетак траје око један и по минут. ТТКС система након учитавања:

Распберри Пи + Федора (аарцх64) = Ви-Фи Хотспот (или распберри рутер са плавим шеширом)

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) са садржајем корена новог минималног издања ОС-а. Можете искључити Распберри и вратити мицроСД на Линук радну станицу.

3. Инсталација минималног система

Инсталација се своди на копирање минималних ОС „имаге“ датотека (добијених у претходном кораку) на посебно припремљену мицроСД картицу у одговарајуће директоријуме.

Довољна је картица од 2ГБ и две партиције на њој:

  1. / боот / ефи - ЕФИ+ФАТ32, боот, 100МБ;
  2. / (роот) - ЕКСТ4, сав преостали простор.

Након што припремите мицроСД и копирате датотеке на њега, потребно је да:

  • поправити покретање ОС;
  • укључите мрежу;
  • конфигуришите приступ преко ссх-а.

Исправка покретања је замена УУИД-а секција у датотекама:

microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv

и параметар савед_ентри= у последњој датотеци

У фајлу:

microSD:/etc/fstab

можете пронаћи старе вредности и тренутне (ажурне) вредности у излазу команде:

blkid | grep mmcblk | sort

Након замене, требало би да исправите и садржај фстаб на мицроСД тако да тачке монтирања одговарају новим УУИД-овима партиције.

Мрежна функционалност када први пут укључите Распберри може се постићи са малом „штаком“ - креирајте везу (шематски):

ln -s /usr/lib/systemd/system/systemd-networkd.service 
  microSD:/etc/systemd/system/multi-user.target.wants

и фајл:

mkdir -p microSD:/etc/systemd/network
cat > microSD:/etc/systemd/network/dhcp.network << EOF
[Match]
Name=*
[Network]
DHCP=ipv4
EOF

Након успешног преузимања, средите лансирање системд-нетворкд:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Приступ суперкорисника преко ссх-а је конфигурисан слично као у кораку 1.

Пошто сте све урадили пажљиво и без грешака, можете преместити мицроСД у „малину“ и почети да радите са 64-битним ОС-ом у екстра минималној верзији.

4. Спреман систем

„Слика“ готовог система, креирана према горе наведеним упутствима, може се преузети са линка:
Федора-Тини-31-5.5.7-200.аарцх64

Ово ће бити архива која садржи две датотеке: инсталациони скрипт и ТГЗ са ОС датотекама. Архиву треба распаковати на Линук радној станици, убацити мицроСД (довољна је картица од 2ГБ) и покренути скрипту са параметром - именом уређаја:

./install /dev/mmcblk0

Будите опрезни!

Без икаквих упозорења, уређај ће бити форматиран и оперативни систем ће бити инсталиран на њему.

Након извршавања скрипте без грешака, картица се може преуредити у „малине“ и користити: хватање преко дхцп-а, лозинка - „1“.

Систем је очишћен од свих ИД-ова и кључева, због чега је свака нова инсталација јединствена.

Понављам још једном, систем - минимално! Стога, немојте бити узнемирени: ДНФ је доступан, да би функционисао, мораћете да „измислите“ прави / Етц / ресолв.цонф.

Хладни старт Распберрија траје око 40 секунди. ТТКС система након учитавања:

Распберри Пи + Федора (аарцх64) = Ви-Фи Хотспот (или распберри рутер са плавим шеширом)

rpm -qa | wc -l
191

5. Ви-Фи

Задржаћу се мало на карактеристикама имплементације Ви-Фи приступне тачке. За појединости, можете погледати мој претходни Чланак.

ЕПЕЛ више није потребан - сви пакети се налазе у званичним репозиторијумима.

Вероватно би вредело одустати днсмаск, пошто Федора, за разлику од ЦентОС-а, има прилично новији системд-нетворкд, који има нормално уграђене ДХЦП/ДНС сервере. Али чињеница је да у РХЕЛ8 програмери одбио да подржи мрежни стек са било чим другим осим НМ-ом, не улива поверење у светлу будућност пројекта (пропалице). Укратко, нисам пробао.

Даље, тренутни драјвери за уграђени Ви-Фи адаптер не могу бити „украдени“ из Распбиан дистрибуције, већ преузети директно са гитхуб.

Овако изгледају датотеке фирмвера Броадцом на мом Распберри-ју (шематски):

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

Без њих нећете добити 5ГХз/АЦ.

Што се тиче броја и назива интерфејса. Сада топло препоручујем свима да не прибегавају „услугама“ софтверских прекидача осим ако је апсолутно неопходно (мост), који уносе значајно оптерећење у мрежни стог и смањују рутирање. Ако не планирате да имате више бежичних адаптера, требало би да користите само физичке интерфејсе. Имам два Ви-Фи, тако да комбинујем само њих у софтверски мост (иако можете и без овога ако другачије погледате подешавање хостапд-а).

И волим да преименујем интерфејсе.

Да бисте то урадили у Федори, потребно је да креирате симболичку везу:

/etc/systemd/network/99-default.link -> /dev/null

и тада ће бити могуће давати смислена имена без чачкања удев, али само користећи системд-нетворкд.

На пример, овако се зову мрежни адаптери у мом рутеру:

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

  • инт - уграђени, лок — екстерни (УСБ) Ви-Фи адаптери састављени у „мост“ ЛАН;
  • ван — Етхернет адаптер на који је повезан Интернет.

Приметио? фк_цодел - стварно кул ствар. Заједно са свежим Линук кернелом, они чине права чуда у бежичном опсегу: жестоко „преузимање торрента“ неће довести до изненадне деградације брзине међу суседима. Чак и кућни ИП-ТВ који ради „преко ваздуха“ са учитаним каналом се не „разбија“ и уопште не „муца“!

Даемон сервисни фајл је претрпео мање промене хостапд.

Сада изгледа овако (користећи пример уграђеног адаптера):

[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ГХз/АЦ:

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]

Мали фотошоп направљен од мог Ерицссона А1018:

(Интернет веза - 100Мбит/сец)Распберри Пи + Федора (аарцх64) = Ви-Фи Хотспот (или распберри рутер са плавим шеширом)
И на крају, мала често постављана питања.

КСНУМКС. ФАК

6.1 Зашто направити Ви-Фи рутер на Распберри-у?

Могло би се одговорити једноставно, као „занимљиво је покушати и све то“.

Али у ствари, чини ми се да је тема прилично озбиљна. У ери „крвавог“ интернета, куповина рутера у продавници и останак таоца његовог произвођача је веома суморна перспектива. Многи људи већ разумеју да седење са ЦВЕ или уграђеним бацкдоор-ом није могуће.

Наравно, можете прећи на ВРТ фирмвер од ентузијаста. Вероватно постоји више поверења у њих, али ако не желите да зависите од њих, онда само користите свој производ. У идеалном случају, пуноправни рачунар тако да се на њему може имплементирати све на свету. У смислу рутирања, наравно.

Стога је избор „малине“ чисто економски потез: прави компјутер и истовремено јефтин. Мада, можда и - са својим "двојницима" унутра.

6.2 Али Распберри је „ниски рутер“: спор и са једним Етхернет портом!

Као кућни Ви-Фи рутер, Распберри је за мене више него задовољавајући. О брзини ваздуха сам већ говорио горе. И постоји само један Етхернет, па, у сличном Апплеовом производу је отприлике исто!

Али озбиљно, наравно да бих волео више. И упркос чињеници да су у мом домаћинству сви уређаји повезани бежично, понекад је и даље потребна бакарна веза. За такве случајеве имам на лагеру „мобилно чвориште“:

уређај - овако нештоРаспберри Пи + Федора (аарцх64) = Ви-Фи Хотспот (или распберри рутер са плавим шеширом)

6.3 Ако је ово рутер, онда се ништа не говори о „подешавању“ ТЦП/ИП-а, јер је ово важно!

Поред подешавања мрежног стека (тцп_фастопен, ИеАХ, итд.), овај и претходни чланак не покривају друге нијансе, посебно процес припреме мицроСД-а за оптимално коришћење (иако инсталатер покушава да форматира меморијску картицу у лукав начин). Процес побољшања је бесконачан, само треба стати на време.

6.4 Зашто Федора?

Зато што волим! Федора је „мајнстрим“ систем за штреберке, којима је овај чланак заправо намењен. У време писања, можда једини ОС који за Распберри у 64-битној верзији званично подржава значајно особље програмера (од којих једва чекам кернел 5.6).

6.5 Да ли Блуетоотх ради? Како је видео/звук/ГПИО?

Не знам. Чланак говори о минималној инсталацији система и његовој накнадној употреби као Ви-Фи рутера.

6.6 Зашто сви чланци о ЦентОС/Федора/РедХат почињу са онемогућавањем СЕЛинука?

Пошто је систем минималан, нема чак ни заштитни зид или услужне програме за његово подешавање. Свако коме је то потребно може додатно да угради све што је потребно.

6.7 Систем се не може користити, лозинка се не може променити - нема пассвд. Нема пинга, нема ничега!

Ту је ДНЦ. Или ова опција инсталације није за вас - користите комплет за дистрибуцију од програмера.

6.8 Где је СВАП? Не могу да живим без њега!

Да ли је то истина? Добро онда:

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 Желео бих да одмах преузмем готову слику са конфигурисаном Ви-Фи приступном тачком!

Припрема инсталатера „за све“ захтеваће мало времена и труда. Ако (одједном!) некоме ово буде заиста интересантно и потребно, пишите нам и смислићемо нешто.

Завршићу са овим.

Желим свима сигурно сурфовање и максималну контролу над инфраструктуром!

Извор: ввв.хабр.цом

Додај коментар