文章
然后有一天,在一个主题论坛上,我遇到了关于 Raspberry 现有操作系统的位深度的讨论(aarch64 与 armhfp):原则上哪种 64 位操作系统可以适合并在 Raspberry 版本 3 上运行++?
我心爱的来自“Userland”的 ARM 架构的 CentOS 并不急于切换到最新版本的内核并变成 64 位。 而 EPEL 存储库,从天知道在哪里连接,没有数字签名,在我不安的睡眠中是一场噩梦......
作为基于 RPM 的发行版的拥护者,我惊讶地发现 Raspberry 的操作系统在讨论中完全被遗忘了 Fedora! 尽管事实上它的发布
这篇文章我会讲一下安装方法 软呢帽 (aarch64) 上 树莓派3模型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 接入点的现成映像!
为“所有人”准备安装程序需要一些时间和精力。 如果(突然!)有人真的觉得这很有趣并且有必要,请写信给我们,我们会想出一些办法。
我就讲完这个。
祝大家都能安全冲浪并最大限度地控制基础设施!
来源: habr.com