á á˝áá
áĽá á¨á፠á ááľ ááᣠá ááą ááĽáĽ ááľá¨á ááᣠáľá Raspberry (arch64 vs armhfp) áľá ááŁá áľááá° ááááá˝ áľáá˝ áĽáááľ ááááľ á ááĽáááᥠáá á 64-á˘áľ áľááá° ááá á ááá á°á¨á Raspberry áľáŞáľ 3 áá ááŁáŁá áĽá áá°áŤ áá˝áá ++?
á¨áĽá á°ááłá CentOS á ARM á ááá´áá¸á á¨"Userland" áá° á¨á áἠááá á¨á¨ááá áľáŞáľ áááá¨á áĽá áá° 64-á˘áľ áááá¨á á áá¸áŽááᢠáĽá á¨EPEL áá¨ááťáŁ á¨áĽááá áĽáá á¨á°ááááᣠáŤá á˛ááłá ááá á¨áľ áĽááłá áŤáááᣠáĽá¨ááľ á ááá áĽáá ááᏠááľáĽ á á áľ áá áá˘
ᨠRPM-á°áŽá áľáááśá˝á á°á¨áłá áĽáá°ááá á ááááᣠá ááááľ áá
áľ á Raspberry OS áá á áá á¨á°á¨áł áááá áłáá
á°áá¨ááŠá˘ Fedora! áĽá áá
á¨á°áááá áĽáááł á˘ááá
á áá
á˝áá ááľáĽ áľá ááŤá áá´ áĽáááŤáá ááśáŤ (arch64) áá Raspberry Pi 3 áá´á B + в á°á¨á᪠á ááľá°á á ááťá¸á. á ááľáá á áááᏠá áá¨áŤ áľáŤ ááááŤáľ á°áááś á¨Wi-Fi ááłá¨áť ááĽáĽá áľáááłá°á áŁá
áŞáá˝ áá á á áአáĽááŤááá˘
0. áá áŤáľáááááłá
á áá°áá ááŁáĽá áá á¨á°áá¨ááŠáľ áá ááá ááá á ááľ á áááľ ááá˘
- Raspberry Pi 3 áá´á B+;
- áááᎠá¤áľá˛ > = 4 áᢠ(á áá áá áľáááąá áá° 2 áᢠáľáŤáá "ááľá°ááá" áá˝áá);
- á¨ááááľ áĽá áááᎠá¤áľá˛ áŤááľ á ááŁá˘ áŤáá á¨áľáŤ áŚáł;
- á Raspberry áĽá á ááááľ á¨áľáŤ áŚáł ááŤá¨á áŁááááľ á¨á ááłá¨ áá¨áĽ áááááľ (á áá á ááŁá ááááá á°á¨á᪠ááłáŤ áĽá á¨ááá á°ááł á áŤáľáááá)ᣠá¨áááąá ááłáŞáŤáá˝ á¨á áááá¨áĽ ááłá¨áť;
- á ááááľ ááľáĽ á¨áá á˝ááł (ááá
áĽá á ááááŤáľáĄ-
á°á¨áá ,dd иmkfs ).
á¨áľáááá˝ áá á°ááłáłá
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
- 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
á áá "raspberry" á á¨áááᎠá¤áľá˛ ááá¨áľ áĽá á á ááłá¨ áá¨áĄ á áŠá áááááľ áá˝áá.
áááá á áá á ááľ á°áá á°áŠá áŤá á áááľáłá. á¨á°áŤá á áá á¨áľáááą TTX
rpm -qa | wc -l
444
2. á ááľá°ááá áľáááľ áá°áĽá°áĽ
áĽáá° á áááłá°á áá á¨ááá˘áá˝ "á ááľá°á áľáááľ" á ááĽá¨áľ áááł ááľáĽ á áŁá áá áá á¨ááá á¨áŤá áá á°áááˇáᢠá¨áľááá° áááá ááľá á áľáášá á˘áá áá ፠áá˝áá.
áá áá áááľá¨á á ááá፠áá áľááŞááąá ááľáŹáľ áŤáľáááááłá:
#!/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 á ááĽááľ áĽá áááᎠá¤áľá˛áá áá° ááááľ ááľáŞáŤ áŚáł ááááľ áá˝ááá˘
3. á ááľá°á áľáááľ ááŤá
ááŤá á ááľá°ááá á¨áľááá° ááá âááľáâ áááá˝á (á áá°áá á°á¨á á¨á°áááá) á áአáááł á á°ááá áááᎠá¤áľá˛ áá° á°áá˘á áááŤáá˝ ááá áłáľ áááááá˘
2 áᢠáŤááľ áĽá á áአáá áááľ áááááŽá˝ á á áá¸á:
- / boot / efi - EFI + FAT32 ᣠáĄáľ ᣠ100 ááŁ;
- / (áĽá) - EXT4ᣠááá á¨áá¨á áŚáłá˘
áááᎠá¤áľá˛áá áŤááá áĽá áááá˝á áá° áĽáą á¨ááá ᥠá áá á¨áá¨á°ááľá ááľá¨á á ááĽááľ:
- á¨áľááá° ááá ááľááťá ááľá°áŤá¨á;
- á ááłá¨ áá¨áĄá áŤáĽáŠ;
- ááłá¨áťá á ssh á áŠá áŤáá áŠá˘
á¨ááľááť ááľá°áŤá¨áŤá á áááá˝ ááľáĽ áŤááľá áááá˝ UUID áá°áŤáľ áá-
microSD:/boot/efi/EFI/fedora/grub.cfg
microSD:/boot/efi/EFI/fedora/grubenv
áĽá áááŞáŤ á¨á°ááá _áá¤áľ= á áá¨á¨áťá ááá ááľáĽ
á ááá ááľáĽáĄ-
microSD:/etc/fstab
á áľáĽáá áá ááľ ááľáĽ á¨áľáŽ áĽá´áśá˝á áĽá á¨á ááá (á¨áááá) áĽá´áśá˝á ááááľ áá˝áá-
blkid | grep mmcblk | sort
á¨á°á°áŤ á áá, áááąá áá¨á á ááĽááľ fstab á¨ááá፠ááĽáŚáš á¨á á˛áą ááááá UUIDs áá áĽáá˛áááą á áááᎠá¤áľá˛ ááá˘
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 á°áá áŻáá˘
áááá ááá á áĽááá áĽá áŤááľá á°áśá˝ áŤá°á¨á á áá áááᎠá¤áľá˛áá áá° "raspberry" ááá°áľ áĽá ᨠ64-á˘áľ áľááá° ááá áá á áľáá˝ á áľááš áľáŞáľ ááľáŤáľ áááá áá˝áá.
4. ááá áľáááľ
á¨áá áŁááľ áááŞáŤáá˝ áá á¨áľ á¨á°áá á¨á á¨á°á áááá áľáááľ âááľáâ á¨á ááá ááááľ áá˝áá-
áá áááľ áááá˝á á¨áŤá áá á°á ááááᥠá¨ááŤá áľááŞááľ áĽá TGZ á¨áľááá° ááá áááá˝ ááᢠáá á°áŠ á ááááľ ááľáŞáŤ áŚáł áá áá¨ááľáŁ áááᎠá¤áľá˛ á áľáᣠ(2GB áŤááľ á á áá) áĽá áľááŞááąá á áááŞáŤ ááľáŹáľ áŤáľáááá - á¨ááłáŞáŤá áľááĄ-
./install /dev/mmcblk0
á°á ááá !
áŤáááá ááľá ááá፠ááłáŞáŤá ááá¨áá áĽá áľááá° áááá á áĽáą áá ááŤáá.
áľááŞááą á¨áľá á°áľ-ááť á ááťá¸á á áá áŤááą áá° âraspberryâ ááľá°áŤá¨á áĽá áĽá á áá ááá áá˝ááᥠá dhcp ááŤáᣠááá áá - â1âá˘
áľáááą á¨ááá ááłáááŤáá˝ áĽá áááá˝ áá¸áłá, ááá á áá áĽáŤááłááą á á˛áľ áááľ áአá¨ááá.
á áá´ áĽáá°áá áĽá°ááááá, áľáááą - á ááľá°á! áľááá
ᣠá áľá°áááĄáĄ DNF á áᣠáĽáá˛á°áŤ áľáááááá âáááá°áâ á ááŚáľá˘
ᨠRaspberry áááá á áá 40 á°á¨ááľ áŤá á áááľáłáᢠá¨á°áŤá á áá á¨áľáááą TTX
rpm -qa | wc -l
191
5. áá áá
á¨Wi-Fi ááłá¨áť ááĽáĽá á áá°áá á áŁá
áŞáŤáľ áá áľáá˝ áĽááŤááᢠáááááŽá˝áŁ á¨áĽáá ááłááá áááá¨áľ áá˝ááá˘
EPEL á¨á áá á áá á áŤáľáááá - ááá áĽá áá˝ á áŚáá´ááá áá¨ááťáá˝ ááľáĽ ááááá˘
ááááŁáľ áá°á á áá ááá áá˝áá
á á°á¨ááŞáŁ á áĽáŽááἠá¨Wi-Fi á áľáá á¨á áá áááá˝ á¨áŤáľáá˘áŤá áľáááľ âáá°á¨áâ á áá˝ááᣠáá á ááĽáł ᨠááá¨áľ áá˝ááá˘
á¨Broadcom firmware áááá˝ á áĽá 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 - á áĽáŽ á¨á°á°áŤ, áľ - ááŤá (áŠá¤áľá˘) ᨠWi-Fi á áľáááá˝ áá° âáľááľáâ á°á°áĽáľá áá LAN;
- wan - á áááá¨áĽ á¨á°áááá áľ á¨á¤á°áááľ á áľááá˘
á áľá°áááá?
á¨á´áá á áááááľ ááá áĽáá
á áááŚá˝á á áľááá
á áá áĽáá°áá áááľáá (á áĽáŽááἠá áľááá á áá áá)
[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 ááľáĽ áááľáŤáľ á¨"magic" 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]
á¨áĽá á¤áŞáá°á A1018s á¨á°á°áŤ áľáá˝ ááśážááĄ-
(á¨á áááá¨áĽ áááááľ - 100Mbit/á°á¨ááľ)
áĽá á áá¨á¨áťá ᣠáľáá˝ á°á°ááá áĽáŤááá˝á˘
6. á°áááľá¨á á¨áá á¨á áĽáŤááá˝
6.1 Raspberry áá á¨áá áá áŤáá°á ááá áá°áŤá?
á ááľ á°á á ááá ááááľ áá˝ááᣠáĽáá° âááá¨á á áľá°áłá˝ áá áĽá ፠ááá˘
áĽáá° áĽáááą á¨áá áá áááą á áŁá á áłáłá˘ áĽáá°áá áá°áááᢠá âá°á á ááłá˝â á¨á˘áá°áááľ áááᣠá á ááľ áąá ááľáĽ áŤáá°á ááááľ áĽá á á ááŤážáš áá áłááś ááá¨áľ á áŁá á áłáá á°áľá ááᢠáĽá á°áá˝ á¨CVE ááá á áĽáŽ á á°á°áŤ á¨ááᣠá á áááἠáĽáá°áááťá á áľááľáá á°á¨áľá°ááá˘
á áĽáááĽáŁ á¨á áľáááá˝ áá° WRT firmware áá°á°áľ áá˝ááᢠá áĽááą áá á¨á áá áĽáááľ ááá áá˝áá, ááá áá á áĽááą áá áĽáá ááá áŤáááá, á¨áŤáľáá áááľ áĽáť áá áá. á ááłáĽ á°á¨áᣠá ááá áá áŤáá ááá áá á áአáá áĽáá˛á°áá á á¨á°áá áŽáááá°áᢠá¨ááááá á ááá áĽááἠááá˘
áľááá "raspberry" ááá¨áĽ áá á áá á˘áŽáááŤá áĽáá áľáá´ áá-áĽááá°á áŽááá°á áĽá á á°ááłáłá áá ááŤá˝. ááá áĽááłá ᣠááááŁáľ áĽáá˛á - á ááľáŁá¸á âáľááĽâ á ááľáŁá¸áá˘
6.2 áá Raspberry "áá á°á áŤáá°á" áá: áááá áĽá á¨á ááľ á¨á¤á°áááľ áá°áĽ áá!
áĽáá° á¨á¤áľ áá áá áŤáá°áᣠRaspberry ááĽá á¨á áĽáᢠá áá ááᢠá¨áá áľá á á¨á ááĽááľ á áľááľá á°áááŹáŤáá. áĽá á ááľ á¤á°áááľ áĽáť á á, á°á á, ᨠApple á°ááłáłá áááľ ááľáĽ á°ááłáłá áá!
áá á áá ááá ᣠá áĽááἠá¨á áá áĽááááá ᢠáĽá á á¤á°á°á¤ ááľáĽ ááá ááłáŞáŤáá˝ á áááľ á áᣠá¨á°ááá á˘ááá á ááłááľ áá á¨ááłáĽ áááááľ á ááá áŤáľáááá. ááĽáá°áá á áááľ ááłáŽá˝áŁ á ááá˝áľ ááľáĽ âá¨ááŁáá ááá¨áâ á áááĄ-
ááŁáŞáŤ - áĽáá°áá áŤá ááá
6.3 áá áŤáá°á á¨áá, áľá TCP/IP áľá "ááľá°áŤá¨á" ááá á áá°ááá¨á, ááááŤáąá áá á áľááá áá!
á¨á ááłá¨ áá¨áĽ ááá (tcp_fastopen, YeAH, ááá°) á¨áááááľ á á°á¨á᪠áá áĽá áŤááá ááŁáĽá ááá˝ ááŠááśá˝á á áá¸ááá, á á°ááá áááᎠá¤áľá˛ ááĽáŠ á áááááľ á¨áááááľ áá°áľ (áŤáá áá á°á¨ áľááľáł áŤááąá á ááľáĽ ááá á¨á˝ á˘áááá). á áľá¸á᪠ááááľ). á¨ááťáťáŤ áá°áą ááá፠á¨ááá, á áá ááá áĽáť áŤáľáááááłá.
6.4 ááá Fedora?
ááááŤáąá áĽááłáá! Fedora áá
á˝áá á áĽáááą á¨áłá°á á áľ áááŽá˝ âááâ áľáááľ ááᢠáá
á˝áá á ááťáá áľ ááᣠá 64-á˘áľ áľáŞáľ ááľáĽ á Raspberry áĽá¸áá áľááá° ááá á á¨áá°á á¨ááá˘áá˝ (á¨áĽááą áá á á
á¨ááá˝áá) á áá á¨áá°áá ááá˘
6.5 áĽááąá áá°áŤá? áŞá˛áŽ/áľáá /ááጠáĽáá´áľ áá?
á ááá á. á˝áá áľá áľáááą á ááľá°á áááľ áĽá á ááŁá áĽáá° Wi-Fi áŤáá°á áĽá á áá ááááá˘
6.6 áľá CentOS/Fedora/RedHat ááá ááŁáĽáá˝ SELinuxá á áá°áá¨á ááá ááááŤá?
áľáááą á ááľá°á áľááá áĽáąá ááááááľ áá¨ááá ááá áááááŤáá˝ áĽááłá á¨ááľáᢠá¨ááŤáľáááá ááááá á°á á¨ááŤáľáááá¸áá áá á á°á¨á᪠ááŤá áá˝ááá˘
6.7 áľáááąá áá áá á ááťáá, á¨ááá ááá ááá¨á á ááťáá - ááá passwd. ááá á¨áá ᣠááá á¨áá!
á á
6.8 SWAP á¨áľ á á? áŤá áĽáą ááá á áá˝áá!
áĽáááľ áá? áĽáş á¨ááŤáĄ-
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 áá˛áŤáá á¨á°ááááá ááľá á¨á°ááᨠá¨áá áá ááłá¨áť ááĽáĽ áá ááá¨áľ áĽááááá!
áŤáá "áááá á°á" áááááľ á¨á°áá°á áá áĽá áĽá¨áľ áá ááá. (á áľáááľ!) á ááľ á°á áá á á áľá°áłá˝ áĽá á áľááá áá áŤááá, ááááá áĽá á¨áá ááá áĽáááŁáá.
á áá áĽá¨ááłááá˘
áááá á°á á°á
áááą á¨á°á á á á°áááá áĽá á áá á¨á° áááľ áá á¨áá°á ááĽáĽá áĽáááá!
ááá: hab.com