Raspberry single-board PC ááá¯á¡ááŒá±áá¶á Wi-Fi access point áááºáá®ážááŒááºážá¡ááœáẠá¡ááºáá¬áááºáá±á«áºááœáẠáá»á¬ážááŒá¬ážááŸáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážá áœá¬ááŸááá«áááºá á ááºážáááºážá¡áá áááºážááẠRaspberry á áá°áááºáž Raspbian operating system ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááᯠááá¯ááá¯áááºá
RPM-based á áá áºáá»á¬ážááᯠááá¯ááºáá¬áá»áá·áºáá¯á¶ážáá°ááŒá áºáá±á¬ááŒá±á¬áá·áº á€á¡á¶á·ááœááºáááºážáááºááᯠááá»á±á¬áºááŒááºááá¯ááºáá² áá»áœááºá¯ááºááá»á áºááŸá áœá¬áá±á¬ CentOS ááᯠáááºážááᯠáá ááºážááŒáá·áºááá¯ááºáá«á
áá±á¬ááºážáá«ážááẠCentOS áááºáááºááŸá¯á áá áºá¡áá±á«áºá¡ááŒá±áá¶á Raspberry Pi 5 Model B+ á០3GHz/AC Wi-Fi áá±á¬ááºáá¬ááŒá¯áá¯ááºááẠáááºážááœáŸááºáá»ááºáá±ážáá¬ážáááºá á á¶ááŸá¯ááºážá¡áááºážáááºááŸááá±á¬áºáááºáž áá°áááááºážáá±á¬ááŸáá·áºááœááºáá»á¬ážá áœá¬ááŸááááºááŒá áºááŒá®áž á¡ááá¯áá¯á¡áá±ááŒáá·áº Raspberry ááŸáá·áº áááºáá±á¬ááºáž Wi-Fi áááááá¬áá»á¬ážááᯠáá»áááºáááºáááºá¡ááœáẠáá¯á¶ááœá²áᬠáááºážá¡á¬áž áá¯ááºáá»á¬ážá áœá¬ (2,4+5GHz) ááŒáá·áº áá áºááŒáá¯ááºáááºáááºáááºááá¯ááºá á±áááºááŒá áºáááºá
(ááœááºáááºá
áœá¬áááá¯ááºáá±á¬áá¯á¶áá»á¬áž áá±á¬ááŸá±á¬áá«)
á¡áá»áá¯á·áá±á¬ á
ááŒá¬áá á¬á¡áá»ááºáá»á¬ážááẠá¡áá¯ááºáááŒá
áºááŒá±á¬ááºáž áá»ááºáá»ááºážáááááŒá¯ááŒáá«á
áá¯á·á áá»áœááºá¯ááºááẠáá»áœááºá¯ááºá Raspberry á០á¡ááŒáá·áºáá¯á¶áž 100 Mbps ááᯠáá±áá²ááœáẠááŸá
áºáá¯ááºááŒá®áž áááºážááẠáá»áœááºá¯ááºá á¡ááºáá¬áááºáááºáá±á¬ááºááŸá¯áá±ážáá°á á¡ááŒááºááŸá¯ááºážááᯠááœáŸááºážááŒá¯á¶áá±ážáá«áááºá áá®á¡áá¯áá®á¡á áááºááẠN ááœááºáá±á¬ááºá០áá
áºáá«áá
áºáá
áºáááºááᯠáááá¯ááºáá»áŸáẠá€áá»áŸááŸá±ážááœá±ážáá±á¬ AC ááᯠá¡áááºááŒá±á¬áá·áº ááá¯á¡ááºááááºážá á€áá±ážááœááºážááᯠááá·áºááá¯ááºááẠáá±ážáá°ážáá«áá ááŒááºáá¡ááºáá¬áᬠááŸá
áºáá¯áá«áá±á¬ áááá·áº router ááᯠáááºááẠá
ááá¯ážááá¯ááºááá¯á· ááœá¬ážáá«á
0.áá¬ááœá±ááá¯á¡ááºááá²á
- á¡ááŸááºáá±á¬á·á âraspberry áá¯ááºáá¯ááºâ ááá¯ááºááá¯ááºá á áœááºážáá±á¬ááºáááºááŸááá«áááº- Pi 3 Model B+ (ááá¯áá»ááºáá±á¬ 5GHz á¡ááŒááºááŸá¯ááºážááŸáá·áº áá»ááºáááºáá»á¬ážááᯠáááŸááááº);
- áá±á¬ááºážáá±á¬ microSD >= 4GB;
- Linux ááŸáá·áº microSD á á¬áááºáá°/á á¬áá±ážááá¬ááá¯á·ááŸáá·áºá¡áá° á¡áá¯ááºáá¯á¶á
- Linux ááœáẠáá¯á¶áá±á¬ááºáá±á¬ áá»áœááºážáá»ááºááŸá¯ áááŸáááá¯ááºááŸá¯á áá±á¬ááºážáá«ážááẠáá±á·áá»áá·áºáááºááŒá¬ážáá¬ážáá±á¬ Geek á¡ááœáẠááŒá áºáááºá
- Raspberry ááŸáá·áº Linux á¡ááŒá¬áž ááŒáá¯ážáááºááœááºááẠ(eth0) áá»áááºáááºááŸá¯á ááŒááºááœááºážááœááºáááºáá±á«áºááœáẠDHCP áá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž á ááºáá á¹á ááºážááŸá áºáá¯áá¯á¶ážá០á¡ááºáá¬áááºáááºáá±á¬ááºááŸá¯á
áá±á¬ááºáá¯á¶ážá¡áá»ááºá¡áá±á«áº ááŸááºáá»ááºáá±ážáá áºáá¯á âáááºáá¡áááºáá¬á ááŒááºá¥ áá«ááŸááá¯ááºâŠâ á¡ááºáá¬áááºáá¯á¶ážáááááá¬áááŸáááẠWi-Fi router ááᯠáááºááá¯áááºáá®ážááá²á á€áá»á±á¬áºá áá¬áá±á·áá»áá·áºáááºážááᯠáá±á¬ááºážáá«ážááá±á¬ááºá¡ááŒááºáááºááœáẠáá¬ážáá²á·áᬠRaspberry ááẠáá±áááœááºážááœááºáááºááá¯á· ááá¯ááºáá¬ááŒáá¯ážááŒáá·áº áá»áááºáááºáá¬ážááŒá®áž á¡ááºáá¬áááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááºáᯠááá¯ážááŸááºážá áœá¬áá°áááŒáá«á áá¯á·á á€ááá á¹á ááœááºá áá»áœááºá¯ááºááá¯á·ááẠ"raspberry" ááá¯áááºáááºááẠáá±á¬ááºááẠTV ááŸáá·áº ááŒááºááŸááºááẠáááá¯á¡ááºáá«á
1. CentOS ááᯠááá·áºááœááºážáá«á
á€áá±á¬ááºážáá«ážááá¯áá±ážáá¬ážá ááºááœááºá á ááºááœááºá¡áá¯á¶ážááŒá¯áá±ááá·áº CentOS áá¬ážááŸááºážááẠ32-bit ááŒá áºáááºá World Wide Web áá²á·áá áºáá±áá¬áá¬ááŸá¬ 64-bit ARM áááá¯áá¬ááá¯ááºáᬠOS ááœá±áá²á· á áœááºážáá±á¬ááºáááºáᬠ20% áá±á¬ááºá¡áá áá»á±á¬á·áá»ááœá¬ážáááºááá¯á· áááºááŒááºáá°ááááá«áááºá ááŸááºáá»ááºááá±ážáá² áá®á¡ááá¯ááºá¡ááá·áºááᯠáá«áá¬ážáá²á·áááºá
Linux ááœááºá kernel ááŒáá·áº á¡áááºážáááºáá»áŸáá±á¬áá¯á¶ááᯠáá±á«ááºážáá¯ááºáá¯ááºáá«á-RaspberryPI-"áááºážááᯠmicroSD ááœááºáá±ážáá«á
# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz |
dd of=/dev/mmcblk0 bs=4M
# sync
áá¯á¶ááá¯á¡áá¯á¶ážáááŒá¯áá®á áá»áœááºá¯ááºááá¯á·ááẠáááºážá០SWAP á¡áááºážááá·áºááᯠáááºááŸá¬ážááŒá®ážá áááŸáááá¯ááºáá±á¬ á¡áá¶á¡ááá¯ážá¡áá»ááºáá áºáá¯áá¯á¶ážááá¯á· á¡ááŒá áºááᯠáá»á²á·ááœááºáᬠSELinux ááᯠáááºááŸá¬ážáá«áááºá á¡ááºáááá¯áá®áááºááẠááá¯ážááŸááºážáááº- Linux ááœáẠá¡ááŒá áºá áááá¹áá°ááᯠááŒá¯áá¯ááºáá«á ááá (/boot) ááŸááœá²á microSD á០á¡ááá¯ááºážá¡á¬ážáá¯á¶ážááᯠáá»ááºáá«)á á¡ááŒá áºá¡áá áºááᯠáááºáá®ážááŒá®áž áááºážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáá±á¬áºáá®á០ááŒááºáá±ážáááºá
ááá¯á¡ááºáá±á¬áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž á¥ááᬠ(ááŒááºážáááºáá±á¬ ááœááºááá¯ážááºá¡ááœááº)
# 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
root partition áá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááá¯áá¯ááºááá¯ážááŒá®ážáá±á¬ááºá áááºážááá¯ááŒá±á¬ááºážáá²ááŸá¯á¡áá»áá¯á·ááŒá¯áá¯ááºáááºá¡áá»áááºáá±á¬ááºáá«ááŒá®á
SELinux ááᯠááááºáá«á /mnt/etc/selinux/config:
SELINUX=disabled
áááºážááŒááºááŒááºážá /mnt/etc/fstabáááºážááœáẠpartitions ááŸáá·áºáááºáááºáá±á¬ entry ááŸá áºáá¯áá¬áá»ááºáá²á·áááº- boot (/boot, no change) ááŸáá·áº root ( Linux ááŸá blkid command á output ááá¯áá±á·áá¬ááŒááºážááŒáá·áº ááááŸáááá¯ááºááá·áº UUID áááºááá¯ážááá¯áá»áœááºá¯ááºááá¯á·ááŒá±á¬ááºážáá²áá¬ážáááº) á
UUID=6a1a0694-8196-4724-a58d-edde1f189b31 / ext4 defaults,noatime 0 0
UUID=6938-F4F2 /boot vfat defaults,noatime 0 0
áá±á¬ááºáá¯á¶ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠkernel boot parameters áá»á¬ážááá¯ááŒá±á¬ááºážáá²áááº- áá»áœááºá¯ááºááá¯á·ááẠroot partition á¡ááœááºáááºáá±áá¬á¡áá áºááá¯áááºááŸááºáá±ážáááºá á¡ááŸá¬ážááŸá¬ááŒááºááŒááºážá¡áá»ááºá¡áááºáá»á¬ážá output ááá¯ááááºáᬠkernel á¡á¬áž network interfaces áá»á¬ážáá±á«áºááœáẠIPv6 ááááºá á¬áá»á¬ážáááºááŸááºááŒááºážááŸáá¬ážááŒá áºáááº-
# cd
# umount /mnt
# mount /dev/mmcblk0p1 /mnt
á€ááœáẠá¡ááŒá±á¬ááºážá¡áᬠ/mnt/cmdline.txt á¡á±á¬ááºáá«áá¯á¶á á¶ááá¯á· (áá¯á¶ážááá¯ááá«áá±á¬ á á¬ááŒá±á¬ááºážáá áºááŒá±á¬ááºáž)
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1
Finish ááá¯:
# cd
# umount /mnt
# sync
áá»áœááºá¯ááºááá¯á·ááẠmicroSD ááᯠ"raspberry" ááœáẠááŒááºáááºá á®á ááºááŒá®áž áááºážááá¯ááœáá·áºáᬠssh (root/centos) ááŸáá áºááá·áº áááºážáá¶ááá¯á· ááœááºáááºáááºáá±á¬ááºááœáá·áºááᯠááá°ááá¯ááºáá«á
2. CentOS ááᯠá áá áºááá·áºááœááºážááŒááºážá
ááááá¯á¶áž ááá¯ááºáááŸá¯ááºááá¯ááºáá±á¬ ááŸá¯ááºááŸá¬ážááŸá¯áá¯á¶ážáᯠpasswd, yum -y update ááá¯, reboot áá¯ááºáá«.
áá»áœááºá¯ááºááá¯á·ááẠááœááºáááºá á®áá¶ááá·áºááœá²ááŸá¯ááᯠáá±ážáá±á¬ááºáááºá ááœááºáááºáá»áááºáááºáá¬ážáááºá:
# 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 ááŸáá áºááá·áº áááºážáá¶ááá¯á· ááœááºáááºáááºáá±á¬ááºááœáá·áºááᯠáááºáá¶áááŸáááẠ(IP ááááºá á¬ááẠááŒá±á¬ááºážáá²ááá¯ááºáááº)á á¡áá¯á¶ážááŒá¯ááá·áºá¡áá¬ááᯠá¡á¬áá¯á¶á áá¯ááºáá«á /etc/resolv.confá¡á á±á¬ááá¯ááºážá Network Manager á០áááºáá®ážáá¬ážáááºá ááá¯á·ááŒá±á¬áá·áº ááŒá±ááŸááºážááẠááŒá¿áá¬áá»á¬ážááŸááá«á áááºážáá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáááºážááŒááºáá«á áá¯á¶ážáá«á systemd- ááŒá±ááẠááá¯ááºáá°ážá
áá»áœááºá¯ááºááá¯á·ááẠ"áááá¯á¡ááºáá±á¬" ááá¯áááºááŸá¬ážááŒá®áž OS á loading ááá¯á¡ááŸáááºááŒáŸáá·áºááŒá¯ááŒááºááŒááºážááŸáá·áºá¡ááŸáááºááŒáŸáá·áºáááº-
# 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
áááºáá°ááœá± ááá¯á¡ááºáá²á cron á¡áááºáá°ááẠbuilt-in ááá¯ááá»á±áá»ááºáá«á
# 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"
âáááºá áºáááºáá®â áá±á«áºááŸá á¡áá»áááºááááºá ááºááŸá¯ááẠá¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááŒá áºáááºá ááŒááºáááºá áááºáá»áááºááœáẠáá¬áá®ááááºááŸáá¡ááŒá±á¡áá±á¡á¬áž ááááºážáááºážááẠáá¬á·ááºáá²ááẠáá±á¬ááºá áºááŸáááŸááá±á¬ááŒá±á¬áá·áºá áááºáá°ááŒá¯ááŒááºáž ááá¯á¡ááºáá«áááºá á€á¡áá¬á¡ááœáẠá¡ááœááºáá±á¬ááºážááœááºááŒá®áž áá»ááºááŒááºáá±á¬ áááºááá¯ážáá áºáá¯ááŒá áºáááºá áá¬áááẠ- ááá·áºááœááºážááŒá®ážáááºááŸáá·áº á¡ááá¯á¡áá»á±á¬áẠá áááºáááºá áááºááẠNTP áá¬áá¬áá»á¬ážááᯠá¡áá®ážáá¯á¶ážáá±áá¬áá»á¬ážááá¯á· ááŒá±á¬ááºážááá¯ááºáááºá
/etc/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 ááŒáááºááŸá¯ááºážááŒáá·áºáááºáááºáá±áá±á¬ Wi-Fi router ááá¯áááºáá®ážáááºááŒá áºáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡á¶á·á¡á¬ážááá·áºá áá¬áá»á¬ážá¡ááœáẠááŒáá¯áááºááŒááºáááºáá¬ážáááºááŒá áºáá«áááºá á ááºážáááºážááááºážááááºážáá±áž:
# yum á¡áá»ááºá¡ááẠcrda
á¡ááŸá áºáá»á¯ááº- 802.11 ááŒáá¯ážáá²á·ááœááºáááºáá»áááºáááºááŸá¯á¡ááœáẠá ááºážáááºážááá¯ááºáá¬ááŸá¯ daemon
á¡áá»áááºáá¯ááºááá¯á¡ááŒá±áá¶ááááºáž á€ááá¯ážáá áºáá±á¬áá®ááá¯ááºážááẠ5GHz ááŒáááºááŸá¯ááºážáá»á¬ážááŸáá·áº âááŒáá·áºáá¬ážáá±á¬â áá¶áá«ááºáá»á¬ážááŒáá·áº áá»ááºáááºáá»á¬ážááᯠ(áá¯ááŸá¬ážááœááº) á¡áá¯á¶ážááŒá¯ááŒááºážááᯠáá¬ážááŒá áºáá¬ážáááºá ááŸáá·áºááœááºááŸá¬ ááá¯ááºááŒá®áž/ááŒáá¯á·áá»á¬ážá á¡áááºáá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá² á¡áá»áááºáá¯áẠáááºááŸááºáááºááŒá áºáááºá ááá¯ááá¯áááºááŸá¬á á¡á á¬ážá
# timedatectl set-timezone Europe/Moscow
áá»áœááºá¯ááºááá¯á·ááŸáááºáááº-
# timedatectl set-timezone Etc/GMT-3
á áá áºááá¶áááºáá¯á¶á á¶ááŸáá·áºáá±á¬ááºáá¯á¶ážááááœá±á·ááŸá¯á
# hostnamectl set-hostname router
/root/.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 ááœáẠ"vanilla" CentOS ááá·áºááœááºážááŒááºážá¡ááœáẠááŒá®ážááŒáá·áºá á¯á¶áá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážáᯠáá°áááá¯ááºáá«áááºá áááºááẠ10 á áá¹ááá·áºáááºáááºážáá±á¬ (ááŒááºáááº) á áááºáá±á¬ PC ááŸáá·áº á¡áá¯á¶ážáááºááá·áºáááºá 15 Megabytes RAM ááŸáá·áº microSD 1.5 Gigabytes áááºáááºážáá±á¬ á¡áá¯á¶ážááŒá¯ááẠ(á¡ááŸááºáááẠáááŒáá·áºá á¯á¶/boot ááŒá±á¬áá·áº 1 Gigabyte áááºáááºážáá±á¬áºáááºáž ááá¯ážááá¯ážáá¬ážáá¬ážááŒá±á¬ááŒáá«á áá¯á·)á
á€á áá áºááœáẠWi-Fi access point áá±á¬á·ááºáá²ááᯠááá·áºááœááºážáááºá áá¯á¶ááŸáẠCentOS ááŒáá·áºááŒá°ážááŸá¯á á áœááºážáá±á¬ááºáááºáá»á¬ážááᯠá¡áááºážááẠáá»á²á·ááœááºááẠááá¯á¡ááºáá«áááºá ááááá¯á¶ážá¡áá±áá²á· Built-in Wi-Fi adapter áá²á· driver (firmware) ááᯠá¡ááá·áºááŒáŸáá·áºááŒáá¡á±á¬ááºá ááá±á¬áá»áẠáááºáá á¬áá»ááºááŸá¬á ááŒá±á¬áááº
Raspberry 3B ááŸáá·áº 3B+ ááœáẠWifi
Raspberry PI 3B/3B+ Firmware ááá¯ááºáá»á¬ážááᯠCentOS Project á០ááŒáá·áºáá±ááœáá·áºáááŒá¯áá«á ááŒá¿áá¬ááᯠáá¬ážáááºáááºá firmware ááá°ááŒá®áž wifi á áá áºááá·áºááœááºážááẠá¡á±á¬ááºáá«áá±á¬ááºážáá«ážáá»á¬ážááᯠáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá
CentOS ááá±á¬áá»ááºá¡ááœáẠáá¬ážááŒá áºáá¬ážáááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á·ááá¯ááºáá±ážááá¯ááºáá¬á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠáá¬ážááŒá áºáá¬ážááŒááºážáááŸááá«á áá»áœááºá¯ááºááá¯á·ááẠCentOS ááœáẠááŒáá·áºáá»á®áá¬ážáá±á¬ Wi-Fi firmware ááᯠBroadcom developer áá»á¬ážáá¶á០áááºááá¯ááºááá·áºáá áºáᯠ(binary blobs áá»á¬áž...) ááŸáá·áº á¡á á¬ážááá¯ážáá«áááºá á¡áá°ážáááŒáá·áº áááºážááẠááá·áºá¡á¬áž access point mode ááœáẠAC ááá¯áá¯á¶ážááá¯ááºáááºááŒá áºáááºá
Wi-Fi Firmware á¡ááá·áºááŒáŸáá·áºááŒááºážáá ááºáá±á¬áºáááºááŸáá·áº áááºááŸá 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
Firmware Version ááẠ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 adapter firmware ááá¯ááºáá»á¬ážááᯠáá°ážáá°áᬠáááºážááœáŸááºáá²ááá¯á· "raspberry" ááŒáá·áº á¡á á¬ážááá¯ážááá«áááºá /usr/lib/firmware/brcm/
áá»áœááºá¯ááºááá¯á·ááẠá¡áá¬ááẠrouter ááᯠááŒááºááœáá·áºááŒá®áž áá»á±áááºá áœá¬ ááŒá¯á¶ážááá¯ááºáááº-
# 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. ááœááºáááºááœá²á·á ááºážáá¯á¶ááŸáá·áº á áááºáá±á«áºááŸá¯áá»á¬áž
á¡áááºááœááºááá±á¬áá°áá¬ážááá·áºá¡ááá¯ááºáž "áááºá áºáááºáá®" ááᯠ"ááá¯ááºáá¬" ááŒáá·áºáá±ááá¶ááœááºáááºááá¯á·áá»áááºáááºáá¬ážáááºá áááºáá±á¬ááºááŸá¯áá±ážáá°ááẠáá°áá®áá±á¬áááºážáááºážááŒáá·áº á¡ááºáá¬áááºá¡áá¯á¶ážááŒá¯ááœáá·áºááᯠáá±á¬ááºáá¶á·áá±ážáááºáᯠáá°áááŒáá«á áá¯á·- á¡áá»á¬ážáá°ááŸá¬ááœááºáááºáá±á«áºááŸá ááááºá á¬ááᯠDHCP áá¬áá¬á០áá¯ááºáá±ážááẠ(MAC áá»áááºáááºááŸá¯ááŒáá·áº ááŒá áºááá¯ááºáááº)á á€ááá á¹á ááœááºá Raspberry ááá±á¬ááºáá¯á¶ážáááºáááºááŸá¯ááŒá®ážáá±á¬ááºá áááºááẠáááºáá±á¬ááºááŸá¯áá±ážáá°áááŒáá¯ážááᯠáááºážáá²ááá¯á· "áá»áááº" áá¯ááºááŒá®áž ááŒá®ážáá«ááŒá®á ááœáá·áºááŒá¯áá»ááºá¡áá¯á¶ážááŒá¯ááŒááºážá systemd-ááœááºááẠ- áá®ážááŒá¬ážáá±á¬ááºážáá«ážááá±á«ááºážá ááºááŸáá·áºá€áá±áá¬ááœááºáááœá±ážááœá±ážáá«á
Raspberry á Wi-Fi á¡ááºáá¬áá±á·á áº(áá»á¬áž)ááẠáá±áááœááºážááœááºáááºáá áºáá¯ááŒá áºááŒá®áž áááºáááºáá¬ážááá·áº Ethernet adapter (eth0)ááẠááŒááºáááŒá áºáááºá áá±áááœááºáž ááœááºáááºááᯠááááºážáá± ááááºážááœááºááŒáá·áºáá¡á±á¬ááºá á¥ááá¬- 192.168.0.0/24á Raspberry ááááºá á¬- 192.168.0.1á DHCP áá¬áá¬ááẠááŒááºáááœááºááẠ(á¡ááºáá¬áááº) áá±á«áºááœáẠáááºáááºáááºááŒá áºáááºá
Parallel chaos (lyrical digression)Lennart Pottering ááẠáááºážáááá¯ááºááá¯ááºá¡á á®á¡á ááºááᯠááŒá¯á á¯áá¬ážáááºá systemd á¡ááœááºáá±á¬ááºážáááºá áá® systemd ááá¯ááºáá°ááŒá®ážá áá®á á®ááŸá¯ááºááŒááºážá០ááŒááºáááºáá±á¬ááºážááœááºááẠá¡áá»áááºáááŸááááŒáá·áº á¡ááŒá¬ážáááá¯ááááºáá»á¬ážááᯠáá»ááºááŒááºá áœá¬ ááœáŸáá·áºáááºááá¯ááºáᬠáááºážááá¯á·á á¡áá¬ážá¡áá®ážáááºážá ááá¯ááẠáá áááºáá² á¡á ááœáẠááááááá²áá»ááœá¬ážáááºá
ááá¯á·áá±á¬áº áá±ážáááºá áœá¬áááºá systemd OS áá¡á ááœáẠá áááºáá¯ááºáá±á¬ááºááá·áº áá¯ááºáááºážá ááºáá»á¬ážá ááŒááºážáááºáá±á¬ááŒáá¯ááºááá¯ááºááŸá¯ááẠáá¬áá®á¡ááá¯áẠLSB áá»áœááºážáá»ááºáá°áá»á¬ážá¡ááœáẠ"ááŒááºážáá¶áá¬áž" á¡áá»áá¯ážá¡á á¬ážáá áºáá¯ááŒá áºáááºá áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á ဠâá¡ááŒáá¯áẠááááºážááá¬â áá®ááá¯á· á¡áááá·áºáá°áá¬ááŒááºážááẠá¡ááŒá²áááºáž áááºáá¬ááŒááºáá¬áááŸááá±á¬áºáááºáž ááá¯ážááŸááºážáá«áááºá
áá»áœááºá¯ááºááá¯á·ááẠá¡áááºáááŒááºá¡áááºáá»á¬ážááŒáá·áº virtual áá±á«ááºážáá°ážá¡ááºáá¬áá±á·á áºááŸá áºáá¯ááᯠáááºáá®ážáááº- LAN ááᯠО Wan. Wi-Fi adapter(áá»á¬áž) ááᯠááááá áºáá¯ááŸáá·áº "áá»áááºáááº" áááºááŒá áºááŒá®ážá 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=áá¯ááºáá«áááºá routing ááá¯ááœáá·áºááẠsysctl ááŸáááá·áº kernel ááá¯á¡ááááºá¡ááŒáœááºááá¯á¡ááºááŸá¯ááá¯áááºááŸá¬ážáááºá
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 ááᯠááŒááºáááºá áááºááŒá®áž áááºážáá¶ááá¯á· ááœááºáááºáááºáá±á¬ááºááœáá·áºááᯠááá°ááá¯ááºáá« (IP ááááºá á¬ááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº ááŒá±á¬ááºážáá²ááá¯ááºááœááºááŸááááº)á
# rm -fv /etc/systemd/network/eth0.network
# reboot
5.DNSMASQ
Wi-Fi access point áá»á¬ážááŒá¯áá¯ááºáááºá¡ááœááºá áá»áá¯ááŒáááºáá±á¬á á¯á¶ááœá²áá»á¬ážááẠáá¬ááœááºáá±á¬ááºážááœááºáá±á¬á¡áá¬áááŸááá«á ááẠ+ áᜠá¡á²áá«ááᯠáá¬ážááááºáá±ážáá°ážá áá»áœááºáá±á¬áºá·áááºááŒááºáá»ááºá¡áá
áá
áºáá±á¬ááºáá±á¬ááºáá±á·ááœá¬ážáááº...
dnsmasq áá²á·á ááá¯ááºáá¡á±á¬ááºá
# yum install dnsmasq
template ááᯠ/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
á áááºááŒáá¯ááºááŒááºáááºáá«á
á¡áááºážáááºáá»áŸáᬠ/etc/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
á€áá±áá¬ááœáẠ"ááŸá±á¬áºááá¬" ááẠááá·áºáááºáá±á¬ááºááœáẠááŸááááºá bind-dynamicdnsmasq daemon ááᯠsystem ááœááºáá±á«áºáá¬áááºá¡ááá á±á¬áá·áºáááºááŒá±á¬áá¬ážáááºá interface=laná áááºááŒá®ážáá±á¬áẠáá¬áááŒá®ážáá±á¬ á¡áá®ážáá»ááºááŒááºážá á¡á¶á¡á¬ážááá·áºááŸá¯á០ááá»ááºá á±ááŸáá·áºá
# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f
6. HOSTPD
áá±á¬ááºáá¯á¶ážá¡áá±ááŸáá·áºá ááŸá±á¬áº hostapd ááœá²á·á ááºážááŸá¯áá¯á¶á á¶áá»á¬ážá áá áºá á¯á¶áá áºáá±á¬ááºááẠá€áááºááá¯ážááŸáááŸáá±á¬ á á¬ááŒá±á¬ááºážáá»á¬ážááᯠá¡ááá¡áá»ááŸá¬ááœá±ááẠá€áá±á¬ááºážáá«ážááᯠáááºááŸá¯áá±ááŒááºážááŒá áºááŒá±á¬ááºáž áá»áœááºá¯ááºáá¶áááááŸááá«á
hostapd ááá¯ááááºáááºáá®á "áá°áá®ááŸá¯ááŒá¿áá¬" ááá¯áá»á±á¬áºááœáŸá¬ážáááºááá¯á¡ááºáááºá Built-in Wi-Fi adapter wlan0 ááẠáá±á¬ááºááẠUSB Wi-Fi áá á¹á ááºážáá»á¬ážááᯠáá»áááºáááºááá·áºá¡áá« áááºážáá¡áááºááᯠwlan1 ááá¯á· á¡ááœááºááá° ááŒá±á¬ááºážááá¯ááºáááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºáá±á¬áºááŒáá«áááºážáááºážááŒáá·áº á¡ááºáá¬áá±á·á áºá¡áááºáá»á¬ážááᯠááŒá¯ááŒááºáá±ážáááº- (ááŒáá¯ážáá²á·) á¡áááºáá¬áá»á¬ážá¡ááœáẠáá°ážááŒá¬ážáá±á¬á¡áááºáá»á¬ážááŸáá·áºá¡áá° áááºážááá¯á·ááᯠMAC ááááºá á¬áá»á¬ážááá¯á· áá»áááºááœá²áá«áááºá
wlan0 ááŒá áºáá±áá²ááŒá áºááá·áº built-in Wi-Fi adapter á¡ááœááºá
# 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 - áááºážááẠbuilt-in 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 áá¯ááºááᯠáá¶á·ááá¯ážáá±á¬ client áá»á¬ážááẠaccess point ááá¯á· áá»áááºáááºááá¯ááºáááºááŒá áºáááºá hostapd ááᯠáááºááẠ- Ctrl-Cá
áá»ááºááŸááá±áá±ážáááºááŸá¬ system startup ááœáẠhostapd ááá¯ááœáá·áºáááºááŒá áºáááºá á¡áááºá áááºááẠá á¶ááŒá¯áá¬ážááá·áºá¡áᬠ(systemctl ááá¯ááœáá·áºáá¬ážáá«á hostapd ááá¯ááœáá·áºáá«)á ááá¯á·áá±á¬áẠáá±á¬ááºáá áºááŒááẠááŒááºáááºá áááºááŒá®ážáá±á¬áẠáááºááẠáá±á¬áá«ááŸá¬ááœá±ááŸá¯ááŸáá·áºá¡áá° "ááœá±ážáá²ááœááºáá°ážáá±áá±á¬ áááºááá¯ážáá áºáá±á¬ááºááᯠáááºáááá¯ááºáááº"á¡ááºáá¬áá±á·á Ạwl0 áááœá±á·áá«áâ . "á¡ááŒáá¯ááºááááºážááá¬" áááááºá¡áá±ááŒáá·áº hostapd áááºááŒáá¯ážáá²á· adapter ááá¯ááœá±á·ááŸááá²á·ááá·áº kernel áááºááá¯ááá¯ááŒááºáááºá áœá¬á áááºáá²á·áááºá
á¡ááºáá¬áááºááẠdaemon áá áááºáá®á¡áááºážá¡ááŒááºá¡áá»áááºáá¯ááºááŒááºážá០(áááá áºáá»á¬ážá áœá¬)á á¡ááºáá¬áá±á·á áºáá¡ááœááºá¡ááŒááºááá¯á á±á¬áá·áºááŒáá·áºáá±á¬á¡ááŒá¬áž daemon ááá¯á· (ááŒááºáááº) hostpad ááá¯á áááºáááºá ááŒá±ááŸááºážáá»ááºáá»á¬ážááẠá¡áá±á¬áºáá±áž á¡áá¯ááºááŒá áºááá¯ááºáá±á¬áºáááºáž á¡ááœááºá¡áá»ááºážáááºáááºá áá»áœááºá¯ááºááá¯á·ááẠááŒá®ážááŒááºáá°ááᯠá¡áá°á¡áá®áá±á¬ááºážáá«á systemd áááºážá "áááºážááá¯ááº" ááŸáá·áº "áá¬áááºáá»á¬áž" ááŸáá·áº "ááŸá®ááá¯ááŸá¯" ááá¯á·ááŸáá·áºá¡áá°á
ááŒáá·áºááŒá°ážáá±ážáááºáá±á¬ááºááŸá¯ááá¯ááºááá¯á· áá°ážáá°áá«á /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
á¡ááºááááºáá¯ááºáá¬ážáá±á¬ áááºáá±á¬ááºááŸá¯ááá¯ááºá ááŸá±á¬áºáááºááŸá¯ááẠáá áºááŸááºá¡áá Ạ- wl0 á¡ááºáá¬áá±á·á áºááá¯á· hostapd á ááá¯ááºážááá áºáá±á«ááºážá ááºááŸá¯ááœáẠáááºááŸááááºá á¡ááºáá¬áá±á·á áºáá±á«áºáá¬áá±á¬á¡áá«á daemon á áááºáááºá áá»á±á¬ááºááœá¬ážáá±á¬á¡áá«á áááºážáááºáááºááá·áºááœá¬ážáááºá á€á¡áá¬ááẠá áá áºááᯠááŒááºáááºá áááºááŒááºážáááŒá¯áá² á¡áœááºááá¯ááºážá¡á¬ážáá¯á¶ážááŒá áºáááºá USB Wi-Fi adapter ááᯠRaspberry ááŸáá·áº áá»áááºáááºáá¬ááœáẠá€áááºážááá¬ááẠá¡áá°ážá¡áá¯á¶ážáááºáá«áááºá
ááᯠáááºáá¯ááºááá¯ááºáááº-
# systemctl enable hostapd
# reboot
7. IPTABLES
"áá¬áá²???" © áá¯ááºáá²á· áá¯ááºáá²á·á áá áºáá¯á០systemd. newfangled áá±á«ááºážá ááºááŸá¯áááŸááá« (áá¯á¶á ᶠFirewalld) áá®á¡ááá¯ááºážáá²áá¯ááºáááºá
á¡áá±á¬ááºážááᯠáá±á¬ááºážáá±á¬ááºážáá¯á¶ážááŒáá·áºáá¡á±á¬áẠiptablesá áááºááŒá®ážáá±á¬ááºá áááºážááááºáá±á¬ááºááŸá¯áá»á¬ážááẠááœááºáááºá ááºážáá»ááºážáá»á¬ážááᯠkernel ááœááºáááºáááºááŒá áºááŒá®áž áá»ááºááŸááá±á¬áá±ááá¯ááºáá°áááŸááá²ááŸáá·áº á¡áááºážá¡ááŒá áºáá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá² ááááºáááááºááááºááœá¬ážáááºááŒá áºáááºá systemd ááœáẠá¡á¶áááºááœááºáá»ááŸááááºá IPMasquerade=ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááẠááááºá á¬áá¬áá¬ááŒááºááá¯ááŒááºáž (NAT) ááŸáá·áº firewall ááá¯á·ááᯠiptables áá»á¬ážááá¯á· áááºáááºá¡ááºááŸá¶áá«áááºá
ááá·áºááœááºážáá«-
# yum install iptables-services
# systemctl enable iptables ip6tables
iptables configuration ááᯠscript áá áºáá¯á¡ááŒá Ạááááºážáááºážááá¯áá«ááẠ(á¥ááá¬-
#!/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
áá»áœááºá¯ááºááá¯á·ááẠá¡áááºáá±á¬áºááŒáá« script ááᯠáá¯ááºáá±á¬ááºááŒá®áž Raspberry ááŸáá·áº ááŒáá¯ážááẠSSH áá»áááºáááºááŸá¯á¡áá áºáá»á¬ážááᯠáá°áá±á¬ááºááá¯ááºá áœááºáž áá¯á¶ážááŸá¯á¶ážááœá¬ážáá«áááºá ááŸááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ááŸááºá¡á¬ážááŒáá·áº âá¡ááºáá¬áááºááŸáá áºááá·áºâ áá¬ážááŒá áºáá¬ážááá·áº Wi-Fi router áá áºáá¯ááᯠáááºáá®ážáá¬ážááẠ- ááá¯á¡áá«ááœáẠâáá±ááŸáá¯ááºážáá±á«áºááŸáâ áá¬ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯áá±ážáá°á á¡á®áá¬áááºááŒáá¯ážááᯠáá»áááºáááºááŒá®áž ááŸáá¯ááºážá á®ážááŒááºážááᯠá áááºáá«á
8. á¡ááá¯áá¯- +2,4GHz
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬áá¯á¶á¡á¬ážá¡áá¯á¶ážááŒá¯á ááááá¯á¶áž Raspberry router ááᯠáááºáááºáá±á¬á¡áá«á áááºážááá¯á·á Wi-Fi áá®ááá¯ááºážááá·áºáááºáá»ááºáá»á¬ážááŒá±á¬áá·áº "raspberry" ááᯠáá¯á¶ážááááŒááºááá¯ááºáá±á¬á·áá±á¬ áá»áœááºá¯ááºáá¡áááºááŸá gadget á¡áá»á¬ážá¡ááŒá¬ážááᯠááŸá¬ááœá±ááœá±á·ááŸááá²á·áá«áááºá 802.11b/g/n ááœáẠá¡áá¯ááºáá¯ááºááẠrouter ááᯠááŒááºáááºááŒááºáááºááŒááºážááẠáá±á«á·áá«ážááŒá®áž á€ááá á¹á ááœáẠá¡ááŒáá·áºáá¯á¶ážá¡ááŒááºááŸá¯ááºáž "áá±ááŸáá¯ááºáž" ááẠ40 Mbit ááẠááá»á±á¬áºááœááºáá±á¬ááŒá±á¬áá·áºá áá»áœááºá¯ááºáá¡ááŒáá¯ááºáá¯á¶ážá¡ááºáá¬áááºáááºáá±á¬ááºááŸá¯áá±ážáá°á áá»áœááºá¯ááºá¡á¬áž 100 (áá±áááºááºááŸáááá·áº) áá±ážáá«áááºá
á¡ááŸááºááŸá¬á ááŒá¿áá¬á¡ááœáẠá¡ááŒá±áá áºáá¯ááᯠáá®ááœááºáá¬ážááŒá®ážááŒá áºáááº- ááŒáááºááŸá¯ááºáž 2,4 GHz ááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ áá¯ááá Wi-Fi á¡ááºáá¬áá±á·á áºááŸáá·áº áá¯ááá áá»áááºáááºááŸá¯á¡ááŸááºá á¡áá®ážáá¬ážá ááá¯ááºáá áºááá¯ááºááŸá¬ ááááá¯á¶ážáááºáá¬ááá¯ááºáá±ááá·áº áá¯ááá USB Wi-Fi âáá®á á®â ááá¯ááœá±á·ááá¯ááºáááºá Chipset ááŸáá·áº ARM Linux kernels ááŸáá·áº ááá¯ááºáááºáá®ááŸá¯ ááŸáá·áº AP áá¯ááºááœáẠá¡áá¯ááºáá¯ááºááá¯ááºááŒá± (áá°ááẠááááá¯á¶áž á áááºáá°ááŒá áºáááº) ááŸáá·áº áááºáááºáá±á¬ áá±ážááœááºážáá»á¬ážááŒá±á¬áá·áº áá±á¬ááºážáá»áá°ááẠááŸáááºá ááºááŸááºážáááºážáá¶áá²á·ááááºá
Built-in Wi-Fi adapter ááŸáá·áº ááŸáá¯ááºážááŸááºááŒááºážááŒáá·áº "áá®á á®" ááᯠááŒááºáááºáááºááŸááºáá«áááºá
á¡áááºáá¯á¶áž áá¬áááºááŒá±á¬ááºážáá¡á±á¬áẠ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 áá áºáá¯ááá¯á· Wi-Fi á¡ááºáá¬áá±á·á áºá¡áá áºá á á®áá¶ááá·áºááœá²ááŸá¯á¡á¬áž á¡ááºááŸááºážáá«áááºá
ááœá²á·á ááºážááŸá¯ááá¯áẠ/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]
á€ááá¯ááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááẠUSB Wi-Fi á¡áááºáá¬á áá±á¬áºáááºáá±á«áºááœáẠááá¯ááºááá¯ááºáá°áááºáá±á¬ááŒá±á¬áá·áº banal copy/paste ááẠááá·áºá¡á¬áž áá»ááºááœááºááá¯ááºáááºá
ááŒáá·áºááŒá°ážáá±ážáááºáá±á¬ááºááŸá¯ááá¯ááºááá¯á· áá°ážáá°áá«á /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
áá«áá«áá²! âáá®á á®â ááŸáá·áº âáááºá áºáááºáá®â ááá¯á·ááᯠááœá²áá°ááŒá®áž ááá·áºáááºáááºážáá»ááºááŸá ááŒáá¯ážáá²á·ááœááºáááºáá»á¬ážááᯠááŒáá·áºáá«á
áá±á¬ááºáá¯á¶ážá¡áá±áá²á·á USB Wi-Fi adapter áá²á· á¡áááºá¡ááœá±ážáá²á· Raspberry áá²á· áá«áá«áá±á¬ááºáá¶á·ááŸá¯á¡ááŒá±á¬ááºáž ááá·áºááᯠááááá±ážáá»ááºáá«áááºá áá»áááºáááºáá¬ážáá±á¬ âáá°ááŒááºážáá±á¬áá®á
á®â ááẠáá±ááá¯áá»áŸááºá
á
áºááá¯ááºáá¬ááŒá¿áá¬áá»á¬ážááŒá±á¬áá·áº áá
áºáá«áá
áºáᶠâáááºá
áºáááºáá®á¡á±ážáá²ááŒááºážâ ááᯠááŒá
áºá
á±ááá¯ááºáááºá
source: www.habr.com