Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (los yog raspberry router nrog lub kaus mom xiav)

Kab lus Raspberry Pi + CentOS = Wi-Fi Hotspot (los yog raspberry router nrog lub kaus mom liab) Kuv tau tham txog ib txoj hauv kev los tig Raspberry mus rau qhov chaw nkag wireless siv CentOS operating system. Los ntawm kev sib sau ua ke kuv lub tsev router raws li daim duab no, kuv txaus siab rau kuv lub tswv yim ego thiab tau txais kev txhawb siab ntawm kev thaj yeeb rau lub ntsiab lus tseem ceeb ntawm kuv qhov chaw zoo nkauj. Txawm li cas los xij, qhov kev xav ntawm kev ua tsis tiav ntawm kev daws teeb meem thiab kev ua tiav sab hauv tau haunted kuv: "ib qho kev ua tsis tiav ntawm kev ua haujlwm tsis muaj cai nyob." Qhov kev xav tias "qhov zoo tshaj tuaj yeem ua tau thiab yuav tsum ua tiav" tsis tso kuv tseg ib feeb.

Thiab tom qab ntawd muaj ib hnub, ntawm ib lub rooj sib tham thematic, kuv tuaj hla kev sib tham txog qhov tob me ntsis ntawm cov haujlwm uas twb muaj lawm rau Raspberry (aarch64 vs armhfp): uas 64-ntsis OS tuaj yeem, hauv paus ntsiab lus, haum thiab ua haujlwm ntawm Raspberry version 3 ++?

Kuv tus hlub CentOS rau ARM architecture los ntawm "Userland" tsis maj hloov mus rau qhov tseeb version ntawm lub ntsiav thiab tig mus rau 64-ntsis. Thiab lub EPEL repository, kev cob cog rua los ntawm Vajtswv paub qhov twg tsis muaj ib tug digital kos npe, yog ib tug npau suav phem nyob rau hauv kuv nyob tsis tswm ...

Hais lus raws li kev sib koom ua ke ntawm RPM-raws li kev faib tawm, Kuv xav tsis thoob thaum pom tias OS rau Raspberry tsis nco qab tag nrho hauv kev sib tham Fedora! Thiab qhov no txawm tias qhov tseeb tias nws tso tawm
los ntawm version 28 nws tau txhawb nqa Raspberry Pi 3B + hauv 64-ntsis version!

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (los yog raspberry router nrog lub kaus mom xiav)
Hauv tsab xov xwm no kuv yuav tham txog txoj kev teeb tsa Fedora (ib.64) rau Raspberry Pi 3 Qauv B + Π² kev ua haujlwm tsawg kawg nkaus. Kuv yuav nyob luv luv ntawm cov yam ntxwv ntawm kev nce qhov chaw nkag Wi-Fi, txheeb xyuas los ntawm kev sim ua haujlwm ntawm kuv qhov kev teeb tsa yav dhau los ntawm CentOS 7.

0. Yam koj yuav xav tau

Txhua yam zoo ib yam li teev hauv kab lus dhau los:

  • Raspberry Pi 3 Model B+;
  • microSD>= 4GB (tom qab koj tuaj yeem "hloov" lub kaw lus mus rau 2GB tsav);
  • Workstation nrog Linux thiab microSD daim npav nyeem ntawv;
  • Wired network kev sib txuas ntawm Raspberry thiab Linux chaw ua haujlwm (hauv qhov no, tsis muaj kev saib xyuas ntxiv thiab cov keyboard yuav xav tau rau kev teeb tsa), kev siv Is Taws Nem los ntawm ob qho khoom siv;
  • Kev txawj ntse hauv Linux (kom paub thiab tsis ntshai: parted, dd ΠΈ mkfs).

Zoo ib yam li iteration Lfs-kev tsim koj tus kheej Linux, Fedora cov duab faib yuav raug siv, thiab tom qab ntawd raws li nws, qhov tsawg kawg nkaus yuav raug tsim (tsis muaj "kev sau los ntawm qhov chaw").

1. Kev teeb tsa ntawm tus thawj faib

Kev sib koom tes ntawm cov duab nyoos ntawm qhov system hauv Internet:
https://…/fedora-secondary/releases/…/Spins/aarch64/images/Fedora-Minimal-…xz

Tom qab kaw nws ntawm microSD thiab ua ntej siv nws, koj yuav tsum:

  1. Nthuav cov "hauv paus" ntawm cov ntaub ntawv system (3rd partition, 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. Disable SELinux
    echo 'SELINUX=disabled' > /mnt/3/etc/selinux/config
    

  3. Tshem tawm qhov Pib Teeb Wizard:
    find /mnt/3/etc/systemd/ -iname initial-setup.service -delete
    

  4. Tso cai nkag los ntawm 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
    

Tam sim no koj tuaj yeem rub tawm "raspberry" los ntawm microSD thiab txuas rau nws ntawm lub network.

Kev pib txias yuav siv li ib thiab ib nrab feeb. TTX ntawm qhov system tom qab thauj khoom:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (los yog raspberry router nrog lub kaus mom xiav)

rpm -qa | wc -l
444

2. Sib sau ua ke tsawg kawg nkaus

Hmoov tsis zoo, "kev faib tsawg kawg nkaus" los ntawm cov neeg tsim khoom hloov mus rau qhov deb ntawm qhov qis tshaj plaws hauv kev siv peev txheej. Lub kaw lus duab tuaj yeem ua kom me dua.

Txhawm rau ua qhov no, koj yuav tsum khiav tsab ntawv ntawm 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

Tom qab khiav cov ntawv, ib subdirectory yuav raug tsim nyob rau hauv cov directory tam sim no ($P) nrog cov ntsiab lus ntawm lub hauv paus ntawm qhov tsawg kawg nkaus OS tsab. Koj tuaj yeem tua Raspberry thiab xa rov qab microSD rau Linux chaw ua haujlwm.

3. Kev teeb tsa ntawm qhov tsawg kawg nkaus

Kev teeb tsa boils mus rau luam cov ntaub ntawv OS "duab" tsawg tsawg (tau txais hauv cov kauj ruam dhau los) mus rau qhov tshwj xeeb npaj microSD rau hauv cov npe uas tsim nyog.

Ib daim npav 2GB thiab ob qhov kev faib rau nws txaus:

  1. / khau raj / efi - EFI + FAT32, khau raj, 100MB;
  2. / (hauv paus) - EXT4, tag nrho qhov chaw seem.

Tom qab npaj lub microSD thiab luam cov ntaub ntawv rau nws, koj yuav tsum:

  • kho OS boot;
  • qhib lub network;
  • configure nkag los ntawm ssh.

Lub khau raj kho yog los hloov UUID ntawm cov ntu hauv cov ntaub ntawv:

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

thiab parameter saved_entry = hauv cov ntaub ntawv kawg

Hauv cov ntaub ntawv:

microSD:/etc/fstab

koj tuaj yeem pom cov txiaj ntsig qub, thiab qhov tam sim no (hloov tshiab) qhov tseem ceeb hauv cov lus txib tso tawm:

blkid | grep mmcblk | sort

Tom qab hloov, koj yuav tsum kho cov ntsiab lus fstab ntawm microSD kom cov ntsiab lus mount sib haum rau cov kev faib tshiab UUIDs.

Network functionality thaum koj thawj zaug qhib lub Raspberry tuaj yeem ua tiav nrog "Crutch" me me - tsim qhov txuas (schematically):

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

thiab ntaub ntawv:

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

Tom qab ib tug ua tiav download, huv si lub community launch systemd-networkd:

systemctl disable systemd-networkd
systemctl enable systemd-networkd

Superuser nkag los ntawm ssh tau teeb tsa zoo ib yam li qib 1.

Ua tib zoo ua txhua yam kom zoo thiab tsis muaj qhov yuam kev, koj tuaj yeem txav lub microSD mus rau "raspberry" thiab pib ua haujlwm nrog 64-ntsis OS hauv qhov tsawg kawg nkaus.

4. Npaj qhov system

Lub "duab" ntawm lub kaw lus tiav, tsim raws li cov lus qhia saum toj no, tuaj yeem rub tawm los ntawm qhov txuas:
Fedora-Tiny-31-5.5.7-200.aarch64

Qhov no yuav yog ib qho archive uas muaj ob cov ntaub ntawv: cov ntawv teeb tsa thiab TGZ nrog OS cov ntaub ntawv. Cov ntaub ntawv yuav tsum tau muab tshem tawm ntawm Linux chaw ua haujlwm, ntxig rau microSD (ib daim npav 2GB txaus) thiab khiav cov ntawv nrog qhov ntsuas - lub npe ntawm lub cuab yeej:

./install /dev/mmcblk0

Ceev faj!

Yog tsis muaj lus ceeb toom, lub cuab yeej yuav raug formatted thiab lub operating system yuav raug ntsia rau ntawm nws.

Tom qab kev ua yuam kev tsis muaj kev ua tiav ntawm tsab ntawv, daim npav tuaj yeem rov kho dua rau hauv "raspberry" thiab siv: ntes ntawm dhcp, lo lus zais - "1".

Lub kaw lus raug tshem tawm ntawm txhua tus ID thiab cov yuam sij, uas yog vim li cas txhua qhov kev teeb tsa tshiab yog qhov tshwj xeeb.

Kuv rov hais dua ib zaug ntxiv, qhov system - tsawg kawg! Yog li ntawd, tsis txhob ntshai: DNF muaj, rau nws ua hauj lwm koj yuav tau "invent" qhov tseeb. /etc/resolv.conf.

Qhov txias pib ntawm Raspberry siv sijhawm li 40 vib nas this. TTX ntawm qhov system tom qab thauj khoom:

Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (los yog raspberry router nrog lub kaus mom xiav)

rpm -qa | wc -l
191

5. Wi-nkaus

Kuv yuav nyob me ntsis ntawm cov yam ntxwv ntawm kev siv Wi-Fi nkag mus. Rau qhov tshwj xeeb, koj tuaj yeem xa mus rau kuv qhov dhau los Tshooj.

EPEL tsis xav tau lawm - tag nrho cov pob khoom muaj nyob rau hauv cov chaw khaws ntaub ntawv.

Tej zaum yuav tsim nyog muab tso tseg dnsmq ua, txij li thaum Fedora, tsis zoo li CentOS, muaj qhov systemd-networkd tsis ntev los no, uas muaj ib txwm ua-hauv DHCP / DNS servers. Tab sis qhov tseeb yog tias nyob rau hauv RHEL8 developers tsis kam txhawb lub network pawg nrog lwm yam uas tsis yog NM, tsis txhawb kev ntseeg siab rau yav tom ntej ntawm qhov project (scoundrels). Hauv luv luv, kuv tsis tau sim nws.

Tsis tas li ntawd, cov tsav tsheb tam sim no rau lub built-in Wi-Fi adapter tsis tuaj yeem "nyem" los ntawm Raspbian kev faib tawm, tab sis rub tawm ncaj qha los ntawm github.

Nov yog qhov Broadcom firmware cov ntaub ntawv zoo li ntawm kuv Raspberry (schematically):

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

Yog tsis muaj lawv koj yuav tsis tau 5GHz / AC.

Hais txog tus naj npawb thiab npe ntawm cov interfaces. Tam sim no kuv xav kom txhua tus tsis txhob mus rau "kev pabcuam" ntawm software hloov pauv tshwj tsis yog tsim nyog (choj), uas qhia txog qhov tseem ceeb ntawm kev thauj khoom mus rau hauv pawg network thiab kev nyuaj siab routing. Yog tias koj tsis npaj yuav muaj ntau lub wireless adapters, ces koj yuav tsum siv lub cev interfaces nkaus xwb. Kuv muaj ob lub Wi-Fi, yog li kuv tsuas yog muab lawv ua ke rau hauv software choj (txawm tias koj tuaj yeem ua yam tsis muaj qhov no los ntawm saib hostapd teeb tsa sib txawv).

Thiab kuv nyiam renaming interfaces.

Txhawm rau ua qhov no hauv Fedora koj yuav tsum tsim ib qho kev sib txuas:

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

thiab tom qab ntawd nws yuav muaj peev xwm muab cov npe muaj txiaj ntsig yam tsis muaj poking ncig udev ua, tab sis tsuas yog siv systemd-networkd.

Piv txwv li, qhov no yog qhov network adapters hauv kuv lub router hu ua:

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

  • rau cov menyuam - built-in, ext - Sab nraud (USB) Wi-Fi adapters sib sau ua ke rau hauv "choj" lan;
  • wan - Ethernet adapter rau hauv Internet txuas nrog.

Koj puas tau pom? fq_cov - ib qho zoo heev. Ua ke nrog cov tshiab Linux kernel, lawv ua hauj lwm tej txuj ci tseem ceeb nyob rau hauv lub wireless ntau yam: ib tug hnyav "torrent download" yuav tsis ua rau ib tug sai degradation ntawm ceev ntawm cov neeg nyob ze. Txawm hais tias lub tsev IP-TV ua haujlwm "dhau saum huab cua" nrog cov channel thauj khoom tsis "sib cais" thiab tsis "stutter" kiag li!

Cov ntaub ntawv kev pabcuam daemon tau hloov pauv me ntsis hostapd.

Tam sim no nws zoo li qhov no (siv cov piv txwv ntawm ib lub adapter built-in):

[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

Thiab "magic" hostapd-int.conf rau kev ua haujlwm hauv 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]

Ib me ntsis photoshop ua los ntawm kuv Ericsson A1018s:

(Internet kev twb kev txuas - 100Mbit / sec)Raspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (los yog raspberry router nrog lub kaus mom xiav)
Thiab thaum kawg, FAQ me me.

6. Cov FAQ

6.1 Vim li cas thiaj tsim Wi-Fi router ntawm Raspberry?

Ib tus tuaj yeem teb yooj yim, zoo li "nws yog qhov txaus siab sim thiab txhua yam ntawd."

Tab sis qhov tseeb, nws zoo nkaus li rau kuv tias lub ntsiab lus tseem ceeb heev. Nyob rau hauv lub era ntawm "ntshav" Internet, yuav ib tug router nyob rau hauv ib lub khw thiab tshuav tus neeg raug txhom rau nws cov chaw tsim khoom yog ib qho kev cia siab heev. Ntau tus neeg twb nkag siab tias zaum nrog CVE lossis lub qhov rooj rov qab ua tsis tau.

Tau kawg, koj tuaj yeem tsiv mus rau WRT firmware los ntawm cov neeg nyiam. Tej zaum muaj kev ntseeg ntau dua rau lawv, tab sis yog tias koj tsis xav nyob ntawm lawv, ces tsuas yog siv koj tus kheej cov khoom. Qhov zoo tshaj plaws, lub khoos phis tawj puv puv kom txhua yam hauv ntiaj teb tuaj yeem ua tiav ntawm nws. Nyob rau hauv cov nqe lus ntawm routing, tau kawg.

Yog li ntawd, xaiv "raspberry" yog ib qho kev lag luam nkaus xwb: lub computer tiag tiag thiab tib lub sijhawm pheej yig. Txawm hais tias, tej zaum kuj - nrog lawv "ob npaug" sab hauv.

6.2 Tab sis Raspberry yog "router qis": qeeb thiab nrog ib qho chaw nres nkoj Ethernet!

Raws li lub tsev Wi-Fi router, Raspberry yog qhov txaus siab rau kuv. Kuv twb tau tham txog huab cua ceev saum toj no. Thiab tsuas muaj ib qho Ethernet xwb, zoo, hauv cov khoom zoo sib xws los ntawm Apple nws yog ib yam!

Tab sis tiag tiag, tau kawg kuv xav tau ntau dua. Thiab txawm hais tias hauv kuv tsev neeg txhua yam khoom siv txuas nrog wirelessly, qee zaum tseem yuav tsum muaj kev sib txuas tooj liab. Rau cov xwm txheej zoo li no, kuv muaj "mobile hub" hauv Tshuag:

ntaus ntawv - ib yam dab tsi zoo li noRaspberry Pi + Fedora (aarch64) = Wi-Fi Hotspot (los yog raspberry router nrog lub kaus mom xiav)

6.3 Yog tias qhov no yog router, ces tsis muaj dab tsi hais txog "tso" TCP / IP, vim qhov no tseem ceeb!

Ntxiv rau kev teeb tsa lub network pawg (tcp_fastopen, YeAH, thiab lwm yam), qhov no thiab tsab xov xwm dhau los tsis suav nrog lwm cov nuances, tshwj xeeb, cov txheej txheem ntawm kev npaj microSD rau kev siv kom zoo (txawm tias tus installer sim format daim npav nco hauv txoj kev dag). Cov txheej txheem ntawm kev txhim kho yog qhov kawg, koj tsuas yog yuav tsum tau nres hauv lub sijhawm.

6.4 Vim li cas Fedora?

Vim kuv nyiam! Fedora yog ib qho "cov ntsiab lus tseem ceeb" rau geeks, rau cov uas tsab xov xwm no tau npaj tiag tiag. Thaum lub sijhawm sau ntawv, tej zaum tsuas yog OS uas rau Raspberry hauv 64-ntsis version tau lees paub los ntawm cov neeg ua haujlwm tseem ceeb ntawm cov neeg tsim khoom (los ntawm leej twg kuv tos tsis tau. cov kernel 5.6).

6.5 Puas yog Bluetooth ua haujlwm? Cov video/suab/GPIO zoo li cas?

Tsis paub. Cov kab lus yog hais txog qhov tsawg kawg ntawm kev teeb tsa ntawm lub kaw lus thiab nws qhov kev siv tom ntej ua Wi-Fi router.

6.6 Vim li cas tag nrho cov lus hais txog CentOS / Fedora / RedHat pib nrog kev tsis siv SELinux?

Vim tias lub kaw lus tsawg tsawg, nws tsis txawm muaj firewall los yog cov khoom siv rau kev teeb tsa. Txhua tus neeg xav tau nws tuaj yeem nruab ntxiv txhua yam lawv xav tau.

6.7 Lub kaw lus siv tsis tau, tus password tsis tuaj yeem hloov pauv - tsis muaj passwd. Tsis muaj ping, tsis muaj dab tsi!

muaj DNF. Los yog qhov kev xaiv kev teeb tsa no tsis yog rau koj - siv cov khoom faib los ntawm cov neeg tsim khoom.

6.8 SWAP nyob qhov twg? Kuv nyob tsis tau yog tsis muaj nws!

Puas muaj tseeb? OK ces:

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 Kuv xav tam sim rub tawm cov duab npaj ua tiav nrog lub teeb tsa Wi-Fi nkag mus!

Kev npaj lub installer "rau txhua tus" yuav xav tau qee lub sijhawm thiab kev rau siab. Yog tias (dav ntawd!) ib tug neeg pom qhov nthuav thiab tsim nyog, sau ntawv rau peb thiab peb yuav tuaj nrog qee yam.

Kuv yuav ua tiav nrog qhov no.

Kuv xav kom txhua tus muaj kev nyab xeeb caij nthwv dej thiab kev tswj hwm siab tshaj plaws ntawm cov txheej txheem!

Tau qhov twg los: www.hab.com

Ntxiv ib saib