Banana Pi R64 เจฐเจพเจŠเจŸเจฐ - เจกเฉ‡เจฌเฉ€เจ…เจจ, เจตเจพเจ‡เจฐเจ—เจพเจฐเจก, RKN

Banana Pi 64 Raspberry Pi เจตเจฐเจ—เจพ เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ-เจฌเฉ‹เจฐเจก เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจนเฉˆ, เจชเจฐ เจ•เจˆ เจˆเจฅเจฐเจจเฉˆเฉฑเจŸ เจชเฉ‹เจฐเจŸเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ, เจœเฉ‹ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ†เจฎ-เจ‰เจฆเฉ‡เจธเจผ เจฒเฉ€เจจเจ•เจธ เจตเฉฐเจก เจฆเฉ‡ เจ…เจงเจพเจฐ เจคเฉ‡ เจ‡เฉฑเจ• เจฐเจพเจŠเจŸเจฐ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฃเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

Banana Pi R64 เจฐเจพเจŠเจŸเจฐ - เจกเฉ‡เจฌเฉ€เจ…เจจ, เจตเจพเจ‡เจฐเจ—เจพเจฐเจก, RKN

เจนเจพเจ‚, เจ“เจชเจจเจตเจฐเจŸ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจนเฉˆ, เจชเจฐ เจ‡เจธ เจฆเฉ€เจ†เจ‚ เจ†เจชเจฃเฉ€เจ†เจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจนเจจ, เจ‡เจธเจฆเฉ€ GUI เจ…เจคเฉ‡ CLI; เจ‡เฉฑเจฅเฉ‡ เจฎเจฟเจ•เจฐเฉ‹เจŸเจฟเจ• เจนเฉˆ, เจชเจฐ เจฆเฉเจฌเจพเจฐเจพ เจ‡เจธเจฆเจพ เจ†เจชเจฃเจพ GUI/CLI เจนเฉˆ, เจ…เจคเฉ‡ เจตเจพเจ‡เจฐเจ—เจพเจฐเจก เจฌเจพเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ... เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจฎเฉˆเจ‚ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฒเฉ€เจจเจ•เจธ เจฆเฉ‡ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจฐเจนเจฟเฉฐเจฆเจฟเจ†เจ‚, เจฒเจšเจ•เจฆเจพเจฐ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเจพเจฒเจพ เจฐเจพเจŠเจŸเจฐ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚, เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เฅค เจนเจฐ เจฆเจฟเจจ เจฆเฉ‡ เจจเจพเจฒ.

BPI, R64, เจธเจฟเฉฐเจ—เจฒ-เจฌเฉ‹เจฐเจก เจฆเฉ‡ เจจเจพเจ‚ เจนเฉ‡เจ  เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจฎเฉ‡เจฐเจพ เจฎเจคเจฒเจฌ เจ‡เจนเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ - เจ•เฉ‡เจฒเจพ เจชเจพเจˆ R64 เจธเจฟเฉฐเจ—เจฒ-เจฌเฉ‹เจฐเจก เจ–เฉเจฆเฅค

เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจฆเฉ€ เจšเฉ‹เจฃ. eMMC เจฐเจพเจนเฉ€เจ‚ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹

เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉเจจเจฐ เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจนเจพเจธเจฒ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจเจธเจฌเฉ€เจธเฉ€ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ…เจคเฉ‡ เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ R64 เจฆเฉ‡ เจจเจพเจฒ, เจ‡เจธเจฆเจพ เจฎเจคเจฒเจฌ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเฉ‹เจก เจ•เจฐเจจเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจจเจพเจฒ เจ‡เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ R64 เจ•เฉ‹เจฒ เจฎเจพเจจเฉ€เจŸเจฐ เจฒเจˆ เจชเฉ‹เจฐเจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, HDMI)เฅค เจœเจฆเฉ‹เจ‚ เจธเจญ เจ•เฉเจ เจฌเฉฐเจฆ เจนเฉ‹ เจ—เจฟเจ† - เจตเจพเจˆเจซเจพเจˆ, เจˆเจฅเจฐเจจเฉˆเฉฑเจŸ, เจฌเจฒเฉ‚เจŸเฉเฉฑเจฅ, USB, เจ†เจฆเจฟ เจจเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจฌเฉฐเจฆ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• UART เจนเฉˆ, เจœเจฟเจธ เจฆเฉ‡ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฐเจพเจนเฉ€เจ‚ เจคเฉเจธเฉ€เจ‚ เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ•เฉ€ เจ—เจฒเจค เจนเฉ‹เจ‡เจ† เจนเฉˆ, เจ…เจคเฉ‡ เจœเฉ‡ เจฒเฉ‹เฉœ เจนเฉ‹เจตเฉ‡ เจคเจพเจ‚ เจ•เฉฐเจธเฉ‹เจฒ เจคเฉ‹เจ‚ เจ•เฉเจ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจตเฉ€ เจšเจฒเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

USB-UART เจฐเจพเจนเฉ€เจ‚ R64 เจจเจพเจฒ เจœเฉเฉœเจจ เจฒเจˆ เจเจฒเจ—เฉ‹เจฐเจฟเจฆเจฎ:

  • เจ…เจธเฉ€เจ‚ USB-UART เจ•เฉ‡เจฌเจฒ (PL2303, เจธเฉ€เจฐเฉ€เจ…เจฒ-เจŸเฉ‚-USB) เจฒเจˆ เจฐเฉ‡เจกเฉ€เจ“ เจชเจพเจฐเจŸเจธ เจธเจŸเฉ‹เจฐ 'เจคเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจพเจ‚
  • เจ‡เฉฑเจ• USB เจธเจฟเจฐเฉ‡ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจจเจพเจฒ, เจ…เจคเฉ‡ เจฆเฉ‚เจœเฉ‡, UART เจจเฉ‚เฉฐ R64 เจจเจพเจฒ, เจšเจพเจฐ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจคเจฟเฉฐเจจ เจคเจพเจฐเจพเจ‚ เจจเจพเจฒ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจคเจธเจตเฉ€เจฐ เจตเจฟเฉฑเจš เจนเฉˆ, เจจเจพเจฒ เจ•เจจเฉˆเจ•เจŸ เจ•เจฐเฉ‹เฅค
  • เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจšเจฒเจพเจ“ sudo minicom

เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจœเจผเจฟเจ†เจฆเจพเจคเจฐ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจธเจฟเฉฐเจ—เจฒ-เจฌเฉ‹เจฐเจก เจ•เฉฐเจธเฉ‹เจฒ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจตเฉ‡เจ—เจพ = เจธเจซเจฒเจคเจพเฅค
เจคเฉเจธเฉ€เจ‚ เจนเฉ‹เจฐ เจตเฉ‡เจฐเจตเฉ‡ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ‡เฉฑเจฅเฉ‡.

Banana Pi R64 เจฐเจพเจŠเจŸเจฐ - เจกเฉ‡เจฌเฉ€เจ…เจจ, เจตเจพเจ‡เจฐเจ—เจพเจฐเจก, RKN

เจ…เจ—เจฒเจพ, เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ เจ‡เฉฑเจ• SD เจ•เจพเจฐเจก เจคเฉ‹เจ‚ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐเจจเจพ เจนเฉˆ: เจฆเฉเจ†เจฐเจพ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹ เจฒเจฟเฉฐเจ• เจจเฉ‚เฉฐ เจšเจฟเฉฑเจคเจฐ เจ…เจคเฉ‡ เจ‡เจธ เจจเฉ‚เฉฐ เจญเจฐเฉ‹:

unzip -p 2019-08-23-ubuntu-16.04-lite-preview-bpi-r64-sd-emmc.img.zip | pv | sudo dd of=/dev/mmcblk0 bs=10M status=noxfer

เจ…เจธเฉ€เจ‚ เจ•เจพเจฐเจก เจจเฉ‚เฉฐ R64 SD เจธเจฒเจพเจŸ เจตเจฟเฉฑเจš เจชเจพ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจ‡เจธเจจเฉ‚เฉฐ เจšเจพเจฒเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจ…เจคเฉ‡ เจ•เจจเฉˆเจ•เจŸ เจ•เฉ€เจคเฉ‡ เจ•เฉฐเจธเฉ‹เจฒ เจฒเฉ‹เจกเจฟเฉฐเจ— เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ uboot, เจซเจฟเจฐ เจธเจŸเฉˆเจ‚เจกเจฐเจก Linux เจฒเฉ‹เจกเจฟเฉฐเจ— เจฆเจพ เจจเจฟเจฐเฉ€เจ–เจฃ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจ‡เฉฑเจ• เจตเจฟเจ•เจฒเจชเจ• เจฌเฉ‚เจŸ เจตเจฟเจ•เจฒเจช เจ‡เฉฑเจ• 64Gb เจ•เจพเจฐเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ R8 เจตเจฟเฉฑเจš เจฌเจฃเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจธเจจเฉ‚เฉฐ eMMC เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจตเจฟเจ•เฉ€ เจฆเฉ€เจ†เจ‚ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ…เจธเฉ€เจ‚ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจกเจฟเจตเจพเจˆเจธ เจตเจฟเฉฑเจš เจ•เจพเจชเฉ€ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚
/dev/mmcblk0 เจคเฉ‹เจ‚ BPI, เจฐเฉ€เจฌเฉ‚เจŸ เจ•เจฐเฉ‹, SD เจ•เจพเจฐเจก เจนเจŸเจพเจ“, BPI เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจšเจพเจฒเฉ‚ เจ•เจฐเฉ‹... เจ…เจคเฉ‡ เจ‡เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพเฅค เจ…เฉฑเจ—เฉ‡ เจชเจฟเฉฑเจ›เฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจœเจพเจฃเจพ เจนเฉˆ Boot select เจชเจฐเฉ‡เจธเจผเจพเจจ เจจเจพ เจ•เจฐเฉ‹.

เจคเฉฑเจฅ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ BPI เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจซเจฒเฉˆเจธเจผ เจกเจฐเจพเจˆเจต เจคเฉ‹เจ‚ เจฌเฉ‚เจŸ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจซเจฒเฉˆเจ— เจธเฉˆเฉฑเจŸ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x00]
root@bpi-r64:~# ./mmc bootpart enable 1 1 /dev/mmcblk1
root@bpi-r64:~# ./mmc extcsd read /dev/mmcblk1 | grep 'PARTITION_CONFIG'
Boot configuration bytes [PARTITION_CONFIG: 0x48]

เจ…เฉฑเจ—เฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจฌเฉ‚เจŸ เจญเจพเจ— เจตเจฟเฉฑเจš เจชเฉเจฐเฉ€เจฒเฉ‹เจกเจฐ เจฒเจฟเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ

root@bpi-r64:~# echo 0 > /sys/block/mmcblk0boot0/force_ro 
root@bpi-r64:~# dd if=preloader_evb7622_64_foremmc.bin of=/dev/mmcblk0boot0

เจจเจฟเจฐเจฎเจพเจคเจพ R64 (เจšเฉ€เจจ) เจจเฉ‡ เจ‡เจธ เจฌเจพเจˆเจจเจฐเฉ€ เจจเฉ‚เฉฐ เจชเฉ‹เจธเจŸ เจ•เฉ€เจคเจพ เจ‡เฉฑเจฅเฉ‡. เจ‡เจน เจ•เฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจฃเจœเจพเจฃ เจนเฉˆ (เจ•เฉ‹เจˆ เจธเจฐเฉ‹เจค เจ•เฉ‹เจก เจจเจนเฉ€เจ‚ เจนเจจ), เจชเจฐ เจ‡เจน เจ‡เจธเจฆเฉ‡ เจฌเจฟเจจเจพเจ‚ เจตเฉ€ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค

เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจšเจฟเฉฑเจคเจฐ eMMC เจคเฉ‹เจ‚ เจฒเฉ‹เจก เจนเฉ‹เจฃเฉ‡ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจธเจ•เฉเจฐเฉˆเจš เจคเฉ‹เจ‚ เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฆเฉ‹เจตเจพเจ‚ เจฎเจพเจฎเจฒเจฟเจ†เจ‚ (SD/eMMC) เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐเจจ เจฒเจˆ เจ•เจˆ เจนเฉ‹เจฐ เจซเจพเจˆเจฒเจพเจ‚ (SD เจ•เจพเจฐเจก, ATF, u-boot เจฒเจˆ เจชเฉเจฐเฉ€เจฒเฉ‹เจกเจฐ) เจฒเจฟเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ‡เจน เจตเจฟเจธเจผเจพ เจ…เจœเฉ‡ เจตเฉ€ เจนเฉˆ เจตเจฟเจ•เจธเจค เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจธเจพเจกเฉ‡ เจฒเจˆ เจฎเฉเฉฑเจ– เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ เฉ€เจ• เจนเฉˆ.

เจนเฉเจฃ เจฎเฉˆเจ‚ เจˆเจเจฎเจเจฎเจธเฉ€ เจฆเฉเจ†เจฐเจพ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจ‡เจฎเจพเจจเจฆเจพเจฐ เจนเฉ‹เจฃ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ, เจ‡เฉฑเจ• SD เจ•เจพเจฐเจก เจ•เจพเจซเจผเฉ€ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจซเจผเฉ€ เจธเจฎเจพเจ‚ เจฌเจฟเจคเจพเจ‡เจ†, เจ‡เจธ เจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฐเจนเจฟเจฃ เจฆเจฟเจ“เฅค

เจ‡เฉฑเจ• เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎ เจฆเฉ€ เจšเฉ‹เจฃ. เจ†เจฐเจฎเจฌเฉ€เจ…เจจ

เจชเจนเจฟเจฒเจพ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจŸเจพเจธเจ• เจ‡เฉฑเจ• VPN เจฒเจพเจ‚เจš เจ•เจฐเจจเจพ เจนเฉˆ, เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจพเจ‡เจฐเจ—เจพเจฐเจกเฅค เจ‡เจน เจคเฉเจฐเฉฐเจค เจ–เฉ‹เจœเจฟเจ† เจ—เจฟเจ† เจธเฉ€ เจ•เจฟ เจ•เจฐเจจเจฒ เจตเจพเจฒเฉ‡ เจชเจพเจธเฉ‡ เจ‡เจน เจ‡เจ•เฉฑเจ เจพ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€ เจ…เจคเฉ‡ เจ•เฉ‹เจˆ เจธเจฟเจฐเจฒเฉ‡เจ– เจจเจนเฉ€เจ‚ เจธเจจ. เจฎเฉˆเจ‚ เจ•เจฐเจจเจฒ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‡เจ† เจ…เจคเฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ x86 เจจเจพเจฒ เจฎเฉ‡เจฐเฉ€ เจ†เจฆเจค เจนเฉˆ, DKMS เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เจฐเจจเจฒ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, arm64 'เจคเฉ‡ เจตเฉ€ เจ›เฉ‹เจŸเฉ€เจ†เจ‚ เจธเจนเฉ‚เจฒเจคเจพเจ‚ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ—เจคเฉ€ เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจนเฉˆเจฐเจพเจจ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ. เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ•เจฐเจจเจฒ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเฉ€, เจ†เจฆเจฟเฅค เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฐเจจเจฒ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจจเจฟเฉฑเจ˜เฉ‡ x86 เจฒเฉˆเจชเจŸเจพเจช 'เจคเฉ‡ เจตเจงเฉ€เจ† เจขเฉฐเจ— เจจเจพเจฒ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจซเจฟเจฐ เจธเจงเจพเจฐเจจ เจ•เจพเจชเฉ€, เจฐเฉ€เจฌเฉ‚เจŸ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เจฐเจ•เฉ‡ R64 เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจ• เจนเฉ‹เจฐ เจšเฉ€เจœเจผ เจฏเฉ‚เจœเจผเจฐเจธเจชเฉ‡เจธ เจนเจฟเฉฑเจธเจพ เจนเฉˆ. เจกเฉ‡เจฌเฉ€เจ…เจจ เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐเจจ เจฆเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจฎเจพเจฎเจฒเฉ‡ เจตเจฟเฉฑเจš, arm64 เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฒเจˆ เจธเจญ เจ•เฉเจ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ packages.debian.org 'เจคเฉ‡ เจนเฉˆ เจ…เจคเฉ‡ เจ•เฉเจ เจตเฉ€ เจฆเฉเจฌเจพเจฐเจพ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจธเจพเจˆเจ•เจฒ เจชเฉˆเจฆเจพ เจจเจพ เจ•เจฐเจจ เจฒเจˆ, เจ†เจˆ เจชเฉ‹เจฐเจŸเจก เจ…เจฐเจฎเจฌเฉ€เจ…เจจ BPI R64 'เจคเฉ‡.
เจœเจพเจ‚ เจ‡เจธ เจฆเฉ€ เจฌเจœเจพเจ, เจ‡เจน: เจฏเฉ‚เจœเจผเจฐเจธเจชเฉ‡เจธ เจนเจฟเฉฑเจธเจพ เจ†เจฐเจฎเจฌเฉ€เจ…เจจ เจนเฉˆ, เจ…เจคเฉ‡ เจ•เจฐเจจเจฒ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจคเฉ‹เจ‚ เจฒเจฟเจ† เจ—เจฟเจ† เจนเฉˆ Frank-เจ. เจจเจตเฉ€เจจเจคเจฎ เจšเจฟเฉฑเจคเจฐ เจจเฉ‚เฉฐ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ‡เฉฑเจฅเฉ‡.

R64 เจฆเฉ‡ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจนเจฟเฉฑเจธเฉ‡ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ 'เจคเฉ‡ เจธเจพเจฐเฉ€ เจ—เจคเฉ€เจตเจฟเจงเฉ€ 'เจคเฉ‡ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจซเฉ‹เจฐเจฎ. เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡, เจจเจฟเจฐเจฎเจพเจคเจพ เจ–เฉเจฆ เจ“เจชเจจเจตเจฐเจŸ เจฒเจˆ เจฐเจพเจŠเจŸเจฐ เจจเฉ‚เฉฐ เจชเฉเจฐเจธเจฟเฉฑเจง เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจœเจฐเจฎเจจเฉ€ เจคเฉ‹เจ‚ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจซเจฐเฉˆเจ‚เจ• เจฆเฉ€ เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจฒเจˆ เจงเฉฐเจจเจตเจพเจฆ, เจธเจพเจฐเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจœเจฒเจฆเฉ€ เจนเฉ€ เจกเฉ‡เจฌเฉ€เจ…เจจ เจฒเจˆ เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจ–เจคเจฎ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ. เจนเฉˆเจฐเจพเจจเฉ€ เจฆเฉ€ เจ—เฉฑเจฒ เจนเฉˆ เจ•เจฟ, เจซเจฐเฉˆเจ‚เจ• เจนเจฐ เจซเฉ‹เจฐเจฎ เจฅเฉเจฐเฉˆเจก เจตเจฟเฉฑเจš เจธเจฐเจ—เจฐเจฎ เจนเฉˆ.

เจตเจฐเจ•เจธเจชเฉ‡เจธ เจธเฉฐเจ—เจ เจจ: เจคเจพเจฐเจพเจ‚

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

เจชเจนเจฟเจฒเจพเจ‚, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเจธเจคเฉ€ USB-Wifi "เจธเฉ€เจŸเฉ€" เจ–เจฐเฉ€เจฆเจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ, เจ‡เจธเจจเฉ‚เฉฐ BPI 'เจคเฉ‡ เจ‡เฉฑเจ•เฉ‹ เจชเฉ‹เจฐเจŸ เจตเจฟเฉฑเจš เจชเจฒเฉฑเจ— เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจคเจพเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจญเฉเฉฑเจฒ เจœเจพเจ“เฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจธเจธเจคเจพ TP-LINK TL-WN725N USB 2.0 เจ–เจฐเฉ€เจฆเจฟเจ†, เจชเจฐ เจฌเจนเฉเจค เจœเจฒเจฆเฉ€ เจ‡เจน เจธเจชเฉฑเจธเจผเจŸ เจนเฉ‹ เจ—เจฟเจ† เจ•เจฟ เจ‡เจน เจฌเฉฐเจฆ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ: เจธเฉ€เจŸเฉ€ เจฆเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจฐเจจเจฒ เจกเจฐเจพเจˆเจตเจฐ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ, เจœเฉ‹ เจ•เจฟ, เจฌเฉ‡เจธเจผเจ•, เจ‰เฉฑเจฅเฉ‡ เจจเจนเฉ€เจ‚ เจธเฉ€. (เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจœเจผเจฐเฉ‚เจฐเฉ€ RTL8XXXU เจกเจฐเจพเจˆเจตเจฐ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ, เจชเจฐ เจ‡เจน เจ…เจœเฉ‡ เจตเฉ€ เจ…เจตเจฟเจตเจนเจพเจฐเจ• เจนเฉˆ)เฅค เจ…เจคเฉ‡ เจˆเจฅเจฐเจจเฉˆเฉฑเจŸ เจ•เฉ‡เจฌเจฒ เจจเฉ‡ เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ•เจฎเจฐเฉ‡ เจฆเฉ€ เจฆเจฟเฉฑเจ– เจจเฉ‚เฉฐ เจตเจฟเจ—เจพเฉœ เจฆเจฟเฉฑเจคเจพเฅค

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจฎเฉˆเจ‚ เจŸเฉ‡เจ‚เจกเจพ MW3 (เจตเจพเจˆเจซเจพเจˆ เจœเจพเจฒ เจธเจฟเจธเจŸเจฎ) เจฆเฉ€ เจฎเจฆเจฆ เจจเจพเจฒ เจ•เฉ‡เจฌเจฒ เจคเฉ‹เจ‚ เจ›เฉเจŸเจ•เจพเจฐเจพ เจชเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพ: เจฎเฉˆเจ‚ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ•เจฟเจŠเจฌ เจจเฉ‚เฉฐ เจŸเฉ‡เจฌเจฒ เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจฐเฉฑเจ–เจฟเจ† เจ…เจคเฉ‡ เจฌเฉ€เจชเฉ€เจ†เจˆ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเฉ€เจŸเจฐ-เจฒเฉฐเจฌเฉ€ เจˆเจฅเจฐเจจเฉˆเฉฑเจŸ เจ•เฉ‡เจฌเจฒ เจจเจพเจฒ เจฌเจพเจ…เจฆ เจฆเฉ‡ LAN เจชเฉ‹เจฐเจŸ เจจเจพเจฒ เจœเฉ‹เฉœเจฟเจ†เฅค เจธเจซเจฒเจคเจพเฅค

เจตเจพเจ‡เจฐเจ—เจพเจฐเจก, เจ†เจฐเจ•เฉ‡เจเจจ, เจฌเจฐเจก

เจ‡เฉฑเจ• เจšเฉ€เจœเจผ เจœเจฟเจธ เจฒเจˆ เจฎเฉˆเจ‚ Banana PI เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ RKN เจฆเฉเจ†เจฐเจพ เจฌเจฒเฉŒเจ• เจ•เฉ€เจคเฉ€เจ†เจ‚ เจธเจพเจˆเจŸเจพเจ‚ เจคเฉฑเจ• เจฎเฉเจซเจค เจชเจนเฉเฉฐเจš เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจนเฉˆ, เจคเจพเจ‚ เจœเฉ‹ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจ…เจคเฉ‡ เจธเจฒเฉˆเจ• เจ•เจพเจฒเจพเจ‚ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฃเฅค เจนเฉˆเจฌเจฐเฉ‡ 'เจคเฉ‡ เจฒเฉ‡เจ– เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ‡เจธ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจชเฉเจฐเจธเจคเจพเจตเจฟเจค เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ: เจตเจพเจฐ, ะดะฒะฐ, เจคเจฟเฉฐเจจ.

เจฎเฉˆเจ‚ Ansible เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจฟเจฒเจ•เฉเจฒ เจ‡เจธ เจนเฉฑเจฒ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเจพ: เจฒเจฟเฉฐเจ•.

VPS เจจเฉ‚เฉฐ เจ‰เจฌเฉฐเจŸเฉ‚ 18.04 เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจฏเฉ‚เจฐเจช เจตเจฟเฉฑเจš เจฆเฉ‹ เจนเฉ‹เจธเจŸเจฐเจพเจ‚ 'เจคเฉ‡ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€: เจเจฎเจพเจœเจผเจพเจจ เจ…เจคเฉ‡ เจกเจฟเจœเฉ€เจŸเจฒ เจ“เจธเจผเจจ.

เจ‡เจธ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‰เจชเจฐเฉ‹เจ•เจค เจ†เจฐเจฎเจฌเฉ€เจ…เจจ เจจเฉ‚เฉฐ R64 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจนเฉˆ, เจ‡เจน เจจเจพเจฎ เจฆเฉ‡ เจคเจนเจฟเจค ssh เจฆเฉเจ†เจฐเจพ เจชเจนเฉเฉฐเจšเจฏเฉ‹เจ— เจนเฉˆ hm-bananapi-1 เจ…เจคเฉ‡ เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ เจชเจนเฉเฉฐเจš เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจฒเจ—เจพเจคเจพเจฐ เจœเจตเจพเจฌเจฆเฉ‡เจน, เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ R64 'เจคเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจ–เฉเจฆ เจฒเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚:

# ะทะฐะฒะธัะธะผะพัั‚ะธ ะดะปั Debian-based ะดะธัั‚ั€ะธะฑัƒั‚ะธะฒะพะฒ
$ sudo apt install --no-install-recommends python3-pip python3-setuptools python3-wheel git
$ which pip3
/usr/bin/pip3

# ansible ั pybook, ัะบั€ะธะฟั‚ะพะฒะฐะฝะธะต ะฝะฐ Python
$ pip3 install https://github.com/muravjov/ansible/archive/ansible-2.10.0.dev0-pybook2019.tar.gz

$ export PATH=~/.local/bin:$PATH
$ which ansible-playbook
/home/sa/.local/bin/ansible-playbook

$ git clone https://github.com/muravjov/ansible-bpi-r64.git
$ cd ansible-bpi-r64

$ git submodule update --init

# ัƒะฑะตะถะดะฐะตะผัั ะฒ ะดะพัั‚ัƒะฟะฝะพัั‚ะธ hm-bananapi-1
$ ssh hm-bananapi-1 which python3
/usr/bin/python3

# ัะพะฑัั‚ะฒะตะฝะฝะพ ัƒัั‚ะฐะฝะพะฒะบะฐ
$ ansible-playbook ./router.py -l hm-bananapi-1

เจ…เฉฑเจ—เฉ‡, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจพเจกเฉ‡ VPN เจจเฉ‚เฉฐ VPS เจตเจฟเฉฑเจš เจ‰เจธเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

ansible-playbook ./router.py -l current-vpn

เจ‡เฉฑเจฅเฉ‡ เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸ เจนเจฎเฉ‡เจธเจผเจพ เจฎเฉŒเจœเฉ‚เจฆเจพ-เจตเฉ€เจชเฉ€เจเจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เจธเจฒ VPS เจจเจพเจฎ เจ‡เฉฑเจ• เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจตเจฟเฉฑเจš เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ (เจ‡เจธ เจ•เฉ‡เจธ เจตเจฟเฉฑเจš เจ‡เจน เจชเฉˆเจฐเจฟเจธ-เจตเฉ€เจชเฉ€เจเจจ-เจเจ•เจธ-เจŸเฉ€2-เจฎเจพเจˆเจ•เฉเจฐเฉ‹-1 เจนเฉˆ):

$ grep current_vpn group_vars/all 
current_vpn: paris-vpn-aws-t2-micro-1
#current_vpn: frankfurt-vpn-d0-starter-1

เจ“เจน เจนเจพเจ‚, เจ‡เจนเจจเจพเจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจญเฉ‡เจฆ (เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจพเจ‡เจฐเจ—เจพเจฐเจก เจ•เฉเฉฐเจœเฉ€เจ†เจ‚) เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ ./secrets, เจกเจพเจ‡เจฐเฉˆเจ•เจŸเจฐเฉ€ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจ‡เจธ เจฒเจˆ.

เจชเจพเจˆเจฅเจจ เจตเจฟเฉฑเจš เจœเจตเจพเจฌเจฆเฉ‡เจน เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ

เจคเฉเจธเฉ€เจ‚ เจจเฉ‹เจŸ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ YAML เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจนเฉ‹เจฃ เจฆเฉ€ เจฌเจœเจพเจ, เจœเจตเจพเจฌเฉ€ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจชเจพเจˆเจฅเจจ เจธเจ•เฉเจฐเจฟเจชเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจเจจเจ•เฉ‹เจก เจ•เฉ€เจคเฉ€เจ†เจ‚ เจ—เจˆเจ†เจ‚ เจนเจจเฅค เจคเฉเจฒเจจเจพ เจ•เจฐเจจ เจฒเจˆ, เจฌเจฐเจก เจกเฉˆเจฎเจจ เจจเฉ‚เฉฐ เจ†เจฎ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจฏเฉ‹เจ— เจ•เจฐเจจเจพ เจนเฉˆ:

- name: start bird
  systemd:
    name: bird
    state: started
    enabled: yes

เจ…เจคเฉ‡ เจชเจพเจˆเจฅเจจ เจฆเฉเจ†เจฐเจพ เจ…เจœเจฟเจนเจพ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ:

with mapping:
    append("name", "start bird")
    with mapping("systemd"):
        append("name",  "bird")
        append("state", "started")
        append("enabled", "yes")

เจชเจพเจ‡เจฅเจจ เจตเจฟเฉฑเจš เจœเจตเจพเจฌเจฆเฉ‡เจน เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจฃเจพ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ‹เจก เจฆเฉ€ เจฎเฉเฉœ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ†เจฎ-เจ‰เจฆเฉ‡เจธเจผ เจตเจพเจฒเฉ€ เจญเจพเจธเจผเจพ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจธเฉฐเจญเจพเจตเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจ–เฉ‹เจฒเฉเจนเจฆเจพ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, R64 เจ…เจคเฉ‡ VPS 'เจคเฉ‡ เจฌเจฐเจก เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ:

install_bird("router/bird.conf.j2")
install_bird("vpn/bird.conf.j2")

เจซเฉฐเจ•เจธเจผเจจ เจ•เฉ‹เจก เจตเฉ‡เจ–เฉ‹ install_bird().

เจ‡เจธ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจจเฉ‚เฉฐ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ pybook เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจ‡เฉฑเจฅเฉ‡. เจชเจพเจˆเจฌเฉเฉฑเจ• 'เจคเฉ‡ เจ…เจœเฉ‡ เจ•เฉ‹เจˆ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจชเจฐ เจฎเฉˆเจ‚ เจ‡เจธ เจฎเฉเฉฑเจฆเฉ‡ เจจเฉ‚เฉฐ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš เจนเฉฑเจฒ เจ•เจฐเจพเจ‚เจ—เจพเฅค

เจ‰เจน เจ•เฉ€ เจธเฉ‹เจšเจฆเจพ เจนเฉˆ เจ…เฉฑเจชเจธเจŸเจฐเฉ€เจฎ เจ‡เจธ เจฎเฉŒเจ•เฉ‡ 'เจคเฉ‡.

เจจเจฟเจ—เจฐเจพเจจเฉ€. เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ

เจ•เฉเฉฑเจฒ: เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจฒเจฟเฉฐเจ•เจกเจ‡เจจ เจ…เจคเฉ‡ เจชเฉ‹เจฐเจจเจนเจฌ เจตเฉ€, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจจเฉเจญเจต เจ เฉ€เจ• เจนเฉˆเฅค เจชเจฐ เจšเฉ€เจจเฉ€ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจธเจฎเฉ‡เจค เจธเจญ เจ•เฉเจ เจŸเฉเฉฑเจŸ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจ•เจฐเจจเจฒ เจ…เฉฑเจชเจกเฉ‡เจŸ เจตเฉ€ เจฆเจฟเจฒเจšเจธเจช เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ: เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจ•เจฐเจจเจฒ 5.4 => 5.6 เจจเฉ‚เฉฐ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจธเฉ€, เจ–เฉˆเจฐ, เจตเจพเจ‡เจฐเจ—เจพเจฐเจก เจฌเจพเจ•เจธ เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจนเฉˆ, เจชเฉˆเจš เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจˆ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚... เจœเจฒเจฆเฉ€ เจคเฉ‹เจ‚ เจœเจฒเจฆเฉ€ เจ‡เจน เจจเจนเฉ€เจ‚ เจ•เจฟเจนเจพ เจ—เจฟเจ†: เจฎเฉˆเจ‚ เจฌเฉœเฉ€ เจฎเจฟเจนเจจเจค เจจเจพเจฒ 5.4 เจคเฉ‹เจ‚ เจชเฉˆเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เฉ€เจคเจพ 5.6 เจคเฉฑเจ•, เจ•เจฐเจจเจฒ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจ—เจฟเจ†, VPS เจฒเจˆ เจธเฉเจฐเฉฐเจ— เจชเจฟเฉฐเจ— เจ•เฉ€เจคเฉ€ เจ—เจˆ, เจชเจฐ เจชเฉฐเจ›เฉ€ "BGP Error" เจ—เจฒเจคเฉ€ เจจเจพเจฒ เจœเฉเฉœ เจจเจนเฉ€เจ‚ เจธเจ•เจฆเจพ ... "เจฎเฉˆเจ‚ เจกเจฐเจพเจ‰เจฃ เจตเจฟเฉฑเจš เจตเจพเจชเจธ เจ† เจ—เจฟเจ†" (c) 5.4 เจคเฉฑเจ•; TODO เจตเจฟเฉฑเจš 5.6 เจคเฉฑเจ• เจœเจพเจฃ เจจเฉ‚เฉฐ เจฎเฉเจฒเจคเจตเฉ€ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจธเฉ€เฅค

เจ‡เจธ เจฒเจˆ, เจฐเจพเจŠเจŸเจฐ เจ…เจคเฉ‡ VPS เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฎเฉˆเจ‚ เจจเจฟเจ—เจฐเจพเจจเฉ€ (x86 Ubuntu 18.04 'เจคเฉ‡) เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€, เจœเฉ‹ เจ•เจฟ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจญเจพเจ—เจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจนเฉˆ:

  • prometheus, alertmanager, blackbox_exporter - เจธเจพเจฐเฉ‡ เจกเฉŒเจ•เจฐ เจตเจฟเฉฑเจš
  • เจฎเฉˆเจŸเจฒเจฎเฉˆเจŸเจœเจผ/เจ…เจฒเจฐเจŸเจฎเฉˆเจจเฉ‡เจœเจฐ-เจฌเฉ‹เจŸ เจฌเฉ‹เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจšเฉˆเจจเจฒ เจจเฉ‚เฉฐ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚ เจญเฉ‡เจœเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ - เจกเฉŒเจ•เจฐ เจตเจฟเฉฑเจš เจตเฉ€
  • เจฌเฉ‹เจŸ เจฒเจˆ tor, เจคเจพเจ‚ เจœเฉ‹ เจฌเฉ‹เจŸ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจšเฉ‡เจคเจพเจตเจจเฉ€ เจฆเฉ‡ เจธเจ•เฉ‡ เจœเจฆเฉ‹เจ‚ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจนเฉ‹เจตเฉ‡, เจชเจฐ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจ…เจœเฉ‡ เจตเฉ€ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฌเฉ‹เจŸ เจ–เฉเจฆ เจ•เจจเฉˆเจ•เจŸ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ
  • เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚: NodeVPNtroubles (VPS เจจเฉ‚เฉฐ เจ•เฉ‹เจˆ เจชเจฟเฉฐเจ— เจจเจนเฉ€เจ‚), BirdVPNtroubles (เจ•เฉ‹เจˆ เจฌเจฐเจก เจธเฉˆเจธเจผเจจ เจจเจนเฉ€เจ‚), เจเจ‚เจŸเฉ€เจซเจฟเจฒเจŸเจฐ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจŸเฉเจฐเจฌเจฒเจœเจผ (เจฌเจฒเจพเจ• เจ•เฉ€เจคเฉ‡ IP เจเจกเจฐเฉˆเฉฑเจธ เจฒเฉ‹เจก เจ•เจฐเจจ เจตเจฟเฉฑเจš เจคเจฐเฉเฉฑเจŸเฉ€), เจธเจพเจˆเจŸ เจŸเฉเจฐเจฌเจฒเจœเจผ (เจฎเฉฐเจฆเจญเจพเจ—เฉ€ เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจ‰เจชเจฒเจฌเจง เจจเจนเฉ€เจ‚ เจนเฉˆ)
  • เจธเจฟเจธเจŸเจฎ เจšเฉ‡เจคเจพเจตเจจเฉ€เจ†เจ‚, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, HostGrowingDiskReadLatency (เจธเจธเจคเฉ‡ SD เจ•เจพเจฐเจก เจชเฉœเฉเจนเจจเจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจฌเจฃ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)

เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ‰เจฆเจพเจนเจฐเจจ:

ansible-playbook ./monitoring.py -l monitoring-preprod

เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ เจฒเจˆ เจ†เจŸเฉ‹ เจกเจฟเจธเจ•เจตเจฐเฉ€ เจจเฉ‚เฉฐ /etc/prometheus/auto_http เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจ‡เฉฑเจ• เจนเฉ‹เจธเจŸ เจจเฉ‚เฉฐ เจฎเจพเจจเฉ€เจŸเจฐเจฟเฉฐเจ— เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจ•เจฐเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ (เจฎเฉ‡เจœเจผเจฌเจพเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจจเจฟเจ—เจฐเจพเจจเฉ€ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ):

bash << 'EOF'
HOSTNAME=hm-bananapi-1
IP_ADDRESS=`ssh -G $HOSTNAME | awk '/^hostname / { print $2 }'`

ssh monitoring-preprod sudo sponge /etc/prometheus/auto_http/$HOSTNAME.json << EOF2
[
  {
    "targets": ["$IP_ADDRESS:9100"],
    "labels": {
      "env": "prod",
      "hostname": "$HOSTNAME"
    }
  }
]
EOF2
EOF

TODO: 2 เจชเฉเจฐเจฆเจพเจคเจพ, 2 BPI, เจ•เฉ‹เจˆ เจตเฉ€ เจ•เจพเจธเจŸ เจซเฉ‡เจฒเจ“เจตเจฐ

เจนเจฐ เจšเฉ€เจœเจผ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจฎเฉˆเจ‚ เจฆเฉ‹ เจชเฉเจฐเจฆเจพเจคเจพเจตเจพเจ‚ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ€ เจฏเฉ‹เจœเจจเจพ เจฌเจฃเจพเจˆ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจœเจพเจฐเฉ€ เจฐเฉฑเจ–เฉ‡, เจญเจพเจตเฉ‡เจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเจฆเจพเจคเจพ เจจเฉ‚เฉฐ เจจเฉˆเจŸเจตเจฐเจ• เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจธเจจ, เจœเจพเจ‚ เจ‰เจน เจ‡เฉฐเจŸเจฐเจจเฉˆเจŸ, เจ†เจฆเจฟ, เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจฎเจจเฉเฉฑเจ–เฉ€ เจ•เจพเจฐเจ•เจพเจ‚ เจฒเจˆ เจญเฉเจ—เจคเจพเจจ เจ•เจฐเจจเจพ เจญเฉเฉฑเจฒ เจ—เจ เจธเจจ.

เจฎเจฒเจŸเฉ€-เจตเฉˆเจจ เจฆเฉ‡ เจตเจฟเจธเจผเฉ‡ 'เจคเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจ‰เฉฑเจจเจค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ…เจจเฉเจญเจต เจฆเจพ เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ‡เฉฑเจฅเฉ‡ Openwrt เจ…เจงเฉ€เจจ Mwan3 เจธเจฟเจธเจŸเจฎ เจฒเจˆเฅค เจ‡เจธ เจนเฉฑเจฒ เจตเจฟเฉฑเจš เจญเจฐเจชเฉ‚เจฐ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพ เจนเฉˆ, เจชเจฐ เจฎเจฒเจŸเฉ€-เจตเฉˆเจจ เจฒเจˆ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฅเจพเจชเจค เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃเจพ เจ•เจพเจซเจผเฉ€ เจฎเฉเจธเจผเจ•เจฒ เจนเฉˆเฅค เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ: เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจตเจพเจฐ เจตเจฟเฉฑเจš เจฆเฉ‹ IP เจชเจคเจฟเจ†เจ‚ เจคเฉ‹เจ‚ เจ•เฉเจ เจธเจพเจˆเจŸเจพเจ‚ 'เจคเฉ‡ เจ†เจ‰เจ‚เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจน เจ‡เจธเจจเฉ‚เฉฐ เจชเจธเฉฐเจฆ เจจเจพ เจ•เจฐเจจ, เจ‰เจน เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจฌเฉฐเจฆ เจ•เจฐ เจฆเฉ‡เจฃเจ—เฉ‡ => "เจ‡เฉฐเจŸเจฐเจจเฉˆเฉฑเจŸ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค"

เจ‡เจธ เจคเจœเจผเจฐเจฌเฉ‡ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, เจฎเฉˆเจ‚ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจ•เจฟ เจฎเจฒเจŸเฉ€เจนเฉ‹เจฎเจฟเฉฐเจ— เจ…เจœเฉ‡ เจ‡เฉฑเจ• เจคเจฐเจœเฉ€เจน เจจเจนเฉ€เจ‚ เจนเฉˆ, เจธเจฟเจฐเจซ เจซเฉ‡เจฒเจ“เจตเจฐ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ…เจœเจฟเจนเจพ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจฒเฉ€เจจเจ•เจธ เจฆเฉ‡ เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจนเจฐ เจšเฉ€เจœเจผ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ:

ip route add default 
    nexthop via 192.168.1.1 weight 10 
    nexthop via 192.168.2.1 weight 5

เจ‡เจธ เจฒเจˆ, เจ…เจธเจซเจฒเจคเจพ เจฆเฉ‡ เจ‡เฉฑเจ• เจฌเจฟเฉฐเจฆเฉ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ 2 BPIs เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจพเจ‚, เจนเจฐเฉ‡เจ• เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉเจฐเจฆเจพเจคเจพ เจจเจพเจฒ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจชเฉฐเจ›เฉ€/OSPF เจฆเฉเจ†เจฐเจพ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจฐเฉ‚เจŸเจฟเฉฐเจ— เจจเจพเจฒ เจ•เจจเฉˆเจ•เจธเจผเจจ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚เฅค

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

เจ‡เจน เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจ…เจœเฉ‡ เจฒเจพเจ—เฉ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจงเฉ‹เจ–เฉ‡เจฌเจพเจœเจผ เจ•เฉ‹เจฐเฉ‹เจจเจพเจตเจพเจ‡เจฐเจธ เจจเฉ‡ เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจšเจพเจฒ เจ–เฉ‡เจกเฉ€ เจนเฉˆ (เจธเจญ เจ•เฉเจ Aliexpress เจคเฉ‹เจ‚ เจจเจนเฉ€เจ‚ เจ†เจ‡เจ†; เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ”เจจเจฒเจพเจˆเจจ เจธเจŸเฉ‹เจฐ, Layta, เจจเฉ‡ เจ‡เฉฑเจ• เจนเจซเจผเจคเฉ‡ เจตเจฟเฉฑเจš เจกเจฟเจฒเฉ€เจตเจฐ เจ•เจฐเจจ เจฆเจพ เจตเจพเจ…เจฆเจพ เจ•เฉ€เจคเจพ เจธเฉ€, เจชเจฐ เจ‡เฉฑเจ• เจฎเจนเฉ€เจจเฉ‡ เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเจฎเจพเจ‚ เจฒเฉฐเจ˜ เจ—เจฟเจ† เจนเฉˆ; เจฆเฉ‚เจœเฉ‡ เจชเฉเจฐเจฆเจพเจคเจพ เจ•เฉ‹เจฒ เจธเจฎเจพเจ‚ เจจเจนเฉ€เจ‚ เจนเฉˆ เจ•เฉเจ†เจฐเฉฐเจŸเฉ€เจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉ‡เจฌเจฒ เจจเฉ‚เฉฐ เจตเจงเจพเจ‰เจฃ เจฒเจˆ, เจธเจฟเจฐเจซ เจ•เฉ‡เจฌเจฒ เจฒเจˆ เจ•เฉฐเจง เจตเจฟเฉฑเจš เจกเฉเจฐเจฟเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฎเฉ‹เจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ•เจพเจฎเจฏเจพเจฌ เจฐเจฟเจนเจพ)เฅค

R64 เจฆเจพ เจ†เจฐเจกเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเฉ€เจ

เจฌเฉ‹เจฐเจก เจ–เฉเจฆ เจธเจฐเจ•เจพเจฐเฉ€ เจธเจŸเฉ‹เจฐ เจตเจฟเฉฑเจš เจนเฉˆ SinoVoip.
เจคเฉเจฐเฉฐเจค เจ†เจฐเจกเจฐ เจ•เจฐเจจเจพ เจตเฉ€ เจฌเจฟเจนเจคเจฐ เจนเฉˆ:

  • เจชเฉ‹เจธเจผเจฃ + EU เจœเจพเจ‚ US เจชเจฒเฉฑเจ— เจธเจŸเฉˆเจ‚เจกเจฐเจก เจจเฉ‚เฉฐ เจธเฉ‚เจšเจฟเจค เจ•เจฐเฉ‹
  • เจนเฉ€เจŸ เจธเจฟเฉฐเจ•: เจฐเฉ‡เจกเฉ€เจเจŸเจฐ/เจชเฉฑเจ–เฉ‡; เจ•เจฟเจ‰เจ‚เจ•เจฟ CPU เจ…เจคเฉ‡ เจธเจตเจฟเฉฑเจš เจšเจฟเฉฑเจช เจฆเฉ‹เจตเฉ‡เจ‚ เจนเฉ€ เจ—เจฐเจฎ เจนเฉ‹ เจฐเจนเฉ‡ เจนเจจ
  • เจตเจพเจˆเจซเจพเจˆ เจเจ‚เจŸเฉ€เจจเจพ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ

เจ‡เฉฑเจ• เจธเฉ‚เจ–เจฎเจคเจพ เจนเฉˆ - เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจ•เฉ€เจฎเจค เจ•เฉเจ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจ…เจงเจฟเจ•เจพเจฐเจค เจธเจŸเฉ‹เจฐ เจตเจฟเฉฑเจš เจจเจพเจ•เจพเจซเจผเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เฉฑเจšเฉ€ เจนเฉ‹ เจ—เจˆ เจนเฉˆ. เจฎเฉˆเจจเฉ‡เจœเจฐ เจœเฉ‚เจกเฉ€ เจนเฉเจ†เจ‚เจ— เจจเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจ เจฆเจฟเจตเจพเจ‡เจ† เจ•เจฟ เจ•เฉ‹เจˆ เจ—เจฒเจคเฉ€ เจจเจนเฉ€เจ‚ เจธเฉ€, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ $5 เจฒเจˆ ePacket เจฆเฉ€ เจšเฉ‹เจฃ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจฎเฉˆเจ‚ เจฆเฉ‡เจ–เจฟเจ† เจ•เจฟ เจฐเฉ‚เจธ เจฒเจˆ > $33 เจฒเจˆ เจธเจฟเจฐเจซ EMS เจนเฉˆเฅค เจจเจพเจœเจผเฉเจ•, เจชเจฐ เจจเจพเจœเจผเฉเจ• เจจเจนเฉ€เจ‚เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจฒเจˆ เจ•เฉ‹เจˆ เจนเฉ‹เจฐ เจฆเฉ‡เจธเจผ เจšเฉเจฃเจฆเฉ‡ เจนเฉ‹ (เจฎเฉˆเจ‚ เจธเจพเจฐเฉ‡ เจฎเจนเจพเจ‚เจฆเฉ€เจชเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจฟเจ†), เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจฆเฉ€ เจ•เฉ€เจฎเจค ~ $5 เจนเฉ‹เจตเฉ‡เจ—เฉ€เฅค เจฐเฉ‚เจธเฉ‹เจซเฉ‹เจฌเจธ?... เจชเจฐ เจซเจฟเจฐ เจฎเฉˆเจ‚ เจฆเฉ‡เจ–เจฟเจ† เจ•เจฟ เจซเจฐเจพเจ‚เจธ เจฒเจˆ เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจ•เฉ€เจฎเจค เจตเฉ€ ~30$ เจนเฉˆ, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจธเจผเจพเจ‚เจค เจนเฉ‹ เจ—เจฟเจ†เฅค

เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚, เจœเฉ‚เจกเฉ€ เจจเฉ‡ เจ†เจฐเจกเจฐ เจฆเฉ‡เจฃ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เฉ€เจคเฉ€, เจชเจฐ เจญเฉเจ—เจคเจพเจจ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ (เจธเฉฐเจ•เฉ‡เจค: เจ•เจพเจฐเจก 'เจคเฉ‡ เจ˜เฉฑเจŸ เจชเจพเจ“ เจคเจพเจ‚ เจœเฉ‹ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจญเฉเจ—เจคเจพเจจ เจจเจพ เจนเฉ‹เจตเฉ‡); เจ‰เจธเจจเฉ‚เฉฐ เจฒเจฟเจ–เฉ‹ เจ…เจคเฉ‡ เจ‰เจน เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจ•เฉ€เจฎเจค เจจเฉ‚เฉฐ เจ†เจฎ เจคเฉฑเจ• เจ˜เจŸเจพ เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค เจธเจซเจฒเจคเจพเฅค

เจฎเฉเฉฑเจฆเฉ‡

เจ…เจœเฉ‡ เจตเฉ€ เจธเจญ เจ•เฉเจ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค

เจ‰เจคเจชเจพเจฆเจ•เจคเจพ

Ansible=Python เจ•เจฎเจพเจ‚เจกเจพเจ‚ 20-30 เจธเจ•เจฟเฉฐเจŸเจพเจ‚ เจฒเจˆ เจนเฉŒเจฒเฉ€-เจนเฉŒเจฒเฉ€ เจšเจฒเจพเจˆเจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ‡เฉฑเจฅเฉ‹เจ‚ เจคเฉฑเจ• เจ•เจฟ เจจเจฟเจธเจผเจ•เจฟเจฐเจฟเจ† เจตเฉ€; x86 เจฒเฉˆเจชเจŸเจพเจช 'เจคเฉ‡ เจตเฉฑเจง เจฒเฉฐเจฌเจพ เจคเฉ€เจฌเจฐเจคเจพ เจฆเจพ เจ†เจฐเจกเจฐเฅค เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจชเจนเจฟเจฒเจพเจ‚ เจ‰เจน เจฌเจนเฉเจค เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจšเจฒเจพเจ เจœเจพเจ‚เจฆเฉ‡ เจนเจจ, ~ 3 เจธเจ•เจฟเฉฐเจŸ, เจซเจฟเจฐ เจ‰เจน เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจนเฉŒเจฒเฉ€ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค เจ‡เจน CPU เจนเฉ€เจŸเจฟเฉฐเจ— เจ…เฉฑเจช (เจฅเจฐเฉ‹เจŸเจฒเจฟเฉฐเจ—) เจฆเฉ‡ เจ•เจพเจฐเจจ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ—เฉ‹ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจตเฉ€ เจฒเฉฐเจฎเจพ เจธเจฎเจพเจ‚ เจฒเฉฑเจ—เจฆเจพ เจนเฉˆ:

# ะทะฐะฟั€ะพั ะผะตั‚ั€ะธะบ ะดะปั ะฟั€ะพะผะตั‚ะตั ะธะท node_exporter ะฝะฐ Go
$ time curl -s http://172.30.1.1:9100/metrics > /dev/null

real    0m6,118s
user    0m0,005s
sys     0m0,009s

# ะพะดะฝะฐะบะพ ั‚ะตะผะฟะตั€ะฐั‚ัƒั€ะฐ 51 ะณั€ะฐะดัƒั, ะฝะต ั‚ะฐะบ ะธ ะผะฝะพะณะพ
sa@bananapir64:~$ cat /sys/devices/virtual/thermal/thermal_zone0/temp
51700

เจซเจพเจˆ

Wifi เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ†เจฐเจฎเจฌเฉ€เจ…เจจ 'เจคเฉ‡ เจ‡เจน เจฒเจ—เจญเจ— เจ‡เฉฑเจ• เจฆเจฟเจจ เจฌเจพเจ…เจฆ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจฒเจฟเจ–เจฆเจพ เจนเฉˆ:

sa@bananapir64:~$ dmesg | grep -E 'mt7622_wmac.*timeout'
[470303.802539] mt7622_wmac 18000000.wmac: Message 38 (seq 3) timeout
[470314.042508] mt7622_wmac 18000000.wmac: Message 50 (seq 4) timeout
...

เจธเจฟเจฐเจซ เจ‡เฉฑเจ• เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจฎเจฆเจฆ เจ•เจฐเจฆเจพ เจนเฉˆ. เจธเจพเจจเฉ‚เฉฐ เจ…เฉฑเจ—เฉ‡ เจตเจงเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจธเฉเจฒเจเจพเจจเจพ.

เจˆเจฅเจฐเจจเฉˆเฉฑเจŸ

เจˆเจฅเจฐเจจเฉˆเฉฑเจŸ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ, เจชเจฐ R64 เจคเฉ‹เจ‚ ~XNUMX เจ˜เฉฐเจŸเจฟเจ†เจ‚ เจฌเจพเจ…เจฆ เจชเฉˆเจ•เฉ‡เจŸ (DHCP) เจ†เจ‰เจฃเฉ‡ เจฌเฉฐเจฆ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค
เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเฉ‚เฉฐ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจ•เจฐเจจเจพ เจฎเจฆเจฆ เจ•เจฐเจฆเจพ เจนเฉˆ:

ifdown br0; sleep 30; ifup br0

เจกเจฐเจพเจˆเจตเจฐ เจจเจตเจพเจ‚ เจนเฉˆ, เจ‡เจธ เจจเฉ‚เฉฐ เจ•เจฐเจจเจฒ เจตเจฟเฉฑเจš เจ…เจœเฉ‡ เจคเฉฑเจ• เจธเจตเฉ€เจ•เจพเจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ‡เจน เจšเฉ€เจจเฉ€ เจฒเฉˆเจ‚เจกเจจ เจšเจพเจ“ เจนเฉˆ เจ‡เจธ เจจเฉ‚เฉฐ เจ–เจคเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ.

เจธเจฐเฉ‹เจค: www.habr.com

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