Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (atanapi router raspberry nganggo topi biru)

Tulisanana Raspberry Pi + CentOS = Wi-Fi Hotspot (atanapi router raspberry nganggo topi beureum) Kuring ngobrol ngeunaan cara pikeun ngarobah Raspberry kana titik aksés nirkabel nganggo sistem operasi CentOS. Ku assembling router imah kuring nurutkeun gambar ieu, Kuring wareg ego kreatif kuring jeung narima dorongan karapihan pikiran pikeun unsur kritis infrastruktur cozy kuring. Sanajan kitu, rarasaan incompleteness sahiji solusi na perfeksionisme internal haunted kuring: "hasil gawé teu sampurna teu boga hak pikeun aya". Pikiran yén "idéal tiasa sareng kedah dihontal" henteu ngantunkeun kuring sakedap.

Teras dina hiji dinten, dina salah sahiji forum tematik, kuring mendakan diskusi ngeunaan jerona bit sistem operasi anu aya pikeun Raspberry (aarch64 vs armhfp): anu OS 64-bit tiasa, prinsipna, pas sareng dianggo dina Raspberry versi 3 ++?

CentOS tercinta kuring pikeun arsitéktur ARM tina "Userland" henteu buru-buru ngalih kana versi kernel anu pang anyarna sareng janten 64-bit. Sareng gudang EPEL, dihubungkeun ti Gusti anu terang dimana tanpa tanda tangan digital, mangrupikeun ngimpina dina bobo kuring anu teu tenang ...

Diomongkeun salaku penganut distribusi dumasar RPM, kuring reuwas mendakan yén OS pikeun Raspberry parantos hilap dina diskusi. Fedora! Sarta ieu sanajan kanyataan yén release na
ti versi 28 eta resmi ngarojong buah prambus Pi 3B + dina versi 64-bit!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (atanapi router raspberry nganggo topi biru)
Dina artikel ieu kami baris ngobrol ngeunaan métode instalasi Fedora (aarch64) dina Buah prambus Pi Modél B + 3 в kinerja minimal tambahan. Kuring sakeudeung bakal ngabahas fitur-fitur pikeun naékkeun titik aksés Wi-Fi, anu diidentifikasi salaku hasil tina operasi percobaan tina konfigurasi kuring sateuacana. CentOS 7.

0. Naon anu anjeun peryogikeun

Sadayana sami sareng anu didaptarkeun dina tulisan sateuacana:

  • Buah prambus Pi 3 Modél B+;
  • microSD> = 4GB (engké anjeun tiasa "mindahkeun" sistem ka drive 2GB);
  • Workstation sareng pamaca kartu Linux sareng microSD;
  • Konektipitas jaringan kabel antara Raspberry sareng workstation Linux (dina hal ieu, teu aya monitor sareng keyboard tambahan anu diperyogikeun pikeun setelan), aksés Internét tina kadua alat éta;
  • Kaahlian canggih dina Linux (pikeun terang sareng henteu sieun: parted, dd и mkfs).

Sarupa jeung iterative lfs-ngawangun Linux anjeun sorangan, gambar distribusi Fedora bakal dianggo, teras dumasar kana éta, sistem minimal bakal didamel (tanpa "kompilasi tina sumber").

1. Pamasangan distribusi aslina

Koordinat gambar atah sistem dina Internét:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Saatos ngarékam dina microSD sareng sateuacan dianggo, anjeun kedah:

  1. Kembangkeun "root" sistem file (partisi ka-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. Pareuman SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Leupaskeun Wizard Setup Awal:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Ngidinan aksés via 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
    

Ayeuna anjeun tiasa ngaunduh "raspberry" tina microSD sareng sambungkeun kana jaringan.

A mimiti tiis nyokot ngeunaan hiji satengah menit. TTX tina sistem saatos dimuat:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (atanapi router raspberry nganggo topi biru)

rpm -qa | wc -l
444

2. Assembling sistem minimal

Hanjakalna, "distribusi minimal" ti pamekar tétéla jauh tina konsumsi sumberdaya anu paling sederhana. Gambar sistem tiasa didamel langkung alit.

Jang ngalampahkeun ieu, anjeun kedah ngajalankeun skrip dina 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

Sanggeus ngajalankeun skrip, subdirektori bakal dijieun dina diréktori ayeuna ($P) kalayan eusi akar édisi OS minimal anyar. Anjeun tiasa mareuman Raspberry sareng ngabalikeun microSD ka workstation Linux.

3. Pamasangan sistem minimal

Instalasi bisul handap pikeun nyalin OS minimal "gambar" file (diala dina hambalan saméméhna) kana microSD husus disiapkeun kana directories luyu.

Kartu 2GB sareng dua partisi di dinya cekap:

  1. / boot / efi - EFI + FAT32, boot, 100MB;
  2. / (root) - EXT4, kabéh spasi sésana.

Saatos nyiapkeun microSD sareng nyalin file ka dinya, anjeun kedah:

  • ngalereskeun OS boot;
  • hurungkeun jaringan;
  • ngonpigurasikeun aksés via ssh.

Perbaikan boot nyaéta ngagentos UUID tina bagian-bagian dina file:

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

jeung parameter disimpen_entri= dina file panungtungan

Dina file:

microSD:/etc/fstab

Anjeun tiasa mendakan nilai-nilai anu lami, sareng nilai-nilai ayeuna (up-to-date) dina kaluaran paréntah:

blkid | grep mmcblk | sort

Saatos ngagantian, anjeun ogé kedah ngabenerkeun eusina fstab on microSD supados titik Gunung pakait jeung UUIDs partisi anyar.

Fungsi jaringan nalika anjeun mimiti ngaktipkeun Raspberry tiasa dihontal ku "kruk" leutik - jieun tautan (skématik):

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

sareng file:

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

Saatos undeuran suksés, rapih peluncuran systemd-jaringand:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Aksés Superuser via ssh dikonpigurasi sami sareng léngkah 1.

Saatos ngalakukeun sadayana sacara saksama sareng tanpa kasalahan, anjeun tiasa ngalihkeun microSD kana "raspberry" sareng mimitian damel sareng OS 64-bit dina versi minimal tambahan.

4. Sistim siap

"Gambar" tina sistem rengse, dijieun nurutkeun parentah di luhur, bisa diundeur ti link:
Fedora-Tiny-31-5.5.7-200.aarch64

Ieu bakal janten arsip anu ngandung dua file: skrip instalasi sareng TGZ sareng file OS. Arsipna kedah dibongkar dina workstation Linux, nyelapkeun microSD (kartu 2GB cekap) sareng ngajalankeun skrip kalayan parameter - nami alat:

./install /dev/mmcblk0

Kudu ati!

Tanpa aya peringatan, alat bakal diformat sareng sistem operasi bakal dipasang dina éta.

Saatos palaksanaan skrip bebas kasalahan, kartu tiasa disusun deui kana "raspberry" sareng dianggo: nyekel via dhcp, sandi - "1".

Sistem ieu diberesihan sadaya KTP sareng konci, naha unggal pamasangan énggal unik.

Kuring ngulang sakali deui, sistem - minimal! Ku alatan éta, ulah hariwang: DNF sayogi, pikeun dianggo anjeun kedah "invent" anu leres /etc/resolv.conf.

Mimiti tiis tina buah prambus nyokot ngeunaan 40 detik. TTX tina sistem saatos dimuat:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (atanapi router raspberry nganggo topi biru)

rpm -qa | wc -l
191

5. Wifi

Kuring gé Huni saeutik dina fitur palaksanaan titik aksés Wi-Fi. Pikeun spésifikna, anjeun tiasa ningali ka kuring sateuacana artikel.

EPEL henteu diperyogikeun deui - sadaya bungkusan dikandung dina repositori resmi.

Eta meureun bakal patut nyerah dnsmasq, saprak Fedora, teu kawas CentOS, ngabogaan systemd-jaringan cukup panganyarna, nu boga normal diwangun-di DHCP / server DNS. Tapi kanyataanana aya dina pamekar RHEL8 nampik ngarojong tumpukan jaringan kalawan nanaon lian ti nm, teu mere ilham kapercayaan dina mangsa nu bakal datang caang tina proyék (bajingan). Singkatna, kuring henteu acan nyobian.

Salajengna, supir ayeuna pikeun adaptor Wi-Fi anu diwangun henteu tiasa "dicolong" tina distribusi Raspbian, tapi diunduh langsung tina github.

Ieu mangrupikeun file firmware Broadcom dina Raspberry kuring (skématically):

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

Tanpa aranjeunna anjeun moal kéngingkeun 5GHz / AC.

Ngeunaan jumlah jeung ngaran interfaces. Ayeuna kuring nyarankeun pisan ka sadayana pikeun henteu nganggo "jasa" saklar parangkat lunak kecuali leres pisan (jambatan), anu ngenalkeun beban anu signifikan kana tumpukan jaringan sareng pencét routing. Upami anjeun henteu ngarencanakeun gaduh sababaraha adaptor nirkabel, maka anjeun kedah ngan ukur nganggo antarmuka fisik. Kuring boga dua Wi-Fi, jadi kuring ngan ngagabungkeun aranjeunna kana sasak software (sanajan anjeun tiasa ngalakukeun tanpa ieu ku nempo setelan hostapd béda).

Jeung Abdi bogoh renaming interfaces.

Pikeun ngalakukeun ieu di Fedora anjeun kedah nyiptakeun tautan simbolis:

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

lajeng bakal mungkin mun masihan ngaran bermakna tanpa poking sabudeureun udev, tapi ngan ngagunakeun systemd-networkd.

Salaku conto, ieu anu disebut adaptor jaringan dina router kuring:

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 - diwangun-di, ext - adaptor Wi-Fi éksternal (USB) dirakit kana "sasak" LAN;
  • wan - adaptor Ethernet dimana Internét disambungkeun.

Naha anjeun perhatikeun? fq_codel - hal anu saé pisan. Kalayan kernel Linux anu seger, aranjeunna damel keajaiban nyata dina kisaran nirkabel: "unduh torrent" anu sengit moal ngakibatkeun degradasi gancang dina tatanggana. Malah IP-TV di bumi anu beroperasi "dina hawa" kalayan saluran anu dimuat henteu "megatkeun" sareng henteu "ngagagap" pisan!

Berkas jasa daemon parantos ngalaman parobihan sakedik hostapd.

Ayeuna katingalina kieu (nganggo conto adaptor anu diwangun):

[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

Sareng "magic" hostapd-int.conf pikeun damel di 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]

A photoshop saeutik dijieun tina Ericsson A1018s abdi:

(Koneksi Internét - 100Mbit/detik)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (atanapi router raspberry nganggo topi biru)
Sarta pamustunganana, a FAQ leutik.

6. FAQs

6.1 Naha ngadamel router Wi-Fi dina Raspberry?

Hiji bisa ngajawab saukur, kawas "éta metot pikeun nyobaan jeung sagala rupa nu".

Tapi dina kanyataanana, sigana kuring topik anu cukup serius. Dina jaman "katurunan" Internét, meuli router di toko jeung sésana disandera ka produsén na mangrupakeun prospek pisan dismal. Seueur jalma anu parantos ngartos yén linggih sareng CVE atanapi backdoor diwangun-di teu mungkin.

Tangtosna, anjeun tiasa migrasi ka firmware WRT ti peminat. Meureun aya leuwih kapercayaan di aranjeunna, tapi lamun teu hayang ngandelkeun aranjeunna, lajeng ngan make produk sorangan. Ideally, komputer full-fledged ku kituna sagalana di dunya bisa dilaksanakeun dina eta. Dina watesan routing, tangtu.

Ku alatan éta, milih "raspberry" mangrupakeun move ékonomi murni: komputer nyata jeung dina waktos anu sareng murah. Sanajan, meureun ogé - kalawan "ganda" maranéhanana di jero.

6.2 Tapi buah prambus mangrupakeun "router low": slow sarta kalawan hiji port Ethernet!

Salaku router Wi-Fi bumi, Raspberry langkung nyugemakeun pikeun kuring. Kuring parantos nyarios ngeunaan laju hawa di luhur. Tur aya ngan hiji Ethernet, sumur, dina produk sarupa ti Apple éta ngeunaan sarua!

Tapi serius, tangtosna abdi hoyong langkung. Sareng sanaos kanyataan yén di rumah tangga kuring sadaya alat disambungkeun sacara nirkabel, sakapeung sambungan tambaga masih diperyogikeun. Pikeun kasus sapertos kitu, kuring gaduh saham "hub mobile":

alat - hal kawas kieuRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (atanapi router raspberry nganggo topi biru)

6.3 Upami ieu mangrupikeun router, maka teu aya anu nyarios ngeunaan "tuning" TCP / IP, sabab ieu penting!

Salian nyetel tumpukan jaringan (tcp_fastopen, YeAH, jsb.), ieu sareng tulisan sateuacana henteu nutupan nuansa sanés, khususna, prosés nyiapkeun microSD pikeun panggunaan optimal (sanaos pamasangan nyobian pormat kartu mémori dina. cara anu hésé). Prosés perbaikan henteu terbatas, anjeun ngan ukur kedah lirén dina waktosna.

6.4 Naha Fedora?

Kusabab kuring resep! Fedora mangrupikeun sistem "mainstream" pikeun geeks, pikeun saha waé tulisan ieu dimaksudkeun. Dina waktos nyerat, sigana hiji-hijina OS anu pikeun Raspberry dina versi 64-bit sacara resmi dirojong ku staf pamekar anu signifikan (ti saha kuring henteu tiasa ngantosan. kernel 5.6).

6.5 Naha Bluetooth tiasa dianggo? Kumaha video/sora/GPIO?

teu nyaho. Tulisan éta ngeunaan pamasangan minimal sistem sareng panggunaan salajengnana salaku router Wi-Fi.

6.6 Naha sadaya tulisan ngeunaan CentOS/Fedora/RedHat dimimitian ku nganonaktipkeun SELinux?

Kusabab sistemna minimal, éta henteu ngagaduhan firewall atanapi utilitas pikeun nyetélana. Saha waé anu peryogi éta tiasa masang tambahan sadayana anu diperyogikeun.

6.7 Sistim teu bisa dipaké, sandi teu bisa dirobah - euweuh passwd. Taya ping, euweuh nanaon!

aya DNF. Atanapi pilihan pamasangan ieu sanés pikeun anjeun - nganggo kit distribusi ti pamekar.

6.8 Dimana SWAP? Abdi teu tiasa hirup tanpa anjeunna!

Naha leres? OKÉ teras:

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 Abdi hoyong langsung ngundeur gambar siap-dijieun sareng titik aksés Wi-Fi ngonpigurasi!

Nyiapkeun hiji installer "for everyone" bakal merlukeun sababaraha waktu jeung usaha. Lamun (ujug-ujug!) batur bener manggihan ieu metot jeung perlu, nulis ka kami sarta kami bakal datang nepi ka hiji hal.

Abdi badé réngsé ieu.

Kuring miharep dulur surfing aman jeung kontrol maksimum dina infrastruktur!

sumber: www.habr.com

Tambahkeun komentar