在文章中
然後有一天,在主題論壇上,我遇到了關於 Raspberry 現有作業系統的位元深度(aarch64 與 armhfp)的討論:原則上哪種 64 位元作業系統可以適合併在 Raspberry 版本 3 上運行++?
我心愛的來自「Userland」的 ARM 架構的 CentOS 並不急於切換到最新版本的核心並變成 64 位元。 而 EPEL 儲存庫,從天知道在哪裡連接,沒有數位簽名,在我不安的睡眠中是一場噩夢......
作為基於 RPM 的發行版的擁護者,我驚訝地發現 Raspberry 的作業系統在討論中完全被遺忘了 Fedora! 儘管事實上它的發布
這篇文章我會講安裝方法 軟呢帽 (aarch64) 上 Raspberry Pi 3 Model B + в 額外的最低性能。 我將簡要介紹建立 Wi-Fi 接入點的功能,這些功能是我之前的配置在
0. 你需要什麼
一切都與上一篇文章中列出的相同:
- 樹莓派 3 型號 B+;
- microSD >= 4GB(稍後您可以將系統「轉移」到2GB驅動器);
- 配備 Linux 和 microSD 讀卡機的工作站;
- Raspberry 和 Linux 工作站之間的有線網路連線(在這種情況下,設定不需要額外的顯示器和鍵盤),兩個裝置都可以存取網路;
- Linux 高級技能(了解而不害怕:
分手 ,dd и的mkfs ).
類似於迭代
1.安裝原始發行版
系統原始影像在網路上的座標:
將其錄製到 microSD 後並在使用之前,您需要:
- 展開檔案系統的「根」(第三個分割區,ext3)
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
- 禁用 SELinux
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
現在您可以從 microSD 下載「raspberry」並透過網路連接到它。
冷啟動大約需要一分半鐘。 載入後系統的TTX:
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)以及新的最小作業系統版本的根目錄的內容。 您可以關閉 Raspberry 並將 microSD 放回 Linux 工作站。
3.最小系統的安裝
安裝歸結為將最小的作業系統「映像」檔案(在上一個步驟中取得)複製到專門準備的 microSD 上的適當目錄中。
一張 2GB 卡和上面的兩個分區就足夠了:
- /啟動/ EFI - EFI+FAT32,啟動,100MB;
- / (root) - EXT4,所有剩餘空間。
準備好 microSD 並將文件複製到其中後,您需要:
- 修復作業系統啟動;
- 開啟網路;
- 透過 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 時,網路功能可以透過一個小「拐杖」來實現 - 建立一個連結(示意性地):
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 移至「樹莓派」中,並開始在額外的最小版本中使用 64 位元作業系統。
4. 準備系統
根據上述說明所建立的成品系統的「映像」可從以下連結下載:
這將是一個包含兩個檔案的存檔:安裝腳本和帶有作業系統檔案的 TGZ。 存檔需要在 Linux 工作站上解壓縮,插入 microSD(2GB 卡就足夠了)並使用參數運行腳本 - 設備名稱:
./install /dev/mmcblk0
小心!
在沒有任何警告的情況下,設備將被格式化並安裝作業系統。
腳本沒有錯誤執行後,卡片可以重新排列成“raspberry”並使用:catch via dhcp,密碼 - “1”。
系統中的所有 ID 和金鑰均已清除,這就是每個新安裝都是唯一的原因。
我再說一遍,系統—— 最小的! 因此,不要驚慌:DNF 是可用的,要使其發揮作用,您必須「發明」正確的一個
樹莓派冷啟動大約需要40秒。 載入後系統的TTX:
rpm -qa | wc -l
191
5。 無線上網
我將詳細介紹實現 Wi-Fi 接入點的功能。 具體可以參考我之前的
不再需要 EPEL - 所有軟體包都包含在官方存儲庫中。
也許值得放棄
此外,目前內建 Wi-Fi 適配器的驅動程式無法從 Raspbian 發行版中“竊取”,而是直接從
這是 Broadcom 韌體檔案在我的 Raspberry 上的樣子(示意圖):
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。
關於接口的數量和名稱。 現在我強烈建議大家,除非絕對必要,否則不要訴諸軟體交換器的「服務」(
我喜歡重命名介面。
要在 Fedora 中執行此操作,您需要建立一個符號連結:
/etc/systemd/network/99-default.link -> /dev/null
然後就可以給出有意義的名字而無需四處尋找
例如,我的路由器中的網路介面卡的名稱如下:
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 轉接器組裝成“橋接器” 局域網;
- 蒼白 — 連接網際網路的乙太網路轉接器。
你注意到了嗎?
守護程式服務文件發生了微小的變化
現在看起來像這樣(使用內建適配器的範例):
[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]
用我的愛立信 A1018 製作的一個小 Photoshop:
(網路連線 - 100Mbit/秒)
最後是一個小常見問題。
6。 常問問題
6.1 為什麼要在Raspberry上製作Wi-Fi路由器?
人們可以簡單地回答,例如「嘗試一下很有趣」。
但事實上,在我看來,這個話題是相當嚴肅的。 在「血腥」網路時代,在商店購買路由器並受制於其製造商是一個非常慘淡的前景。 許多人已經明白,使用 CVE 或內建後門是不可能的。
當然,你可以從愛好者遷移到WRT韌體。 可能對他們有更多的信任,但如果你不想依賴他們,那就使用你自己的產品。 理想情況下,是一台功能齊全的計算機,以便世界上的一切都可以在其上實現。 當然,就路由而言。
因此,選擇「樹莓派」純粹是經濟之舉:一台真正的計算機,同時又是一台便宜的計算機。 雖然,也許還有-裡面有他們的「替身」。
6.2 但 Raspberry 是一款「低階路由器」:速度慢且只有一個乙太網路連接埠!
作為一款家用 Wi-Fi 路由器,Raspberry 已經非常令我滿意。 上面我已經講過空氣速度了。 而且只有一個以太網,嗯,在蘋果的一款類似產品中,它幾乎是一樣的!
但說真的,我當然想要更多。 儘管我家裡的所有設備都是無線連接的,但有時仍然需要銅線連接。 對於這種情況,我庫存了一個「移動集線器」:
設備 - 像這樣的東西
6.3 如果這是一個路由器,那麼就不需要提及「調整」TCP/IP,因為這很重要!
除了設定網路堆疊(tcp_fastopen、YeAH 等)之外,這篇文章和上一篇文章沒有涵蓋其他細微差別,特別是準備 microSD 以實現最佳使用的過程(儘管安裝程式嘗試在一個棘手的方法)。 進步的過程是無止境的,你只需要及時停止即可。
6.4 為什麼選擇 Fedora?
因為我喜歡! Fedora 是面向極客的「主流」系統,本文其實是針對極客的。 在撰寫本文時,也許是唯一一個 64 位元版本的 Raspberry 作業系統得到了大量開發人員的正式支援(我迫不及待地從他們那裡得到支援)
6.5 藍牙是否有效? 視訊/聲音/GPIO 怎麼樣?
不知道。 本文介紹的是系統的最小安裝及其隨後作為 Wi-Fi 路由器的使用。
6.6 為什麼所有 CentOS/Fedora/RedHat 的文章都以停用 SELinux 開頭?
由於系統很小,它甚至沒有防火牆或用於設定它的實用程式。 任何需要它的人都可以額外安裝他們需要的一切。
6.7 系統無法使用,密碼無法變更-無passwd。 沒有 ping,什麼都沒有!
有
6.8 隔夜利息在哪裡? 沒有他我就活不下去!
這是真的嗎? 好吧:
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 接入點的現成映像!
為「所有人」準備安裝程序需要一些時間和精力。 如果(突然!)有人真的覺得這很有趣並且有必要,請寫信給我們,我們會想出一些辦法。
我就講完這個。
祝大家都能安全衝浪並最大限度地控制基礎設施!
來源: www.habr.com