Raspberry single-board PC áá á áááľá¨áľ á¨Wi-Fi ááłá¨áť ááĽáŚá˝á áľáááá á á á áááá¨áĄ áá á¨áá°á áá á áŤáá áá¨á á áᢠáĽáá° á°áᥠáá áááľ á¨áŤáľáá¤áŞá á°ááá á¨áááá ᨠRaspbian áľááá° ááá áá áá áááľ áá.
ᨠRPM-á°áŽá áľáááśá˝ á°á¨áłá á áááᣠá áá áľáá˝ á°á áá ááá á ááťááŠá áĽá á¨ááá°áá CentOS á áĽáą áá ááá¨á á ááťááŠáá˘
á˝áá á CentOS áľááá° ááá áá á áááľá¨áľ 5GHz/AC Wi-Fi áŤáá°á ᨠRaspberry Pi 3 Model B+ áááľáŤáľ áááŞáŤáá˝á áá°áŁáᢠáĽá áá°á á ááá áá áĽáá á¨áááłáá áĽáááśá˝ áááŤáᣠáĽá áĽáá° áááť - á°á¨á᪠á¨áááá ááłáŞáŤáá˝á ᨠRaspberry áá á¨áááááľ áľááᣠáá á á á ááľ áá á á ááŤáł áááłáá˝ (2,4+5GHz) áĽáá˛á°áŤ áŤáľá˝áááá˘
(á ááť á¨ááá ááľáá˝ áľáĽáá
)
á ááłááľ á¨á áá ááĽááśá˝ áĽáá°ááá°áŠ áá˛áŤáá áĽááľá°áá. ᨠRaspberry ááľáĽ á˘á á 100 áá áŁááľ á á á¨á áá áĽá¨ááááᣠáĽá áá
á¨á áááá¨áĽ á á
áŤá˘áŹá ááĽááľ áá¸áááᢠá ááľá ááłáĽ ááá˝ ááá˘áľ á N áá áĽááłá ááááľ á¨áťá ááá áĽáá°áá
áŤá áááá á¤á˛ áŤáľáááááłá? áá
áá áĽáŤá áĽáŤáľáá á¨á á¨á, á¨ááŤá á¨áľáááľ ááŤá á áá´ááá˝ áá áĽááá°á áŤáá°á áááááľ áá° áá°áĽáŠ áááą.
0. áá áŤáľáááááłá
- á áĽáááą "á¨áŤáľá ᪠áááľ" áĽáŤáą áľáá áá-Pi 3 Model B+ (á¨á°ááááľá ᨠ5GHz ááĽááśá˝ áĽá á°ááŚá˝á áááłáŤáľ);
- áĽáŠ áááᎠá¤áľá˛ > = 4GB;
- á¨áľáŤ áŚáł á¨ááááľ áĽá áááᎠá¤áľá˛ á ááŁá˘/á¸áá áá;
- á ááááľ ááľáĽ á á áá ááśá˝ ááááľ, á˝áá áá°áá á áá áá;
- áŁááááľ á ááłá¨ áá¨áĽ (eth0) á Raspberry áĽá Linux ááŤá¨á áŤáá áááááľáŁ á¨DHCP á áááá á á á¨áŁá˘á á ááłá¨áá¨áĽ áá áĽá á¨áááąá ááłáŞáŤáá˝ á¨á áááá¨áĽ á°á°áŤá˝ááľá˘
á áá¨á¨áťá ááĽáĽ áá áľáá˝ á áľá°áŤá¨áľ. "á¨áľáá ááááŞáŤ á¨ááŁá áĽáááá áááľ ..." ááá á¨á áááá¨áĽ ááłá¨áť ááłáŞáŤáá˝ á ááá ᾠᨠWi-Fi áŤáá°á áĽáá´áľ áĽáá°áá°áŤ? áá á á ááá ááááľ á¨á˝áá áá°á á᪠áĽáá°ááá á ááá Raspberry á¨á áŤáŁá˘á á ááłá¨áá¨áĽ áá á á˝áŚ á¨á°ááá áĽá á¨á˘áá°áááľ á áááááľ áĽááłáá áĽááľáĽá˘ á áá áááł, "raspberry" ááááááľ á°á¨á᪠á´ááŞáĽá áĽá ááááá á áŤáľááááá.
1. CentOS á ááŤá
áá áá á˝áá á áá˝áá áľ áá á ááŁáŞáŤá áá áŤáá ᨠCentOS á ááľ áľáŞáľ 32-á˘áľ ááᢠá¨áá áŚáł á á áá á áá áľá áá áĽáá°áá áŤá áľááá° ááááá˝ á 64-á˘áľ ARM á ááá´áá¸á áá áŤáá á ááťá¸á á 20% áááˇá á¨áá á áľá°áŤá¨áľ á ááĽáááᢠáá á á á˝á áľ áŤá á áľá°áŤá¨áľ áĽá°ááááá˘
á ááááľ áá á ááľá°ááá ááľá á á¨ááá áŤáááą"-RaspberryPI-"áĽá áá° áááᎠá¤áľá˛ ááá:
# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz |
dd of=/dev/mmcblk0 bs=4M
# sync
ááľáá áá áá á¨ááááŤá˝á á áᾠᨠSWAP áááá á¨áĽáą áĽááľááá°ááá, áĽáŠá áá° áá á¨áľáá˝ áá á áĽáá°ááá áĽá SELinuxá áĽááľáááłáá. á áááŞáá ááá áá á ááááľ áá á¨áľá áá°á¨áąá áá Ṡᣠá¨ááááŞáŤá (/áĄáľ) á áľá°áá áááá áááááŽá˝ á¨áááᎠá¤áľá˛ áá°áá ᣠá á˛áľ áľá ááá አáĽá áááąá á¨á áá ááááąá˘
á áľááá áľáááśá˝ ááłá (á¨áŁáľ á¨áŽááśá áá ááľ)
# mount /dev/mmcblk0p3 /mnt
# cd /mnt
# tar cfz ~/pi.tgz . --no-selinux
# cd
# umount /mnt
# parted /dev/mmcblk0
(parted) unit s
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 1370111s 1368064s primary fat32 boot, lba
2 1370112s 2369535s 999424s primary linux-swap(v1)
3 2369536s 5298175s 2928640s primary ext4
5298176s 31116287s 25818112s Free Space
(parted) rm 3
(parted) rm 2
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 1370111s 1368064s primary fat32 boot, lba
1370112s 31116287s 29746176s Free Space
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]? ext4
Start? 1370112s
End? 31116287s
(parted) set
Partition number? 2
Flag to Invert? lba
New state? on/[off]? off
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 1370111s 1368064s primary fat32 boot, lba
2 1370112s 31116287s 29746176s primary ext4
(parted) quit
# mkfs.ext4 /dev/mmcblk0p2
mke2fs 1.44.6 (5-Mar-2019)
/dev/mmcblk0p2 contains a swap file system labelled '_swap'
Proceed anyway? (y,N) y
Discarding device blocks: done
Creating filesystem with 3718272 4k blocks and 930240 inodes
Filesystem UUID: 6a1a0694-8196-4724-a58d-edde1f189b31
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
# mount /dev/mmcblk0p2 /mnt
# tar xfz ~/pi.tgz -C /mnt --no-selinux
á¨áľá áááá áááśá˝ á¨á¨ááą á áá á áĽáą áá á ááłááľ áááŚá˝á áááľá¨á ááá á áá ááá˘
ááľáĽ SELinuxá á á°ááá /mnt/etc/selinux/config:
SELINUX=disabled
áá¨á /mnt/etc/fstabá ááľáĄ áľá áááááŽá˝ áááľ áá¤áśá˝á áĽáť á áá°á áĄáľ (/áĄáľ ᣠááá áááŚá˝ á¨áá) áĽá áľá (ᨠUUID áĽá´áľá áĽááááŁáá ᣠá ááááľ áá ᨠblkid áľáĽááá áá¤áľ á ááĽááľ ááá áá˝áá)
UUID=6a1a0694-8196-4724-a58d-edde1f189b31 / ext4 defaults,noatime 0 0
UUID=6938-F4F2 /boot vfat defaults,noatime 0 0
á áá¨á¨áťá á¨á¨ááá ááľááť áááŞáŤáá˝á áĽááááŁáá-ááĽáŠ ááááá á á˛áľ áŚáł áĽááááťáá áŁá¨áá¨á፠áá¨áá áá¤áľ áŤá°áááá áĽá (á á ááŤá) á¨ááá á á ááłá¨ áá¨áĽ á áááážá˝ áá IPv6 á áľáŤáťáá˝á áĽááłáá°áĽ áĽáá¨ááááá á˘
# cd
# umount /mnt
# mount /dev/mmcblk0p1 /mnt
áááą áĽáá /mnt/cmdline.txt á áá¨á°áá á á˝ (á ááľ ááľáá áŤá á°á¨á)
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1
á°á¨áááá
# cd
# umount /mnt
# sync
áááᎠá¤áľá˛áá áá° âáŤáľá áŞâ áĽááľá°áŤáááááᣠá áľááłáá áĽá á ssh (root/centos) á áŠá á¨á ááłá¨ áá¨áĽ ááłá¨áť áĽáááááá˘
2. CentOS á áááááľ áá
á¨ááááŞáŤááš áśáľáľ á¨ááááᥠáĽáá áľáá´áá˝áĄ- á¨ááá áá, yum -y ááá, áłáá á áľááł.
á¨ááľááá á áľá°áłá°áá áĽáá°áŁáá á á ááłá¨ áá¨áĽ á¨á°ááá:
# yum install systemd-networkd
# systemctl enable systemd-networkd
# systemctl disable NetworkManager
# chkconfig network off
ááá ááá አ(á¨áááŤáá˝ áá) /etc/systemd/network/eth0.network:
[Match]
Name=eth0
[Network]
DHCP=ipv4
"raspberry" á áĽáá°áá á áľááłáá áĽá áĽáá°áá á ssh á áŠá áá° áĽáą á¨á ááłá¨ áá¨áĽ ááłá¨áť áĽááááá (á¨á áá á áľáŤáťá áááἠáá˝áá)ᢠáĽá á áá ááááá áľáŠá¨áľ ááľáĄ /etc/resolv.confáá°á á˛á á ááľááá á áľá°áłáłáŞ á¨á°áá á¨á˘ áľááá , á áááłáľ áá á˝ááŽá˝ áŤáá á, áááąá áŤááľá. á°á áá á áľáááľ á¨á°ááł á ááááá˘
á¨áľááá° ááááá âá ááľáááâ áĽááľááá°áááᣠáá áá áĽá ááŤá áĽáááĽáááá˘
# systemctl set-default multi-user.target
# yum remove GeoIP Network* aic* alsa* cloud-utils-growpart
cronie* dhc* firewal* initscripts iwl* kexec* logrotate
postfix rsyslog selinux-pol* teamd wpa_supplicant
áá áŤáľááááá á áááááĽáŠ áĽá á áĽáŽ á¨á°á°áŤáá á¨áááá
# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
# vi /etc/systemd/journald.conf
á áá°á¨áłá á áááááśá˝ IPv6 áá ááá áŤá°ááá (á¨á°ááá)/ etc / ssh / sshd_config:
AddressFamily inet
/etc/sysconfig/chronyd:
OPTIONS="-4"
á "raspberry" áá áŤáá á¨áá á ááŁáĽááľ á áľááá ááá áá. á¨áłáĽá ááľáĽ áĽáá°áá á˛ááł á¨á°ááąá áá áłá áááł áááá ἠááá á¨áááľáá á˝ááł áľááá áááłá°á áŤáľááááᢠááá á áŁá áĽáŠ áĽá ááŁá á´áá ááᢠáłáŞá - á áľááľá á°ááá áĽá á áŤáľ-á°á ááááŤáᢠá¨á¤áá˛á á ááááŽá˝á áá° á áἠáá°áá ááá¨á áá˝ááá˘
/ááá°/chrony.conf:
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst
á¨á°ááľ á°á ááááááľ áĽáá áááá áĽáááľ. ááŁá˝á áá áá áŤáá°á á 5GHz áľáááážá˝á ááá á áľááááŁáá áľá°áá áááŽá˝ á áľááľáá áĽááááááᢠá°ááŁáŁáŞ:
# yum áá¨á crda
áá áááŤáĄ á 802.11 á˝áŚ á áᣠá ááłá¨áá¨áĽ á¨ááĽáĽá á°áá˘ááľ á´áá
áá áá ááľá á áá á°á áá á¨á°áá°á¨á°á ᨠ5GHz áľáááážá˝á áĽá á°ááŚá˝á "á¨áá°á" ááĽáŽá˝á (á áŠá˛áŤ ááľáĽ) áá ááá "áá¨áá¨áá". áá´á á¨á á ááŤáľ/á¨á°áá˝á áľá áłáá áá á¨á°ááľ á°á áááááľ áááĄ- áááľááĄ-
# timedatectl set-timezone Europe/Moscow
áĽá á°áŤáá:
# timedatectl set-timezone Etc/GMT-3
áĽá ááľáááą á¨ááá á á áŤá á¨áá¨á¨áťááš áááŞáá˝-
# hostnamectl set-hostname router
/áĽá/.bash_profile:
. . .
# User specific environment and startup programs
export PROMPT_COMMAND="vcgencmd measure_temp"
export LANG=en_US.UTF-8
export PATH=$PATH:$HOME/bin
3. CentOS á°á¨ááŞáá˝
á¨áá á¨á°ááá¨á ááá áá Raspberry Pi áá âáŤááâ CentOS á áááŤá á¨á°áá áááŞáŤ á°á°áá ááá°áľ áá˝ááᢠá¨10 á°á¨ááľ áŁáá° áá ááľáĽ (áĽáá°áá) áĄáľ á¨áááłáŁ á¨15 áááŁááľ áŤá áŤáá° áĽá 1.5 áááŁááľ áááᎠá¤áľá˛ á¨áá áá (á áĽááṠᨠ1 áááŁááľ áŁááá/áĄáľ ááááŤáľ ᨠXNUMX áááŁááľ áŤáá° áá ᣠáá áĽáááąá áĽááááá) á¨áááá áᲠááááľ á ááŚáľá˘
á áá áľáááľ áá á¨Wi-Fi ááłá¨áť ááĽáĽ áśááľááá áááŤá á¨áá°á ááá ᨠCentOS áľáááľá á á á á áľááš ááľááľ áŤáľáááááłáᢠá ááááŞáŤ ᣠá áĽáŽ á¨á°á°áŤáá ᨠWi-Fi á áľááá ážáá (firmware) áĽááťá˝ááᢠá¨ááŽáááą áááť áá˝ áĽáá˛á ááá:
áááá á Raspberry 3B áĽá 3B+ áá
Raspberry PI 3B/3B+ firmware áááá˝ á CentOS ááŽáááľ áĽáá˛á°áŤá á ááááľáá¸ááᢠááłáŠá ááá¨áłáľáŁ firmware á áááááľ áĽá wifi á ááááááľ á¨áá¨á°ááľá ááŁáĽáá˝ áá áá áá˝ááá˘
á CentOS ááŽáááľ á¨á°á¨áá¨áá ááĽá ááá áĽá á á áá¨áá¨ááᢠá¨áľáááľ Wi-Fi firmwareá á CentOS ááľáĽ á¨Broadcom ááá˘áá˝ (áĽáá፠á¨á°á á áááľáŽá˝ áĽááŚá˝...) á á°ááá°á áĽáá°áŤááᢠáá , á á°ááá, á ááłá¨áť ááĽáĽ áááł áá ACá áĽáá˛á áá ááá áľáááłá.
ᨠWi-Fi firmware ááťáťáá¨ááłáŞáŤáá áá´á áĽá á¨á ááá á¨á˝á áľááá áľáŞáľ ááááĄ
# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar 1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.14.8 Compiler: 1.24.9 ClmImport: 1.24.9 Creation: 2014-09-02 03:05:33 Inc Data: 7.17.1 Inc Compiler: 1.26.11 Inc ClmImport: 1.26.11 Creation: 2015-03-01 07:22:34
á 7.45.18/01.03.2015/XNUMX á¨á˝á áľááá áľáŞáľ XNUMX áááá áĽááŤáá áĽá á¨áá¨á°ááľá á¨ááĽáŽá˝ áľáĽáľáĽ áŤáľáłááąá˘ 43455 (brcmfmac43455-sdio.bin).
# wget https://downloads.raspberrypi.org/raspbian_lite_latest
# unzip -p raspbian_lite_latest > raspbian.img
# fdisk -l raspbian.img
Disk raspbian.img: 2 GiB, 2197815296 bytes, 4292608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x17869b7d
Device Boot Start End Sectors Size Id Type
raspbian.img1 8192 532480 524289 256M c W95 FAT32 (LBA)
raspbian.img2 540672 4292607 3751936 1.8G 83 Linux
# mount -t ext4 -o loop,offset=$((540672 * 512)) raspbian.img /mnt
# cp -fv /mnt/lib/firmware/brcm/*43455* ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.bin' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.txt' -> ...
# umount /mnt
á¨á°ááá á¨Wi-Fi á áľáá firmware áááá˝ áá áłáľ áĽá á "raspberry" áá° áááŤá áá°áŤáľ á ááŁá¸áᢠ/usr/lib/firmware/brcm/
á¨áá°ááąá áŤáá°á áĽáá°áá á áľááłáá áĽá á á°áľáł ááá áĽáá°áááá-
# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 9.10.105 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-03-09 18:56:28
áľáŞáľ: 7.45.154 áá 27.02.2018/XNUMX/XNUMX.
áĽá á áĽááἠEPELáĄ-
# cat > /etc/yum.repos.d/epel.repo << EOF
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0
EOF
# yum clean all
# rm -rfv /var/cache/yum
# yum update
4. á¨á ááłá¨ áá¨áĽ áá á áĽá áá°ááá˝ áá°ááľ
á¨áá áĽáá°á°áľáááá, "raspberry" á "á˝áŚ" á¨á áŤáŁá˘áŤá á ááłá¨áá¨áĽ áá á°áŤááá. á á áŤá˘á á¨á áááá¨áĽ ááłá¨áťá á á°ááłáłá ááááľ áĽáá°áá°áĽ áĽááľáĽáĄ á á áἠá ááłá¨áá¨áĽ áá áŤáá á áľáŤáť á á°ááááááľ á DHCP á áááá (ááááŁáľá ᨠMAC áá°áŞáŤ áá) áá°áŁáᢠá áá áááł, ᨠRaspberry á¨áá¨á¨áť ááá áľ á¨á°á ááá á áá á¨á á áŤá˘áá áááľ "áá°áŤáľ" áŤáľáááááłá áĽá á¨áá°áá. á áá áá áááľ systemd-á ááłá¨ áá¨áĽ - á¨á°áᨠá˝áá áááľ áĽá áĽáá á áá°áĽáŤáŤá.
Raspberry's Wi-Fi á áááá˝(áá˝) á¨á áŤáŁá˘ á ááłá¨ áá¨áĽ ááᣠáĽá á áĽáŽ á¨á°á°áŤá á¨á¤á°áááľ á áľáá (eth0) ááŤá ááᢠá¨á áŤáŁá˘áá á ááłá¨áá¨áĽ á áľáłá˛áľá˛ááľ ááĽá áĽááᥠáááłáᥠ192.168.0.0/24ᢠRaspberry á áľáŤáťáĄ 192.168.0.1. á¨DHCP á áááá á ááŤá á ááłá¨áá¨áĽ (á˘áá°áááľ) áá áá°áŤáá˘
áľáአáľáááľ (á¨ááĽá áá¨á á˝)Lennart Pottering á¨áŤáąá ááŽááŤá á ááá áˇáᢠáľáááľ á áŁá áĽáŠ. áá áľáááľ ááá˝ ááŽááŤáá˝á á ááĽááľ áŤáľáááŤá áŁá¨áłáá á¨áá¨áľ ááľ ááááá áá áłáŤáá áŁáĽáá ááľ ááááąá áĽááłá áłáááአáá á˛ááአá°á°áááá áááľááá˘
ááá áá á áá áááᣠá áľááá° áááá á áá áá á¨á°ááአáá°áśá˝ áááá áľááŠááľ áááááľ á°á¨áłáłá á¨á¤áá¤áľá˘ áľááťááľáśá˝ âá¨á á ፠áľááľáâ ááááľ ááᢠáĽáá° áĽáľá ááᣠáá°áá âáľáአáľáááľâ áĽáááľ áááŁáľ ááá áá á°áááˇáᣠááá áĽááłá áááá ááá˝ áŁááááá˘
á¨áá áľáá˝ áá áááľ áááŁá áľááľá áááááá˝á áĽáááĽáŤáá- LAN и wan. á¨Wi-Fi á áľááá (áá˝) á¨ááááŞáŤáᣠáĽá eth0 âraspberryâ á¨ááá°áá áá áĽááááááá˘
/etc/systemd/network/lan.netdev:
[NetDev]
Name=lan
Kind=bridge
/etc/systemd/network/lan.network:
[Match]
Name=lan
[Network]
Address=192.168.0.1/24
IPForward=yes
/etc/systemd/network/wan.netdev:
[NetDev]
Name=wan
Kind=bridge
#MACAddress=xx:xx:xx:xx:xx:xx
/etc/systemd/network/wan.network:
[Match]
Name=wan
[Network]
DHCP=ipv4
IPForward=yes
IPForward=á á á á
áŁáŤáá áááááľ á sysctl á áŠá áá° á¨ááá ááá á¨ááľá áľá á áľáááááľ áŤáľáááłáá˘
MACAddress= á áľá°áŤá¨áľ á ááľáĽ áĽá á áľááá á¨áá áĽááááĽá˘
á ááááŞáŤ eth0 "áĽáááááá". âá¨ááĽááľ á˝ááâ áĽááľáłááłáá áĽá á¨áá á á áááá˝ MAC á áľáŤáť áĽáť áĽáá áááá ᣠáááłá ᣠáĽáá°áá
# cat /sys/class/net/eth0/address
áĽá áĽáááĽáŤáá /etc/systemd/network/eth.network:
[Match]
MACAddress=b8:27:eb:xx:xx:xx
[Network]
Bridge=wan
á¨áá°ááá á¨áá á ááá eth0 á°áááááᣠRaspberry á áĽáá°áá á áľááłáá áĽá áá° áĽáą á¨á ááłá¨ áá¨áĽ ááłá¨áť á ááá°áá (á¨á áá á áľáŤáťá áĽá áá ááá¨á áá˝áá)
# rm -fv /etc/systemd/network/eth0.network
# reboot
5.DNSMASQ
á¨Wi-Fi ááłá¨áť ááĽáŚá˝á áááľáŤáľáŁ áŁáá áĽááśá˝á á¨ááŤá¸áá ááá ááá á¨ááᢠá˛ááľááľá + hostapd áĽáľáŤáá á áááŁááᢠá áá°á áááľ.
ááá á¨á¨áłá áŤá áłá˛áŤ...
á dnsmasq áĽáááááĄ-
# yum install dnsmasq
ááá /etc/resolv.conf:
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 77.88.8.8
nameserver 77.88.8.1
domain router.local
search router.local
áĽáá°áá°áąáľ áŤááľááľá˘
áá á°áááľ /ááá°/dnsmasq.conf:
domain-needed
bogus-priv
interface=lan
bind-dynamic
expand-hosts
domain=#
dhcp-range=192.168.0.100,192.168.0.199,255.255.255.0,24h
conf-dir=/etc/dnsmasq.d
áĽáá áŤáá "á áľááľ" á áááŞáŤá ááľáĽ áááá áá°á-á°áááá, áá á dnsmasq daemon á áľáááą áá áĽáľáŞáłá áľá¨áľ áĽáá˛á áĽá áááá¨áá á áááá˝ = áá, áĽá á¨ááááŞáŤá á áá á áŠáŤáľ á¨áĽá¸áááľ áľááľ á ááłááą.
# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f
6. HOSTAPD
áĽá á áá¨á¨áťá ᣠá áľááłáá hostapd áá áŽá˝á˘ á ááľ á°á áĽááá á ááľ ááľááŽá˝ á áľááá ááááá áá á á˝áá áĽáŤáá á áĽáá°áá á áá áŤá ááá˘
hostapd á¨ááŤáá á ááľ "á¨ááĽááľ á˝áá" áá¸áá áŤáľáááááłá. á áĽáŽ á¨á°á°áŤá á¨Wi-Fi á áľáá wlan0 á°á¨á᪠á¨áŠá¤áľá˘ áááá ááłáŞáŤáá˝á á˛áŤááá á ááá áľáá áá° wlan1 áááá á áá˝ááᢠáľááá , á¨á áááá˝ áľáá˝á á áá¨á°áá ááááľ áĽááľá°áŤáááá: á (áááľ á ááŁ) á áľáááá˝ áአáľáá˝á áĽáááŁáá áĽá ᨠMAC á áľáŤáťáá˝ áá áĽááŤááá¸ááá.
á áĽáŽ áá°á°áŤá á¨Wi-Fi á áľááᣠá ááá wlan0:
# cat /sys/class/net/wlan0/address
b8:27:eb:xx:xx:xx
áĽá áĽáááĽáŤáá /etc/systemd/network/wl0.link:
[Match]
MACAddress=b8:27:eb:xx:xx:xx
[Link]
Name=wl0
á áá áĽááá á áĽááááá wl0 - áá á áĽáŽ á¨á°á°áŤ Wi-Fi ááᢠáá áá ááá¨ááἠRaspberry á áłáá á áľááłááá˘
áŤá áŚ
# yum install hostapd wireless-tools
á¨áááá ááá /etc/hostapd/hostapd.conf:
ssid=rpi
wpa_passphrase=1234567890
channel=36
country_code=US
interface=wl0
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=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
# AC
ieee80211ac=1
require_vht=1
ieee80211d=0
ieee80211h=0
vht_capab=[MAX-AMSDU-3839][SHORT-GI-80]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42
áá ááł áłáľá¨áł
# hostapd /etc/hostapd/hostapd.conf
hostapd áááłáá áá° áŽááśá á áá°áŤá¨áľ á ááá°ááá áááł ááááŤáᢠááá áľá á°áśá˝ á¨áá ᨠAC áááłá á¨áá°áá á°áá áá˝ á¨ááľá¨áť ááĽáĄ áá áááááľ áá˝áá. hostapd áááá - Ctrl-C.
á¨ááá¨á á áľáááľ á áá ááľáĽ hostapd á ááááľ ááᢠáá°á ááá ááá áŤá°á¨á (systemctl á á áľá°ááá áá) ᣠá¨á፠á¨áááĽáá áłáá ááľááłáľ á áá ááá á ááááŤá âá á°á ááľáĽ ááá¨áŁááâ ááááľ áá˝áá á˘á áááá˝ wl0 á áá°áááá˘". á âáľáአáľáááľâ á¨á°ááł ááľá°ááľ á¨ááá¨á á¨ááá á˝áŚ á áᣠá áľáááá áŤááá á á áá ááĽááľ áá áá˘
á áááá¨áĄ á ááľáááľ á¨á°áá ááᥠá´ááá á¨ááááá á ááľ á¨ááłá áá ááĽá፠(á ááŤáł á°áááá˝)ᣠá¨á ááááá áá˝áł á¨áá¨áłá°á áá á´áá áĽá (áĽáá°áá) á áľá°ááá ááľ ááááŤáᢠáááľááá˝ á áŁá áá°áŠ á¨áá˝á áá¸á, áá á áŁá á áľááŤá áá¸á. áłááá ááĽááłáł áĽáá ááááᢠáľááᾠᨠ"ááŚáš" áĽá "á°ááŁáŤáľ" áĽá "áĽáááá˝" áá.
á¨áá¨áá፠á áááááľ áááá áá°áá áá áą /etc/systemd/system/hostapd.service:
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system
áĽá áááąá á áá¨á°áá á á ááááąá˘
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl0.device
BindsTo=sys-subsystem-net-devices-wl0.device
[Service]
Type=forking
PIDFile=/run/hostapd.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf -P /run/hostapd.pid -B
[Install]
WantedBy=sys-subsystem-net-devices-wl0.device
á¨á°áťáťáá á¨á áááááľ ááá á áľááľ á hostapd á¨á á˛áą á˘áá áá áŁáá á°áááá áľáľáľá áá áá - á¨wl0 á áááá˝á˘ á ááááš á˛áłá á´áá ááááŤáᤠá˛á á ááááᢠáĽá áá ááá á ááľáá áá áá - áľáááąá áĽáá°áá áłáŤáľááłá. áá áá´ á á°áá á¨áŠá¤áľá˘ áá áá á áľááá áá° Raspberry á˛áŤááá á áá ááááá˘
á áá á¨áá¨á°ááľá ááľá¨á áá˝áá:
# systemctl enable hostapd
# reboot
7. IPTABLES
"áá???" Š á á ᣠá á! ááá áľáááľ. ááá á á˛áľ á¨á°áááą áĽáá¨áľ á¨áá (á á áš ááľáĽ áĽáłáľ), áĽáąá á°ááłáłá ááá á ááľá¨á áŤá áá.
áááŤáá á áŽááá áĽáá áá iptables, á áááááśáš á¨ááአá áá á¨ááľááá á°ááŚá˝á áá° á¨ááá ááŤá áĽá áá᪠áłááአáĽá ááĽáśá˝á áłáááľáą á á¸áĽáł áááá. systemd á¨ááŤáá á áá IPMasquerade=ááá áá á ááá á¨á áľáŤáťáá áľááá (NAT) áĽá áá¨áááá á iptables á á°áŤ áĽáá°áŁááá˘
áŤá áŚ
# yum install iptables-services
# systemctl enable iptables ip6tables
ᨠiptables áá á¨áľá áĽáá° áľááŞááľ áá¨áá¸áľ áĽáááŁáá (áááłá)
#!/bin/bash
#
# Disable IPv6
#
ip6tables --flush
ip6tables --delete-chain
ip6tables --policy INPUT DROP
ip6tables --policy FORWARD DROP
ip6tables --policy OUTPUT DROP
ip6tables-save > /etc/sysconfig/ip6tables
systemctl restart ip6tables
#
# Cleaning
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#
# Loopback, lan
#
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i lan -j ACCEPT
#
# Ping, Established
#
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# NAT
#
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE
#
# Saving
#
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables
á¨áá áŤááá áľááŞááľ áĽááľáá˝ááá áĽá á á˛áľ áŁááááľ á¤áľá¤áľá¤á˝ áááááśá˝á á¨Raspberry áá á¨áááľá¨áľ á˝ááłá˝áá áĽááŁáá ᢠáá ááᣠá¨Wi-Fi áŤáá°á á áá°ááᣠááłá¨áť âá á áááá¨áĽ á áŠáâ á ááŁáŞááľ á¨á°á¨áá¨á - á áá âá á á¨á ááâ áĽáťá˘ á¨á á áŤá˘áá á¨á¤á°áááľ áááľ áĽáááááá áĽá á°áááá áĽááááŤáá!
8. áááť: +2,4GHz
á¨áá á¨á°ááá¸áá áľáá á°á á á á¨ááááŞáŤáá Raspberry áŤáá°á áľá°á áľáĽ á á¤á°á°á¤ ááľáĽ á Wi-Fi á˛ááá ááąáááľ á¨á°ááł âraspberryâá á¨ááś áá¨áľ á¨ááá˝á á ááŤáł áááĽáŽá˝á á áááťááᢠá 802.11b/g/n ááľáĽ áĽáá˛á°áŤ áŤáá°áá áĽáá°áá áááá áľáááłá á¨áááľ á¨áá°áá áá á ááááŤáąá á áá áááł ááľáĽ áŤáá á¨áá°á ááĽááľ "á á á¨á áá" ᨠ40 Mbit á áá ááĽá, áĽá á¨áĽá á°ááłá á¨á áááá¨áĽ á á áŤá˘ 100 (á áŹáĽá) áá°á áá.
áĽáá° áĽáááą á¨áá, áá˝áአáááľá ááľááá á°ááá°á-ááá°á ᨠWi-Fi á áááá˝ á 2,4 GHz áľáááá˝ á¨áá°áŤ áĽá ááá°á á¨ááłá¨áť ááĽáĽ. á á á áŤá˘áŤá áŁá áľáśá ááľáĽ á¨ááááŞáŤáá áłááá á¨ááááľ ááá°ááá á¨áŠá¤áľá˘ áááá âáá¨áľâ á ááááľá˘ áťáŠ áľá áşáá´áľáŁ á¨á áá¤á ááááľ á¨áááá˝ áá á°áłááááľ áĽá á AP áááł á¨ááĽáŤáľ áĽáľá (á¨ááááŞáŤá áĽáą áá á) á áá áĽáŤááá˝ á°á áááś áá áá˘
á áĽáŽááἠá¨ááá á¨áá áá á áľáá áá á áááłá°á á¨"áá¨áľ"á áĽááá á¨áááá˘
ááááŞáŤáŁ áľáá áĽáá°áá áĽáááá á wl1:
# cat /sys/class/net/wlan0/address
b0:6e:bf:xx:xx:xx
/etc/systemd/network/wl1.link:
[Match]
MACAddress=b0:6e:bf:xx:xx:xx
[Link]
Name=wl1
á¨á á˛áąá áá áá á áááá˝ á áľá°áłá°á áá°áᨠhostapd daemon á á°áŤ áĽáá°áŁááᣠáá á á¨áááá¨á áĽá á¨ááá á áľáááą ááľáĽ á áĽáĽá á¨á°ááḠâáá¨áľâ áĽááłá ááᥠwl1.
á¨áááá ááá /etc/hostapd/hostapd2.conf:
ssid=rpi2
wpa_passphrase=1234567890
#channel=1
#channel=6
channel=11
interface=wl1
bridge=lan
driver=nl80211
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
macaddr_acl=0
hw_mode=g
wmm_enabled=1
# N
ieee80211n=1
require_ht=1
ht_capab=[HT40][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
á¨áá ááá áááľ á ááĽáł á áŠá¤áľá˘ áá áá á áľáá áá´á áá á¨á°áá°á¨á° ááᣠáľááá á¨áŁáá áŽá/ááá á ááłáá˝á áá˝ááá˘
á¨áá¨áá፠á áááááľ áááá áá°áá áá áą /etc/systemd/system/hostapd2.service:
# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system/hostapd2.service
áĽá áááąá á áá¨á°áá á á ááááąá˘
[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl1.device
BindsTo=sys-subsystem-net-devices-wl1.device
[Service]
Type=forking
PIDFile=/run/hostapd2.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd2.conf -P /run/hostapd2.pid -B
[Install]
WantedBy=sys-subsystem-net-devices-wl1.device
á¨áá¨á á á˛áľ ᨠhostapd ááłáá ááááľ áĽáť áááĄ-
# systemctl enable hostapd2
ááźá áá! "áá˝áŤ" áĽá "raspberry" áĽáŤáą áááľáą, á ááŞáŤá áŤááľá áááľ á áᣠá ááłáŽá˝ áááá¨áą.
áĽá á áá¨á¨áťá áľá áŠá¤áľá˘ Wi-Fi á áľáá áĽáŤáľ áĽá áľá Raspberry á¨ááá á á
ááŚáľ ááľá áá
á
á áĽáááááᢠá¨á°áááá "áľáŠáľ áá˝áŤ" á ááłááľ áá á á áá áá á¨á¤áááľáŞá á˝ááŽá˝ ááááŤáľ "raspberry freezing" ááŤáľá¨áľá áá˝áá.
ááá: hab.com