Հոդվածում Ես խոսեցի Raspberry Pi-ն անլար մուտքի կետի վերածելու մի եղանակի մասին՝ օգտագործելով օպերացիոն համակարգը։ CentOSԱյս դիզայնով տան ռաութերս հավաքելով՝ ես բավարարեցի իմ ստեղծագործական էգոն և հանգստություն ձեռք բերեցի իմ հարմարավետ ենթակառուցվածքի կարևորագույն տարրի վերաբերյալ։ Սակայն ինձ հետապնդում էր անավարտության զգացումը և ներքին պերֆեկցիոնիզմը. «անկատար արդյունքը իրավունք չունի գոյություն ունենալու»։ Միտքը, որ «կատարելությանը կարելի է և պետք է հասնել», մի պահ անգամ չլքեց ինձ։
Եվ մի օր, թեմատիկ ֆորումներից մեկում, ես հանդիպեցի Raspberry Pi-ի համար առկա օպերացիոն համակարգերի բիթային խորության քննարկմանը (aarch64 vs armhfp). որ 64-բիթանոց օպերացիոն համակարգերը, սկզբունքորեն, կարող են տեղավորվել և աշխատել Raspberry 3++ տարբերակի վրա։
Իմ սիրածը CentOS ARM ճարտարապետության համար Userland-ը չէր շտապում անցնել վերջին միջուկի տարբերակին և դառնալ 64-բիթային։ Իսկ EPEL պահոցը, որը միացված էր Աստված գիտի որտեղից՝ առանց թվային ստորագրության, մղձավանջ էր իմ անհանգիստ քնի մեջ…
Որպես RPM-ի վրա հիմնված բաշխումների կողմնակից, ես զարմացա, երբ հայտնաբերեցի, որ «ազնվամորու» մասին օպերացիոն համակարգի քննարկումներում այն ամբողջությամբ մոռացվել էր։ FedoraԵվ սա չնայած այն հանգամանքին, որ դրա թողարկումը

Այս հոդվածում ես ձեզ կպատմեմ տեղադրման մեթոդի մասին Ֆեդորա (aarch64) մասին Ազնվամորի PI 3 մոդելը B + в լրացուցիչ նվազագույն կատարումԵս համառոտ կանդրադառնամ Wi-Fi մուտքի կետի բարձրացման առանձնահատկություններին, որոնք բացահայտվել են իմ նախորդ կոնֆիգուրացիայի փորձարարական գործողության արդյունքում .
0. Այն, ինչ ձեզ հարկավոր կլինի
Ամեն ինչ նույնն է, ինչ նախորդ հոդվածում նշված է.
- Raspberry Pi 3 մոդել B+;
- microSD >= 4GB (հետագայում կարող եք «տեղափոխել» համակարգը 2GB կրիչի վրա);
- Աշխատանքային կայան Linux և microSD քարտի ընթերցող;
- Raspberry Pi-ի և աշխատանքային կայանի միջև լարային ցանցային միացում Linux (այս դեպքում կարգավորման համար ձեզ լրացուցիչ մոնիտոր և ստեղնաշար պետք չի լինի), ինտերնետ մուտք երկու սարքերից էլ։
- Բարձրագույն հմտություն Linux (իմանալ և չվախենալ.) , и ).
Նման է իտերատիվին - ձեր սեփականը հավաքելը Linux, կօգտագործվի Fedora բաշխման պատկերը, որից հետո դրա հիման վրա կստեղծվի մինիմալ համակարգ (առանց «աղբյուրներից կոմպիլյացիայի»):
1. Բնօրինակ բաշխման տեղադրում
Համակարգի հում պատկերի կոորդինատները ինտերնետում.
MicroSD-ում ձայնագրելուց հետո և օգտագործել սկսելուց առաջ անհրաժեշտ է՝
- Ընդարձակեք «root» ֆայլային համակարգը (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 - Անջատել SE-նLinux
echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config - Սկզբնական կարգավորման օգնականի հեռացում.
find /mnt/3/etc/systemd/ -iname initial-setup.service -delete - Թույլատրել 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
Հիմա դուք կարող եք բեռնել Raspberry Pi-ն microSD քարտից և միանալ դրան ցանցի միջոցով։
Սառը մեկնարկը տևում է մոտ մեկուկես րոպե: Համակարգի աշխատանքային բնութագրերը մեկնարկից հետո՝

rpm -qa | wc -l
444
2. Մինիմալ համակարգի հավաքում
Դժբախտաբար, մշակողների կողմից «նվազագույն բաշխումը» ռեսուրսների սպառման առումով ամենից շատ հեռու է։ Համակարգի պատկերը կարելի է նույնիսկ փոքրացնել։
Դա անելու համար դուք պետք է գործարկեք սկրիպտը Raspberry Pi-ի վրա.
#!/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) նոր մինիմալ օպերացիոն համակարգի տարբերակի root-ի պարունակությամբ։ Կարող եք անջատել Raspberry Pi-ն և վերադարձնել microSD քարտը աշխատանքային կայան։ Linux.
3. Նվազագույն համակարգի տեղադրում
Տեղադրումը կատարվում է նվազագույն OS «պատկերի» ֆայլերը (ստացված նախորդ քայլում) համապատասխան գրացուցակներում հատուկ պատրաստված microSD-ի վրա պատճենելով։
2 ԳԲ քարտը և դրա վրա երկու բաժինը բավարար են։
- /boot/efi — EFI+FAT32, բեռնվող, 100 ՄԲ;
- / (root) - 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 Pi-ն առաջին անգամ միացվում է փոքր «խաբեության» միջոցով՝ ստեղծեք հղում (սխեմատիկորեն).
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
SSH-ի միջոցով գերօգտատիրոջ մուտքը կարգավորված է 1-ին կետի նման։
Ամեն ինչ ուշադիր և առանց սխալների անելուց հետո, կարող եք microSD քարտը տեղափոխել Raspberry Pi և սկսել աշխատել 64-բիթանոց օպերացիոն համակարգի հետ՝ լրացուցիչ նվազագույն տարբերակով։
4. Պատրաստի համակարգ
Վերոնշյալ հրահանգների համաձայն ստեղծված պատրաստի համակարգի «պատկերը» կարելի է ներբեռնել հղումից.
Սա կլինի արխիվ, որը կպարունակի երկու ֆայլ՝ տեղադրման սկրիպտ և TGZ ֆայլ՝ օպերացիոն համակարգի ֆայլերով: Արխիվը պետք է բացվի աշխատանքային կայանում: Linux, տեղադրեք microSD քարտը (2 ԳԲ քարտը բավարար է) և գործարկեք սկրիպտը՝ սարքի անունը որպես պարամետր օգտագործելով՝
./install /dev/mmcblk0
Զգույշ եղեք:
Առանց որևէ նախազգուշացման, սարքը կձևաչափվի, և դրա վրա կտեղադրվի օպերացիոն համակարգը։
Սկրիպտը սխալներով մշակելուց հետո քարտը կարող է տեղափոխվել Raspberry Pi և օգտագործվել. բռնել dhcp-ի միջոցով, գաղտնաբառ՝ «1»:
Համակարգը մաքրվում է բոլոր ID-ներից և բանալիներից, այդ իսկ պատճառով յուրաքանչյուր նոր տեղադրում եզակի է։
Եվս մեկ անգամ կրկնում եմ՝ համակարգը նվազագույն! Այնպես որ, մի՛ վախեցեք. DNF-ը հասանելի է, որպեսզի այն աշխատի, դուք պետք է «հորինեք» ճիշտը։ .
«Մորթու» սառը մեկնարկը տևում է մոտ 40 վայրկյան: Համակարգի աշխատանքային բնութագրերը բեռնումից հետո.

rpm -qa | wc -l
191
5. Wi-Fi
Ես մի փոքր կանդրադառնամ Wi-Fi մուտքի կետի ներդրման առանձնահատկություններին: Մանրամասների համար կարող եք դիմել իմ նախորդին: .
EPEL-ը այլևս անհրաժեշտ չէ. բոլոր փաթեթները պարունակվում են պաշտոնական պահոցներում։
Գուցե արժե հրաժարվել , քանի որ Fedora-ում, ի տարբերություն CentOS, բավականին նոր systemd-networkd է, որն ունի լավ ներկառուցված DHCP/DNS սերվերներ: Բայց փաստն այն է, որ RHEL8-ում մշակողները , վստահություն չի ներշնչում նախագծի պայծառ ապագայի նկատմամբ (սխալներ): Մի խոսքով, ես չեմ փորձել:
Ավելին, ներկառուցված Wi-Fi ադապտերի ներկայիս դրայվերները կարելի է ներբեռնել անմիջապես Raspbian բաշխումից, այլ ոչ թե «գողանալ» դրանք։ .
Ահա թե ինչ տեսք ունեն Broadcom-ի ներկառուցված ֆայլերը իմ Raspberry Pi-ի վրա (սխեմատիկորեն).
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
Առանց դրանց, 5GHz/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 ադապտեր, որին միացված է ինտերնետը։
Նկատե՞լ եք։ — իսկապես հիանալի բան։ Թարմ միջուկի հետ միասին Linux Դրանք հրաշքներ են գործում անլար կապի սպեկտրում. դաժան տորենտ ներբեռնումը չի հանգեցնի ձեր հարևանների արագության հանկարծակի անկման: Նույնիսկ տնային IPTV-ն չի «քանդվում» կամ կակազում, երբ ալիքը զբաղված է:
Դեմոն ծառայության ֆայլը ենթարկվել է աննշան փոփոխությունների .
Հիմա այն այսպիսի տեսք ունի (օրինակ՝ օգտագործելով ներկառուցված ադապտերը).
[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-ում աշխատելու համար։
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 Մբիթ/վրկ)
Եվ վերջապես՝ մի փոքրիկ հաճախակի տրվող հարց։
6. ՀՏՀ
6.1 Ինչո՞ւ պատրաստել Wi-Fi ռաութեր Raspberry-ի վրա։
Կարելի է պարզապես պատասխանել. «Հետաքրքիր է փորձել և այլն»։
Բայց իրականում, ինձ թվում է, թեման բավականին լուրջ է։ «Արյունահեղ» ինտերնետի դարաշրջանում խանութում ռոուտեր գնելը և դրա արտադրողի պատանդ մնալը շատ տխուր հեռանկար է։ Շատերն արդեն հասկանում են, որ անհնար է նստել CVE-ի կամ ներկառուցված հետին դռան հետ։
Իհարկե, դուք կարող եք անցնել WRT ներկառուցված ծրագրային ապահովմանը էնտուզիաստներից։ Նրանք, հավանաբար, ավելի վստահելի են, բայց եթե չեք ուզում նրանցից կախված լինել, ապա միայն ձեր սեփական արտադրանքը։ Իդեալական դեպքում՝ լիարժեք համակարգիչ, որպեսզի կարողանաք աշխարհի ամեն ինչ ներդնել դրա վրա։ Իհարկե, երթուղայնացման առումով։
Հետևաբար, «Raspberry Pi»-ի ընտրությունը զուտ տնտեսական քայլ է. իրական համակարգիչ և միևնույն ժամանակ՝ էժան։ Թեև, հնարավոր է, նաև՝ ներսում իր «երկվորյակներով»։
6.2 Բայց Raspberry-ն «ենթա-ռաութեր» է. դանդաղ է և ունի մեկ Ethernet միացք։
Որպես տնային Wi-Fi ռաութեր, «Raspberry»-ն ինձ ավելի է հարմար, քան մյուսները։ Ես արդեն խոսել եմ «օդային» արագության մասին վերևում։ Եվ միայն մեկ Ethernet, դե, Apple-ի նմանատիպ ապրանքի մեջ այն մոտավորապես նույնն է։
Բայց լուրջ եմ ասում, իհարկե, ես ավելին կցանկանայի։ Եվ չնայած այն հանգամանքին, որ իմ տան բոլոր սարքերը միացված են անլար կապի միջոցով, երբեմն պղնձե միացում է պահանջվում։ Նման դեպքերի համար ես ունեմ «շարժական կենտրոն»։
սարք - նման մի բան
6.3 Եթե սա ռաութեր է, ապա «կարգավորման» մասին ոչինչ չի ասվում TCP/IP, որովհետև դա կարևոր է!
Բացի ցանցային փաթեթի կարգավորումից (tcp_fastopen, YeAH և այլն), այս և նախորդ հոդվածներում չեն քննարկվում այլ նրբերանգներ, մասնավորապես՝ microSD-ն օպտիմալ օգտագործման համար պատրաստելու գործընթացը (չնայած տեղադրողը փորձում է հիշողության քարտը ձևաչափել բարդ ձևով): Բարելավման գործընթացը անվերջ է, պարզապես անհրաժեշտ է ժամանակին կանգ առնել:
6.4 Ինչո՞ւ Fedora-ն։
Որովհետև ինձ դուր է գալիս։ Fedora-ն «հիմնական» է՝ համակարգ գիկերի համար, որոնց համար, ըստ էության, նախատեսված է այս հոդվածը։ Գրելու պահին այն, հավանաբար, միակ օպերացիոն համակարգն է, որը պաշտոնապես աջակցվում է Raspberry-ի համար 64-բիթային տարբերակով՝ մշակողների զգալի անձնակազմի կողմից (որոնցից անհամբեր սպասում եմ լսելուն) ).
6.5 Արդյո՞ք Bluetooth-ը աշխատում է: Ինչպե՞ս է աշխատում տեսանյութը/ձայնը/GPIO-ն:
Չգիտեմ։ Հոդվածը համակարգի նվազագույն տեղադրման և հետագա Wi-Fi ռաութերի տեսքով դրա օգտագործման մասին է։
6.6 Ինչո՞ւ են բոլոր հոդվածները վերաբերում CentOS/Fedora/RedHat-ը սկսվում է SE-ն անջատված վիճակումLinux?
Քանի որ համակարգը մինիմալիստական է, այն նույնիսկ չունի firewall կամ օգտակար ծրագրեր այն կարգավորելու համար: Նրանք, ովքեր դրա կարիքն ունեն, կարող են լրացուցիչ տեղադրել իրենց անհրաժեշտ ամեն ինչ:
6.7 Համակարգը անօգտագործելի է, գաղտնաբառը հնարավոր չէ փոխել՝ գաղտնաբառ չկա։ Պինգ չկա, ոչինչ չկա։
Կա Կամ այս տեղադրման տարբերակը ձեզ համար չէ՝ օգտագործեք մշակողների բաշխումը։
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
