ProHoster > Blog > İdarə > Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (və ya mavi papaqlı moruq marşrutlaşdırıcısı)
Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (və ya mavi papaqlı moruq marşrutlaşdırıcısı)
Məqalədə Raspberry Pi + CentOS = Wi-Fi Hotspot (və ya qırmızı papaqlı moruq marşrutlaşdırıcısı) CentOS əməliyyat sistemindən istifadə edərək Raspberry-ni simsiz giriş nöqtəsinə çevirməyin bir yolu haqqında danışdım. Ev marşrutlaşdırıcımı bu cizgiyə uyğun yığaraq, mən yaradıcı eqomu təmin etdim və rahat infrastrukturumun kritik elementi üçün rahatlıq qazandım. Ancaq həllin natamamlığı və daxili mükəmməllik hissi məni təqib etdi: "əməyin qeyri-kamil nəticəsinin mövcud olmağa haqqı yoxdur." “İdeal əldə edilə bilər və edilməlidir” fikri məni bir dəqiqə belə tərk etmədi.
Və sonra bir gün tematik forumların birində Raspberry (aarch64 vs armhfp) üçün mövcud əməliyyat sistemlərinin bit dərinliyi ilə bağlı müzakirəyə rast gəldim: hansı 64 bitlik əməliyyat sistemi prinsipcə Raspberry 3-ə uyğunlaşa və işləyə bilər. ++?
"Userland" dan ARM arxitekturası üçün sevimli CentOS, nüvənin ən son versiyasına keçməyə və 64 bitə çevrilməyə tələsmirdi. Və EPEL anbarı, Allah bilir, rəqəmsal imza olmadan harda, narahat yuxumda kabus idi...
Bu yazıda quraşdırma üsulu haqqında danışacağam Fedora (aarch64) haqqında Moruq Pi 3 Model B + в əlavə minimal performans. Əvvəlki konfiqurasiyamın sınaq əməliyyatı nəticəsində müəyyən edilmiş Wi-Fi giriş nöqtəsinin artırılması xüsusiyyətlərinə qısaca toxunacağam. CentOS 7.
0. Nəyə ehtiyacınız olacaq
Hər şey əvvəlki məqalədə sadalanan kimidir:
Raspberry Pi 3 Model B+;
microSD >= 4GB (daha sonra sistemi 2GB sürücüyə “köçürə” bilərsiniz);
Linux və microSD kart oxuyucusu ilə iş stansiyası;
Raspberry və Linux iş stansiyası arasında simli şəbəkə bağlantısı (bu halda quraşdırma üçün əlavə monitor və klaviatura tələb olunmayacaq), hər iki cihazdan İnternetə çıxış;
Linux-da qabaqcıl bacarıq (bilmək və qorxmamaq üçün: ayrıldı, dd и mkfs).
İterativ kimi LFS-öz Linuxunuzu qurarkən, Fedora paylama təsvirindən istifadə ediləcək və sonra onun əsasında minimal sistem yaradılacaq ("mənbədən tərtib etmədən").
İndi siz “moruq”u microSD-dən yükləyə və şəbəkə vasitəsilə ona qoşula bilərsiniz.
Soyuq bir başlanğıc təxminən bir yarım dəqiqə çəkir. Yüklədikdən sonra sistemin TTX:
rpm -qa | wc -l
444
2. Minimal sistemin yığılması
Təəssüf ki, tərtibatçıların "minimal paylanması" resurs istehlakında ən təvazökarlıqdan uzaqdır. Sistem şəkli daha da kiçik edilə bilər.
Bunu etmək üçün skripti Malinka-da işlətməlisiniz:
#!/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
Skripti işə saldıqdan sonra cari qovluqda alt kataloq yaradılacaq ($P) yeni minimal OS nəşrinin kökünün məzmunu ilə. Siz Raspberry-ni söndürə və microSD-ni Linux iş stansiyasına qaytara bilərsiniz.
3. Minimal sistemin quraşdırılması
Quraşdırma əməliyyat sisteminin minimal “şəkil” fayllarını (əvvəlki addımda əldə edilmiş) xüsusi hazırlanmış microSD-yə müvafiq qovluqlara köçürməkdən ibarətdir.
2 GB kart və onun üzərində iki bölmə kifayətdir:
/ boot / efi - EFI+FAT32, yükləmə, 100MB;
/ (kök) - EXT4, bütün qalan boşluq.
MicroSD hazırladıqdan və ona faylları kopyaladıqdan sonra sizə lazımdır:
OS açılışını düzəltmək;
şəbəkəni yandırın;
ssh vasitəsilə girişi konfiqurasiya edin.
Yükləmə düzəlişi, fayllardakı bölmələrin UUID-ni əvəz etməkdir:
Ssh vasitəsilə super istifadəçi girişi 1-ci addıma bənzər şəkildə konfiqurasiya edilmişdir.
Hər şeyi diqqətlə və səhvsiz etdikdən sonra, microSD-ni "moruq" a köçürə və əlavə minimal versiyada 64 bitlik OS ilə işə başlaya bilərsiniz.
4. Hazır sistem
Yuxarıdakı təlimatlara uyğun olaraq yaradılmış bitmiş sistemin "şəklini" linkdən yükləmək olar: Fedora-Tiny-31-5.5.7-200.aarch64
Bu, iki fayldan ibarət arxiv olacaq: quraşdırma skripti və OS faylları olan TGZ. Arxiv Linux iş stansiyasında açılmalı, microSD daxil edilməlidir (2 GB kart kifayətdir) və skripti parametrlə - cihazın adı ilə işə salın:
./install /dev/mmcblk0
Ehtiyatlı olun!
Heç bir xəbərdarlıq edilmədən cihaz formatlaşdırılacaq və ona əməliyyat sistemi quraşdırılacaq.
Skript səhvsiz icra edildikdən sonra, kart "moruq" a yerləşdirilə və istifadə edilə bilər: dhcp vasitəsilə tutmaq, parol - "1".
Sistem bütün identifikatorlardan və açarlardan təmizlənir, buna görə də hər yeni quraşdırma unikaldır.
Bir daha təkrar edirəm, sistem - minimal! Buna görə narahat olmayın: DNF mövcuddur, onun işləməsi üçün düzgün olanı "icad etməlisiniz" /etc/resolv.conf.
Raspberry-nin soyuq başlanğıcı təxminən 40 saniyə çəkir. Yüklədikdən sonra sistemin TTX:
rpm -qa | wc -l
191
5. WiFi
Wi-Fi giriş nöqtəsinin tətbiqi xüsusiyyətləri üzərində bir az dayanacağam. Konkret məlumat üçün əvvəlkilərimə müraciət edə bilərsiniz məqalə.
EPEL artıq lazım deyil - bütün paketlər rəsmi depolarda saxlanılır.
Çox güman ki, imtina etməyə dəyər dnsmasq, çünki Fedora, CentOS-dan fərqli olaraq, normal daxili DHCP/DNS serverləri olan kifayət qədər yeni systemd-şəbəkəsinə malikdir. Ancaq fakt budur ki, RHEL8 tərtibatçılarında şəbəkə yığınını NM-dən başqa bir şeylə dəstəkləməkdən imtina etdi, layihənin parlaq gələcəyinə inam yaratmır (alçaqlar). Bir sözlə, sınamamışam.
Bundan əlavə, quraşdırılmış Wi-Fi adapterinin cari sürücüləri Raspbian paylanmasından "oğurlana bilməz", lakin birbaşa yüklənə bilməz. GitHub.
Broadcom proqram təminatı faylları mənim Raspberry-də belə görünür (şematik olaraq):
İnterfeyslərin sayı və adları ilə bağlı. İndi hər kəsə çox zərurət olmadıqca proqram açarlarının "xidmətlərinə" müraciət etməməyi tövsiyə edirəm (körpü), bu, şəbəkə yığınına əhəmiyyətli yük gətirir və marşrutlaşdırmanı azaldır. Birdən çox simsiz adapterə sahib olmağı planlaşdırmırsınızsa, onda yalnız fiziki interfeyslərdən istifadə etməlisiniz. Məndə iki Wi-Fi var, ona görə də mən onları yalnız proqram körpüsündə birləşdirirəm (baxmayaraq ki, hostapd konfiqurasiyasına fərqli baxaraq, onsuz da edə bilərsiniz).
Mən interfeyslərin adını dəyişməyi sevirəm.
Fedora-da bunu etmək üçün simvolik bir əlaqə yaratmalısınız:
/etc/systemd/network/99-default.link -> /dev/null
sonra ovuşdurmadan mənalı adlar vermək mümkün olacaq udev, lakin yalnız systemd-networkd istifadə edərək.
Məsələn, mənim marşrutlaşdırıcımdakı şəbəkə adapterləri belə adlanır:
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 - quraşdırılmış, ext — “körpü”yə yığılmış xarici (USB) Wi-Fi adapterləri lan;
wan — İnternetin qoşulduğu Ethernet adapteri.
Siz fərq etdiniz? fq_kod - həqiqətən gözəl bir şey. Təzə Linux nüvəsi ilə birlikdə simsiz diapazonda əsl möcüzələr yaradırlar: şiddətli "torrent yükləmə" qonşular arasında sürətin qəfil azalmasına səbəb olmayacaq. Hətta yüklənmiş bir kanalla "havada" işləyən ev IP-TV belə "parçalanmır" və ümumiyyətlə "kəkəmir"!
Daemon xidmət faylı kiçik dəyişikliklərə məruz qalıb hostapd.
İndi belə görünür (daxili adapter nümunəsindən istifadə etməklə):
[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
Və 5GHz/AC-də işləmək üçün "sehrli" hostapd-int.conf:
Ericsson A1018s-dən hazırlanmış kiçik bir fotoşop:
(İnternet bağlantısı - 100Mbit/san)
Və nəhayət, kiçik bir FAQ.
6. FAQ
6.1 Niyə Raspberry-də Wi-Fi router etmək lazımdır?
Biri “sınamaq maraqlıdır və bütün bunlar” kimi sadə cavab verə bilər.
Amma əslində, mənə elə gəlir ki, mövzu kifayət qədər ciddidir. "Qanlı" İnternet dövründə bir mağazada bir router almaq və onun istehsalçısının girovluğunda qalmaq çox acınacaqlı bir perspektivdir. Bir çox insanlar artıq başa düşür ki, CVE və ya daxili arxa qapı ilə oturmaq mümkün deyil.
Əlbəttə ki, həvəskarlardan WRT proqram təminatına köçə bilərsiniz. Yəqin ki, onlara daha çox inam var, amma onlardan asılı olmaq istəmirsinizsə, sadəcə öz məhsulunuzdan istifadə edin. İdeal olaraq, tam hüquqlu bir kompüter, dünyada hər şey onun üzərində həyata keçirilə bilər. Marşrutlaşdırma baxımından, əlbəttə.
Buna görə də, "moruq" seçmək sırf iqtisadi bir hərəkətdir: real kompüter və eyni zamanda ucuz. Baxmayaraq ki, bəlkə də - içərisində "ikiqatları" ilə.
6.2 Lakin Raspberry “aşağı marşrutlaşdırıcı”dır: yavaş və bir Ethernet portu ilə!
Bir ev Wi-Fi marşrutlaşdırıcısı olaraq, Raspberry mənim üçün daha qənaətbəxşdir. Artıq yuxarıda hava sürətindən danışdım. Yalnız bir Ethernet var, Apple-ın oxşar məhsulunda təxminən eynidir!
Amma ciddi olaraq, əlbəttə ki, daha çox istərdim. Evimdə bütün cihazların simsiz qoşulmasına baxmayaraq, bəzən mis əlaqə hələ də tələb olunur. Belə hallar üçün ehtiyatımda "mobil mərkəz" var:
cihaz - bu kimi bir şey
6.3 Əgər bu marşrutlaşdırıcıdırsa, TCP/IP-nin “tənzimləməsi” haqqında heç nə deyilmir, çünki bu vacibdir!
Şəbəkə yığınının (tcp_fastopen, YeAH və s.) qurulması ilə yanaşı, bu və əvvəlki məqalə digər nüansları, xüsusən də microSD-nin optimal istifadəyə hazırlanması prosesini əhatə etmir (baxmayaraq ki, quraşdırıcı yaddaş kartını formatlaşdırmağa çalışır. çətin bir yol). Təkmilləşdirmə prosesi sonsuzdur, sadəcə vaxtında dayandırmaq lazımdır.
6.4 Niyə Fedora?
Çünki bəyənirəm! Fedora, bu məqalənin əslində nəzərdə tutulduğu geeks üçün "əsas" sistemdir. Yazı zamanı, bəlkə də 64 bitlik versiyada Raspberry üçün yeganə OS, əhəmiyyətli bir tərtibatçı heyəti tərəfindən rəsmi olaraq dəstəklənir (mən gözləyə bilmirəm nüvə 5.6).
6.5 Bluetooth işləyirmi? Video/səs/GPIO necədir?
bilmirəm. Məqalə sistemin minimal quraşdırılması və sonradan Wi-Fi marşrutlaşdırıcısı kimi istifadəsi haqqındadır.
6.6 Nə üçün CentOS/Fedora/RedHat haqqında bütün məqalələr SELinux-u söndürməklə başlayır?
Sistem minimal olduğundan, onu qurmaq üçün təhlükəsizlik divarı və ya yardımçı proqramları belə yoxdur. Ehtiyacı olan hər kəs əlavə olaraq ehtiyac duyduğu hər şeyi quraşdıra bilər.
6.7 Sistemdən istifadə edilə bilməz, parol dəyişdirilə bilməz - passwd yoxdur. Ping yoxdur, heç nə yoxdur!
Yoxdur DNF. Və ya bu quraşdırma seçimi sizin üçün deyil - tərtibatçıların paylama dəstindən istifadə edin.
6.9 Mən konfiqurasiya edilmiş Wi-Fi giriş nöqtəsi olan hazır şəkli dərhal yükləmək istərdim!
“Hər kəs üçün” quraşdırıcının hazırlanması müəyyən vaxt və səy tələb edəcəkdir. Əgər (birdən!) kimsə bunu həqiqətən maraqlı və lazımlı hesab edərsə, bizə yazın və biz bir şey tapacağıq.
Bununla bitirəcəm.
Hər kəsə təhlükəsiz sörfinq və infrastruktura maksimum nəzarət arzulayıram!