Raspberry Pi + CentOS = Wi-Fi เจนเฉŒเจŸเจธเจชเฉŒเจŸ (เจœเจพเจ‚ เจฒเจพเจฒ เจŸเฉ‹เจชเฉ€ เจตเจพเจฒเจพ เจฐเจธเจฌเฉ‡เจฐเฉ€ เจฐเจพเจŠเจŸเจฐ)

เจฐเจพเจธเจฌเฉ‡เจฐเฉ€ เจธเจฟเฉฐเจ—เจฒ-เจฌเฉ‹เจฐเจก เจชเฉ€เจธเฉ€ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค เจตเจพเจˆ-เจซเจพเจˆ เจเจ•เจธเฉˆเจธ เจชเฉเจ†เจ‡เฉฐเจŸ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ 'เจคเฉ‡ เจฌเจนเฉเจค เจธเจพเจฐเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉˆเฅค เจ‡เฉฑเจ• เจจเจฟเจฏเจฎ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉˆ เจฐเจธเจฌเฉ‡เจฐเฉ€ เจฆเฉ‡ เจฎเฉ‚เจฒ เจฐเจพเจธเจฌเฉ€เจ…เจจ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพเฅค

RPM-เจ…เจงเจพเจฐเจฟเจค เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเจพ เจชเจพเจฒเจฃ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ เจนเฉ‹เจฃ เจฆเฉ‡ เจจเจพเจคเฉ‡, เจฎเฉˆเจ‚ เจ‡เจธ เจ›เฉ‹เจŸเฉ‡ เจœเจฟเจนเฉ‡ เจšเจฎเจคเจ•เจพเจฐ เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจฒเฉฐเจ˜ เจธเจ•เจฟเจ† เจ…เจคเฉ‡ เจ‡เจธ 'เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจชเจฟเจ†เจฐเฉ‡ CentOS เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ.

เจฒเฉ‡เจ– CentOS เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค Raspberry Pi 5 เจฎเจพเจกเจฒ B+ เจคเฉ‹เจ‚ 3GHz/AC Wi-Fi เจฐเจพเจŠเจŸเจฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจฅเฉ‡ เจ•เจˆ เจฎเจฟเจ†เจฐเฉ€ เจชเจฐ เจ˜เฉฑเจŸ-เจœเจพเจฃเฉ€เจ†เจ‚ เจšเจพเจฒเจพเจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฌเฉ‹เจจเจธ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ - เจฐเจพเจธเจฌเฉ‡เจฐเฉ€ เจจเจพเจฒ เจตเจพเจงเฉ‚ Wi-Fi เจ‰เจชเจ•เจฐเจฃเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจกเจฐเจพเจ‡เฉฐเจ—, เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจˆ เจฎเฉ‹เจกเจพเจ‚ (2,4+5GHz) เจตเจฟเฉฑเจš เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค

Raspberry Pi + CentOS = Wi-Fi เจนเฉŒเจŸเจธเจชเฉŒเจŸ (เจœเจพเจ‚ เจฒเจพเจฒ เจŸเฉ‹เจชเฉ€ เจตเจพเจฒเจพ เจฐเจธเจฌเฉ‡เจฐเฉ€ เจฐเจพเจŠเจŸเจฐ)
(เจธเฉเจคเฉฐเจคเจฐ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจšเจฟเฉฑเจคเจฐเจพเจ‚ เจฆเจพ เจฎเจฟเจธเจผเจฐเจฃ)

เจ†เจ“ เจ…เจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจจเฉ‹เจŸ เจ•เจฐเฉ€เจ เจ•เจฟ เจ•เฉเจ เจฌเฉเจฐเจนเจฟเจฎเฉฐเจกเฉ€ เจตเฉ‡เจ— เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจจเจ—เฉ‡เฅค เจฎเฉˆเจ‚ เจ†เจชเจฃเฉ‡ เจฐเจธเจฌเฉ‡เจฐเฉ€ เจคเฉ‹เจ‚ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง 100 Mbps เจจเฉ‚เฉฐ เจนเจตเจพ เจตเจฟเฉฑเจš เจจเจฟเจšเฉ‹เฉœเจฆเจพ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ‡เจน เจฎเฉ‡เจฐเฉ‡ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจชเฉเจฐเจฆเจพเจคเจพ เจฆเฉ€ เจ—เจคเฉ€ เจจเฉ‚เฉฐ เจ•เจตเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจœเจฟเจนเฉ‡ เจธเฉเจธเจค AC เจฆเฉ€ เจฒเฉ‹เฉœ เจ•เจฟเจ‰เจ‚ เจนเฉˆ, เจœเฉ‡เจ•เจฐ เจธเจฟเจงเจพเจ‚เจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ N 'เจคเฉ‡ เจตเฉ€ เจ…เฉฑเจงเจพ เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹? เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ‡เจน เจธเจตเจพเจฒ เจชเฉเฉฑเจ›เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจ…เฉฑเจ  เจฌเจพเจนเจฐเฉ€ เจเจ‚เจŸเฉ€เจจเจพ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจ…เจธเจฒเฉ€ เจฐเจพเจŠเจŸเจฐ เจ–เจฐเฉ€เจฆเจฃ เจฒเจˆ เจธเจŸเฉ‹เจฐ 'เจคเฉ‡ เจœเจพเจ“เฅค

0. เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ€ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ

  • เจ…เจธเจฒ เจตเจฟเฉฑเจš, โ€œเจฐเจธเจฌเฉ‡เจฐเฉ€ เจ‰เจคเจชเจพเจฆโ€ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจ•เฉˆเจฒเฉ€เจฌเจฐ เจฆเจพ เจนเฉˆ: Pi 3 เจฎเจพเจกเจฒ B+ (เจชเฉเจฐเจพเจชเจค 5GHz เจธเจชเฉ€เจก เจ…เจคเฉ‡ เจšเฉˆเจจเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ);
  • เจตเจงเฉ€เจ† microSD >= 4GB;
  • เจฒเฉ€เจจเจ•เจธ เจ…เจคเฉ‡ เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจเฉฑเจธเจกเฉ€ เจฐเฉ€เจกเจฐ/เจฐเจพเจˆเจŸเจฐ เจฆเฉ‡ เจจเจพเจฒ เจตเจฐเจ•เจธเจŸเฉ‡เจธเจผเจจ;
  • เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจ•เจพเจซเจผเฉ€ เจนเฉเจจเจฐ เจฆเฉ€ เจ‰เจชเจฒเจฌเจงเจคเจพ, เจฒเฉ‡เจ– เจ‡เฉฑเจ• เจธเจฟเจ–เจฒเจพเจˆ เจชเฉเจฐเจพเจชเจค เจ—เฉ€เจ• เจฒเจˆ เจนเฉˆ;
  • เจฐเจพเจธเจฌเฉ‡เจฐเฉ€ เจ…เจคเฉ‡ เจฒเฉ€เจจเจ•เจธ เจตเจฟเจšเจ•เจพเจฐ เจตเจพเจ‡เจฐเจก เจจเฉˆเฉฑเจŸเจตเจฐเจ• (eth0) เจ•เจจเฉˆเจ•เจŸเฉ€เจตเจฟเจŸเฉ€, เจธเจฅเจพเจจเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ• 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ DHCP เจธเจฐเจตเจฐ เจ…เจคเฉ‡ เจฆเฉ‹เจตเจพเจ‚ เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจคเฉ‹เจ‚ เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ เจชเจนเฉเฉฐเจšเฅค

เจ†เจ–เจฐเฉ€ เจฌเจฟเฉฐเจฆเฉ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจœเจฟเจนเฉ€ เจŸเจฟเฉฑเจชเจฃเฉ€. "เจชเจนเจฟเจฒเจพเจ‚ เจ•เจฟเจนเฉœเจพ เจ†เจ‡เจ†, เจ…เฉฐเจกเจพ เจœเจพเจ‚..." เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจชเจนเฉเฉฐเจš เจ‰เจชเจ•เจฐเจฃ เจฆเฉ€ เจ…เจฃเจนเฉ‹เจ‚เจฆ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• Wi-Fi เจฐเจพเจŠเจŸเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจฌเจฃเจพเจ‡เจ† เจœเจพเจตเฉ‡? เจ†เจ‰ เจ‡เจธ เจฎเจจเฉ‹เจฐเฉฐเจœเจ• เจ…เจญเจฟเจ†เจธ เจจเฉ‚เฉฐ เจฒเฉ‡เจ– เจฆเฉ‡ เจฆเจพเจ‡เจฐเฉ‡ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจ›เฉฑเจก เจฆเฉ‡เจˆเจ เจ…เจคเฉ‡ เจฌเจธ เจ‡เจน เจฎเฉฐเจจ เจฒเจ“ เจ•เจฟ เจฐเจธเจฌเฉ‡เจฐเฉ€ เจคเจพเจฐ เจฆเฉเจ†เจฐเจพ เจธเจฅเจพเจจเจ• เจจเฉˆเจŸเจตเจฐเจ• เจจเจพเจฒ เจœเฉเฉœเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจนเฉˆเฅค เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจธเจพเจจเฉ‚เฉฐ "เจฐเจธเจฌเฉ‡เจฐเฉ€" เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจพเจงเฉ‚ เจŸเฉ€เจตเฉ€ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจนเฉ‡เจฐเจพเจซเฉ‡เจฐเฉ€ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจชเจตเฉ‡เจ—เฉ€เฅค

1. CentOS เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹

เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจนเฉ‹เจฎ เจชเฉ‡เจœ

เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฃ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจกเจฟเจตเจพเจˆเจธ เจคเฉ‡ CentOS เจฆเจพ เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจธเฉฐเจธเจ•เจฐเจฃ 32-bit เจนเฉˆ. เจตเจฐเจฒเจก เจตเจพเจˆเจก เจตเฉˆเฉฑเจฌ 'เจคเฉ‡ เจ•เจฟเจงเจฐเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจฐเจพเจ เจฎเจฟเจฒเฉ€ เจนเฉˆ เจ•เจฟ 64-เจฌเจฟเฉฑเจŸ เจเจ†เจฐเจเจฎ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ 'เจคเฉ‡ เจ…เจœเจฟเจนเฉ‡ OS เจฆเฉ€ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ 20% เจคเฉฑเจ• เจ˜เฉฑเจŸ เจ—เจˆ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ‡เจธ เจชเจฒ เจจเฉ‚เฉฐ เจฌเจฟเจจเจพเจ‚ เจŸเจฟเฉฑเจชเจฃเฉ€ เจฆเฉ‡ เจ›เฉฑเจกเจพเจ‚เจ—เจพ.

เจฒเฉ€เจจเจ•เจธ เจ‰เฉฑเจคเฉ‡, เจ•เจฐเจจเจฒ เจจเจพเจฒ เจจเจฟเจŠเจจเจคเจฎ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹ "-เจฐเจพเจธเจฌเฉ‡เจฐเฉ€เจชเฉ€เจ†เจˆ-"เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจฎเจพเจˆเจ•เฉเจฐเฉ‹ เจเจธเจกเฉ€ 'เจคเฉ‡ เจฒเจฟเจ–เฉ‹:

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

เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ‡เจธ เจคเฉ‹เจ‚ SWAP เจญเจพเจ— เจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡, เจฐเฉ‚เจŸ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเฉ€ เจ‰เจชเจฒเจฌเจง เจตเจพเจฒเฉ€เจ…เจฎ เจตเจฟเฉฑเจš เจซเฉˆเจฒเจพเจตเจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ SELinux เจคเฉ‹เจ‚ เจ›เฉเจŸเจ•เจพเจฐเจพ เจชเจพเจตเจพเจ‚เจ—เฉ‡เฅค เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ เจธเจงเจพเจฐเจจ เจนเฉˆ: เจฒเฉ€เจจเจ•เจธ เจ‰เฉฑเจคเฉ‡ เจฐเฉ‚เจŸ เจฆเฉ€ เจ‡เฉฑเจ• เจ•เจพเจชเฉ€ เจฌเจฃเจพเจ“, เจชเจนเจฟเจฒเฉ‡ (/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 เจฎเฉเฉฑเจฒ เจฌเจฆเจฒเจฆเฉ‡ เจนเจพเจ‚, เจœเฉ‹ เจ•เจฟ เจฒเฉ€เจจเจ•เจธ เจ‰เฉฑเจคเฉ‡ 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"

"เจฐเจธเจฌเฉ‡เจฐเฉ€" 'เจคเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉ€ เจธเจพเจฐเจฅเจ•เจคเจพ เจ‡เฉฑเจ• เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจšเฉ€เจœเจผ เจนเฉˆ. เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเจจ 'เจคเฉ‡ เจ˜เฉœเฉ€ เจฆเฉ€ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจฌเจšเจพเจ‰เจฃ เจฒเจˆ เจ•เฉ‹เจˆ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจธเจฎเจฐเฉฑเจฅเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจธเจฎเจ•เจพเจฒเฉ€เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจ…เจคเฉ‡ เจคเฉ‡เจœเจผ เจกเฉˆเจฎเจจ เจนเฉˆ Chrony - เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจธเจฅเจพเจชเจฟเจค เจนเฉˆ เจ…เจคเฉ‡ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ•เจฒเฉ€ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ. เจคเฉเจธเฉ€เจ‚ 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 เจเจก-เจ†เจจ

เจ‰เฉฑเจชเจฐ เจ•เจนเฉ€ เจ—เจˆ เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจฐเจพเจธเจฌเฉ‡เจฐเฉ€ เจชเจพเจˆ 'เจคเฉ‡ "เจตเจจเฉ€เจฒเจพ" CentOS เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจธเฉฐเจชเฉ‚เจฐเจจ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจฎเฉฐเจจเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ. เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• PC เจฆเฉ‡ เจจเจพเจฒ เจ–เจคเจฎ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเฉ‹ 10 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจตเจฟเฉฑเจš (เจฆเฉเจฌเจพเจฐเจพ) เจฌเฉ‚เจŸ เจ•เจฐเจฆเจพ เจนเฉˆ, 15 เจฎเฉˆเจ—เจพเจฌเจพเจˆเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ เจฐเฉˆเจฎ เจ…เจคเฉ‡ 1.5 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจเฉฑเจธเจกเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ (เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ…เจงเฉ‚เจฐเฉ‡ /เจฌเฉ‚เจŸ เจ•เจพเจฐเจจ 1 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจคเฉ‹เจ‚ เจ˜เฉฑเจŸ, เจชเจฐ เจ†เจ“ เจˆเจฎเจพเจจเจฆเจพเจฐ เจฌเจฃเฉ€เจ)เฅค

เจ‡เจธ เจธเจฟเจธเจŸเจฎ 'เจคเฉ‡ Wi-Fi เจเจ•เจธเฉˆเจธ เจชเฉเจ†เจ‡เฉฐเจŸ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเจฟเจ†เจฐเฉ€ CentOS เจตเฉฐเจก เจฆเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฅเฉ‹เฉœเฉเจนเจพ เจœเจฟเจนเจพ เจตเจงเจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€. เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ†เจ“ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจตเจพเจˆ-เจซเจพเจˆ เจ…เจกเฉˆเจชเจŸเจฐ เจฆเฉ‡ เจกเจฐเจพเจˆเจตเจฐ (เจซเจฐเจฎเจตเฉ‡เจ…เจฐ) เจจเฉ‚เฉฐ เจ…เจชเจ—เฉเจฐเฉ‡เจก เจ•เจฐเฉ€เจเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจนเฉ‹เจฎ เจชเฉ‡เจœ เจ•เจนเจฟเฉฐเจฆเจพ เจนเฉˆ:

Raspberry 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)เฅค

เจฎเฉŒเจœเฉ‚เจฆเจพ Raspbian เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹. เจ†เจฒเจธเฉ€ เจฒเฉ‹เจ• เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจเฉฑเจธเจกเฉ€ 'เจคเฉ‡ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจ‰เฉฑเจฅเฉ‹เจ‚ เจซเจฐเจฎเจตเฉ‡เจ…เจฐ เจจเจพเจฒ เจซเจพเจˆเจฒเจพเจ‚ เจฒเฉˆ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจœเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจฒเฉ€เจจเจ•เจธ เจตเจฟเฉฑเจš เจšเจฟเฉฑเจคเจฐ เจฆเฉ‡ เจฐเฉ‚เจŸ เจญเจพเจ— เจจเฉ‚เฉฐ เจฎเจพเจŠเจ‚เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‰เฉฑเจฅเฉ‹เจ‚ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ‰เจธ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹:

# 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 - เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจฒเฉ‡เจ– เจฆเจพ เจตเจฟเจธเจผเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจšเจฐเจšเจพ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆเฅค

Raspberry เจฆเจพ Wi-Fi เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจนเฉˆ, เจ…เจคเฉ‡ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจˆเจฅเจฐเจจเฉˆเฉฑเจŸ เจ…เจกเจพเจชเจŸเจฐ (eth0) เจฌเจพเจนเจฐเฉ€ เจนเฉˆเฅค เจšเจฒเฉ‹ เจธเจฅเจพเจจเจ• เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจจเฉ‚เฉฐ เจธเจฅเจฟเจฐ เจคเฉŒเจฐ 'เจคเฉ‡ เจจเฉฐเจฌเจฐ เจ•เจฐเฉ€เจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ: 192.168.0.0/24เฅค เจฐเจธเจฌเฉ‡เจฐเฉ€ เจชเจคเจพ: 192.168.0.1. เจ‡เฉฑเจ• DHCP เจธเจฐเจตเจฐ เจฌเจพเจนเจฐเฉ€ เจจเฉˆเฉฑเจŸเจตเจฐเจ• (เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ) 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพเฅค

เจจเจพเจฎเจ•เจฐเจจ เจ‡เจ•เจธเจพเจฐเจคเจพ เจธเจฎเฉฑเจธเจฟเจ† ะธ เจฎเจธเจผเจนเฉ‚เจฐ เจ—เฉเจ†เจŸเฉ‡เจฎเจพเจฒเจพ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ - เจฆเฉ‹ เจฎเฉเจธเฉ€เจฌเจคเจพเจ‚ เจœเฉ‹ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจตเจฟเจ…เจ•เจคเฉ€ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจœเฉ‹ เจธเจฟเจธเจŸเจฎเจก เจกเจฟเจธเจŸเจฐเฉ€เจฌเจฟเจŠเจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจ…เจคเฉ‡ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจธเจฎเจพเจจเจพเจ‚เจคเจฐ เจนเจซเฉœเจพ-เจฆเจซเฉœเฉ€ (เจ—เฉ€เจคเจ• เจตเจฟเจญเจฟเฉฐเจจเจคเจพ)เจฒเฉˆเจจเจพเจฐเจŸ เจชเฉ‹เจŸเจฐเจฟเฉฐเจ— เจจเฉ‡ เจ†เจชเจฃเจพ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจนเฉˆ systemd เจฌเจนเฉเจค เจ…เฉฑเจ›เจพ. เจ‡เจน systemd เจนเฉ‹เจฐ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฐเจจเฉ€ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฒเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจน, เจฐเฉˆเจซเจฐเฉ€ เจฆเฉ‡ เจธเฉ€เจŸเฉ€ เจฆเฉ‡ เจเจŸเจ•เฉ‡ เจคเฉ‹เจ‚ เจ‰เจญเจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจจเจนเฉ€เจ‚ เจฐเฉฑเจ–เจฆเฉ‡, เจ เฉ‹เจ•เจฐ เจ–เจพ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ เจ…เจคเฉ‡ เจธเจผเฉเจฐเฉ‚เจ†เจค เจตเจฟเฉฑเจš เจกเจฟเฉฑเจ— เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจฐเฉเจ•เจพเจตเจŸ เจ•เฉ‹เจฐเจธ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚.

เจชเจฐ เจ—เฉฐเจญเฉ€เจฐเจคเจพ เจจเจพเจฒ, เจธเจฟเจธเจŸเจฎเจก OS เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจตเจฟเฉฑเจš เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฆเจพ เจนเจฎเจฒเจพเจตเจฐ เจธเจฎเจพเจจเจคเจพ เจ…เจจเฉเจญเจตเฉ€ เจ•เฉเจฐเจฎเจตเจพเจฐ LSB เจฎเจพเจนเจฐเจพเจ‚ เจฒเจˆ เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจฆเจพ "เจ—เจงเจพ เจชเฉเจฒ" เจนเฉˆเฅค เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจธ "เจธเจฎเจพเจ‚เจคเจฐ เจนเจซเฉœเจพ-เจฆเจซเฉœเฉ€" เจจเฉ‚เฉฐ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจฒเจฟเจ†เจ‰เจฃเจพ เจธเจงเจพเจฐเจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจนเจพเจฒเจพเจ‚เจ•เจฟ เจนเจฎเฉ‡เจธเจผเจพ เจธเจชเฉฑเจธเจผเจŸ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค

เจ…เจธเฉ€เจ‚ เจธเจฅเจฟเจฐ เจจเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจฆเฉ‹ เจตเจฐเจšเฉเจ…เจฒ เจฌเฉเจฐเจฟเจœ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚: LAN ะธ Wan. เจ…เจธเฉ€เจ‚ 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

เจตเจพเจˆ-เจซเจพเจˆ เจเจ•เจธเฉˆเจธ เจชเฉเจ†เจ‡เฉฐเจŸ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ•เฉเจ เจตเฉ€ เจฎเจฟเฉฑเจ เฉ‡ เจœเฉ‹เฉœเฉ‡ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚ เจนเจฐเจพเจ‰เจ‚เจฆเจพ dnsmasq + เจนเฉ‹เจธเจŸเจชเฉˆเจก เจ…เจœเฉ‡ เจคเฉฑเจ• เจ‡เจธเจฆเจพ เจชเจคเจพ เจจเจนเฉ€เจ‚ เจฒเฉฑเจ—เจพ เจนเฉˆเฅค เจฎเฉ‡เจฐเฉ€ เจฐเจพเจ เจตเจฟเฉฑเจš.

เจœเฉ‡ เจ•เฉ‹เจˆ เจญเฉเฉฑเจฒ เจ—เจฟเจ† เจคเจพเจ‚...เจนเฉ‹เจธเจŸเจชเฉˆเจก - เจ‡เจน เจ‰เจน เจšเฉ€เจœเจผ เจนเฉˆ เจœเฉ‹ Wi-Fi เจ…เจกเจพเจชเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจฆเฉ€ เจนเฉˆ (เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒ เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจจ เจฆเจพ เจงเจฟเจ†เจจ เจฐเฉฑเจ–เฉ‡เจ—เฉ€ LAN "raspberries"), เจตเจพเจ‡เจฐเจฒเฉˆเฉฑเจธ เจ•เจฒเจพเจ‡เฉฐเจŸเจธ เจจเฉ‚เฉฐ เจ…เจงเจฟเจ•เจพเจฐเจค เจ…เจคเฉ‡ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

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 เจธเฉฐเจฐเจšเจจเจพ. เจฎเฉˆเจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจธเจผเฉฑเจ• เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เจฟ เจ•เฉ‹เจˆ เจ‡เจธ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจธเจนเฉ€ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เจนเจจเจพเจ‚ เจ–เจœเจผเจพเจจเฉ‡ เจตเจพเจฒเฉ€เจ†เจ‚ เจฒเจพเจˆเจจเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจตเจฟเฉฑเจš เจชเฉœเฉเจน เจฐเจฟเจนเจพ เจนเฉˆ.

hostapd เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ "เจ‡เจ•เจธเจพเจฐเจคเจพ เจฆเฉ€ เจธเจฎเฉฑเจธเจฟเจ†" เจจเฉ‚เฉฐ เจฆเฉ‚เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจฌเจฟเจฒเจŸ-เจ‡เจจ Wi-Fi เจ…เจกเฉˆเจชเจŸเจฐ wlan0 เจตเจพเจงเฉ‚ USB Wi-Fi เจ‰เจชเจ•เจฐเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจ‡เจธเจฆเจพ เจจเจพเจฎ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ wlan1 เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเจพเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจพเจ‚เจ—เฉ‡: เจ…เจธเฉ€เจ‚ (เจตเจพเจ‡เจฐเจฒเฉˆเฉฑเจธ) เจ…เจกเจพเจชเจŸเจฐเจพเจ‚ เจฒเจˆ เจตเจฟเจฒเฉฑเจ–เจฃ เจจเจพเจฎ เจฒเฉˆ เจ•เฉ‡ เจ†เจตเจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ MAC เจเจกเจฐเฉˆเฉฑเจธ เจจเจพเจฒ เจœเฉ‹เฉœเจพเจ‚เจ—เฉ‡เฅค

เจฌเจฟเจฒเจŸ-เจ‡เจจ เจตเจพเจˆ-เจซเจพเจˆ เจ…เจกเฉˆเจชเจŸเจฐ เจฒเจˆ, เจœเฉ‹ เจ…เจœเฉ‡ เจตเฉ€ 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 - เจ‡เจน เจฌเจฟเจฒเจŸ-เจ‡เจจ เจตเจพเจˆ-เจซเจพเจˆ เจนเฉˆเฅค เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจฐเจธเจฌเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:

# 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 เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจ•เจฐเจจเจพ เจฌเจพเจ•เฉ€ เจนเฉˆเฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฎเจฟเจ†เจฐเฉ€ เจšเฉ€เจœเจผ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ (เจธเจฟเจธเจŸเจฎเจธเฉ€เจŸเฉ€เจเจฒ เจนเฉ‹เจธเจŸเฉˆเจชเจกเฉ€ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“), เจคเจพเจ‚ เจ…เจ—เจฒเฉ‡ เจฐเฉ€เจฌเฉ‚เจŸ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจคเฉเจธเฉ€เจ‚ เจจเจฟเจฆเจพเจจ เจฆเฉ‡ เจจเจพเจฒ "เจ–เฉ‚เจจ เจตเจฟเฉฑเจš เจฐเฉ‹เจฒเจฟเฉฐเจ—" เจ‡เฉฑเจ• เจญเฉ‚เจค เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅคเจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ wl0 เจจเจนเฉ€เจ‚ เจฎเจฟเจฒเจฟเจ†". "เจธเจฎเจพเจ‚เจคเจฐ เจนเจซเฉœเจพ-เจฆเจซเฉœเฉ€" เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, hostapd เจ•เจฐเจจเจฒ เจจเฉ‚เฉฐ เจตเจพเจ‡เจฐเจฒเฉˆเฉฑเจธ เจ…เจกเจพเจชเจŸเจฐ เจฒเฉฑเจญเจฃ เจจเจพเจฒเฉ‹เจ‚ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹เจ‡เจ†เฅค

เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจ‰เจชเจšเจพเจฐเจพเจ‚ เจจเจพเจฒ เจญเจฐเจฟเจ† เจนเฉ‹เจ‡เจ† เจนเฉˆ: เจกเฉˆเจฎเจจ (เจ•เจˆ โ€‹โ€‹เจฎเจฟเฉฐเจŸ) เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ‡เฉฑเจ• เจœเจผเจฌเจฐเจฆเจธเจคเฉ€ เจธเจฎเจพเจ‚ เจธเจฎเจพเจชเจคเฉ€ เจคเฉ‹เจ‚ เจฒเฉˆ เจ•เฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจกเฉˆเจฎเจจ เจคเฉฑเจ• เจœเฉ‹ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉ€ เจฆเจฟเฉฑเจ– เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจนเฉ‹เจธเจŸเจชเฉˆเจก เจจเฉ‚เฉฐ (เจฎเฉเฉœ) เจšเจพเจฒเฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจนเฉฑเจฒ เจ•เจพเจซเจผเฉ€ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฏเฉ‹เจ— เจนเจจ, เจชเจฐ เจฌเจนเฉเจค เจฌเจฆเจธเฉ‚เจฐเจค เจนเจจ. เจ…เจธเฉ€เจ‚ เจฎเจฆเจฆ เจฒเจˆ เจฎเจนเจพเจจ เจจเฉ‚เฉฐ เจชเฉเจ•เจพเจฐเจฆเฉ‡ เจนเจพเจ‚ 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

เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เฉ€เจคเฉ€ เจธเฉ‡เจตเจพ เจซเจพเจˆเจฒ เจฆเจพ เจœเจพเจฆเฉ‚ hostapd เจฆเฉ‡ เจจเจตเฉ‡เจ‚ เจŸเฉ€เจšเฉ‡ - wl0 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฒเจˆ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจฌเจพเจˆเจกเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจกเฉˆเจฎเจจ เจธเจผเฉเจฐเฉ‚ เจนเฉเฉฐเจฆเจพ เจนเฉˆ; เจœเจฆเฉ‹เจ‚ เจ‡เจน เจ…เจฒเฉ‹เจช เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ‡เจน เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจน เจธเจญ เจ”เจจเจฒเจพเจˆเจจ เจนเฉˆ - เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฐเฉ€เจฌเฉ‚เจŸ เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚. เจ‡เจน เจคเจ•เจจเฉ€เจ• เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจœเจฆเฉ‹เจ‚ เจ‡เฉฑเจ• 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 เจ—เฉ€เจ—เจพเจนเจฐเจŸเจœเจผ เจฆเฉ€ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ 'เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเจพ เจฆเฉ‚เจœเจพ เจตเจพเจˆ-เจซเจพเจˆ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเจพ เจเจ•เจธเฉˆเจธ เจชเฉเจ†เจ‡เฉฐเจŸเฅค เจจเฉ‡เฉœเจฒเฉ‡ เจธเจŸเจพเจฒ 'เจคเฉ‡ เจฎเฉˆเจ‚ เจชเจนเจฟเจฒเฉ€ เจจเจนเฉ€เจ‚ เจ–เจฐเฉ€เจฆเฉ€, เจชเจฐ เจฆเฉ‚เจœเฉ€ 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹