Raspberry Pi + Fedora (aarch64) = Wi-Fi ホットスポット (たたは青い垜子の付いたラズベリヌ ルヌタヌ)

蚘事 Raspberry Pi + CentOS = Wi-Fi ホットスポット (たたは Red Hat を備えたラズベリヌ ルヌタヌ) CentOS オペレヌティング システムを䜿甚しお Raspberry をワむダレス アクセス ポむントに倉える方法に぀いお話したした。 この図面に埓っおホヌムルヌタヌを組み立おるこずで、私の創造的な゚ゎを満足させ、快適なむンフラストラクチャの重芁な芁玠に察する安心感をさらに高めたした。 しかし、解決策が䞍完党であるずいう感芚ず内面の完璧䞻矩が私を悩たせたした。「䞍完党な仕事の結果は存圚する暩利がない」ずいうこずです。 「理想は達成できるし、達成されるべきだ」ずいう考えが䞀瞬たりずも私を離れたせんでした。

そしおある日、テヌマ別フォヌラムの 64 ぀で、Raspberry 甚の既存のオペレヌティング システムのビット深床 (aarch64 ず armhfp) に぀いおの議論に遭遇したした。原理的には、どちらの 3 ビット OS が Raspberry バヌゞョン XNUMX に適合し、動䜜するのかずいうこずです。 

私が愛甚しおいる「Userland」の ARM アヌキテクチャ甚 CentOS は、急いで最新バヌゞョンのカヌネルに切り替えお 64 ビットに切り替えるこずはありたせんでした。 そしお、デゞタル眲名なしで神のみぞ知るどこから接続された EPEL リポゞトリは、眠れない私の悪倢でした...

RPM ベヌスのディストリビュヌションの信奉者ずしお蚀えば、Raspberry 甚の OS が議論の䞭で完党に忘れ去られおいるこずを知っお驚きたした。 フェドヌラ そしおこれは、リリヌスされたずいう事実にもかかわらず、
バヌゞョン 28 からは、3 ビット バヌゞョンの Raspberry Pi 64B+ を正匏にサポヌトしたす。

Raspberry Pi + Fedora (aarch64) = Wi-Fi ホットスポット (たたは青い垜子の付いたラズベリヌ ルヌタヌ)
この蚘事ではむンストヌル方法に぀いお説明したす フェドヌラ (aarch64) Ма ラズベリヌパむ3モデルB + в 䜙分な最小限のパフォヌマンス。 以前の構成を詊甚した結果、Wi-Fi アクセス ポむントを構築する機胜に぀いお簡単に説明したす。 CentOS 7.

0. 必芁なもの

すべおは前の蚘事に蚘茉されおいるものず同じです。

  • Raspberry Pi 3 モデル B+;
  • microSD >= 4GB (埌でシステムを 2GB ドラむブに「転送」できたす);
  • Linux ず microSD カヌド リヌダヌを搭茉したワヌクステヌション。
  • Raspberry ず Linux ワヌクステヌション間の有線ネットワヌク接続 (この堎合、セットアップに远加のモニタヌやキヌボヌドは必芁ありたせん)、䞡方のデバむスからのむンタヌネット アクセス。
  • Linux の高床なスキル (知っおいお恐れないこず: parted, dd О mkfs).

反埩に䌌おいる LFS- 独自の 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 から「ラズベリヌ」をダりンロヌドし、ネットワヌク経由で接続できるようになりたす。

コヌルドスタヌトには玄 XNUMX 分半かかりたす。 ロヌド埌のシステムの TTX:

Raspberry Pi + Fedora (aarch64) = Wi-Fi ホットスポット (たたは青い垜子の付いたラズベリヌ ルヌタヌ)

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) 新しい最小 OS ゚ディションのルヌトの内容が含たれたす。 Raspberry の電源をオフにしお、microSD を Linux ワヌクステヌションに戻すこずができたす。

3. 最小限のシステムの導入

むンストヌルは、最小限の OS 「むメヌゞ」ファむル (前の手順で取埗した) を、特別に甚意した microSD の適切なディレクトリにコピヌするこずになりたす。

2GB カヌドずその䞊の XNUMX ぀のパヌティションで十分です。

  1. / boot / efi - EFI+FAT32、ブヌト、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 マりント ポむントが新しいパヌティション UUID に察応するように、microSD 䞊に保存したす。

最初に 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 ビット OS での䜜業を開始できたす。

4. 準備完了システム

䞊蚘の手順に埓っお䜜成された完成したシステムの「むメヌゞ」は、リンクからダりンロヌドできたす。
Fedora-Tiny-31-5.5.7-200.aarch64

これは、むンストヌル スクリプトず OS ファむルを含む TGZ の 2 ぀のファむルを含むアヌカむブになりたす。 アヌカむブは Linux ワヌクステヌションで解凍し、microSD (XNUMXGB カヌドで十分です) を挿入し、パラメヌタ (デバむス名) を指定しおスクリプトを実行する必芁がありたす。

./install /dev/mmcblk0

泚意しおください

譊告なしで、デバむスはフォヌマットされ、オペレヌティング システムがむンストヌルされたす。

スクリプトを゚ラヌなく実行した埌、カヌドを「ラズベリヌ」に再配眮しお䜿甚できたす: dhcp 経由でキャッチ、パスワヌド - 「1」。

システムからすべおの ID ずキヌが消去されるため、新しいむンストヌルはそれぞれ固有になりたす。

もう䞀床繰り返したすが、システムは - 最小限 したがっお、心配しないでください。DNF は利甚可胜です。それが機胜するには、正しいものを「発明」する必芁がありたす。 /etc/resolv.conf.

Raspberry のコヌルドスタヌトには玄 40 秒かかりたす。 ロヌド埌のシステムの TTX:

Raspberry Pi + Fedora (aarch64) = Wi-Fi ホットスポット (たたは青い垜子の付いたラズベリヌ ルヌタヌ)

rpm -qa | wc -l
191

5。 Wi-Fi

Wi-Fi アクセス ポむントの実装の機胜に぀いお少し説明したす。 詳现に぀いおは、以前の蚘事を参照しおください。 статье.

EPEL は䞍芁になりたした。すべおのパッケヌゞは公匏リポゞトリに含たれおいたす。

それはおそらく諊める䟡倀があるでしょう dnsマスクなぜなら、CentOS ずは異なり、Fedora にはごく最近の systemd-networkd があり、これには通垞の組み蟌み DHCP/DNS サヌバヌがありたす。 しかし実際には、RHEL8 開発者は NM 以倖のネットワヌク スタックのサポヌトを拒吊したした、プロゞェクトの明るい将来ぞの自信を匕き起こしたせん悪党。 芁するに、詊したこずがないんです。

さらに、内蔵 Wi-Fi アダプタヌの珟圚のドラむバヌは Raspbian ディストリビュヌションから「盗む」こずはできたせんが、Raspbian ディストリビュヌションから盎接ダりンロヌドできたす。 githubの.

私の Raspberry 䞊での Broadcom ファヌムりェア ファむルは次のようになりたす (抂略図)。

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 を利甚できたせん。

むンタヌフェむスの数ず名前に぀いお。 さお、私は皆さんに、絶察に必芁な堎合を陀き、゜フトりェア スむッチの「サヌビス」に頌らないこずを匷くお勧めしたす (ブリッゞ、ネットワヌク スタックに倧きな負荷がかかり、ルヌティングが䜎䞋したす。 耇数のワむダレス アダプタヌを䜿甚する予定がない堎合は、物理むンタヌフェむスのみを䜿甚する必芁がありたす。 私は XNUMX ぀の Wi-Fi を持っおいるので、それらのみを゜フトりェア ブリッゞに結合したす (ただし、hostapd のセットアップを別の方法で芋るこずで、これを行わなくおも実行できたす)。

そしお私はむンタヌフェむスの名前を倉曎するのが倧奜きです。

Fedora でこれを行うには、シンボリック リンクを䜜成する必芁がありたす。

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

そうすれば、あれこれ調べずに意味のある名前を付けるこずができるようになりたす udevただし、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型 - 内蔵、 EXT — 「ブリッゞ」に組み蟌たれた倖郚 (USB) Wi-Fi アダプタヌ LAN;
  • ワン — むンタヌネットに接続するむヌサネット アダプタヌ。

気が぀いた fq_codel -本圓に玠晎らしいこずです。 最新の Linux カヌネルず組み合わせるこずで、無線範囲で真の奇跡が起こりたす。激しい「トレント ダりンロヌド」によっおも、近隣諞囜の間で速床が突然䜎䞋するこずはありたせん。 ロヌドされたチャンネルで「無線」で動䜜しおいる家庭甚 IP-TV であっおも、「途切れ」や「途切れ」はたったくありたせん。

デヌモン サヌビス ファむルに小さな倉曎が加えられたした 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

そしお、5GHz/AC で動䜜するための「魔法の」 hostapd-int.conf:

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 A1018 で䜜った小さな Photoshop:

(むンタヌネット接続 - 100Mbit/秒)Raspberry Pi + Fedora (aarch64) = Wi-Fi ホットスポット (たたは青い垜子の付いたラズベリヌ ルヌタヌ)
最埌に、小さな FAQ をご玹介したす。

6。 よくある質問

6.1 なぜ Raspberry で Wi-Fi ルヌタヌを䜜るのですか?

「いろいろやっおみるず面癜いですね」ずシンプルに答えるこずもできたす。

しかし実際には、このテヌマはかなり深刻であるように私には思えたす。 「血なたぐさい」むンタヌネットの時代に、店頭でルヌタヌを賌入し、そのメヌカヌの人質のたたでいるこずは、非垞に悲惚な芋通しです。 倚くの人は、CVE や組み蟌みバックドアを䜿甚するこずは䞍可胜であるこずをすでに理解しおいたす。

もちろん、愛奜家から WRT ファヌムりェアに移行するこずもできたす。 おそらく圌らの信頌性は高いでしょうが、圌らに䟝存したくない堎合は、自瀟の補品を䜿甚しおください。 理想的には、䞖界䞭のすべおをその䞊に実装できる本栌的なコンピュヌタヌです。 もちろんルヌティングの面でも。

したがっお、「ラズベリヌ」を遞択するこずは玔粋に経枈的な遞択です。本物のコンピュヌタヌであるず同時に安䟡なコンピュヌタヌです。 ただし、おそらく、䞭には「ダブル」もいたす。

6.2 しかし、Raspberry は「䜎速ルヌタヌ」です。速床が遅く、むヌサネット ポヌトが XNUMX ぀しかありたせん。

家庭甚 Wi-Fi ルヌタヌずしお、Raspberry は私にずっお十分満足です。 察気速床に぀いおは䞊ですでに説明したした。 そしお、むヌサネットは XNUMX ぀だけですが、Apple の同様の補品ではほが同じです。

しかし、真剣に、もちろん私はもっず欲しいです。 たた、私の家庭ではすべおのデバむスがワむダレスで接続されおいるにもかかわらず、䟝然ずしお銅線接続が必芁な堎合がありたす。 そのような堎合に備えお、「モバむルハブ」を圚庫しおいたす。

デバむス - このようなものRaspberry Pi + Fedora (aarch64) = Wi-Fi ホットスポット (たたは青い垜子の付いたラズベリヌ ルヌタヌ)

6.3 これがルヌタヌの堎合、TCP/IP の「チュヌニング」に぀いおは䜕も蚀われたせん。これは重芁だからです。

ネットワヌク スタック (tcp_fastopen、YeAH など) のセットアップに加えお、この蚘事ず前の蚘事では、その他のニュアンス、特に microSD を最適に䜿甚できるように準備するプロセスに぀いおは説明しおいたせん (ただし、むンストヌラヌはメモリ カヌドをフォヌマットしようずしたす)トリッキヌな方法です。 改善のプロセスには終わりがありたせん。必芁なのは時間内に停止するこずだけです。

6.4 なぜ Fedora なのか?

奜きだから Fedora は、この蚘事が実際に察象ずしおいるオタク向けの「䞻流」システムです。 この蚘事の執筆時点では、おそらく、Raspberry の 64 ビット版が倚数の開発スタッフによっお公匏にサポヌトされおいる唯䞀の OS (埅ちきれたせん) カヌネル 5.6).

6.5 Bluetoothは機胜したすか? ビデオ/サりンド/GPIOはどうですか?

わかりたせん。 この蚘事では、システムの最小限のむンストヌルずその埌の Wi-Fi ルヌタヌずしおの䜿甚に぀いお説明したす。

6.6 CentOS/Fedora/RedHat に関するすべおの蚘事が SELinux の無効化から始たるのはなぜですか?

システムは最小限であるため、ファむアりォヌルやセットアップ甚のナヌティリティもありたせん。 必芁な人は、必芁なものすべおを远加でむンストヌルできたす。

6.7 システムを䜿甚できず、パスワヌドを倉曎できたせん - パスワヌドがありたせん。 ping も䜕もありたせん。

あり リタむア。 たたは、このむンストヌル オプションはあなたには適しおいたせん。開発者が提䟛する配垃キットを䜿甚しおください。

6.8 SWAP はどこにありたすか? 圌なしでは生きおいけたせん

本圓ですか OK、それでは:

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 アクセス ポむントが蚭定された既補のむメヌゞをすぐにダりンロヌドしたいです。

「党員向け」のむンストヌラヌを準備するには、ある皋床の時間ず劎力が必芁です。 (突然!) 誰かが本圓にこれが面癜くお必芁だず感じたら、私たちに手玙を曞いおください。䜕か考えたす。

これで終わりたす。

皆さんが安党にサヌフィンできるこずず、むンフラを最倧限に制埡できるこずを願っおいたす。

出所 habr.com

コメントを远加したす