Raspberry Pi + CentOS = Wi-Fi เชนเซ‹เชŸเชธเซเชชเซ‹เชŸ (เช…เชฅเชตเชพ เชฒเชพเชฒ เชŸเซ‹เชชเซ€ เชธเชพเชฅเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชฐเชพเช‰เชŸเชฐ)

เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเชฟเช‚เช—เชฒ-เชฌเซ‹เชฐเซเชก เชชเซ€เชธเซ€ เชชเชฐ เช†เชงเชพเชฐเชฟเชค Wi-Fi เชเช•เซเชธเซ‡เชธ เชชเซ‹เชˆเชจเซเชŸ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเชฐ เชฎเซ‹เชŸเซ€ เชฎเชพเชคเซเชฐเชพเชฎเชพเช‚ เชฎเชพเชนเชฟเชคเซ€ เช›เซ‡. เชเช• เชจเชฟเชฏเชฎ เชคเชฐเซ€เช•เซ‡, เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเซ€ เชฎเซ‚เชณ เชฐเชพเชธเซเชชเชฌเชฟเชฏเชจ เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹.

RPM-เช†เชงเชพเชฐเชฟเชค เชธเชฟเชธเซเชŸเชฎเซ‹เชจเชพ เช…เชจเซเชฏเชพเชฏเซ€ เชนเซ‹เชตเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡, เชนเซเช‚ เช† เชจเชพเชจเชพ เชšเชฎเชคเซเช•เชพเชฐเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชˆ เชถเช•เซเชฏเซ‹ เชจเชนเซ€เช‚ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชฎเชพเชฐเชพ เชชเซเชฐเชฟเชฏ CentOS เชจเซ‡ เช…เชœเชฎเชพเชตเซ€ เชถเช•เซเชฏเซ‹ เชจเชนเซ€เช‚.

เชฒเซ‡เช– CentOS เช“เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เช†เชงเชพเชฐเชฟเชค Raspberry Pi 5 Model B+ เชฎเชพเช‚เชฅเซ€ 3GHz/AC Wi-Fi เชฐเชพเช‰เชŸเชฐ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชคเซเชฏเชพเช‚ เช˜เชฃเซ€ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชชเชฐเช‚เชคเซ เช“เช›เซ€ เชœเชพเชฃเซ€เชคเซ€ เชฏเซเช•เซเชคเชฟเช“ เชนเชถเซ‡, เช…เชจเซ‡ เชฌเซ‹เชจเชธ เชคเชฐเซ€เช•เซ‡ - เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเชพเชฅเซ‡ เชตเชงเชพเชฐเชพเชจเชพ Wi-Fi เชธเชพเชงเชจเซ‹เชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เชšเชฟเชคเซเชฐ, เชœเซ‡ เชคเซ‡เชจเซ‡ เชเช•เชธเชพเชฅเซ‡ เช˜เชฃเชพ เชฎเซ‹เชกเซเชธ (2,4+5GHz) เชฎเชพเช‚ เช•เชพเชฐเซเชฏ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

Raspberry Pi + CentOS = Wi-Fi เชนเซ‹เชŸเชธเซเชชเซ‹เชŸ (เช…เชฅเชตเชพ เชฒเชพเชฒ เชŸเซ‹เชชเซ€ เชธเชพเชฅเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชฐเชพเช‰เชŸเชฐ)
(เชฎเซเช•เซเชคเชชเชฃเซ‡ เช‰เชชเชฒเชฌเซเชง เช›เชฌเซ€เช“เชจเซเช‚ เชฎเชฟเชถเซเชฐเชฃ)

เชšเชพเชฒเซ‹ เช†เชชเชฃเซ‡ เชคเชฐเชค เชœ เชจเซ‹เช‚เชง เชฒเชˆเช เช•เซ‡ เช•เซ‡เชŸเชฒเชพเช• เช•เซ‹เชธเซเชฎเชฟเช• เชตเซ‡เช— เช•เชพเชฎ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚. เชนเซเช‚ เชฎเชพเชฐเชพ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชฎเชพเช‚เชฅเซ€ เชฎเชนเชคเซเชคเชฎ 100 Mbps เชธเซเช•เซเชตเชฟเช เช•เชฐเซเช‚ เช›เซเช‚, เช…เชจเซ‡ เช† เชฎเชพเชฐเชพ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชชเซเชฐเชฆเชพเชคเชพเชจเซ€ เชเชกเชชเชจเซ‡ เช†เชตเชฐเซ€ เชฒเซ‡ เช›เซ‡. เชคเชฎเชจเซ‡ เช†เชตเชพ เชธเซเชธเซเชค เชเชธเซ€เชจเซ€ เช•เซ‡เชฎ เชœเชฐเซ‚เชฐ เช›เซ‡, เชœเซ‹ เชธเชฟเชฆเซเชงเชพเช‚เชคเชฎเชพเช‚ เชคเชฎเซ‡ N เชชเชฐ เชชเชฃ เช…เชกเชงเซ‹ เช—เซ€เช—เชพเชฌเซ€เชŸ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹? เชœเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชœเชพเชคเชจเซ‡ เช† เชชเซเชฐเชถเซเชจ เชชเซ‚เช›เซเชฏเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เช†เช  เชฌเชพเชนเซเชฏ เชเชจเซเชŸเซ‡เชจเชพ เชธเชพเชฅเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เชฐเชพเช‰เชŸเชฐ เช–เชฐเซ€เชฆเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชŸเซ‹เชฐ เชชเชฐ เชœเชพเช“.

0. เชคเชฎเชพเชฐเซ‡ เชœเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡

  • เชตเชพเชธเซเชคเชตเชฎเชพเช‚, โ€œเชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซเชฐเซ‹เชกเช•เซเชŸโ€ เชชเซ‹เชคเซ‡ เช•เซ‡เชฒเชฟเชฌเชฐเชจเซ€ เช›เซ‡: Pi 3 เชฎเซ‹เชกเชฒ B+ (เชชเซเชฐเชคเชฟเชทเซเช เชฟเชค 5GHz เชเชกเชช เช…เชจเซ‡ เชšเซ‡เชจเชฒเซ‹ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡);
  • เชธเชพเชฐเซเช‚ microSD >= 4GB;
  • Linux เช…เชจเซ‡ microSD เชฐเซ€เชกเชฐ/เชฒเซ‡เช–เช• เชธเชพเชฅเซ‡ เชตเชฐเซเช•เชธเซเชŸเซ‡เชถเชจ;
  • Linux เชฎเชพเช‚ เชชเซ‚เชฐเชคเซ€ เช•เซเชถเชณเชคเชพเชจเซ€ เช‰เชชเชฒเชฌเซเชงเชคเชพ, เชฒเซ‡เช– เชชเซเชฐเชถเชฟเช•เซเชทเชฟเชค เช—เซ€เช• เชฎเชพเชŸเซ‡ เช›เซ‡;
  • เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เช…เชจเซ‡ เชฒเชฟเชจเช•เซเชธ เชตเชšเซเชšเซ‡ เชตเชพเชฏเชฐเซเชก เชจเซ‡เชŸเชตเชฐเซเช• (eth0) เช•เชจเซ‡เช•เซเชŸเชฟเชตเชฟเชŸเซ€, เชธเซเชฅเชพเชจเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐ DHCP เชธเชฐเซเชตเชฐ เชšเชฒเชพเชตเชตเซเช‚ เช…เชจเซ‡ เชฌเช‚เชจเซ‡ เช‰เชชเช•เชฐเชฃเซ‹เชฎเชพเช‚เชฅเซ€ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชเช•เซเชธเซ‡เชธ.

เช›เซ‡เชฒเซเชฒเชพ เชฎเซเชฆเซเชฆเชพ เชชเชฐ เชเช• เชจเชพเชจเซ€ เชŸเชฟเชชเซเชชเชฃเซ€. โ€œเช•เชฏเซเช‚ เชชเซเชฐเชฅเชฎ เช†เชตเซเชฏเซเช‚, เชˆเช‚เชกเซเช‚ เช…เชฅเชตเชพ...โ€ เช•เซ‹เชˆเชชเชฃ เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เชเช•เซเชธเซ‡เชธ เชธเชพเชงเชจเซ‹เชจเซ€ เช—เซ‡เชฐเชนเชพเชœเชฐเซ€เชฎเชพเช‚ Wi-Fi เชฐเชพเช‰เชŸเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเซเช‚? เชšเชพเชฒเซ‹ เช† เชฎเชจเซ‹เชฐเช‚เชœเช• เช•เชตเชพเชฏเชคเชจเซ‡ เชฒเซ‡เช–เชจเชพ เช…เชตเช•เชพเชถเชจเซ€ เชฌเชนเชพเชฐ เช›เซ‹เชกเซ€ เชฆเชˆเช เช…เชจเซ‡ เชซเช•เซเชค เชเชฎ เชฎเชพเชจเซ€ เชฒเชˆเช เช•เซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเซเชฅเชพเชจเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เชธเชพเชฅเซ‡ เชตเชพเชฏเชฐ เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชชเชพเชธเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸเชจเซ€ เชเช•เซเชธเซ‡เชธ เช›เซ‡. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเชจเซ‡ "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€" เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชŸเซ€เชตเซ€ เช…เชจเซ‡ เชฎเซ‡เชจเชฟเชชเซเชฏเซเชฒเซ‡เชŸเชฐเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡ เชจเชนเซ€เช‚.

1. CentOS เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชนเซ‹เชฎ เชชเซ‡เชœ

เช† เชฒเซ‡เช– เชฒเช–เชคเซ€ เชตเช–เชคเซ‡, เช‰เชชเช•เชฐเชฃ เชชเชฐ CentOS เชจเซเช‚ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒ เชธเช‚เชธเซเช•เชฐเชฃ 32-bit เช›เซ‡. เชตเชฐเซเชฒเซเชก เชตเชพเช‡เชก เชตเซ‡เชฌ เชชเชฐ เช•เซเชฏเชพเช‚เช• เชฎเชจเซ‡ เชเชตเซ‹ เช…เชญเชฟเชชเซเชฐเชพเชฏ เชฎเชณเซเชฏเซ‹ เช•เซ‡ 64-เชฌเซ€เชŸ เชเช†เชฐเชเชฎ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชชเชฐ เช†เชตเชพ เช“เชเชธเชจเซเช‚ เชชเซเชฐเชฆเชฐเซเชถเชจ 20% เชœเซ‡เชŸเชฒเซเช‚ เช“เช›เซเช‚ เช›เซ‡. เชนเซเช‚ เช† เช•เซเชทเชฃเชจเซ‡ เชŸเชฟเชชเซเชชเชฃเซ€ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช›เซ‹เชกเซ€เชถ.

Linux เชชเชฐ, เช•เชฐเซเชจเชฒ เชธเชพเชฅเซ‡ เชจเซเชฏเซ‚เชจเชคเชฎ เช›เชฌเซ€ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ "-เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชชเซ€เช†เชˆ-"เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชเชธเชกเซ€ เชชเชฐ เชฒเช–เซ‹:

# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz | 
  dd of=/dev/mmcblk0 bs=4M
# sync

เช‡เชฎเซ‡เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เช…เชฎเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ SWAP เชชเชพเชฐเซเชŸเซ€เชถเชจเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ€เชถเซเช‚, เชฐเซเชŸเชจเซ‡ เชธเชฎเช—เซเชฐ เช‰เชชเชฒเชฌเซเชง เชตเซ‹เชฒเซเชฏเซเชฎเชฎเชพเช‚ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเซ€เชถเซเช‚ เช…เชจเซ‡ SELinux เชฅเซ€ เช›เซเชŸเช•เชพเชฐเซ‹ เชฎเซ‡เชณเชตเซ€เชถเซเช‚. เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎ เชธเชฐเชณ เช›เซ‡: Linux เชชเชฐ เชฐเซ‚เชŸเชจเซ€ เชจเช•เชฒ เชฌเชจเชพเชตเซ‹, เชชเซเชฐเชฅเชฎ (/boot) เชธเชฟเชตเชพเชฏ เชฎเชพเช‡เช•เซเชฐเซ‹เชเชธเชกเซ€เชฎเชพเช‚เชฅเซ€ เชคเชฎเชพเชฎ เชชเชพเชฐเซเชŸเซ€เชถเชจเซ‹ เช•เชพเชขเซ€ เชจเชพเช–เซ‹, เชจเชตเซเช‚ เชฐเซ‚เชŸ เชฌเชจเชพเชตเซ‹ เช…เชจเซ‡ เชจเช•เชฒเชฎเชพเช‚เชฅเซ€ เชคเซ‡เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชชเชฐเชค เช•เชฐเซ‹.

เชœเชฐเซ‚เชฐเซ€ เช•เซเชฐเชฟเชฏเชพเช“เชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ (เช—เช‚เชญเซ€เชฐ เช•เชจเซเชธเซ‹เชฒ เช†เช‰เชŸเชชเซเชŸ)

# 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, เชคเซ‡เชฎเชพเช‚ เชชเชพเชฐเซเชŸเซ€เชถเชจเซ‹ เชตเชฟเชถเซ‡ เชฎเชพเชคเซเชฐ เชฌเซ‡ เชเชจเซเชŸเซเชฐเซ€เช“ เช›เซ‹เชกเซ€เชจเซ‡: boot (/boot, เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐ เชจเชฅเซ€) เช…เชจเซ‡ เชฐเซ‚เชŸ (เช…เชฎเซ‡ UUID เชฎเซ‚เชฒเซเชฏ เชฌเชฆเชฒเซ€เช เช›เซ€เช, เชœเซ‡ Linux เชชเชฐ 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 (เชฐเซเชŸ/เชธเซ‡เชจเซเชŸเซ‹) เชฆเซเชตเชพเชฐเชพ เชจเซ‡เชŸเชตเชฐเซเช• เชเช•เซเชธเซ‡เชธ เชฎเซ‡เชณเชตเซ€เช เช›เซ€เช.

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

เช…เชฎเซ‡ "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€" เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ ssh เชฆเซเชตเชพเชฐเชพ เชจเซ‡เชŸเชตเชฐเซเช• เชเช•เซเชธเซ‡เชธ เชฎเซ‡เชณเชตเซ€เช เช›เซ€เช (IP เชธเชฐเชจเชพเชฎเซเช‚ เชฌเชฆเชฒเชพเชˆ เชถเช•เซ‡ เช›เซ‡). เชถเซเช‚ เชตเชชเชฐเชพเชฏ เช›เซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเซ‹ /etc/resolv.conf, เชจเซ‡เชŸเชตเชฐเซเช• เชฎเซ‡เชจเซ‡เชœเชฐ เชฆเซเชตเชพเชฐเชพ เช…เช—เชพเช‰ เชฌเชจเชพเชตเซ‡เชฒ. เชคเซ‡เชฅเซ€, เช‰เช•เซ‡เชฒ เชธเชพเชฅเซ‡ เชธเชฎเชธเซเชฏเชพเช“เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเซ‡เชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹เชจเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเซ‹. เชตเชพเชชเชฐเชตเซ systemd- เช‰เช•เซ‡เชฒเชพเชฏ เช…เชฎเซ‡ เชจเชนเซ€เช‚.

เช…เชฎเซ‡ "เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€" เชฆเซ‚เชฐ เช•เชฐเซ€เช เช›เซ€เช, เชฐเชฟเชชเซ‡เชฐ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ OS เชจเชพ เชฒเซ‹เชกเชฟเช‚เช—เชจเซ‡ เชเชกเชชเซ€ เช•เชฐเซ€เช เช›เซ€เช:

# 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

เช•เซ‹เชจเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซเชฐเซ‹เชจ เช…เชจเซ‡ เชœเซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจเชจเซ‡ เชชเชšเชคเซเช‚ เชจเชฅเซ€ systemd เชŸเชพเชˆเชฎเชฐ, เชถเซเช‚ เช–เซ‚เชŸเซ‡ เช›เซ‡ เชคเซ‡ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. / var / log- เช…เชจเซ‡ เชœเซเช“ เชœเชฐเซเชจเชฒ. เชœเซ‹ เชคเชฎเชจเซ‡ เชฒเซ‹เช— เช‡เชคเชฟเชนเชพเชธเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ (เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเซ‚เชชเซ‡, เชฎเชพเชนเชฟเชคเซ€ เชซเช•เซเชค เชธเชฟเชธเซเชŸเชฎ เชถเชฐเซ‚ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเชฅเซ€ เชœ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชพเชฏ เช›เซ‡):

# 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 เชฐเชพเช‰เชŸเชฐ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชนเซ‹เชตเชพเชฅเซ€, เช…เชฎเซ‡ เช…เช—เชพเช‰เชฅเซ€ เช†เชถเซเชšเชฐเซเชฏเชจเซ€ เชคเซˆเชฏเชพเชฐเซ€ เช•เชฐเซ€เชถเซเช‚. เชจเชฟเชฏเชฎเชจเช•เชพเชฐ:

# yum info crda
เชธเชพเชฐเชพเช‚เชถ: 802.11 เชตเชพเชฏเชฐเชฒเซ‡เชธ เชจเซ‡เชŸเชตเชฐเซเช•เชฟเช‚เช— เชฎเชพเชŸเซ‡ เชจเชฟเชฏเชฎเชจเช•เชพเชฐเซ€ เช…เชจเซเชชเชพเชฒเชจ เชกเชฟเชฎเชจ

เช† เชฆเซเชทเซเชŸ เชกเชฟเชเชพเช‡เชจ, เชŸเชพเช‡เชฎ เชเซ‹เชจเชจเชพ เช†เชงเชพเชฐเซ‡ เชชเชฃ, 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 เชเชก-เช“เชจเซเชธ

เช‰เชชเชฐ เชœเชฃเชพเชตเซ‡เชฒ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชชเซ€ เชชเชฐ "เชตเซ‡เชจเซ€เชฒเชพ" เชธเซ‡เชจเซเชŸเซ‹เชธ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซ‚เชšเชจเชพเช“ เช—เชฃเซ€ เชถเช•เชพเชฏ. เชคเชฎเชพเชฐเซ‡ เชเชตเชพ PC เชธเชพเชฅเซ‡ เชธเชฎเชพเชชเซเชค เชฅเชตเซเช‚ เชœเซ‹เชˆเช เชœเซ‡ (เชซเชฐเซ€เชฅเซ€) 10 เชธเซ‡เช•เชจเซเชกเชฅเซ€ เช“เช›เชพ เชธเชฎเชฏเชฎเชพเช‚ เชฌเซ‚เชŸ เชฅเชพเชฏ, 15 เชฎเซ‡เช—เชพเชฌเชพเช‡เชŸเซเชธ เช•เชฐเชคเชพเช‚ เช“เช›เซ€ RAM เช…เชจเซ‡ 1.5 เช—เซ€เช—เชพเชฌเชพเช‡เชŸเซเชธ เชฎเชพเช‡เช•เซเชฐเซ‹เชเชธเชกเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ (เช…เชชเซ‚เชฐเซเชฃ /เชฌเซ‚เชŸเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช–เชฐเซ‡เช–เชฐ 1 เช—เซ€เช—เชพเชฌเชพเช‡เชŸ เช•เชฐเชคเชพเช‚ เช“เช›เซ€ เช›เซ‡, เชชเชฐเช‚เชคเซ เชšเชพเชฒเซ‹ เชชเซเชฐเชฎเชพเชฃเชฟเช• เชฐเชนเซ€เช).

เช† เชธเชฟเชธเซเชŸเชฎ เชชเชฐ Wi-Fi เชเช•เซเชธเซ‡เชธ เชชเซ‹เชˆเชจเซเชŸ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค CentOS เชตเชฟเชคเชฐเชฃเชจเซ€ เช•เซเชทเชฎเชคเชพเช“เชจเซ‡ เชธเชนเซ‡เชœ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เชธเซŒ เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เชฌเชฟเชฒเซเชŸ-เช‡เชจ Wi-Fi เชเชกเซ‡เชชเซเชŸเชฐเชจเชพ เชกเซเชฐเชพเช‡เชตเชฐ (เชซเชฐเซเชฎเชตเซ‡เชฐ) เชจเซ‡ เช…เชชเช—เซเชฐเซ‡เชก เช•เชฐเซ€เช. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชนเซ‹เชฎ เชชเซ‡เชœ เช•เชนเซ‡ เช›เซ‡:

เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ 3B เช…เชจเซ‡ 3B+ เชชเชฐ Wifi

Raspberry PI 3B/3B+ เชซเชฐเซเชฎเชตเซ‡เชฐ เชซเชพเช‡เชฒเซ‹เชจเซ‡ CentOS เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฆเซเชตเชพเชฐเชพ เชตเชฟเชคเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เชจเชฅเซ€. เชคเชฎเซ‡ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชธเชฎเชœเชตเชพ, เชซเชฐเซเชฎเชตเซ‡เชฐ เชฎเซ‡เชณเชตเชตเชพ เช…เชจเซ‡ เชตเชพเช‡เชซเชพเช‡ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชฒเซ‡เช–เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

CentOS เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เชœเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช›เซ‡ เชคเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เชจเชฅเซ€. เช…เชฎเซ‡ CentOS เชฎเชพเช‚ เชตเชฟเชคเชฐเชฃ Wi-Fi เชซเชฐเซเชฎเชตเซ‡เชฐเชจเซ‡ Broadcom เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ (เชคเซ‡ เชธเชฎเชพเชจ เชฆเซเชตเซ‡เชทเซ€ เชฆเซเชตเชฟเชธเช‚เช—เซ€ เชฌเซเชฒเซ‹เชฌเซเชธ...) เชจเชพ เช…เชจเซเชฐเซ‚เชช เชเช• เชธเชพเชฅเซ‡ เชฌเชฆเชฒเซ€เช เช›เซ€เช. เช†, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชคเชฎเชจเซ‡ เชเช•เซเชธเซ‡เชธ เชชเซ‹เช‡เชจเซเชŸ เชฎเซ‹เชกเชฎเชพเช‚ AC เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

Wi-Fi เชซเชฐเซเชฎเชตเซ‡เชฐ เช…เชชเช—เซเชฐเซ‡เชกเช‰เชชเช•เชฐเชฃ เชฎเซ‹เชกเซ‡เชฒ เช…เชจเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เชซเชฐเซเชฎเชตเซ‡เชฐ เชธเช‚เชธเซเช•เชฐเชฃ เชถเซ‹เชงเซ‹:

# 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 เชเชกเซ‡เชชเซเชŸเชฐ เชซเชฐเซเชฎเชตเซ‡เชฐ เชซเชพเช‡เชฒเซ‹เชจเซ‡ เช•เซ‰เชชเชฟ เช•เชฐเชตเซ€ เช…เชจเซ‡ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€" เชธเชพเชฅเซ‡ เชฌเชฆเชฒเชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡ /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. เชจเซ‡เชŸเชตเชฐเซเช• เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เช…เชจเซ‡ เช†เช—เชณ เชชเชกเช•เชพเชฐเซ‹

เชœเซ‡เชฎ เช†เชชเชฃเซ‡ เช‰เชชเชฐ เชธเช‚เชฎเชค เชฅเชฏเชพ เช›เซ€เช เชคเซ‡เชฎ, "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€" เชธเซเชฅเชพเชจเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เชธเชพเชฅเซ‡ "เชตเชพเชฏเชฐ" เชฆเซเชตเชพเชฐเชพ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡. เชšเชพเชฒเซ‹ เชงเชพเชฐเซ€เช เช•เซ‡ เชชเซเชฐเชฆเชพเชคเชพ เชฌเชฐเชพเชฌเชฐ เช เชœ เชฐเซ€เชคเซ‡ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชเช•เซเชธเซ‡เชธ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡: เชœเชพเชนเซ‡เชฐ เชจเซ‡เชŸเชตเชฐเซเช• เชชเชฐเชจเซเช‚ เชธเชฐเชจเชพเชฎเซเช‚ DHCP เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชœเชพเชฐเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เช•เชฆเชพเชš MAC เชฌเช‚เชงเชจเช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡). เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเชพ เช…เช‚เชคเชฟเชฎ เชธเซ‡เชŸเช…เชช เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เชคเซ‡เชฎเชพเช‚ เชชเซเชฐเชฆเชพเชคเชพเชจเชพ เช•เซ‡เชฌเชฒเชจเซ‡ "เชชเซเชฒเช—" เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเซ€ เชฒเซ‹. เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชงเชฟเช•เซƒเชคเชคเชพ systemd-networkd - เชเช• เช…เชฒเช— เชฒเซ‡เช–เชจเซ‹ เชตเชฟเชทเชฏ เช…เชจเซ‡ เช…เชนเซ€เช‚ เชšเชฐเซเชšเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชจเชฅเซ€.

เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเซเช‚ Wi-Fi เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช เชธเซเชฅเชพเชจเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช• เช›เซ‡, เช…เชจเซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เชˆเชฅเชฐเชจเซ‡เชŸ เชเชกเซ‡เชชเซเชŸเชฐ (eth0) เชฌเชพเชนเซเชฏ เช›เซ‡. เชšเชพเชฒเซ‹ เชธเซเชฅเชพเชจเชฟเช• เชจเซ‡เชŸเชตเชฐเซเช•เชจเซ‡ เชธเซเชฅเชฟเชฐ เชฐเซ€เชคเซ‡ เชจเช‚เชฌเชฐ เช•เชฐเซ€เช, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡: 192.168.0.0/24. เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเชฐเชจเชพเชฎเซเช‚: 192.168.0.1. DHCP เชธเชฐเซเชตเชฐ เชฌเชพเชนเซเชฏ เชจเซ‡เชŸเชตเชฐเซเช• (เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ) เชชเชฐ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡.

เชจเชพเชฎเช•เชฐเชฃ เชธเซเชธเช‚เช—เชคเชคเชพ เชธเชฎเชธเซเชฏเชพ ะธ เชชเซเชฐเช–เซเชฏเชพเชค เช—เซเชตเชพเชŸเซ‡เชฎเชพเชฒเชพเชจ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐ - เชฌเซ‡ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“ เช•เซ‡ เชœเซ‡ เช•เซ‹เชˆเชชเชฃ เช•เซ‡ เชœเซ‡เช“ เชธเชฟเชธเซเชŸเชฎเซเชก เชกเชฟเชธเซเชŸเซเชฐเชฟเชฌเซเชฏเซเชถเชจเชฎเชพเช‚ เชจเซ‡เชŸเชตเชฐเซเช• เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ เชธเซ‡เชตเชพเช“เชจเซ‡ เช—เซ‹เช เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซ€ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซเชฏเชพ เช›เซ‡.

เชธเชฎเชพเช‚เชคเชฐ เช…เช‚เชงเชพเชงเซ‚เช‚เชงเซ€ (เช—เซ€เชค เชตเชฟเชทเชฏเชพเช‚เชคเชฐ)เชฒเซ‡เชจเชพเชฐเซเชŸ เชชเซ‹เชŸเชฐเชฟเช‚เช—เซ‡ เชชเซ‹เชคเชพเชจเชพ เช•เชพเชฐเซเชฏเช•เซเชฐเชฎเชจเซเช‚ เชธเช‚เช•เชฒเชจ เช•เชฐเซเชฏเซเช‚ เช›เซ‡ systemd เชฌเชนเซ เชธเชพเชฐเซเช‚. เช† systemd เช…เชจเซเชฏ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เชเชŸเชฒเซ€ เชเชกเชชเชฅเซ€ เชฒเซ‹เชจเซเชš เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เช“เชจเซ‡ เชฐเซ‡เชซเชฐเซ€เชจเชพ เชตเซเชนเชฟเชธเชฒเชจเชพ เชซเชŸเช•เชพเชฎเชพเช‚เชฅเซ€ เชธเชพเชœเชพ เชฅเชตเชพเชจเซ‹ เชธเชฎเชฏ เชฎเชณเชคเซ‹ เชจเชฅเซ€, เช เซ‹เช•เชฐ เช–เชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‹ เช…เชตเชฐเซ‹เชง เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎ เชถเชฐเซ‚ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชชเชกเซ€ เชœเชพเชฏ เช›เซ‡.

เชชเชฐเช‚เชคเซ เช—เช‚เชญเซ€เชฐเชคเชพเชชเซ‚เชฐเซเชตเช•, เชธเชฟเชธเซเชŸเชฎเชก เช“เชเชธเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชถเชฐเซ‚ เชฅเชฏเซ‡เชฒเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ€ เช†เช•เซเชฐเชฎเช• เชธเชฎเชพเช‚เชคเชฐเชคเชพ เช เช…เชจเซเชญเชตเซ€ เช•เซเชฐเชฎเชฟเช• LSB เชจเชฟเชทเซเชฃเชพเชคเซ‹ เชฎเชพเชŸเซ‡ เชเช• เชชเซเชฐเช•เชพเชฐเชจเซ‹ "เช—เชงเซ‡เชกเซ‹ เชชเซเชฒ" เช›เซ‡. เชธเชฆเชญเชพเช—เซเชฏเซ‡, เช† "เชธเชฎเชพเช‚เชคเชฐ เช…เช‚เชงเชพเชงเซ‚เช‚เชงเซ€" เชฎเชพเช‚ เช•เซเชฐเชฎ เชฒเชพเชตเชตเซ‹ เช เชธเชฐเชณ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‹เช•เซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€.

เช…เชฎเซ‡ เชธเชคเชค เชจเชพเชฎเซ‹ เชธเชพเชฅเซ‡ เชฌเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฌเซเชฐเชฟเชœ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฌเชจเชพเชตเซ€เช เช›เซ€เช: LAN ะธ เชตเชพเชจ. เช…เชฎเซ‡ Wi-Fi เชเชกเซ‡เชชเซเชŸเชฐ(เช“)เชจเซ‡ เชชเซเชฐเชฅเชฎ เชธเชพเชฅเซ‡ เช…เชจเซ‡ eth0 "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€" เชจเซ‡ เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ "เช•เชจเซ‡เช•เซเชŸ" เช•เชฐเซ€เชถเซเช‚.

/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 เชฆเซเชตเชพเชฐเชพ เช•เชฐเซเชจเชฒเชจเซ‡ เชธเช‚เช•เซ‡เชค เช†เชชเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเซ‡ เช›เซ‡.
MACA เชธเชฐเชจเชพเชฎเซเช‚= เชšเชพเชฒเซ‹ เชฌเชฟเชจเช•เซ‹เชฎเซ‡เชจเซเชŸ เช•เชฐเซ€เช เช…เชจเซ‡ เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹ เชฌเชฆเชฒเซ€เช.

เชชเซเชฐเชฅเชฎ เช†เชชเชฃเซ‡ 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 เช•เชพเชขเซ€ เชจเชพเช–เซ€เช เช›เซ€เช, เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเซ‡ เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชจเซ‡เชŸเชตเชฐเซเช• เชเช•เซเชธเซ‡เชธ เชฎเซ‡เชณเชตเซ€เช เช›เซ€เช (IP เชธเชฐเชจเชพเชฎเซเช‚ เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เชฌเชฆเชฒเชพเชถเซ‡):

# rm -fv /etc/systemd/network/eth0.network
# reboot

5.DNSMASQ

Wi-Fi เชเช•เซเชธเซ‡เชธ เชชเซ‹เชˆเชจเซเชŸ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เช•เช‚เชˆ เชชเชฃ เชเช• เชฎเซ€เช เซ€ เชœเซ‹เชกเซ€เชจเซ‡ เชนเชฐเชพเชตเชคเซเช‚ เชจเชฅเซ€ dnsmasq + hostapd เชนเชœเซ เชธเซเชงเซ€ เชคเซ‡ เชถเซ‹เชงเซ€ เชถเช•เซเชฏเชพ เชจเชฅเซ€. เชฎเชพเชฐเชพ เชฎเชคเซ‡.

เชœเซ‹ เช•เซ‹เชˆ เชญเซ‚เชฒเซ€ เช—เชฏเซเช‚ เชนเซ‹เชฏ เชคเซ‹...hostapd - เช† เชคเซ‡ เชตเชธเซเชคเซ เช›เซ‡ เชœเซ‡ Wi-Fi เชเชกเซ‡เชชเซเชŸเชฐเซ‹เชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ (เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชคเซ‡ เชคเซ‡เชฎเชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เช•เชพเชณเชœเซ€ เชฒเซ‡เชถเซ‡ LAN "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€"), เชตเชพเชฏเชฐเชฒเซ‡เชธ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เช…เชงเชฟเช•เซƒเชค เช…เชจเซ‡ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเซ‡ เช›เซ‡.

dnsmasq โ€” เช•เซเชฒเชพเชฏเช‚เชŸเชจเชพ เชจเซ‡เชŸเชตเชฐเซเช• เชธเซเชŸเซ‡เช•เชจเซ‡ เช—เซ‹เช เชตเซ‡ เช›เซ‡: IP เชธเชฐเชจเชพเชฎเชพเช“, DNS เชธเชฐเซเชตเชฐเซเชธ, เชกเชฟเชซเซ‹เชฒเซเชŸ เช—เซ‡เชŸเชตเซ‡ เช…เชจเซ‡ เชธเชฎเชพเชจ เช†เชจเช‚เชฆเชจเซ€ เชธเชฎเชธเซเชฏเชพเช“.

เชšเชพเชฒเซ‹ 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

เชคเซ‡เชจเซ‡ เชคเชฎเชพเชฐเซ€ เชฐเซเชšเชฟ เช…เชจเซเชธเชพเชฐ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเซ‹.

เชจเซเชฏเซ‚เชจเชคเชฎ /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

เช…เชนเซ€เช‚ "เชœเชพเชฆเซ" เชชเชฐเชฟเชฎเชพเชฃเชฎเชพเช‚ เช†เชตเซ‡เชฒเซเช‚ เช›เซ‡ เชฌเชพเชˆเชจเซเชก-เชกเชพเชฏเชจเซ‡เชฎเชฟเช•, เชœเซ‡ dnsmasq เชกเชฟเชฎเชจเชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เชชเชฐ เชฆเซ‡เช–เชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชจเซเช‚ เช•เชนเซ‡ เช›เซ‡ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ = lan, เช…เชจเซ‡ เชถเชฐเซ‚เช†เชค เชชเช›เซ€ เช—เซŒเชฐเชตเชชเซ‚เชฐเซเชฃ เชเช•เชฒเชคเชพเชจเชพ เชซเชฟเชŸเชฅเซ€ เชฌเซ‡เชนเซ‹เชถ เชจเชนเซ€เช‚.

# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f

6. HOSTAPD

เช…เชจเซ‡ เช›เซ‡เชฒเซเชฒเซ‡, เชœเชพเชฆเซ เชนเซ‹เชธเซเชŸเซ‡เชชเชกเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเซ‹. เชฎเชจเซ‡ เช•เซ‹เชˆ เชถเช‚เช•เชพ เชจเชฅเซ€ เช•เซ‡ เช•เซ‹เชˆ เช† เช…เชฎเซ‚เชฒเซเชฏ เชฐเซ‡เช–เชพเช“เชจเซ€ เชšเซ‹เช•เซเช•เชธ เชถเซ‹เชงเชฎเชพเช‚ เช† เชฒเซ‡เช– เชตเชพเช‚เชšเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡.

hostapd เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เชคเชฎเชพเชฐเซ‡ "เชเช•เชฐเซ‚เชชเชคเชพ เชธเชฎเชธเซเชฏเชพ" เชฆเซ‚เชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชฌเชฟเชฒเซเชŸ-เช‡เชจ Wi-Fi เชเชกเซ‡เชชเซเชŸเชฐ wlan0 เชตเชงเชพเชฐเชพเชจเชพ USB Wi-Fi เชธเชพเชงเชจเซ‹เชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เชคเซ‡เชจเซเช‚ เชจเชพเชฎ 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 เช›เซ‡. เช†เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเซ‡ เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซ€เช เช›เซ€เช.

เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹:

# 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 enable hostapd), เชคเซ‹ เชชเช›เซ€เชจเชพ เชฐเซ€เชฌเซ‚เชŸ เชชเช›เซ€ เชคเชฎเซ‡ เชจเชฟเชฆเชพเชจ เชธเชพเชฅเซ‡ "เชฒเซ‹เชนเซ€เชฎเชพเช‚ เชซเชฐเชคเซ‹" เชฐเชพเช•เซเชทเชธ เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹.เช‡เชจเซเชŸเชฐเชซเซ‡เชธ wl0 เชฎเชณเซเชฏเซเช‚ เชจเชฅเซ€" "เชธเชฎเชพเช‚เชคเชฐ เช…เช‚เชงเชพเชงเซ‚เช‚เชงเซ€" เชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช•เชฐเซเชจเชฒเชจเซ‡ เชตเชพเชฏเชฐเชฒเซ‡เชธ เชเชกเซ‡เชชเซเชŸเชฐ เชฎเชณเซเชฏเซเช‚ เชคเซ‡เชจเชพ เช•เชฐเชคเชพ เชตเชงเซ เชเชกเชชเชฅเซ€ เชนเซ‹เชธเซเชŸเชชเซ‡เชก เชถเชฐเซ‚ เชฅเชฏเซเช‚.

เชˆเชจเซเชŸเชฐเชจเซ‡เชŸ เช‰เชชเชพเชฏเซ‹เชฅเซ€ เชญเชฐเซ‡เชฒเซเช‚ เช›เซ‡: เชกเชฟเชฎเชจ (เช•เซ‡เชŸเชฒเซ€เช• เชฎเชฟเชจเชฟเชŸ) เชถเชฐเซ‚ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชซเชฐเชœเชฟเชฏเชพเชค เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟเชฅเซ€ เชฒเชˆเชจเซ‡ เชฌเซ€เชœเชพ เชกเชฟเชฎเชจ เชธเซเชงเซ€ เช•เซ‡ เชœเซ‡ เชˆเชจเซเชŸเชฐเชซเซ‡เชธเชจเชพ เชฆเซ‡เช–เชพเชต เชชเชฐ เชจเชœเชฐ เชฐเชพเช–เซ‡ เช›เซ‡ เช…เชจเซ‡ (เชซเชฐเซ€เชฅเซ€) เชนเซ‹เชธเซเชŸเชชเซ‡เชก เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡. เช‰เช•เซ‡เชฒเซ‹ เชคเชฆเซเชฆเชจ เชตเซเชฏเชตเชนเชพเชฐเซ เช›เซ‡, เชชเชฐเช‚เชคเซ เชญเชฏเช‚เช•เชฐ เชจเซ€เชš เช›เซ‡. เช…เชฎเซ‡ เชฎเชฆเชฆ เชฎเชพเชŸเซ‡ เชฎเชนเชพเชจ เชตเซเชฏเช•เซเชคเชฟเชจเซ‡ เชฌเซ‹เชฒเชพเชตเซ€เช เช›เซ€เช 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 เชจเชพ เช—เชคเชฟเชถเซ€เชฒ เชฌเช‚เชงเชจเชฎเชพเช‚ เชฐเชนเซ‡เชฒเซ‹ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เชฆเซ‡เช–เชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชกเชฟเชฎเชจ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡; เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช…เชฆเซƒเชถเซเชฏ เชฅเชˆ เชœเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช…เชŸเช•เซ‡ เช›เซ‡. เช…เชจเซ‡ เช† เชฌเชงเซเช‚ เช‘เชจเชฒเชพเช‡เชจ เช›เซ‡ - เชธเชฟเชธเซเชŸเชฎ เชฐเซ€เชฌเซ‚เชŸ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ. USB Wi-Fi เชเชกเซ‡เชชเซเชŸเชฐเชจเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช† เชคเช•เชจเซ€เช• เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชฅเชถเซ‡.

เชนเชตเซ‡ เชคเชฎเซ‡ เช† เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

# systemctl enable hostapd
# reboot

7. IPTABLES

"เชถเซเช‚???" ยฉ เชนเชพ, เชนเชพ! เช•เซ‹เชˆ เชจเชนเชฟ systemd. เช•เซ‹เชˆ เชจเชตเชพ เชซเซ‡เชจเซเช—เชฒเซเชก เช•เชฎเซเชฌเชพเชˆเชจเซเชธ เชจเชฅเซ€ (เชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชซเชพเชฏเชฐเชตเชพเชฒเซเชก), เชœเซ‡ เช…เช‚เชคเชฎเชพเช‚ เชธเชฎเชพเชจ เชตเชธเซเชคเซ เช•เชฐเซ‡ เช›เซ‡.

เชšเชพเชฒเซ‹ เชธเชพเชฐเชพ เชœเซ‚เชจเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช 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

เช…เชฎเซ‡ เช‰เชชเชฐเซ‹เช•เซเชค เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชธเชพเชฅเซ‡ เชจเชตเชพ เชตเชพเชฏเชฐเซเชก SSH เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ เช—เซเชฎเชพเชตเซ€เช เช›เซ€เช. เชคเซ‡ เชธเชพเชšเซเช‚ เช›เซ‡, เช…เชฎเซ‡ Wi-Fi เชฐเชพเช‰เชŸเชฐ เชฌเชจเชพเชตเซเชฏเซเช‚ เช›เซ‡, เชœเซ‡เชจเซ€ เชเช•เซเชธเซ‡เชธ "เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชฆเซเชตเชพเชฐเชพ" เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเชฟเชค เช›เซ‡ - เชนเชตเซ‡ เชซเช•เซเชค "เช“เชตเชฐ เชง เชเชฐ". เช…เชฎเซ‡ เชชเซเชฐเชฆเชพเชคเชพเชจเชพ เช‡เชฅเชฐเชจเซ‡เชŸ เช•เซ‡เชฌเชฒเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชธเชฐเซเชซเชฟเช‚เช— เชถเชฐเซ‚ เช•เชฐเซ€เช เช›เซ€เช!

8. เชฌเซ‹เชจเชธ: +2,4GHz

เชœเซเชฏเชพเชฐเซ‡ เชฎเซ‡เช‚ เช‰เชชเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ เชกเซเชฐเซ‹เช‡เช‚เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซเชฐเชฅเชฎ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชฐเชพเช‰เชŸเชฐ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซเชฏเซเช‚, เชคเซเชฏเชพเชฐเซ‡ เชฎเซ‡เช‚ เชฎเชพเชฐเชพ เช˜เชฐเชฎเชพเช‚ เช˜เชฃเชพ เชฌเชงเชพ เช—เซ‡เชœเซ‡เชŸเซเชธ เชถเซ‹เชงเซ€ เช•เชพเชขเซเชฏเชพ เชœเซ‡, เชคเซ‡เชฎเชจเซ€ Wi-Fi เชกเชฟเชเชพเช‡เชจ เชฎเชฐเซเชฏเชพเชฆเชพเช“เชจเซ‡ เชฒเซ€เชงเซ‡, "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€" เชฌเชฟเชฒเช•เซเชฒ เชœเซ‹เชˆ เชถเช•เชคเชพ เชจเชฅเซ€. 802.11b/g/n เชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฐเชพเช‰เชŸเชฐเชจเซ‡ เชชเซเชจเชƒเชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเซเช‚ เชฌเชฟเชจเชธเซเชชเซ‹เชฐเซเชŸเชฟเช‚เช— เชนเชคเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชฎเชนเชคเซเชคเชฎ เชเชกเชช "เช“เชตเชฐ เชง เชเชฐ" 40 Mbit เช•เชฐเชคเชพเช‚ เชตเชงเซ€ เชจเชฅเซ€, เช…เชจเซ‡ เชฎเชพเชฐเชพ เชฎเชจเชชเชธเช‚เชฆ เช‡เชจเซเชŸเชฐเชจเซ‡เชŸ เชชเซเชฐเชฆเชพเชคเชพ เชฎเชจเซ‡ 100 (เช•เซ‡เชฌเชฒ เชฆเซเชตเชพเชฐเชพ) เช“เชซเชฐ เช•เชฐเซ‡ เช›เซ‡.

เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เชธเชฎเชธเซเชฏเชพเชจเซ‹ เช‰เช•เซ‡เชฒ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชถเซ‹เชงเชพเชฏเซ‡เชฒ เช›เซ‡: 2,4 เช—เซ€เช—เชพเชนเชฐเซเชŸเซเชเชจเซ€ เช†เชตเชฐเซเชคเชจ เชชเชฐ เช•เชพเชฐเซเชฏเชฐเชค เชฌเซ€เชœเซเช‚ Wi-Fi เช‡เชจเซเชŸเชฐเชซเซ‡เชธ เช…เชจเซ‡ เชฌเซ€เชœเซ‹ เชเช•เซเชธเซ‡เชธ เชชเซ‹เช‡เชจเซเชŸ. เชจเชœเซ€เช•เชจเชพ เชธเซเชŸเซ‹เชฒ เชชเชฐ เชฎเซ‡เช‚ เชชเชนเซ‡เชฒเซเช‚ เชจเชนเซ€เช‚, เชชเชฃ เชฌเซ€เชœเซเช‚ USB Wi-Fi โ€œเชตเซเชนเชฟเชธเชฒโ€ เช–เชฐเซ€เชฆเซเชฏเซเช‚ เชนเชคเซเช‚. เชตเชฟเช•เซเชฐเซ‡เชคเชพเชจเซ‡ เชšเชฟเชชเชธเซ‡เชŸ, เชเช†เชฐเชเชฎ เชฒเชฟเชจเช•เซเชธ เช•เชฐเซเชจเชฒเซ‹ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชคเชคเชพ เช…เชจเซ‡ เชเชชเซ€ เชฎเซ‹เชกเชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซ€ เชธเช‚เชญเชพเชตเชจเชพ เชตเชฟเชถเซ‡เชจเชพ เชชเซเชฐเชถเซเชจเซ‹ เชฆเซเชตเชพเชฐเชพ เชธเชคเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ (เชคเซ‡เชฃเซ‡ เชชเซเชฐเชฅเชฎ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€ เชนเชคเซ€).

เช…เชฎเซ‡ เชฌเชฟเชฒเซเชŸ-เช‡เชจ Wi-Fi เชเชกเซ‡เชชเซเชŸเชฐ เชธเชพเชฅเซ‡ เชธเชฎเชพเชจเชคเชพ เชฆเซเชตเชพเชฐเชพ "เชตเซเชนเชฟเชธเชฒ" เชจเซ‡ เช—เซ‹เช เชตเซ€เช เช›เซ€เช.

เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เชคเซ‡เชจเซเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ€เช 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

เช…เชฎเซ‡ เชจเชตเชพ เชตเชพเช‡-เชซเชพเช‡ เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เชเช• เช…เชฒเช— เชนเซ‹เชธเซเชŸเซ‡เชชเชกเซ€ เชกเชฟเชฎเชจเชจเซ‡ เชธเซ‹เช‚เชชเซ€เชถเซเช‚, เชœเซ‡ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เช•เชกเช• เชฐเซ€เชคเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค "เชตเซเชนเชฟเชธเชฒ" เชจเซ€ เชนเชพเชœเชฐเซ€เชจเชพ เช†เชงเชพเชฐเซ‡ เชถเชฐเซ‚ เชฅเชถเซ‡ เช…เชจเซ‡ เชฌเช‚เชง เชฅเชถเซ‡: 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]

เช† เชซเชพเช‡เชฒเชจเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹ เชธเซ€เชงเชพ USB Wi-Fi เชเชกเชชเซเชŸเชฐเชจเชพ เชฎเซ‹เชกเชฒ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชฎเชพเชฎเซ‚เชฒเซ€ เช•เซ‰เชชเชฟ/เชชเซ‡เชธเซเชŸ เชคเชฎเชจเซ‡ เชจเชฟเชทเซเชซเชณ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡.

เชตเชฟเชคเชฐเชฃ เชธเซ‡เชตเชพ เชซเชพเช‡เชฒเชจเซ€ เชจเช•เชฒ เช•เชฐเซ‹ /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 เชเชกเซ‡เชชเซเชŸเชฐเชจเซ€ เช—เซเชฃเชตเชคเซเชคเชพ เช…เชจเซ‡ เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€เชจเชพ เชชเชพเชตเชฐ เชธเชชเซเชฒเชพเชฏ เชตเชฟเชถเซ‡ เชšเซ‡เชคเชตเชฃเซ€ เช†เชชเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚. เช•เชจเซ‡เช•เซเชŸเซ‡เชก "เชนเซ‹เชŸ เชตเซเชนเชฟเชธเชฒ" เช•เซเชฏเชพเชฐเซ‡เช• เชŸเซ‚เช‚เช•เชพ เช—เชพเชณเชพเชจเซ€ เชตเชฟเชฆเซเชฏเซเชค เชธเชฎเชธเซเชฏเชพเช“เชจเซ‡ เช•เชพเชฐเชฃเซ‡ "เชฐเชพเชธเซเชชเชฌเซ‡เชฐเซ€ เชซเซเชฐเซ€เชเชฟเช‚เช—" เชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ€ เชถเช•เซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹