Raspberry Pi + Fedora (aarch64) = Hotspot Wi-Fi (no router sùbh-craoibhe le ad gorm)

Anns an artaigil Raspberry Pi + CentOS = Hotspot Wi-Fi (no router sùbh-craoibhe le ad dearg) Bhruidhinn mi mu dhòigh air sùbh-craoibhe a thionndadh gu àite inntrigidh gun uèir a’ cleachdadh siostam-obrachaidh CentOS. Le bhith a’ cruinneachadh an router dachaigh agam a rèir an dealbh seo, bha mi riaraichte leis an ego cruthachail agam agus fhuair mi spionnadh inntinn airson eileamaid riatanach den bhun-structar comhfhurtail agam. Ach, chuir faireachdainn neo-iomlanachd an fhuasglaidh agus foirfeachd taobh a-staigh dragh orm: “chan eil còir aig toradh neo-fhoirfe air obair a bhith ann.” Cha do dh’ fhàg an smuain “an rud as fheàrr a ghabhas agus a bu chòir a choileanadh” mi airson mionaid.

Agus an uairsin aon latha, air aon de na fòraman cuspaireil, thàinig mi tarsainn air còmhradh mu dhoimhneachd beagan nan siostaman obrachaidh a th’ ann airson Raspberry (aarch64 vs armhfp): dè an OS 64-bit as urrainn, ann am prionnsapal, a bhith iomchaidh agus ag obair air dreach 3 de Raspberry ++?

Cha robh CentOS mo ghràidh airson ailtireachd ARM bho “Userland” ann an cabhag sam bith atharrachadh chun dreach as ùire den kernel agus tionndadh gu 64-bit. Agus tha fios aig stòr EPEL, ceangailte bho Dhia, far nach robh ainm-sgrìobhte didseatach, na trom-laighe nam chadal sàmhach ...

A’ bruidhinn mar neach-leantainn de sgaoilidhean stèidhichte air RPM, chuir e iongnadh orm faighinn a-mach gun deach an OS airson Raspberry a dhìochuimhneachadh gu tur ann an còmhraidhean Fedora! Agus seo a dh'aindeoin 's gu bheil e air a leigeil ma sgaoil
bho dhreach 28 tha e gu h-oifigeil a’ toirt taic do Raspberry Pi 3B + ann an dreach 64-bit!

Raspberry Pi + Fedora (aarch64) = Hotspot Wi-Fi (no router sùbh-craoibhe le ad gorm)
San artaigil seo bruidhnidh mi mun dòigh stàlaidh Fedora (aarch64) air Raspberry Pi 3 Modail B + в coileanadh as ìsle a bharrachd. Bidh mi a’ gabhail còmhnaidh goirid air na feartan ann a bhith a’ togail puing-inntrigidh Wi-Fi, a chaidh a chomharrachadh mar thoradh air obrachadh deuchainn an rèiteachaidh a rinn mi roimhe air CentOS 7.

0. Na bhios a dhìth ort

Tha a h-uile dad mar a tha air a liostadh san artaigil roimhe:

  • Raspberry Pi 3 Modail B+;
  • microSD > = 4GB (nas fhaide air adhart faodaidh tu an siostam a “ghluasad” gu draibhear 2GB);
  • Ionad-obrach le leughadair cairt Linux agus microSD;
  • Ceangal lìonra uèirleas eadar an Raspberry agus stèisean-obrach Linux (sa chùis seo, cha bhith feum air monitor agus meur-chlàr a bharrachd airson an stèidheachadh), ruigsinneachd eadar-lìn bhon dà inneal;
  • Sgil adhartach ann an Linux (fios agus na biodh eagal ort: dhealaich, dd и mkfs).

Coltach ri ath-aithris lfs- a’ togail do Linux fhèin, thèid an ìomhaigh cuairteachaidh Fedora a chleachdadh, agus an uairsin stèidhichte air, thèid siostam as lugha a chruthachadh (gun “cur ri chèile bhon stòr”).

1. Stàladh an t-sgaoilidh thùsail

Co-chomharran ìomhaigh amh an t-siostaim air an eadar-lìn:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Às deidh dhut a chlàradh air microSD agus mus cleachd thu e, feumaidh tu:

  1. Leudaich “root” an t-siostam faidhle (3mh sgaradh, 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. Cuir à comas SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Thoir air falbh an Draoidh rèiteachaidh tùsail:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Ceadaich ruigsinneachd tro 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
    

A-nis faodaidh tu an “sùbh-craoibhe” a luchdachadh sìos bho microSD agus ceangal ris tron ​​​​lìonra.

Bheir tòiseachadh fuar timcheall air mionaid gu leth. TTX den t-siostam às deidh a luchdachadh:

Raspberry Pi + Fedora (aarch64) = Hotspot Wi-Fi (no router sùbh-craoibhe le ad gorm)

rpm -qa | wc -l
444

2. A 'cruinneachadh siostam as lugha

Gu mì-fhortanach, tha e coltach gu bheil an “sgaoileadh as lugha” bhon luchd-leasachaidh fada bhon fheadhainn as lugha ann an caitheamh ghoireasan. Faodar ìomhaigh an t-siostaim a dhèanamh eadhon nas lugha.

Gus seo a dhèanamh, feumaidh tu an sgriobt a ruith air 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

Às deidh an sgriobt a ruith, thèid fo-eòlaire a chruthachadh san eòlaire gnàthach ($P) le susbaint freumh an deasachaidh OS as ìsle. Faodaidh tu an sùbh-craoibhe a chuir dheth agus am microSD a thilleadh chun ionad-obrach Linux.

3. Stàladh siostam as lugha

Tha an stàladh an urra ri bhith a’ dèanamh lethbhreac de na faidhlichean “ìomhaigh” as lugha de OS (a chaidh fhaighinn sa cheum roimhe) air microSD a chaidh ullachadh gu sònraichte a-steach do na clàran iomchaidh.

Tha cairt 2GB agus dà sgaradh air gu leòr:

  1. / boot / efi - EFI + FAT32, bròg, 100MB;
  2. / (freumh) - EXT4, a h-uile àite a tha air fhàgail.

Às deidh dhut am microSD ullachadh agus faidhlichean a chopaigeadh thuige, feumaidh tu:

  • socraich OS boot;
  • tionndaidh air an lìonra;
  • rèiteachadh ruigsinneachd tro ssh.

Tha am bròg a' dol an àite UUID nan earrannan anns na faidhlichean:

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

agus paramadair shàbhaladh_inntrigeadh= anns an fhaidhle mu dheireadh

Ann am faidhle:

microSD:/etc/fstab

gheibh thu na seann luachan, agus na luachan gnàthach (ùr-nodha) ann an toradh an àithne:

blkid | grep mmcblk | sort

Às deidh ath-chur, bu chòir dhut cuideachd an susbaint a cheartachadh fstab air microSD gus am bi na puingean sreap a’ freagairt ris na UUIDan sgaradh ùr.

Faodar gnìomhachd lìonra nuair a thionndaidheas tu an sùbh-craoibhe an-toiseach le “crutch” beag - cruthaich ceangal (sgeamatach):

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

agus faidhle:

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

Às deidh luchdachadh sìos soirbheachail, sgioblaich an fhoillseachadh siostam-lìonra:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Tha ruigsinneachd superuser tro ssh air a rèiteachadh san aon dòigh ri ceum 1.

Às deidh dhut a h-uile càil a dhèanamh gu faiceallach agus gun mhearachdan, faodaidh tu am microSD a ghluasad a-steach don “sùbh-craoibhe” agus tòiseachadh ag obair le OS 64-bit ann an dreach as ìsle a bharrachd.

4. Ready siostam

Faodar “ìomhaigh” an t-siostaim chrìochnaichte, a chaidh a chruthachadh a rèir an stiùiridh gu h-àrd, a luchdachadh sìos bhon cheangal:
Fedora-Tiny-31-5.5.7-200.aarch64

Bidh seo na thasglann anns a bheil dà fhaidhle: an sgriobt stàlaidh agus TGZ le faidhlichean OS. Feumaidh an tasglann a bhith air a dhì-phapadh air ionad-obrach Linux, cuir a-steach microSD (tha cairt 2GB gu leòr) agus ruith an sgriobt le paramadair - ainm an inneil:

./install /dev/mmcblk0

Bi faiceallach!

Às aonais rabhaidhean sam bith, thèid an inneal a chruth agus thèid an siostam obrachaidh a chuir a-steach air.

Às deidh an sgriobt a chuir gu bàs gun mhearachd, faodar a’ chairt ath-eagrachadh a-steach don “sùbh-craoibhe” agus a chleachdadh: glac tro dhcp, facal-faire - “1”.

Tha an siostam air a ghlanadh de gach ID agus iuchraichean, agus is e sin as coireach gu bheil gach stàladh ùr gun samhail.

Bidh mi ag ath-aithris a-rithist, an siostam - as lugha! Mar sin, na biodh eagal ort: tha DNF ri fhaighinn, gus an obraich e feumaidh tu am fear ceart a “chruthachadh”. /etc/resolv.conf.

Bheir toiseach tòiseachaidh fuar an sùbh-craoibhe timcheall air 40 diog. TTX den t-siostam às deidh a luchdachadh:

Raspberry Pi + Fedora (aarch64) = Hotspot Wi-Fi (no router sùbh-craoibhe le ad gorm)

rpm -qa | wc -l
191

5. WiFi

Còmhnaichidh mi beagan mu fheartan buileachadh àite inntrigidh Wi-Fi. Airson mion-fhiosrachadh, faodaidh tu iomradh a thoirt air na bha mi roimhe artaigil.

Chan eil feum air EPEL tuilleadh - tha a h-uile pasgan anns na stòran oifigeil.

Is dòcha gum b’ fhiach e a leigeil seachad dnsmasq, leis gu bheil siostam systemd-networkd gu math o chionn ghoirid aig Fedora, eu-coltach ri CentOS, aig a bheil frithealaichean àbhaisteach DHCP / DNS a-staigh. Ach is e an fhìrinn gu bheil luchd-leasachaidh RHEL8 dhiùlt taic a thoirt don chruach lìonra le rud sam bith ach NM, chan eil e a 'brosnachadh misneachd ann an àm ri teachd soilleir a' phròiseict (scoundrels). Ann an ùine ghoirid, chan eil mi air feuchainn.

A bharrachd air an sin, chan urrainnear na draibhearan gnàthach airson an inneal-atharrachaidh Wi-Fi togte a bhith “air an goid” bho chuairteachadh Raspbian, ach a luchdachadh sìos gu dìreach bho GitHub.

Seo mar a tha na faidhlichean firmware Broadcom coltach air mo Raspberry (a rèir sgeama):

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

Às an aonais chan fhaigh thu 5GHz/AC.

A thaobh àireamh agus ainmean eadar-aghaidh. A-nis tha mi a’ moladh gu làidir don h-uile duine gun a bhith a’ cleachdadh “seirbheisean” suidsichean bathar-bog mura h-eil sin riatanach (drochaid), a bheir a-steach luchd mòr a-steach don chruach lìonra agus slighe trom-inntinn. Mura h-eil thu an dùil grunn innealan-atharrachaidh gun uèir a bhith agad, cha bu chòir dhut ach eadar-aghaidh corporra a chleachdadh. Tha dà Wi-Fi agam, agus mar sin bidh mi gan cur còmhla ann an drochaid bathar-bog (ged as urrainn dhut a dhèanamh às aonais seo le bhith a’ coimhead air suidheachadh hostapd ann an dòigh eadar-dhealaichte).

Agus is toil leam a bhith ag ath-ainmeachadh eadar-aghaidh.

Gus seo a dhèanamh ann am Fedora feumaidh tu ceangal samhlachail a chruthachadh:

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

agus an uairsin bidh e comasach ainmean brìoghmhor a thoirt seachad gun a bhith a’ dol mun cuairt uchd, ach dìreach a’ cleachdadh systemd-networkd.

Mar eisimpleir, is e seo a chanar ris na h-innealan-atharrachaidh lìonra anns an router agam:

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 - a-staigh, ext - innealan-atharrachaidh Wi-Fi taobh a-muigh (USB) air an cruinneachadh ann an “drochaid” lan;
  • wan - Ethernet adapter anns a bheil an eadar-lìon ceangailte.

An do mhothaich thu? fq_còd - rud fìor fhionnar. Còmhla ri kernel Linux ùr, bidh iad ag obair fìor mhìorbhailean anns an raon gun uèir: cha toir “luchdachadh sìos torrent” borb gu crìonadh luath ann an astar am measg nàbaidhean. Chan eil eadhon IP-TV dachaigh a tha ag obair “thairis air an èadhar” le seanal luchdaichte a’ “briseadh suas” agus chan eil e “a’ stad ” idir!

Tha am faidhle seirbheis daemon air a dhol tro atharrachaidhean beaga hostapd.

Tha e a-nis a’ coimhead mar seo (a’ cleachdadh an eisimpleir de inneal-atharrachaidh togte):

[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

Agus an hostapd-int.conf “draoidheachd” airson a bhith ag obair ann an 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]

Beagan photoshop air a dhèanamh bhon Ericsson A1018s agam:

(Ceangal eadar-lìn - 100Mbit/sec)Raspberry Pi + Fedora (aarch64) = Hotspot Wi-Fi (no router sùbh-craoibhe le ad gorm)
Agus mu dheireadh, Ceistean Cumanta beaga.

6. Ceistean Cumanta

6.1 Carson a nì thu router Wi-Fi air Raspberry?

Dh’ fhaodadh aon fhreagairt gu sìmplidh, mar “tha e inntinneach feuchainn agus sin uile.”

Ach gu dearbh, tha e coltach riumsa gu bheil an cuspair gu math dona. Ann an àm an eadar-lìn “fuilteach”, tha ceannach router ann an stòr agus aoigheachd air fhàgail don neach-dèanamh aige na shealladh uamhasach. Tha mòran dhaoine mu thràth a’ tuigsinn nach eil e comasach suidhe le CVE no cùl-raon togte.

Gu dearbh, faodaidh tu gluasad gu firmware WRT bho luchd-dealasach. Is dòcha gu bheil barrachd earbsa annta, ach mura h-eil thu airson a bhith an urra riutha, dìreach cleachd an toradh agad fhèin. Mas fheàrr, coimpiutair làn-chuimseach gus an tèid a h-uile càil san t-saoghal a chuir an gnìomh air. A thaobh slighe, gu dearbh.

Mar sin, tha taghadh "sùbh-craoibhe" na ghluasad eaconamach a-mhàin: fìor choimpiutair agus aig an aon àm saor. Ged, is dòcha cuideachd - leis na “dùblaidhean” aca a-staigh.

6.2 Ach tha Raspberry na “rothadair ìosal”: slaodach agus le aon phort Ethernet!

Mar router Wi-Fi dachaigh, tha an sùbh-craoibhe nas fheàrr na mi. Tha mi mu thràth air bruidhinn mu astar adhair gu h-àrd. Agus chan eil ann ach aon Ethernet, uill, ann an toradh coltach ri Apple tha e timcheall air an aon rud!

Ach dha-rìribh, gu dearbh bu mhath leam barrachd. Agus a dh 'aindeoin gu bheil na h-innealan uile anns an dachaigh agam ceangailte gun uèir, uaireannan tha feum air ceangal copar fhathast. Airson leithid de chùisean, tha “mòr-ionad gluasadach” agam ann an stoc:

inneal - rudeigin mar seoRaspberry Pi + Fedora (aarch64) = Hotspot Wi-Fi (no router sùbh-craoibhe le ad gorm)

6.3 Mas e router a tha seo, chan eil dad ri ràdh mu “gleusadh” TCP / IP, oir tha seo cudromach!

A bharrachd air a bhith a’ stèidheachadh stac an lìonraidh (tcp_fastopen, YeAH, msaa), chan eil seo agus an artaigil roimhe a’ còmhdach nuances eile, gu sònraichte, a’ phròiseas airson microSD ullachadh airson an cleachdadh as fheàrr (ged a tha an stàlaichear a’ feuchainn ri cruth a’ chairt cuimhne a-steach. dòigh dhoirbh). Tha am pròiseas leasachaidh gun chrìoch, feumaidh tu stad ann an ùine.

6.4 Carson Fedora?

A chionn 's toigh leam! Tha Fedora na shiostam “prìomh-shruthach” airson geeks, dha bheil an artaigil seo an dùil. Aig àm sgrìobhaidh, is dòcha gur e an aon OS a tha airson Raspberry ann an dreach 64-bit a ’faighinn taic oifigeil bho luchd-obrach cudromach de luchd-leasachaidh (bho nach urrainn dhomh feitheamh kernel 5.6).

6.5 A bheil Bluetooth ag obair? Ciamar a tha am bhidio/fuaim/GPIO?

Chan eil fios agam. Tha an artaigil mu dheidhinn an ìre as lugha de stàladh an t-siostaim agus mar a thèid a chleachdadh mar router Wi-Fi.

6.6 Carson a thòisicheas a h-uile artaigil mu CentOS / Fedora / RedHat le bhith a’ cuir à comas SELinux?

Leis gu bheil an siostam glè bheag, chan eil eadhon balla-teine ​​​​no goireasan ann airson a chuir air dòigh. Faodaidh duine sam bith a tha feumach air stàladh a bharrachd a h-uile dad a tha a dhìth orra.

6.7 Chan urrainnear an siostam a chleachdadh, chan urrainnear am facal-faire atharrachadh - chan eil passwd. Gun ping, gun dad!

tha DNF. No chan eil an roghainn stàlaidh seo dhutsa - cleachd am pasgan cuairteachaidh bhon luchd-leasachaidh.

6.8 Càite a bheil SWAP? Chan urrainn dhomh a bhith beò às aonais!

A bheil e fìor? Ceart gu leòr ma-thà:

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 Bu mhath leam ìomhaigh deiseil a luchdachadh sìos sa bhad le àite inntrigidh Wi-Fi rèiteachaidh!

Bidh feum air beagan ùine agus oidhirp gus stàlaichear “airson a h-uile duine” ullachadh. Ma tha (gu h-obann!) Tha seo inntinneach agus riatanach dha cuideigin, sgrìobh thugainn agus thig sinn suas le rudeigin.

Crìochnaichidh mi le seo.

Tha mi a’ guidhe gum bi a h-uile duine a’ surfadh sàbhailte agus an smachd as motha air a’ bhun-structair!

Source: www.habr.com

Cuir beachd ann