Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (կամ ազնվամորու երթուղիչ կապույտ գլխարկով)

Հոդվածում Raspberry Pi + CentOS = Wi-Fi Hotspot (կամ ազնվամորու երթուղիչ կարմիր գլխարկով) Ես խոսեցի Raspberry-ն անլար մուտքի կետի վերածելու եղանակի մասին՝ օգտագործելով CentOS օպերացիոն համակարգը: Այս գծագրի համաձայն հավաքելով իմ տան երթուղիչը՝ ես բավարարեցի իմ ստեղծագործական էգոն և ստացա մտքի խաղաղություն իմ հարմարավետ ենթակառուցվածքի կարևոր տարրի համար: Այնուամենայնիվ, լուծման ոչ լիարժեքության և ներքին պերֆեկցիոնիզմի զգացումը հետապնդում էր ինձ. «աշխատանքի անկատար արդյունքն իրավունք չունի գոյության»։ Այն միտքը, որ «իդեալին կարելի է և պետք է հասնել», ինձ ոչ մի րոպե չլքեց։

Եվ հետո մի օր, թեմատիկ ֆորումներից մեկում, հանդիպեցի Raspberry-ի համար գոյություն ունեցող օպերացիոն համակարգերի (aarch64 vs armhfp) բիթային խորության վերաբերյալ քննարկման, որը 64-բիթանոց ՕՀ-ն, սկզբունքորեն, կարող է տեղավորվել և աշխատել Raspberry 3 տարբերակի վրա: ++?

«Userland»-ից ARM ճարտարապետության համար իմ սիրելի CentOS-ը չէր շտապում անցնել միջուկի վերջին տարբերակին և վերածվել 64-բիթանոցի: Իսկ EPEL-ի պահոցը՝ Աստված գիտի, թե որտեղ է միացված առանց թվային ստորագրության, մղձավանջ էր իմ անհանգիստ քնի մեջ...

Խոսելով որպես RPM-ի վրա հիմնված բաշխումների հետևորդ, ես զարմացա, երբ հայտնաբերեցի, որ Raspberry-ի ՕՀ-ն ամբողջությամբ մոռացվել է քննարկումների ժամանակ: Fedora! Եվ սա չնայած այն բանին, որ դրա թողարկումը
28 տարբերակից այն պաշտոնապես աջակցում է Raspberry Pi 3B+ 64-բիթանոց տարբերակով:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (կամ ազնվամորու երթուղիչ կապույտ գլխարկով)
Այս հոդվածում ես կխոսեմ տեղադրման մեթոդի մասին Ֆեդորա (aarch64) մասին Ազնվամորի PI 3 մոդելը B + в լրացուցիչ նվազագույն կատարում. Ես հակիրճ կանդրադառնամ Wi-Fi մուտքի կետի բարձրացման առանձնահատկություններին, որոնք բացահայտվել են իմ նախորդ կոնֆիգուրացիայի փորձնական աշխատանքի արդյունքում: CentOS 7- ը.

0. Այն, ինչ ձեզ հարկավոր կլինի

Ամեն ինչ նույնն է, ինչ նշված է նախորդ հոդվածում.

  • Raspberry Pi 3 Model B+;
  • microSD >= 4 ԳԲ (հետագայում դուք կարող եք «փոխանցել» համակարգը 2 ԳԲ սկավառակ);
  • Աշխատանքային կայան Linux-ով և microSD քարտի ընթերցիչով;
  • Լարային ցանցային միացում Raspberry-ի և Linux աշխատանքային կայանի միջև (այս դեպքում տեղադրման համար լրացուցիչ մոնիտոր և ստեղնաշար չի պահանջվի), երկու սարքերից ինտերնետ հասանելիություն.
  • Լինուքսի առաջադեմ հմտություններ (իմանալ և չվախենալ. բաժանվեց, dd и mkfs).

Կրկնվողի նման ԱՀ- կառուցելով ձեր սեփական Linux-ը, կօգտագործվի Fedora-ի բաշխման պատկերը, այնուհետև դրա հիման վրա կստեղծվի նվազագույն համակարգ (առանց «աղբյուրից հավաքելու»):

1. Բնօրինակ բաշխման տեղադրում

Համակարգի չմշակված պատկերի կոորդինատները ինտերնետում.
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Այն microSD-ով ձայնագրելուց և օգտագործելուց առաջ անհրաժեշտ է.

  1. Ընդլայնել ֆայլային համակարգի «արմատը» (3-րդ բաժին, 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
    

  2. Անջատել SELinux-ը
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Հեռացրեք սկզբնական տեղադրման մոգը.
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Թույլատրել մուտքը 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
    

Այժմ դուք կարող եք ներբեռնել «ազնվամորու» microSD-ից և միանալ դրան ցանցի միջոցով:

Սառը սկիզբը տևում է մոտ մեկուկես րոպե: Համակարգի TTX բեռնումից հետո.

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (կամ ազնվամորու երթուղիչ կապույտ գլխարկով)

rpm -qa | wc -l
444

2. Մինիմալ համակարգի հավաքում

Ցավոք, ծրագրավորողների «նվազագույն բաշխումը», պարզվում է, հեռու է ռեսուրսների սպառման մեջ ամենահամեստից: Համակարգի պատկերը կարելի է նույնիսկ ավելի փոքրացնել:

Դա անելու համար դուք պետք է գործարկեք սցենարը Malinka-ում.

#!/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) նոր նվազագույն ՕՀ հրատարակության արմատի բովանդակությամբ: Դուք կարող եք անջատել Raspberry-ն և microSD-ն վերադարձնել Linux-ի աշխատանքային կայան:

3. Մինիմալ համակարգի տեղադրում

Տեղադրումը հանգում է նրան, որ OS-ի նվազագույն «պատկերային» ֆայլերը (նախորդ քայլում ստացված) պատճենելը հատուկ պատրաստված microSD-ի վրա համապատասխան գրացուցակներում:

Բավական է 2 ԳԲ քարտ և դրա վրա երկու բաժին.

  1. / boot / efi - EFI+FAT32, boot, 100MB;
  2. / (արմատ) - EXT4, մնացած բոլոր տարածքները:

MicroSD-ը պատրաստելուց և դրանում ֆայլերը պատճենելուց հետո անհրաժեշտ է.

  • շտկել OS-ի բեռնումը;
  • միացնել ցանցը;
  • կարգավորել մուտքը ssh-ի միջոցով:

Բեռնման ուղղումը ֆայլերի բաժինների UUID-ի փոխարինումն է.

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

և պարամետր պահպանված_մուտք= վերջին ֆայլում

Ֆայլում.

microSD:/etc/fstab

հրամանի ելքում կարող եք գտնել հին արժեքները և ընթացիկ (արդիական) արժեքները.

blkid | grep mmcblk | sort

Փոխարինելուց հետո դուք նույնպես պետք է շտկեք բովանդակությունը fstab microSD-ի վրա, որպեսզի ամրացման կետերը համապատասխանեն նոր բաժանման UUID-ներին:

Ցանցի ֆունկցիոնալությունը, երբ առաջին անգամ միացնում եք Raspberry-ն, կարելի է ձեռք բերել փոքրիկ «կռունկով»՝ ստեղծել հղում (սխեմատիկ).

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

Հաջող ներբեռնումից հետո կարգի բերեք գործարկումը systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Գերօգտագործողի մուտքը ssh-ի միջոցով կազմաձևված է նույն կերպ, ինչ քայլ 1:

Ամեն ինչ ուշադիր և առանց սխալների անելով, կարող եք microSD-ն տեղափոխել «ազնվամորու» մեջ և սկսել աշխատել 64-բիթանոց ՕՀ-ով լրացուցիչ նվազագույն տարբերակով:

4. Պատրաստի համակարգ

Ավարտված համակարգի «պատկերը», որը ստեղծվել է վերը նշված հրահանգների համաձայն, կարելի է ներբեռնել հղումից.
Fedora-Tiny-31-5.5.7-200.aarch64

Սա կլինի երկու ֆայլ պարունակող արխիվ՝ տեղադրման սցենար և TGZ OS ֆայլերով: Արխիվը պետք է ապափաթեթավորվի Linux աշխատանքային կայանում, տեղադրեք microSD (բավական է 2 ԳԲ քարտ) և գործարկեք սկրիպտը պարամետրով՝ սարքի անվանումը.

./install /dev/mmcblk0

Զգույշ եղեք:

Առանց նախազգուշացման սարքը կձևաչափվի, և օպերացիոն համակարգը կտեղադրվի դրա վրա։

Սցենարը առանց սխալների կատարելուց հետո քարտը կարող է վերադասավորվել «ազնվամորու» մեջ և օգտագործել՝ բռնել dhcp-ի միջոցով, գաղտնաբառ՝ «1»:

Համակարգը մաքրված է բոլոր ID-ներից և բանալիներից, այդ իսկ պատճառով յուրաքանչյուր նոր տեղադրում եզակի է:

Եվս մեկ անգամ կրկնում եմ՝ համակարգը. նվազագույն! Հետևաբար, մի անհանգստացեք. DNF-ն հասանելի է, որպեսզի այն աշխատի, դուք պետք է «հորինել» ճիշտը: /etc/resolv.conf.

Raspberry-ի սառը մեկնարկը տևում է մոտ 40 վայրկյան: Համակարգի TTX բեռնումից հետո.

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (կամ ազնվամորու երթուղիչ կապույտ գլխարկով)

rpm -qa | wc -l
191

5. Wi-Fi

Ես մի փոքր կանդրադառնամ Wi-Fi մուտքի կետի ներդրման առանձնահատկություններին: Մանրամասների համար կարող եք անդրադառնալ իմ նախորդին Հոդված.

EPEL-ն այլևս կարիք չունի. բոլոր փաթեթները պարունակվում են պաշտոնական պահոցներում:

Հավանաբար արժեր հրաժարվել դնսմասք, քանի որ Fedora-ն, ի տարբերություն CentOS-ի, ունի բավականին նոր համակարգային ցանց, որն ունի նորմալ ներկառուցված DHCP/DNS սերվերներ։ Բայց փաստն այն է, որ RHEL8 մշակողների մեջ հրաժարվել է աջակցել ցանցային ստեկին այլ բանով, բացի NM-ից, վստահություն չի ներշնչում նախագծի պայծառ ապագայի նկատմամբ (սրիկաներ)։ Մի խոսքով, չեմ փորձել։

Ավելին, ներկառուցված Wi-Fi ադապտերների ընթացիկ դրայվերները չեն կարող «գողանալ» Raspbian բաշխումից, այլ ներբեռնվել անմիջապես GitHub.

Ահա թե ինչ տեսք ունեն Broadcom որոնվածի ֆայլերը իմ Raspberry-ում (սխեմատիկորեն).

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 ԳՀց/AC:

Ինչ վերաբերում է միջերեսների քանակին և անվանումներին: Հիմա բոլորին խստորեն խորհուրդ եմ տալիս չդիմել ծրագրային անջատիչների «ծառայությունների», եթե խիստ անհրաժեշտություն չկա (կամուրջ), որոնք զգալի ծանրաբեռնվածություն են մտցնում ցանցի կույտում և դադարում երթուղավորումը: Եթե ​​դուք չեք նախատեսում ունենալ մի քանի անլար ադապտերներ, ապա պետք է օգտագործեք միայն ֆիզիկական միջերեսներ: Ես ունեմ երկու 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 - ներկառուցված, ներքին — արտաքին (USB) Wi-Fi ադապտերներ՝ հավաքված «կամուրջի» մեջ LAN;
  • wan — Ethernet ադապտեր, որին միացված է ինտերնետը:

Նկատեցի՞ք։ fq_codel - իսկապես հիանալի բան է: Linux-ի թարմ միջուկի հետ միասին նրանք իրական հրաշքներ են գործում անլար տիրույթում. կատաղի «հեղեղի ներբեռնումը» չի հանգեցնի արագության հանկարծակի նվազմանը հարևանների շրջանում: Նույնիսկ բեռնված ալիքով «եթերում» գործող տնային IP-հեռուստատեսությունը չի «կոտրվում» և ընդհանրապես չի «կակազում»:

Daemon ծառայության ֆայլը ենթարկվել է փոքր փոփոխությունների 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-ը 5 ԳՀց/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]

Իմ Ericsson A1018s-ից պատրաստված փոքրիկ ֆոտոշոփ.

(Ինտերնետ կապ - 100 Մբիթ/վրկ)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (կամ ազնվամորու երթուղիչ կապույտ գլխարկով)
Եվ վերջապես, մի ​​փոքրիկ ՀՏՀ:

6. ՀՏՀ

6.1 Ինչու՞ Raspberry-ում Wi-Fi երթուղիչ պատրաստել:

Կարելի է պարզապես պատասխանել՝ «հետաքրքիր է փորձել և այդ ամենը»:

Բայց իրականում ինձ թվում է թեման բավականին լուրջ է։ «Արյունոտ» ինտերնետի դարաշրջանում խանութում երթուղիչ գնելը և դրա արտադրողի պատանդ մնալը շատ տխուր հեռանկար է: Շատերն արդեն հասկանում են, որ CVE-ով կամ ներկառուցված հետնադռնով նստելը հնարավոր չէ:

Իհարկե, դուք կարող եք տեղափոխել WRT որոնվածը էնտուզիաստներից: Հավանաբար նրանց նկատմամբ ավելի շատ վստահություն կա, բայց եթե չես ուզում կախված լինել նրանցից, ապա պարզապես օգտագործիր քո սեփական արտադրանքը: Իդեալում, լիարժեք համակարգիչ, որպեսզի աշխարհում ամեն ինչ կարող է իրականացվել դրա վրա: Երթուղային առումով, իհարկե։

Հետևաբար, «ազնվամորու» ընտրությունը զուտ տնտեսական քայլ է. իրական համակարգիչ և միևնույն ժամանակ էժան: Թեև, միգուցե նաև՝ իրենց «կրկնակիներով» ներսում։

6.2 Բայց Raspberry-ն «ցածր երթուղիչ» է՝ դանդաղ և մեկ Ethernet պորտով:

Որպես տնային Wi-Fi երթուղիչ, Raspberry-ն ինձ համար ավելի քան գոհացուցիչ է: Վերևում արդեն խոսեցի օդի արագության մասին։ Եվ կա միայն մեկ Ethernet, լավ, Apple-ի նմանատիպ արտադրանքում մոտավորապես նույնն է:

Բայց եթե լուրջ, իհարկե ավելին կուզենայի։ Եվ չնայած այն հանգամանքին, որ իմ ընտանիքում բոլոր սարքերը միացված են անլար, երբեմն դեռևս պահանջվում է պղնձե միացում: Նման դեպքերի համար ես պահեստում ունեմ «բջջային հանգույց».

սարք - նման բանRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (կամ ազնվամորու երթուղիչ կապույտ գլխարկով)

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-ի անջատմամբ:

Քանի որ համակարգը նվազագույն է, այն նույնիսկ չունի firewall կամ կոմունալ ծառայություններ այն կարգավորելու համար: Յուրաքանչյուր ոք, ով դրա կարիքն ունի, կարող է լրացուցիչ տեղադրել այն ամենը, ինչ անհրաժեշտ է:

6.7 Համակարգը չի կարող օգտագործվել, գաղտնաբառը չի կարող փոխվել՝ առանց passwd: Ոչ պինգ, ոչ ոչինչ:

Կա DNF. Կամ տեղադրման այս տարբերակը ձեզ համար չէ. օգտագործեք մշակողների բաշխման փաթեթը:

6.8 Որտեղ է SWAP-ը: Ես չեմ կարող ապրել առանց նրա:

Արդյոք դա ճիշտ է? Եղավ հետո:

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 Ես կցանկանայի անմիջապես ներբեռնել պատրաստի պատկերը կազմաձևված Wi-Fi մուտքի կետով:

«Բոլորի համար» տեղադրող սարք պատրաստելը որոշակի ժամանակ և ջանք կպահանջի: Եթե ​​(հանկարծ!) ինչ-որ մեկին իսկապես սա հետաքրքիր և անհրաժեշտ է, գրեք մեզ, և մենք ինչ-որ բան կմտածենք:

Ես կավարտեմ սրանով:

Մաղթում եմ բոլորին անվտանգ սերֆինգ և առավելագույն վերահսկողություն ենթակառուցվածքի նկատմամբ:

Source: www.habr.com

Добавить комментарий