ืืขืฉืึทืก ืงืึทืจืึทื ืืื, ืืื ืืื ืืขืืืขื ืืขืคึฟืื ื ืฆื ืึธื ืืืื ื ืขืืขื ืืื ืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืึท ืืืื ืคึฟืึทืจ ืืขืกืื ืื ืืืืงืืึทื ืคืื ืืืข ืืึธืืขืืก ืคึฟืึทืจ ืขืืืขืืข ืกืขืืืึทืืขืจ ืึธืคึผืขืจืืืืขืจื.
ืืขืจ ืงืื ื ืืื ืืขืืืืื ืึธืคึผืฉืึทืฆื ืื ืืืืงืืึทื ืคืื ืคืึทืจืฉืืื ืืขืืขืงืึธื ืึธืคึผืขืจืืืืขืจื ืืื ืคืึทืจืฉืืืขื ืข ืืืฉืืึทืืจืึทืคืืงืึทื ืืึธืืงืืืฉืึทื ื, ืึผืื ืฆื ืงืขื ืขื ืคึฟืึทืจืฉืืืื ืืืึธืก ืกืขืืืึทืืขืจ ืึธืคึผืขืจืึทืืึธืจ ืืื ืืขืจืกื ืึธืคึผืืืืึทื ืคึฟืึทืจ ืืื ืืืขื ืื ืกืืึธืืื ื ืืืกืจืืื ื ืืฆื ืึท ืืืข ืงืฉืจ, ืืืฉื, ืคึฟืึทืจ ืืืืืขื ืืจืึธืืงืึทืกืฅ. ืืืฒืืฆืฒืื ืง ืื ื ืืข ื ืืขืืื ื ืืฒื ื ื ื ืคืจืืืืข ื ืฐ ื ืืฒื ืคื ื ืื ื ืืืืื , ื ื ืืฒืขืจ ืข ืขืงืืืืคึผืืขื ื .
ืืื ืืืขื ืืึธืื ืืืืื ืึทื ืื ืึทืจืืขื ืืื ื ืืฉื ืื ืกืืืคึผืืึทืกื ืืื ืืขืจืกื ืืืืกื-ืืื ืืขื ืกืืืืข; ืืื ืืืขื ืืึธืื ืืืจ ืืืึธืก ืคึผืจืึธืืืขืืก ืืื ืืขืคึผืืึธื ืืขืจื ืืื ืืื ืืื ืกืึทืืืื ืืื. ืึทืืื, ืืึธืื ืก ืืืื.
ืืึธื
ืืขืกืื ืื ืืืืงืืึทื ืคืื ืึท ืืืข ืคึฟืึทืจืืื ืืื ื ืืื ืึท ืืืืขืจ ืงืึธืืคึผืืืฆืืจื ืขื ืื: ืืืจ ืืึทืจืคึฟื ืฆื ืงืืืึทืื ืื ืจืขืื ืืืกืจืืื ืืื ืืขืืฉืขืจืืึทื ื ืืขืื ืืง, ืืื ืืืื ืืึธืื ืึท ืืื ืคืืจืฉืืื ื ืคืื ืื ืืึทืคึผืึทืืึทืืืฉื ืืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื ืกืขืืืึทืืขืจ ื ืขืฅ. ืคึผืืืก, ืื ืืืืงืืึทื ืงืขื ืขื ืืืื ืื ืคืืืึทื ืกื ืืืจื ืขืืืขืืข ืกืืืืช: ืื ื ืืืขืจ ืคืื ืืืื ืขื ืื ืืืืฃ ืึท ืฆืขื, ืืืขืืขืจ ืื ืึธืื, ืืคืืื ืคืื ืฆืขื ืฆื ืฆืขื, ืื ืืืืงืืึทื ืงืขื ืขื ืืืื ืืจืึทืืึทืืืงืื ืืืึทืื ืจืขืื ืฆื ืืขืจ ื ืขืฅ ืืึทืคึผืึทืืึทืืืฉื. ืืื ืึทืืืขืืืื, ืืึธืก ืืื ืึท ืคึผืจืึธืืืขื ืืื ืึท ืจืืืืง ื ืืืขืจ ืคืื ืืืืืึทืงืึทื ื, ืืื ืืืืื ืึท ืืขืืขืงืึธื ืึธืคึผืขืจืึทืืึธืจ ืงืขื ืขื ืกืึธืืืืข ืขืก ืจืืืืืง.
ืืืืืขืก, ืืขืจ ืงืื ื ื ืึธืจ ืืขืืืืื ืฆื ืคืึธืจ ืื ืงืขืจืืขืจ ืืื ืื ืึธืคึผืขืจืืืืขืจื 'ืคืึธื ืขืก, ื ืขืืขื ืืขืืฉืขืจืืึทื ืฅ ืืืืึทื ืืืืฃ ืื ืืขืืขืคืึธื ืืื ืืขืืึธืื ืฉืจืืึทืื ืื ืืืืงืืึทื ืืขืืฉืขืจืืึทื ื ืจืขืืืืืึทืื ืืื ืึท ืืขืคื. ืืืึทื ืืืืืื ื ืคึฟืึทืจ ืืขืกืื ืื ืืืืงืืึทื ืคืื ืืืข ื ืขืืืืึธืจืงืก, ืืึธืืฉ ื ืื ืืืขืึทื, ืกืึทืืืื ืื ืคึผืจืึธืืืขื.
ืจืขืื ืฆื ืคืขืื ืคืื ืฆืืื, ืืื ืืขืืืื ืืืกืืืฉืึทื ื ื ืื ืืื ืืืืืืข ืคืื โโืงืึทื ืืืื ืืึทื ืก ืึธืืขืจ ืคึผืจืึทืงืืืงืึทืืึทืื, ืึธืืขืจ ืืื ืืืืืืข ืคืื โโืืืืงืืึทื ืคืื ืึทื ืืืืืงืืื ื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืคืึทืจืงืขืจื ssh ืืื ืืขื ืืฆื ืคึฟืึทืจ ืืืืึทื ืึทืงืกืขืก, ืึทื ืฉืืึธื ืคืื ืื ืืขืจ ืคึผืจืึทืงืืืฉ ืืืคึผื, ืืื ืกืืจ ืฆื ืฉืคึผืึธืจื ืฆืืื ืืืืฃ ืืึทืฉืืขืืืงื ืื ืกืขืจืืืขืจ ืืื ืืขืืขืจ ืืืื ืงืืืขื ื.
ืืขืื ืืฉ ืึทืจืืขื
ืืื ืกืืืืืื ืืื ืืขื ืึทืจืืืงื
ืื ืืขืื ืืฉ ืึทืจืืขื ืืื ืืขืืืขื ืืึทื ืฅ ืคึผืฉืื, ืืื ืืืขื ืืงืกืคึผืึทื ื ืขืก ืึท ืืืกื ืคึฟืึทืจ ืื ืคืืจืฉืืื ื ืคืื ืื ืกืืฃ ืืึทื ืืฆืขืจ. ืื ืืจืืจื ืคืื ืืขืื ืืฉ ืกืึทืืืฉืึทื ื ืืื ืืืกืจืืื ืืื ืืขืืืขื ืืืงืืืืืื ืืืจื ืืขืจ ืงืื ื. ืึทืืื, ืื ืืขืื ืืฉ ืกืคึผืขืกืึทืคืึทืงืืืฉืึทื ื ืืื, ื ืึธื ืึทืืข ืึทืคึผืจืืืื:
ืืืืืจื ืืืืฃ ืึท ืืืื ืืจืขื ืงืึธืืคึผืืืืขืจ vim2 ืืึทืื ืึท ืืืืงืืึทื ืืขืกืืขืจ ืคึฟืึทืจ ืืืข ืงืึทื ืขืงืฉืึทื ื ืืืจื H ืืึธืืขืืกืืืืื ืข3372ื - 153 ืขืืืขืืข ืืขืืขืงืึธื ืึธืคึผืขืจืืืืขืจื (ืคืื ืืืื ืฆื n). ืขืก ืืื ืืืื ื ืืืืืง ืฆื ืืึทืงืืืขื ืงืึธืืึธืจืืึทื ืึทืฅ ืคึฟืื ืึท ืืคึผืก ืืคื ืขืืขืจ ืงืึธื ื ืขืงืืขื ืืืจื UART. ืืึทืื ืืืืงืืึทื ืืขืืฉืขืจืืึทื ืฅ ื ืืฆื ืื ืกืขืจืืืืก
www.speedtest.net ืืื ืฉืืขืื ืืื ืืื ืึท ืืืฉ ืืื:
ืืืฉ ืืื ืงืกืื ืคึฟืึธืจืืึทื. ืืขืจื ืึธื ืฉืืงื ืืขื ืฆืืืื ืืืจื E- ืคึผืึธืกื ืืขืืขืจ 6 ืฉืขื. ืืื ืคืึทื ืคืื ืขืจืจืึธืจืก, ืืืื ืง ืื ืืขืคืืจื ืืืึธืก ืืื ืงืึธื ื ืขืงืืขื ืฆื ืื GPIO.
ืืื ืืืกืงืจืืืื ืื ืืขืื ืืฉ ืกืคึผืขืกืึทืคืึทืงืืืฉืึทื ื ืืื ืคืจืื ืคืึธืจืขื, ื ืึธื ืคืืืข ืึทืคึผืจืืืืึทืื. ืืืขืจ ืืขืจ ืืืึทืืฉ ืคืื ืื ืึทืจืืขื ืืื ืฉืืื ืงืขื ืืืง. ืคืืจ ืืืฅ ืืื ืืขื ืืขืืขืื ื ืฐืื. ืืืขืจ ืืืขืฉื ืืื ืขืก ืืขืืืืขืจื ืืจืื ืืืืื. ืืึธืก ืืื ืืขื ืืืขื ืืื ืืฉืืื ืื ืคืึทืงื ืึทื ืืื ืืึธื ืืึธืก ืืืืื ื ืึธื ืืืื ืืืืคึผื ืึทืจืืขื ืืื ืืืืฃ ืืืืงืขื ืื.
ืืึธ ืืื ืืืืื ืฆื ืืืืืขืจ ืืคืืขืจืงืืึทืืงืืื ืฆื ืื ืคืึทืงื ืึทื ืืขืจ ืงืื ื ืืกืืื ืืื ืฉืืืึทืื ืืืืฃ ืื ื ืืฆื ืคืื ืื ืืืืงืืึทื ืืขืืฉืขืจืืึทื ื ืืื ืกื ืืื ืืึทืื ืืืึทืจื, ืืืึธืก ืืืืขืจ ืืืืืืขื ืืืื ืงืืืคึผืึทืืืืึทืืื. ืืขืจ ืืืืืฉืขื ืืื ืืืื ืืขืืืขื ืืืืจืขื ืขืฆื, ืึทืืื ืืึธืจื ืืฉื ืกืคึผืขืฆืืขื ืืื ืืขืงืืืคื. ืึทืืื ืืืจ ืืึธืื ืฆื ืฉืคึผืืื ืืืจื ืื ืึผืืืื.
ืึทืจืงืึทืืขืงืืฉืขืจ ืืื ืึทื ืืืืืงืืื ื
ืืขืจ ืกืืขืืข ืืื ืคึผืฉืื ืืื ืงืืึธืจ ืืื ืืขืจ ืืึธื. ืืขืจืืืขืจ, ืืื ืืืขื ืืึธืื ืขืก ืึธื ืงืืื ืกืคึผืขืฆืืขื ืืึทืืขืจืงืื ืืขื.
ืืื ืืึทืฉืืึธืกื ืฆื ืื ืกืืจืืืขื ื ืื ืืื ืฆืข ืคึผืจืืืขืงื ืืื ืคึผืืืืึธื, ืืจืึธืฅ ืืขืจ ืคืึทืงื ืึทื ืืื ืืื ืงืืื ืืขืจืคืึทืจืื ื ืืขืืืขืืึธืคึผืื ื ืืื ืืขื ืฉืคึผืจืึทื. ืืื ืืืืกืืขืจืืืืืื ืขืก ืืืืึทื ืขืก ืืขื ืขื ืืขืืืขื ืึท ืืื ืื ืคืื ืคืึทืจืืืง ืืืืฉืคืืื ืืื ืกืึทืืืฉืึทื ื ืืืึธืก ืงืขื ืคืึทืจืืืืขืจื ืึทื ืืืืืงืืื ื. ืืขืจืืืขืจ, ืืื ืืขืื ืึทืืข ืคืึทืืืึทื ืคึผืจืึธืืืจืึทืืขืจื ื ืืฉื ืฆื ืืืกืจืขืื ืืืื ืขืจืฉืืขืจ ืืขืจืคืึทืจืื ื ืคืื ืืขืืืขืืึธืคึผืื ื ืืื ืคึผืืืืึธื, ืืื ืืื ืืื ืฉืืขื ืืืง ืฆืืคืจืืื ืฆื ืืขืจื ืงืึทื ืกืืจืึทืงืืืื ืงืจืืืืง ืฆื ืคึฟืึทืจืืขืกืขืจื ืืืื ืกืงืืื.
ืืืื ืืื ืืขื ืคึผืจืึธืฆืขืก ืืื ืืืกืงืึทืืืขืจื ืึทื ืคึผืืืืึธื ืืื ืฆืืืื ืคืืืกื ืืืง ืืืขืจืกืืขืก 2 ืืื 3, ืืื ืึท ืจืขืืืืืึทื ืืื ืืขืืขืฆื ืืืืฃ ืื ืืจืื.
ืืึทืื ืืืึทืจื ื ืึธืืื
ืืืื-ืืขืืขืจ ืืืื2
ืืื ืืื ืืขืืืขื ืืขืืขืื ืึท ืืืื-ืืึธืจื ืงืึธืืคึผืืืืขืจ ืืื ืืืื ืืืืคึผื ืืึทืฉืื
ืึท ืืืกืืขืฆืืืื ื, ืฉืืึทืจืง ืืขืืืข ืคึผืจืึทืกืขืกืขืจ ืคึฟืึทืจ ืึท ืงืืื ืืืื ืืื SMART-TV, ืึธืืขืจ ืืึธืจ ืืืคึผืึทืกืืง ืคึฟืึทืจ ืืขื ืึทืจืืขื, ืึธืืขืจ, ืืึธืื ืก ืืึธืื, ืฉืืืึทื ืคึผืึทืกืืง. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืึทื ืืืืคึผื ืึทืก ืืื ืึทื ืืจืืื, ืืื ืืื ืืงืก ืืื ืึท ืฆืืืืืืืง ืึทืก, ืืื ืึทืงืึธืจืืื ืืื ืงืืื ืืืื ืขืจ ืืขืจืึทื ืืื ืื ืืืื-ืงืืืึทืืืืขื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืึทืืข ื ืึธืืื ืืื ืืจืืืืขืจืก ืืื ืืขืจ ืืื ืืงืก. ืืื ืืื ืืืขืจื ืขืืขื ืึทื ืขืืืขืืข ืคืื โโืื ืคืจืืืืขืืขื ืืขื ืขื ืคืืจืืื ืื ืืื ืื ืืกื ืืจืืืืขืจืก ืคืื ืืขื ืคึผืืึทืืคืึธืจืืข, ืึทืืื ืื ืืึธืืขืืก ืืึธืื ื ืืฉื ืึทืจืืขืื ืืื ืืขืจืืืึทืจื ืืืืฃ ืืขื ืืจืขื. ืขืก ืืืื ืืื ืืืืขืจ ืึธืจืขื ืืื ืฆืขืืืึธืจืคื ืืึทืงืืืืขื ืืืืฉืึทื, ืึทืืื ืืขืืขืจ ืึธืคึผืขืจืึทืฆืืข ืืื ืึท ืคึผืืึทืฅ ืคืื ืฆืืื ืฆื ืืจืึธืื ืืืจื ืื ืืึทืงืก. ืืคืืื ืคึผืจืึธืกื ืึทืจืืขื ืืื GPIO ืืขื ืืืขื ืึท ืคึผืืึทืฅ ืคืื ืืืื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืขืก ืืขื ืืืขื ืขืืืขืืข ืฉืขื ืฆื ืฉืืขืื ืื ืืขืคืืจื. ืึธืืขืจ, ืฆื ืืืื ืึธืืืขืงืืืื, ืขืก ืืื ืคืึทื ืืึทืืขื ืืึทืื ื ืืฉื ืืืืืืืง ืืืึธืก ืืื ืคืื ืืืื-ืืึธืจื ืขืก ืืื ืืขืืืขื, ืื ืืืืคึผื ืืึทื ืืื ืึทื ืขืก ืึทืจืืขื ืืื ืขืก ืืขื ืขื ืืกื ืคึผืึธืจืฅ.
ืขืจืฉืืขืจ, ืืื ืืึทืจืคึฟื ืฆื ืื ืกืืึทืืืจื ืืื ืืงืก ืืืืฃ ืืขื ืืจืขื. ืื ื ื ืืฉ ื ืืคืฆืืฉืจืฒื ื ื ื ืฐืืื ืข ืืืงืืืขื ืืืฆืืข ืก ืคื ืจ ืืืขืืขื , ืื ื ืืื ื ื ื ืฐื ืก ืฐืขื ื ืื ื ืคืืจื ืขืืข ื ืื ื ืืข ืจ ืืืืืงืข ืจ ืืฒื ืฆืืงึพืืืืจืึพืกืืกืืขื , ืฉืจื ื ืื ื ืื ื ืงืืคืืื .
ืขืก ืืขื ืขื ืฆืืืื ืึธืคึผืฆืืขืก ืฆื ืื ืกืืึทืืืจื ืืื ืืงืก: ืืืืฃ ืึท ืคืื ืืจืืืกื ืืืง ืกื ืงืึธืจื ืึธืืขืจ ืืืืฃ ืึทื ืื ืขืจืืขื MMC. ืืื ืคืืจืืจืืื ืึท ืึธืืื ื ืืจืืื ื ืฆื ืจืขืืขื ืขื ืืืืก ืืื ืฆื ืืึทืื ืขืก ืึทืจืืขื ืืื ืื ืงืึธืจื, ืึทืืื ืืื ืืึทืฉืืึธืกื ืฆื ืื ืกืืึทืืืจื ืขืก ืืืืฃ ืื MMC, ืืึธืืฉ ืึธื ืฆืืืืืคื ืขืก ืืืึธืื ืืืื ืคืื ืืจืื ืืขืจ ืฆื ืึทืจืืขืื ืืื ืึท ืคืื ืืจืืืกื ืืืง ืงืึธืจื.
ืืืขืื ืื ืคืืจืืืืึทืจืข
- Tool Pin GND: <โ> Pin17 ืคืื VIMs GPIO
- Tool Pin TXD: <โ> Pin18 ืคืื VIMs GPIO (Linux_Rx)
- Tool Pin RXD: <โ> Pin19 ืคืื VIMs GPIO (Linux_Tx)
- Tool Pin VCC: <โ> Pin20 ืคืื VIMs GPIO
ื ืึธื ืืืึธืก, ืืื ืืึทืื ืืึธืืืื ืื ืคืืจืืืืึทืจืข
ืืื ืกืืจ ืฆื ืฆืืคึฟืขืืืงืขืจ ืืขื ืคืืจืืืืึทืจืข, ืืื ืืึทืจืคึฟื ืืืืืืึทืืื. ืืขืจ ืืขืืึทืืืก ืืืขืื ืืขื
git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL
Aaand... ืืึธืจื ืืฉื ืึทืจืืขื. ืืื ืคืืจืืจืืื ืึท ืคึผืึธืจ ืคืื ืฉืขื ืฆื ืจืขืืึทืืืจื ืื ืื ืกืืึทืืืจืื ื ืกืงืจืืคึผืก ืึทืืื ืึทื ืึทืืฅ ืืึธื ืืืื ืืื ืกืืึทืืืจื ืจืืืืืง ืคึฟืึทืจ ืืืจ. ืืื ืืขืืขื ืง ื ืืฉื ืืืืก ืืื ืืื ืืืจื ืืขืืื, ืืืขืจ ืขืก ืืื ืืืื ืืขืืืขื ืืขื ืขื ืฆืืจืง ืืื ืคืขืจื. ืึทืืื ืืืื ืึธืคึผืืขืืื. ืึธืืขืจ ืึธื ืื ืืืืืืึทืืื ืขืก ืืื ืงืืื ืคืื ื ืฆื ืืึธืจืืฉืขืจืื ื ืืืื2 ืืืืึทืืขืจ. ืก'ืืื ืืขืกืขืจ ื ืืฉื ืฆื ืืฉืขืคืขื ืืื ืืื ืืื!
ื ืึธื ืืืื ืงืจืืืื ืคืื ืืขื ืขื, ืฉืจืืคื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืื ืกืืึทืืืจืื ื, ืืื ืืืงืืืขื ืึท ืคึผืขืงื ืคืื ืืจืืขืื ืืืืืืึทืืื. ืืื ืงืึธื ื ืขืงืืขื ืืขื ืืจืขื ืืืจื ืืกื ืฆื ืืืื ืืื ืืงืก ืงืึธืืคึผืืืืขืจ, ืืื ืืืื ืคืืจืืื ืื ืื UART ืืืื ืื ืืืึทืืจืึทืืข ืืืืื.
ืืื ืืึทืฉืืขืืืงื ืืืื ืืึทืืืืกืืข ืืื ืืงืึธื ืืืึธืงืืึทื ืคึฟืึทืจ ืึท ืืืืงืืึทื ืคืื 115200, ืึธื ืืึทืื ืืืึทืจื ืืื ืืืืืืืืืจื ืืขืืช ืงืึธื ืืจืึธื. ืืื ืืืืืจ ืืื ืื ืืืืื.
ืืืขื ืืึธืืืื ื VIM2 ืืื ืื UART ืืืึธืงืืึทื, ืืื ืืจืืงื ืึท ืฉืืืกื, ืึทืืึท ืืื ืื ืกืคึผืึทืกืขืืึทืจ, ืฆื ืืึทืืื ืืึธืืืื ื. ื ืึธื ืื ืฉืืจื ืืืืก
kvim2#
ืืื ืึทืจืืึทื ืื ืืึทืคึฟืขื:
kvim2# run update
ืืืืฃ ืืขืจ ืืึทืืขืืึธืก ืคึฟืื ืืืึธืก ืืืจ ืืึธืืืื ื, ืืื ืืืกืคืืจื:
burn-tool -v aml -b VIM2 -i VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img
ืืึธืก ืืื ืขืก, ืืึทืงืข. ืืื ืึธืคึผืืขืฉืืขืื, ืขืก ืืื ืืื ืืงืก ืืืืฃ ืื ืืจืขื. ืืึธืืื / ืคึผืึทืจืึธื khadas: khadas.
ื ืึธื ืืขื, ืขืืืขืืข ืืื ืขืจืืืขืจืืืง ืขืจืฉื ืกืขืืืื ืืก. ืคึฟืึทืจ ืืืืึทืืขืจ ืึทืจืืขื, ืืื ืืืกืืืืึทื ืื ืคึผืึทืจืึธื ืคึฟืึทืจ ืกืืืึธ (ืืึธ, ื ืืฉื ืืืืขืจ, ืึธืืขืจ ืืึทืงืืืขื).
sudo visudo
ืืื ืจืขืืึทืืืจื ืื ืฉืืจื ืฆื ืื ืคืึธืจืขื ืืื ืจืึทืืขืืืขื
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
ืืขืจื ืึธื ืืื ืืืืฉื ืื ืงืจืึทื ื ืืึธืงืึทื ืึทืืื ืึทื ืื ืฆืืื ืืื ืืื ืืึธืกืงืืืข, ืึทื ืืขืจืฉ ืขืก ืืืขื ืืืื ืืื ืืจืื ืืืืืฉ.
sudo timedatectl set-timezone Europe/Moscow
ืึธืืขืจ
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
ืืืื ืืืจ ืืขืคึฟืื ืขื ืขืก ืฉืืืขืจ, ืืึธื ื ืื ื ืืฆื ืืขื ืืจืขื; Raspberry Pi ืืื ืืขืกืขืจ. ืืึธื ืขืกืืื.
ืืึธืืขื ืืืึทืืืขื ืข3372ื - 153
ืืขืจ ืืึธืืขื ืืื ืืขืืืขื ืึท ืืึทืืืืืืง ืืงืืจ ืคืื ืืืื ืคึฟืึทืจ ืืืจ, ืืื, ืืื ืคืึทืงื, ืขืก ืืื ืืขืืืืจื ืื ืืึทืืึทืื ืขืง ืคืื ืื ืืื ืฆืข ืคึผืจืืืขืงื. ืืื ืึทืืืขืืืื, ืืขืจ ื ืึธืืขื "ืืึธืืขื" ืคึฟืึทืจ ืื ืืขืืืืกืขืก ืืื ื ืืฉื ืคืึทืจืืจืึทืืื ืืื ืื ืขืกืึทื ืก ืคืื ืื ืึทืจืืขื: ืืึธืก ืืื ืึท ืฉืืึทืจืง ืคืึทืจืืื ืื, ืืขื ืฉืืืง ืคืื ืืึทืื ืืืึทืจื ืืื ืึท ืงืึธืืคึผืึธืกืืืข ืืืื ืืืึธืก ืคึผืจืืืขื ืื ืฆื ืืืื ืึท ืกื-ืจืึทื ืฆื ืื ืกืืึทืืืจื ืืจืืืืขืจืก, ืืื ืืขืืึธืื ืกืืืืืฉืื ืฆื ื ืขืฅ ืงืึธืจื ืืึธืืข.
ืึทืจืงืึทืืขืงืืฉืขืจืึทืื, ืคึฟืื ืื ืคืื ื ืคืื ืืืื ืื ื ืคืื ืึท ืืื ืืงืก ืืึทื ืืฆืขืจ, ื ืึธื ืึทืืข ืื ืกืขืืืื ืืก, ืขืก ืงืืงื ืืื ืืึธืก: ื ืึธื ืงืึทื ืขืงืืื ื ืื ืืึธืืขื, ืืื ืืึธืื ืึทื eth * ื ืขืฅ ืฆืืืื ื, ืืืึธืก ืืืจื dhcp ืืืงืืื ืื IP ืึทืืจืขืก 192.168.8.100, ืืื ืื ืคืขืืืงืืึทื ืืืืืืืื ืืื 192.168.8.1.
ืืื ืื ืืขืจืกื ืืืืืืืง ืืึธืืขื ื! ืืขืจ ืืึธืืขื ืืึธืืขื ืงืขื ื ืืฉื ืึทืจืืขืื ืืื ืืึธืืขื ืืึธืืข, ืืืึธืก ืืื ืงืึทื ืืจืึธืืื ืืืจื AT ืงืึทืืึทื ืื. ืึทืืฅ ืืืึธืื ืืืื ืคืื ืกืืืคึผืืขืจ, ืฉืึทืคึฟื ืคึผืคึผืคึผ ืงืึทื ืขืงืฉืึทื ื ืคึฟืึทืจ ืืขืืขืจ ืืึธืืขื ืืื ืืขืืึธืื ืึทืจืืขืื ืืื ืืื. ืึธืืขืจ ืืื ืืืื ืคืึทื, "ืืื" (ืืขืจ ืืขื ืื, ืึท ืืื ืืงืก ืืืืืืขืจ ืืืื ืื ืืืขืื ืึผืืืื), ืงืจืืืืฅ ืึทื ืขืื ืฆืืืื ื ืืื ืึทืกืืื ื ืึทื IP ืึทืืจืขืก ืฆื ืขืก ืืืจื ืืืงืคึผ.
ืฆื ืืืกืืืืื ืืืืึทืืขืจ ืฆืขืืืฉืื ื, ืืื ืคึฟืึธืจืฉืืึธืื ืฆื ืคืึทืจืืขืกื ืื ืืืึธืจื "ืืึธืืขื" ืืื ืืึธืื ื ืขืฅ ืงืึธืจื ืืื ืืืืืืืื, ืืืืึทื ืืื ืขืกืึทื ืก, ืขืก ืืื ืืื ืงืึทื ืขืงืืื ื ืึท ื ืืึท ื ืขืฅ ืงืึธืจื ืืื ืึท ืืืืืืืื.
ืืืขื ืขืก ืืื ืืืื ืืึธืืขื, ืืึธืก ืืื ื ืืฉื ืคืึทืจืฉืึทืคื ืงืืื ืกืคึผืขืฆืืขืืข ืคืจืืืืขืืขื, ืึธืืขืจ ืืืขื ืขืก ืืื ืืขืจ ืืื ืืืื, ื ืืืืื N-pieces, ืื ืคืืืืขื ืืข ื ืขืฅ ืืืื ืขืจืืืืึทื.
ืึทื ืืื, n ื ืขืฅ ืงืึทืจืืก, ืืื ืืขืจ ืืขืืืืงืขืจ IP ืึทืืจืขืก, ืืขืืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืคืขืืืงืืึทื ืืืืืืืื. ืืืขืจ ืืื ืคืึทืงื, ืืขืืขืจ ืคืื ืืื ืืื ืคืืจืืื ืื ืฆื ืืืื ืืืืืขื ืข ืึธืคึผืขืจืึทืืึธืจ.
ืืืืืขืก, ืืื ืืขืืื ืึท ืคึผืฉืื ืืืืืื ื: ื ืืฆื ืื ifconfig ืึธืืขืจ ip ืืึทืคึฟืขื, ืงืขืจ ืึทืืืขืง ืึทืืข ืื ืืขืจืคืืืกืื ืืื ืคืฉืื ืงืขืจ ืืืืฃ ืืืื ืขืจ ืืื ืงืขืจ ืืื ืคึผืจืืืืจื ืขืก. ืื ืืืืืื ื ืืื ืืขืืืขื ืืื ืคึฟืึทืจ ืึทืืขืืขื, ืึทืืืฅ ืึทื ืืขืฉืึทืก ืื ืกืืืืืฉืื ื ืืึธืืืึทื ืฅ ืืื ืงืขื ื ืืฉื ืคืึทืจืืื ืื ืฆื ืื ืืืื. ืืื ืืื ื ืื ืกืืืืืฉืื ื ืืื ืึธืคื ืืื ืฉื ืขื, ืืื ืคืืงืืืฉ ืืื ืงืืื ืืขืืขืื ืืืื ืฆื ืคืึทืจืืื ืื.
ืืขืจืืืขืจ, ืืื ืืืืกืืขืจืืืืืื ืืขืจ ืืจื ืคืื ืืึทื ืืืึทืื ืืฉืึทื ืืื ื ืื IP ืึทืืจืขืกืขืก ืคืื ืื ืืึธืืขืืก ืืื ืืึทื ืืจืืืืืื ื ืคืึทืจืงืขืจ ืืื ืจืืืื ื ืกืขืืืื ืืก.
ืืึธืก ืืื ื ืืฉื ืืขืจ ืกืืฃ ืคืื ืืืื ืคืจืืืืขืืขื ืืื ืืึธืืขืืก: ืืื ืคืึทื ืคืื ืืึทืื ืคึผืจืึธืืืขืืก, ืืื ืืขืคืืื ืึทืืืขืง, ืืื ืึท ืืื ืกืืึทืืื ืืึทืื ืฆืืฉืืขืื ืฆื ืื ืืกื ืืึทื ืืื ืคืืจืืื ืื. ืืื ืกืึทืืืื ืืขื ืคึผืจืึธืืืขื ืืืจื ืฉืืืขืจ ืกืึทืืขืจืื ื ืื ืืึทืื ืืืืึทื ืฆื ืื ืืึทื. ืื ืื ืืขืจ ืคึผืจืึธืืืขื ืืืึธืก ืืื ืืขืคึผืืึธื ืืขืจื ืืื ืืืึธืก ืจืืื ื ืื ืืื ืฆืข ืคึผืจืืืขืงื: ื ืึธื ืึท ืจืขืืึธืึธื ืึธืืขืจ ืงืึทืื ืึธื ืืืื ืคืื ืื ืืืื, ื ืื ืึทืืข ืืึธืืขืืก ืืขื ืขื ืืืืขืงืืึทื ืืื ื ืื ืฉืืขื ืืืง, ืืื ืืื ืงืขื ื ืืฉื ืืึทืฉืืืกื ืืืึธืก ืืึธืก ืืขืืจืืคื ืืื ืืื ืืืึธืก ืึทืืืขืจืืืึทื. ืืืขืจ ืขืจืฉืืขืจ ืืืื ืขืจืฉืืขืจ.
ืคึฟืึทืจ ืื ืืึธืืขื ืฆื ืึทืจืืขืื ืจืืืืืง, ืืื ืืื ืกืืึทืืืจื ืื ืืกื-ืืึธืืขืกืืืืืฉ ืคึผืขืงื.
sudo apt update
sudo apt install -y usb-modeswitch
ื ืึธื ืืืึธืก, ื ืึธื ืงืึทื ืขืงืืื ื, ืื ืืึธืืขื ืืืขื ืืืื ืจืืืืืง ืืืืขืงืืึทื ืืื ืงืึทื ืคืืืืขืจื ืืืจื ืื udev ืกืึทืืกืืกืืึทื. ืืื ืืฉืขืง ืืืจื ืคืฉืื ืงืึทื ืขืงืืื ื ืื ืืึธืืขื ืืื ืืึทืื ืืืืขืจ ืึทื ืื ื ืขืฅ ืืื ืืจืืืก.
ืื ืื ืืขืจ ืคึผืจืึธืืืขื ืืืึธืก ืืื ืงืขื ื ืืฉื ืกืึธืืืืข: ืืื ืงืขื ืืื ืืึทืงืืืขื ืื ื ืึธืืขื ืคืื ืืขืจ ืึธืคึผืขืจืึทืืึธืจ ืืื ืืืึธืก ืืืจ ืึทืจืืขืื ืคึฟืื ืืขื ืืึธืืขื? ืืขืจ ืึธืคึผืขืจืึทืืึธืจ ื ืึธืืขื ืืื ืงืึทื ืืืื ื ืืื ืื ืืึธืืขื ืืืขื ืฆืืืื ื ืืื 192.168.8.1. ืืึธืก ืืื ืึท ืืื ืึทืืืฉ ืืืขื ืืืึทื ืืืึธืก ืืืงืืื ืืึทืื ืืืจื Ajax ืจืืงืืืขืก, ืึทืืื ืขืก ืืืขื ื ืืฉื ืึทืจืืขืื ืฆื ืคืฉืื ืืืืืื ืืขื ืืืึทื ืืื ืคึผืึทืจืกืื ื ืืขื ื ืึธืืขื. ืืขืจืคืืจ ืืื ืืื ืื ืืขืืืืื ืงืืงื ืืื ืืืื ืืขื ืื ืืืืืงืื ื ืืืขื ืืืื ืืืืืื, ืืื ืืื ืืื ืืืื ืืขืืขื ืื ืืื ืื ื ืืื ืฉืืืชืื. ืืื ืึท ืจืขืืืืืึทื, ืขืจ ืงืึทืืึทืฉ, ืืื ืืขืจ ืึธืคึผืขืจืึทืืึธืจ ืื ืืขืืืืื ืฆื ืืึทืงืืืขื ื ืืฆื ืื ืกืคึผืืืืขืกื ืึทืคึผื ืืื.
ืคืื ืืืึธืื ืืืื ืืจืื ืืขืจ ืืืื ืื ืืึธืืขื ืืื ืึทืงืกืขืก ืืืจื AT ืงืึทืืึทื ืื. ืขืก ืืืึธืื ืืืื ืืขืืืขื ืฆื ืจืืงืึทื ืคืืืืขืจ ืขืก, ืฉืึทืคึฟื ืึท ืคึผืคึผืคึผ ืงืฉืจ, ืืึทืฉืืืืขื ืึทื IP, ืืึทืงืืืขื ืึท ืืขืืขืงืึธื ืึธืคึผืขืจืึทืืึธืจ, ืขืืง. ืึธืืขืจ ืืืื, ืืื ืึทืจืืขื ืืื ืืืึธืก ืืื ืืืข ืืขืืขืื.
ืืคึผืก
ืื ืืคึผืก ืืคื ืขืืขืจ ืืื ืืื ืืขืืืขื ืืขืืขืื ืืื ืึท UART ืฆืืืื ื ืืื ืืึทืื. ืขืก ืืื ืืขืืืขื ื ืื ืืขืจ ืืขืกืืขืจ ืืืืืื ื, ืึธืืขืจ ืขืก ืืื ื ืึธื ืืืขืจืงืึทืืึทื ืืื ืคึผืฉืื. ืืขืจ ืืคื ืขืืขืจ ืืื ืขืคืขืก ืืืื ืืืืกืืขืืขื.
ืฆื ืืืื ืขืจืืขื, ืืึธืก ืืื ืืขืืืขื ืืืื ืขืจืฉืืขืจ ืืึธื ืืจืืขืื ืืื ืึท ืืคึผืก ืืคื ืขืืขืจ, ืึธืืขืจ ืืื ืืื ืืขืจืืืึทืจื, ืึทืืฅ ืืื ืืขืืืขื ืืขืืึทื ืง ืคึฟืึทืจ ืืื ืื ืึท ืืึทื ื ืฆืืึทื ืฆืืจืืง. ืึทืืื ืืืจ ื ืึธืจ ื ืืฆื ืคืึทืจืืืง ืกืึทืืืฉืึทื ื.
ืขืจืฉืืขืจ, ืืื ืืขืื uart_AO_B (UART_RX_AO_B, UART_TX_AO_B) ืฆื ืคืึทืจืืื ืื ืืคึผืก.
khadas@Khadas:~$ sudo fdtput -t s /dtb.img /serial@c81004e0 status okay
ืืขืจื ืึธื ืืื ืงืึธื ืืจืึธืืืจื ืื ืืฆืืื ืคืื ืื ืึธืคึผืขืจืึทืฆืืข.
khadas@Khadas:~$ fdtget /dtb.img /serial@c81004e0 status
okay
ืืขืจ ืืึทืคึฟืขื ืกืืืคึผืื ืจืขืืึทืืืจื ืื ืืขืืืืจืืข ืืืืฃ ืื ืคืืืขื, ืืืึธืก ืืื ืืืืขืจ ืืึทืงืืืขื.
ื ืึธื ืื ืืฆืืื ืคืื ืืขื ืึธืคึผืขืจืึทืฆืืข, ืจืขืืึธืึธื ืืื ืื ืกืืึทืืืจื ืื ืืคึผืก ืืืืืึทื.
khadas@Khadas:~$ sudo reboot
ืื ืกืืึธืืื ื ืื ืืคึผืก ืืืืืึทื. ืืื ืื ืกืืึทืืืจื ืึทืืฅ ืืื ืฉื ืืึทืื ืขืก ืืื ืคึฟืึทืจ ืืืืึทืืขืจ ืงืึทื ืคืืืืขืจืืืฉืึทื.
sudo apt install gpsd gpsd-clients -y
sudo killall gpsd
/* GPS daemon stop/disable */
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket
ืขืืืืื ื ืื ืกืขืืืื ืืก ืืขืงืข.
sudo vim /etc/default/gpsd
ืืื ืื ืกืืึทืืืจื ืึท UART ืืืืฃ ืืืึธืก ืื ืืคึผืก ืืืขื ืืขื ืืขื.
DEVICES="/dev/ttyS4"
ืืื ืืขืืึธืื ืืืจ ืงืขืจ ืึทืืฅ ืืืืฃ ืืื ืึธื ืืืืื.
/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket
ื ืึธื ืืขื, ืืื ืคืึทืจืืื ืื ืื ืืคึผืก.
ืื ืืคึผืก ืืจืึธื ืืื ืืื ืืืื ืืขื ื, ืื UART ืืืืืืืขืจ ืืืืจืขืก ืืขื ืขื ืงืขื ืืืง ืืื ืืขืจ ืืืื ืคืื ืืขืจ.
ืืื ืจืขืืึธืึธื ืืื ืงืึธื ืืจืึธืืืจื ืื ืืคึผืก ืึธืคึผืขืจืึทืฆืืข ื ืืฆื ืื gpsmon ืคึผืจืึธืืจืึทื.
ืืืจ ืงืขื ื ื ืืฉื ืืขื ืื ืกืึทืืึทืืืืฅ ืืื ืืขื ืกืงืจืขืขื ืฉืึธื, ืึธืืขืจ ืืืจ ืงืขื ืขื ืืขื ืงืึธืืื ืืงืึทืฆืืข ืืื ืื ืืคึผืก ืืคื ืขืืขืจ, ืืื ืืึธืก ืืืื ืึทื ืึทืืฅ ืืื ืืื.
ืืื ืคึผืืืืึธื, ืืื ืืขืคืจืืืืื ืคืืืข ืึธืคึผืฆืืขืก ืคึฟืึทืจ ืืจืืขืื ืืื ืืขื ืืืืืึทื, ืึธืืขืจ ืืื ืืขืืขืฆื ืืืืฃ ืืขืจ ืืืื ืขืจ ืืืึธืก ืืขืืจืืขื ืจืืืืืง ืืื ืคึผืืืืึธื 3.
ืืื ืื ืกืืึทืืืจื ืื ื ืืืืืง ืืืืืืึธืืขืง.
sudo -H pip3 install gps3
ืืื ืืื ืกืงืึทืืคึผ ืื ืึทืจืืขื ืงืึธื.
from gps3.agps3threaded import AGPS3mechanism
...
def getPositionData(agps_thread):
counter = 0;
while True:
longitude = agps_thread.data_stream.lon
latitude = agps_thread.data_stream.lat
if latitude != 'n/a' and longitude != 'n/a':
return '{}' .format(longitude), '{}' .format(latitude)
counter = counter + 1
print ("Wait gps counter = %d" % counter)
if counter == 10:
ErrorMessage("ะัะธะฑะบะฐ GPS ะฟัะธะตะผะฝะธะบะฐ!!!")
return "NA", "NA"
time.sleep(1.0)
...
f __name__ == '__main__':
...
#gps
agps_thread = AGPS3mechanism() # Instantiate AGPS3 Mechanisms
agps_thread.stream_data() # From localhost (), or other hosts, by example, (host='gps.ddns.net')
agps_thread.run_thread() # Throttle time to sleep after an empty lookup, default '()' 0.2 two tenths of a second
ืืืื ืืื ืืึทืจืคึฟื ืฆื ืืึทืงืืืขื ืงืึธืืึธืจืืึทื ืึทืฅ, ืืึธืก ืืื ืืขืืื ืืื ืื ืคืืืืขื ืืข ืจืืคื:
longitude, latitude = getPositionData(agps_thread)
ืืื ืืื 1-10 ืกืขืงืื ืืขืก ืืื ืืืขื ืืึทืงืืืขื ืื ืงืึธืืึธืจืืึทื ืึทื ืึธืืขืจ ื ืืฉื. ืื, ืืื ืืขืืื ืฆืขื ืคืจืืืื ืฆื ืืึทืงืืืขื ืงืึธืืึธืจืืึทื ืึทืฅ. ื ืื ืึธืคึผืืืืึทื, ืงืจืื ืืื ืกืงืื, ืึธืืขืจ ืขืก ืึทืจืืขื. ืืื ืืึทืฉืืึธืกื ืฆื ืืึธื ืืึธืก ืืืืึทื ืืคึผืก ืงืขื ืขื ืืึธืื ืึท ื ืขืืขื ืึธืคึผืืจืึธื ืืื ื ืื ืฉืืขื ืืืง ืืึทืงืืืขื ืืึทืื. ืืืื ืืืจ ืืืึทืจืื ืฆื ืืึทืงืืืขื ืืึทืื, ืืืื ืืืจ ืึทืจืืขื ืืื ืึท ืืืืึทื ืคึผืืึทืฅ, ืื ืคึผืจืึธืืจืึทื ืืืขื ืคืจืืจื ืืื ืืขื ืึธืจื. ืืขืจืืืขืจ, ืืื ืืืคึผืืึทืืขื ืึทื ืืขื ืื ืขืืขืืึทื ื ืึธืคึผืฆืืข.
ืืื ืคึผืจืื ืฆืืคึผ, ืืืื ืขืก ืืื ืืขืืืขื ืืขืจ ืฆืืื, ืขืก ืืืึธืื ืืืื ืืขืืืขื ืฆื ืืึทืงืืืขื ืืึทืื ืคืื ืืคึผืก ืืืืึทื ืืืจื UART, ืคึผืึทืจืก ืขืก ืืื ืึท ืืึทืืื ืืขืจ ืคืึธืืขื ืืื ืึทืจืืขื ืืื ืืื. ืืืขืจ ืขืก ืืื ืงืืื ืฆืืึทื ืืืึท ืึทืืข, ืืขืจืคืืจ ืื ืืจืืืึทืื ืืืขืก ืงืึธื. ืืื ืืึธ, ืืื ืฉืขืืขื ืืื ื ืืฉื.
ืืืื ืืืืืื ื ืืืืึธืื
ืงืึทื ืขืงืืื ื ืื ืืขืคืืจื ืืื ืคึผืฉืื ืืื ืฉืืืขืจ ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืึทื. ืื ืืืืคึผื ืฉืืืขืจืืงืืื ืืื ืึทื ืื ืฉืืืคื ื ืืืขืจ ืืื ืื ืกืืกืืขื ืฉืืืืขื ื ืืฉื ืฆื ืื ืฉืืืคื ื ืืืขืจ ืืืืฃ ืื ืืจืขื ืืื ืืืืึทื ืื ืืึทืงืืืืขื ืืืืฉืึทื ืืื ืืขืฉืจืืื ืืื ืื ืืื ืงืก ืืึทื ื. ืฆื ืคืึทืจืืืืึทืื ืื ืืึทืื ืืืึทืจื ืฉืืืคื ื ืืืขืจ ืืื ืื ืฉืืืคื ื ืืืขืจ ืืื ืื ืึทืก, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืคื ืื ืืึทืคึฟืขื:
gpio readall
ื ืืืฉ ืคืื ืฉืืืคื ืงืึธืจืขืกืคึผืึธื ืืขื ืฅ ืืื ืื ืกืืกืืขื ืืื ืืืืฃ ืื ืืจืขื ืืืขื ืืืื ืืขืืืืื. ื ืึธื ืืืึธืก ืืื ืงืขื ืขื ืฉืืื ืึทืจืืขืื ืื ืฉืืืคื ืืื ืื ืึทืก ืืื. ืืื ืืืื ืคืึทื ืื ืืขืคืืจื ืืื ืงืึธื ื ืขืงืืขื ืฆื GPIOH_5.
ืืื ืืึทืฉืืืืขื ืื GPIO ืฉืคึผืืืงืข ืฆื ืจืขืืืืืึทื ืืึธืืข.
gpio -g mode 421 out
ืืื ืฉืจืืื ืึทืจืึธืคึผ ื ืื.
gpio -g write 421 0
ืืื ืฉืจืืื ืืืื ืก.
gpio -g write 421 1
ืึทืืฅ ืืื ืืืื, ื ืึธื ืฉืจืืืื "1"
#gpio subsistem
def gpio_init():
os.system("gpio -g mode 421 out")
os.system("gpio -g write 421 1")
def gpio_set(val):
os.system("gpio -g write 421 %d" % val)
def error_blink():
gpio_set(0)
time.sleep(0.1)
gpio_set(1)
time.sleep(0.1)
gpio_set(0)
time.sleep(0.1)
gpio_set(1)
time.sleep(0.1)
gpio_set(0)
time.sleep(1.0)
gpio_set(1)
def good_blink():
gpio_set(1)
ืืืฆื, ืืื ืคืึทื ืคืื ืขืจืจืึธืจืก, ืืื ืจืืคื error_blink () ืืื ืื ืืขืคืืจื ืืืขื ืืืื ืง ืืืืืึทืคืื.
ืืืืืืืืืจื ื ืึธืืื
ืกืคึผืืืืขืกื ืึทืคึผื
ืขืก ืืื ืึท ืืจืืืก ืคืจืืื ืึทื ืื speedtest.net ืกืขืจืืืืก ืืื ืืืื ืืืืืขื ืข ืคึผืืืืึธื-ืึทืคึผื, ืืืจ ืงืขื ื ืืขื
ืื ืืืืข ืืึทื ืืื ืึทื ืขืก ืืขื ืขื ืืงืืจ ืงืึธืืื ืืืึธืก ืงืขื ืขื ืืืื ืืืื ืืืืื. ืืื ืฆื ืึทืจืืขืื ืืื ืืขื ืึทืคึผื (ืคึผืฉืื ืืืืฉืคืืื) ืงืขื ืขื ืืืื ืืขืคึฟืื ืขื ืืื
ืืื ืื ืกืืึทืืืจื ืื ืคึผืืืืึธื ืืืืืืึธืืขืง ืืื ืื ืคืืืืขื ืืข ืืึทืคึฟืขื.
sudo -H pip3 install speedtest-cli
ืคึฟืึทืจ ืืืึทืฉืคึผืื, ืืืจ ืงืขื ืขื ืืคืืื ืื ืกืืึทืืืจื ืึท ืืืืงืืึทื ืืขืกืืขืจ ืืื ืืืื ืื ืืืืึทื ืคึฟืื ืื ืืืืืืืืืจื. ืืึธืก ืืื ืืขืจ ืืขืืืืงืขืจ ืคึผืืืืึธื ืึทืคึผืืึทืงืืืฉืึทื, ืืืึธืก ืงืขื ืขื ืืืื ืืึธื ืืฉื ืืืืื ืคึฟืื ืื ืงืึทื ืกืึธืื.
sudo apt install speedtest-cli -y
ืืื ืืขืกืื ืืืื ืืื ืืขืจื ืขื ืืืืงืืึทื.
speedtest-cli
Retrieving speedtest.net configuration...
Testing from B***** (*.*.*.*)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by MTS (Moscow) [0.12 km]: 11.8 ms
Testing download speed................................................................................
Download: 7.10 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.86 Mbit/s
ืืขืจ ืจืขืืืืืึทื, ืคึผืื ืงื ืืื ืืื. ืืื ืืึธืื ืฆื ืืึทืงืืืขื ืืื ืื ืืงืืจ ืงืึธืืื ืคืื ืืขื ืืืืงืืึทื ืคึผืจืืืืจื ืฆื ืืขืจ ืืึธืจ ืื ืกืืจืืืขื ื ืืื ืืื ืืืื ืคึผืจืืืขืงื. ืืืื ืขืจ ืคืื ืื ืืขืจืกื ืืืืืืืง ืืึทืกืงืก ืืื ืฆื ืืึทืงืืืขื ืื ื ืึธืืขื ืคืื ืื ืืขืืขืงืึธื ืึธืคึผืขืจืึทืืึธืจ ืฆื ืคืึทืจืืืึทืื ืขืก ืืื ืื ืืขืืขืจ.
import speedtest
from datetime import datetime
...
#ะฃะบะฐะทัะฒะฐะตะผ ะบะพะฝะบัะตัะฝัะน ัะตัะฒะตั ะดะปั ัะตััะฐ
#6053) MaximaTelecom (Moscow, Russian Federation)
servers = ["6053"]
# If you want to use a single threaded test
threads = None
s = speedtest.Speedtest()
#ะฟะพะปััะฐะตะผ ะธะผั ะพะฟะตัะฐัะพัะฐ ัะพัะพะฒะพะน ัะฒัะทะธ
opos = '%(isp)s' % s.config['client']
s.get_servers(servers)
#ะฟะพะปััะฐะตะผ ัะตะบััะพะฒัั ัััะพะบั ั ะฟะฐัะฐะผะตััะฐะผะธ ัะตัะฒะตัะฐ
testserver = '%(sponsor)s (%(name)s) [%(d)0.2f km]: %(latency)s ms' % s.results.server
#ัะตัั ะทะฐะณััะทะบะธ
s.download(threads=threads)
#ัะตัั ะฒัะณััะทะบะธ
s.upload(threads=threads)
#ะฟะพะปััะฐะตะผ ัะตะทัะปััะฐัั
s.results.share()
#ะะพัะปะต ัะตะณะพ ัะพัะผะธััะตััั ัััะพะบะฐ ะดะปั ะทะฐะฟะธัะธ ะฒ csv-ัะฐะนะป.
#ะฟะพะปััะฐะตะผ ะฟะพะทะธัะธั GPS
longitude, latitude = getPositionData(agps_thread)
#ะฒัะตะผั ะธ ะดะฐัะฐ
curdata = datetime.now().strftime('%d.%m.%Y')
curtime = datetime.now().strftime('%H:%M:%S')
delimiter = ';'
result_string = opos + delimiter + str(curpos) + delimiter +
curdata + delimiter + curtime + delimiter + longitude + ', ' + latitude + delimiter +
str(s.results.download/1000.0/1000.0) + delimiter + str(s.results.upload / 1000.0 / 1000.0) +
delimiter + str(s.results.ping) + delimiter + testserver + "n"
#ััั ะธะดะตั ะทะฐะฟะธัั ะฒ ัะฐะนะป ะปะพะณะพะฒ
ืืืื ืืึธ ืืึธื ืืื ืึทืืฅ ืึทืจืืืกืืขืืืืื ื ืืฉื ืึทืืื ืคึผืฉืื, ืืึธืืฉ ืขืก ืืืึธืื ืืืืกืืขืืขื ืึท ืกื ืกืืืคึผืืขืจ. ืืืืืขืก, ืื ืกืขืจืืืขืจืก ืคึผืึทืจืึทืืขืืขืจ ืืื ืืืืึทื ืฆื [], ืืื ืืึธืื, ืงืืืึทืื ืื ืืขืกืืขืจ ืกืขืจืืืขืจ. ืืื ืึท ืจืขืืืืืึทื, ืืื ืืขืืื ืืจืึทืค ืกืขืจืืืขืจืก, ืืื, ืืื ืืืจ ืงืขื ืืจืขืคื, ืืืึทืืขืืืืืง ืืืืงืืึทื. ืืึธืก ืืื ืืึทื ืฅ ืึท ืงืึธืืคึผืืขืงืก ืืขืืข, ื ืืฆื ืึท ืคืึทืจืคืขืกืืืงื ืกืขืจืืืขืจ, ืืืื ืึทืืื, ืกืืึทืืืง ืึธืืขืจ ืืื ืึทืืืฉ, ืจืืงืืืืืขืจื ืคืึธืจืฉืื ื. ืึธืืขืจ ืืึธ ืืื ืึท ืืืืฉืคึผืื ืคืื ืืืืงืืึทื ืืขืืฉืขืจืืึทื ื ืืจืึทืคืก ืคึฟืึทืจ ืึท ืืขืขืืื ืข ืึธืคึผืขืจืึทืืึธืจ ืืืขื ืืื ืึทืืืงืึทืืื ืกืขืืขืงืืืจื ืึท ืคึผืจืึธืืข ืกืขืจืืืขืจ ืืื ืึท ืกืืึทืืืงืื ืคืึทืจืคืขืกืืืงื.
ืืขืจ ืจืขืืืืืึทื ืคืื ืืขืกืื ืืืืงืืึทื ืืืขื ืืฉืืืื ื ืึท ืืื ืึทืืืฉ ืกืขืจืืืขืจ.
ืืขืจ ืจืขืืืืืึทื ืคืื ืืืืงืืึทื ืืขืกืืื ื, ืืื ืึท ืฉืืจืขื ื ืืืืกืืขืงืืืื ืืืื ืกืขืจืืืขืจ.
ืืขืฉืึทืก ืืขืกืืื ื, ืขืก ืืื "ืคืืืขืจ" ืืื ืืืืืข ืขืจืืขืจ, ืืื ืขืก ืืึทืจืฃ ืืืื ืึทืืืขืงืืขื ืืืขื ืืื ืืึทืืึทืืึทืืืงืึทื ืืขืืืึธืืก. ืึธืืขืจ ืืื ืึท ืคืึทืจืคืขืกืืืงื ืกืขืจืืืขืจ ืขืก ืืื ืึท ืืืกื ืืืืื ืืงืขืจ ืืื ืื ืึทืืคึผืืืืื ืืื ืืขืจ ืกืืึทืืื.
ืืื ืึทืืืขืืืื, ืืึธืก ืืื ืึท ืคึผืืึทืฅ ืคืื ืืจืืืก ืคืึธืจืฉืื ื. ืืื ืืื ืืืึธืื ืืขืกืื ืื ืืืืงืืึทื ืคืื ืืืื ืกืขืจืืืขืจ ื ืืฆื ืื iperf ื ืืฆื. ืึธืืขืจ ืืืจ ืืึทืืื ืืื ืฆื ืื ืืขืื ืืฉ ืกืคึผืขืกืึทืคืึทืงืืืฉืึทื ื.
ืฉืืงื ืคึผืึธืกื ืืื ืขืจืจืึธืจืก
ืฆื ืฉืืงื ืคึผืึธืกื, ืืื ืืขืคืจืืืื ืขืืืขืืข ืืืฅ ืคืึทืจืฉืืืขื ืข ืึธืคึผืฆืืขืก, ืึธืืขืจ ืืื ืื ืกืืฃ ืืื ืืขืืขืฆื ืืืืฃ ืื ืคืืืืขื ืืข. ืืื ืจืขืืืกืืจืืจื ืึท ืืจืืืืงืึทืกืื ืืืืฃ ืืึทื ืืขืงืก ืืื ืืขืืึธืื ืืขื ืืืขื
ืื ืืึธืืก ืืขื ืขื ืืขืฉืืงื ืืืื ืื ืกืงืขืืืฉืืืขืจ, ืืืื ืขืก ืืื ืึท ืงืฉืจืืขืืขืจ 6 ืฉืขื: 00:06, 12:18, XNUMX:XNUMX ืืื XNUMX:XNUMX. ืืขืฉืืงื ืขืก ืืื ืืืื.
from send_email import *
...
message_log = "ะะพะณะธ ัะตััะธัะพะฒะฐะฝะธั ะฟะปะฐัั โ1"
EmailForSend = ["[email protected]", "[email protected]"]
files = ["/home/khadas/modems_speedtest/csv"]
...
def sendLogs():
global EmailForSend
curdata = datetime.now().strftime('%d.%m.%Y')
ัurtime = datetime.now().strftime('%H:%M:%S')
try:
for addr_to in EmailForSend:
send_email(addr_to, message_log, "ะะพะณะธ ะทะฐ " + curdata + " " + ัurtime, files)
except:
print("Network problem for send mail")
return False
return True
ืขืจืจืึธืจืก ืืขื ืขื ืืืื ืืขืฉืืงื ืืืืืขืก. ืฆื ืึธื ืืืืื ืืื, ืืื ืืขื ืขื ืึทืงืืืืืึทืืืืืื ืืื ืืขืจ ืจืฉืืื, ืืื ืืขืืึธืื ืืขืฉืืงื ืืืื ื ืืฆื ืื ืกืงืขืืืฉืืืขืจ, ืืืื ืขืก ืืื ืืขืืืขื ืึท ืงืฉืจ. ืึธืืขืจ, ืขืก ืืื ืืขืืืขื ืคึผืจืึธืืืขืืก ืืื ืื ืคืึทืงื ืึทื ืืึทื ืืขืงืก ืืื ืึท ืฉืืขืืจ ืืืืฃ ืื ื ืืืขืจ ืคืื ืึทืจืืืงืืขื ืืขืฉืืงื ืคึผืขืจ ืืึธื (ืืึธืก ืืื ืืืืืืืง, ืืืขื ืืื ืืืืื). ืืื ื ืขืก ืงืขื ืืืื ืึท ืจืืืืง ื ืืืขืจ ืคืื ืขืจืจืึธืจืก ืืคืืื ืคึผืขืจ ืืื ืื, ืืืจ ืืึธืื ืฆื ืคืึทืจืืึธืื ืฉืืงื ืขืจืจืึธืจืก ืืืจื ืคึผืึธืกื. ืึทืืื ืืึทืืื ืืื ืืืื ืื ื ืืืขื ืืืืืึธืืึทืืืฉ ืฉืืงื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืึทืืึท ืึท ืคึผืจืึธืืืขื ืืืจื ืืึทื ืืขืงืก ืืึทืืื ืื ืืก.
ืืึทืืขืจืงืื ืืขื ืกืขืจืืืขืจ
ืืื ืกืืจ ืฆื ืืึธืื ืฆืืืจืื ืฆื ืึท ืืืืึทื ืฉืืืง ืคืื ืืึทืื ืืืึทืจื ืืื ืงืขื ืขื ืฆื ืงืึทืกืืึทืืืื ืืื ืจืืงืึทื ืคืืืืขืจ ืขืก, ืืื ืืืจืฃ ืึท ืคืื ืืจืืืกื ืืืง ืกืขืจืืืขืจ. ืืื ืึทืืืขืืืื, ืฆื ืืืื ืฉืืื, ืขืก ืืืึธืื ืืืื ืจืืืืืง ืฆื ืฉืืงื ืึทืืข ืื ืืึทืื ืฆื ืื ืกืขืจืืืขืจ ืืื ืืืืขื ืึทืืข ืื ืฉืืื ืืจืึทืคืก ืืื ืื ืืืขื ืฆืืืื ื. ืึธืืขืจ ื ืื ืึทืืข ืืื ืึทืืึธื.
ืคึฟืึทืจ VPS ืืื ืืืืกืืขืจืืืืืื
ืืื ืึท ืืืคึฟื ืคืื ืงืึธืืื ืืงืึทืฆืืข ืืื ืื ืืึทืื ืืืึทืจื, vim2 ืืืืกืืขืจืืืืืื ืึท ืคืึทืจืงืขืจื ssh ืคึฟืึทืจืืื ืืื ื ืืื, ืืื ืคืืจ ืืื ืืขืืืืื, ืขืก ืืื ื ืืฉื ืืขืจ ืืขืกืืขืจ. ืืืื ืืขืจ ืงืฉืจ ืืื ืคืึทืจืคืึทืื, ืืขืจ ืกืขืจืืืขืจ ืืืื ืื ืคึผืึธืจื ืืื ืขืก ืืื ืืืืืขืืืขื ืฆื ืคืึทืจืืื ืื ืขืก ืคึฟืึทืจ ืขืืืขืืข ืืึธื. ืืขืจืืืขืจ, ืขืก ืืื ื ืึธื ืืขืกืขืจ ืฆื ื ืืฆื ืื ืืขืจืข ืงืึธืืื ืืงืึทืฆืืข ืืขืืืึธืืก, ืืืฉื VPN. ืืื ืืขืจ ืฆืืงืื ืคึฟื ืืื ืืขืืืืื ืฆื ืืึทืฉืืืืขื ืฆื ืืืคึผื, ืึธืืขืจ ืืื ืืึธื ื ืืฉื ืืึธืื ืฆืืื.
ืืื ืืืขื ื ืืฉื ืืืื ืืื ืืขืืึทืืืก ืคืื ืืึทืฉืืขืืืงื ืึท ืคืืืจืืืึทื, ืืึทืืจืขื ืขืฆื ืจืขืื, ืืืกืืืืึทืืื ื ืืืึธืจืฆื ืกืฉ ืงืึทื ืขืงืฉืึทื ื ืืื ืื ืืขืจืข ืืจืืืื ืคืื ืืึทืฉืืขืืืงื ืึท ืืืคึผืก. ืืื ืืืึธืื ืืื ืฆื ืืืืืื ืึทื ืืืจ ืืืืกื ืฉืืื ืึทืืฅ. ืคึฟืึทืจ ืึท ืืืืึทื ืงืฉืจ, ืืื ืืึทืื ืึท ื ืืึทืข ืืึทื ืืฆืขืจ ืืืืฃ ืื ืกืขืจืืืขืจ.
adduser vimssh
ืืื ืืืฉืขื ืขืจืืื ssh ืงืฉืจ ืฉืืืกืืขื ืืืืฃ ืืื ืืืขืจ ืืึทืื ืืืึทืจื.
ssh-keygen
ืืื ืืื ื ืึธืืืึทืื ืืื ืฆื ืืื ืืืขืจ ืกืขืจืืืขืจ.
ssh-copy-id [email protected]
ืืืืฃ ืืื ืืืขืจ ืืึทืื ืืืึทืจื, ืืื ืืึทืื ืึทื ืึธืืึทืืึทืืืง ืคืึทืจืงืขืจื ืกืฉ ืคึฟืึทืจืืื ืืื ื ืืื ืืขืืขืจ ืฉืืืืื.
[Unit]
Description=Auto Reverse SSH
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service]
User=khadas
ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -CD 8080 -R 8083:localhost:22 [email protected]
RestartSec=5
Restart=always
[Install]
WantedBy=multi-user.target
ืฆืืงืืงื ืืื ืฆื ืคึผืึธืจื 8083: ืขืก ืืืืขืจืืึทื ื ืืืึธืก ืคึผืึธืจื ืืื ืืืขื ื ืืฆื ืฆื ืคืึทืจืืื ืื ืืืจื ืคืึทืจืงืขืจื ืกืฉ. ืืืื ืขืก ืฆื ืกืืึทืจืืึทืคึผ ืืื ืึธื ืืืื.
sudo systemctl enable autossh.service
sudo systemctl start autossh.service
ืืืจ ืงืขื ื ืืคืืื ืืขื ืืขื ืกืืึทืืืก:
sudo systemctl status autossh.service
ืืืฆื, ืืืืฃ ืืื ืืืขืจ ืืืคึผืก ืกืขืจืืืขืจ, ืืืื ืืืจ ืืืืคื:
ssh -p 8083 khadas@localhost
ืืขืจื ืึธื ืืื ืืึทืงืืืขื ืฆื ืืืื ืคึผืจืืืืจื ืฉืืืง ืคืื ืืึทืื ืืืึทืจื. ืืื ืคึฟืื ืื ืืึทืื ืืืึทืจื ืืื ืงืขื ืขื ืืืื ืฉืืงื ืืึธืืก ืืื ืงืืื ืืึทืื ืืืจื ssh ืฆื ืืืื ืกืขืจืืืขืจ, ืืืึธืก ืืื ืืืืขืจ ืืึทืงืืืขื.
ืคึผืึทืืื ื ืขืก ืึทืืข ืฆืืืึทืืขื
ืืึทืฉืืืืขื ืืืืฃ, ืืึธืื ืืื ืื ืึธื ืืืืื ืึทื ืืืืืงืืื ื ืืื ืืืืึทืืื ื
ืคืื, ื ื, ืืึธืก ืืื ืขืก, ืืื ืืืกืงืจืืืื ืึทืืข ืื ื ืึธืืื. ืืืฆื ืขืก ืืื ืฆืืึทื ืฆื ืฉืืขืื ืขืก ืึทืืข ืฆืืืึทืืขื. ืืืจ ืงืขื ืขื ืืขื ืื ืงืึธื
ืึท ืืืืืืืง ืคืื ื ืืื ืื ืงืึธื: ืืขืจ ืคึผืจืืืขืงื ืงืขื ื ืืฉื ืึธื ืืืืื ืึทืืื, ืืืืึทื ืขืก ืืื ืืขืืืขื ืืืืืขืจื ืคึฟืึทืจ ืึท ืกืคึผืขืฆืืคืืฉ ืึทืจืืขื, ืคืื ืึท ืกืคึผืขืฆืืคืืฉ ืึทืจืงืึทืืขืงืืฉืขืจ. ืืึธืืฉ ืืื ืืขืื ืื ืืงืืจ ืงืึธื, ืืื ืืืขื ื ืึธื ืืขืจืงืืขืจื ืื ืืขืจืกื ืืืขืจืืคืื ืืืื ืืึธ, ืจืขืื ืืื ืืขื ืืขืงืกื, ืึทื ืืขืจืฉ ืขืก ืืื ืืึธืจ ืื ืืงืึทืืคึผืจืึทืืขื ืกืืืึทื.
ืืื ืื ืึธื ืืืื, ืืื ืื ืืฉืึทืืืื ืืคึผืก, gpio ืืื ืงืึทืืขืจ ืึท ืืึทืืื ืืขืจ ืกืงืขืืืฉืืืขืจ ืคืึธืืขื.
#ะทะฐะฟััะบ ะฟะพัะพะบะฐ ะฟะปะฐะฝะธัะพะฒัะธะบะฐ
pShedulerThread = threading.Thread(target=ShedulerThread, args=(1,))
pShedulerThread.start()
ืื ืกืงืขืืืฉืืืขืจ ืืื ืืึทื ืฅ ืคึผืฉืื: ืขืก ืงืืงื ืฆื ืืขื ืืืื ืื ืฆืืื ืืื ืืขืงืืืขื ืฆื ืฉืืงื ืึทืจืืืงืืขื ืืื ืืืึธืก ืื ืงืจืึทื ื ืืขืืช ืกืืึทืืืก ืืื. ืืืื ืขืก ืืื ืึท ืืขืืช ืคืึธื, ืืืจ ืคึผืื ืืืขื ืื ืืขืคืืจื.
#sheduler
def ShedulerThread(name):
global ready_to_send
while True:
d = datetime.today()
time_x = d.strftime('%H:%M')
if time_x in time_send_csv:
ready_to_send = True
if error_status:
error_blink()
else:
good_blink()
time.sleep(1)
ืื ืืขืจืกื ืฉืืืขืจ ืืืื ืคืื ืืขื ืคึผืจืืืขืงื ืืื ืฆื ืืึทืืื ืื ืคืึทืจืงืขืจื ืกืฉ ืงืฉืจ ืคึฟืึทืจ ืืขืืขืจ ืคึผืจืึธืืข. ืืขืืขืจ ืคึผืจืึธืืข ืื ืืืึทืืืื ืฉืืึทืขื-ืงืึทื ืคืืืืขืจืื ื ืื ืคืขืืืงืืึทื ืืืืืืืื ืืื ืื ืก ืกืขืจืืืขืจ. ืืื ื ืงืืื ืขืจ ืืืืขื ื ืกืืึท ืืื ืกืืึท, ืืืืกื ืึทื ืื ืืึทื ืคืึธืจ ื ืืฉื ืืืืฃ ืืืืืึทื ืจืขืืก. ืืืขืจ ืขืก ืืจืขืคื ืื ืืกืืขืจ ืื, ืืืงืืื ืืืกืืืึทืจื.
ืฆื ืืึธื ืืึธืก, ืืื ืืึทืื ืึท ืืึทืืื ืืขืจ ืจืืืื ื ืืืฉ -ืกืขื-mark 0x2 ืืื ืึท ืืขืจืฉื ืฆื ืจืืืขืจืขืงื ืคืึทืจืงืขืจ.
def InitRouteForSSH():
cmd_run("sudo iptables -t mangle -A OUTPUT -p tcp -m tcp --dport 22 -j MARK --set-mark 0x2")
cmd_run("sudo ip rule add fwmark 0x2/0x2 lookup 102")
ืืืจ ืงืขื ืขื ืืขืจื ืขื ืืขืจ ืืืขืื ืืื ืขืก ืึทืจืืขื
ื ืึธื ืืืึธืก ืืื ืืืื ืืื ืึท ืกืึธืฃ ืฉืืืืฃ, ืืื ืืขืืขืจ ืืึธื ืืืจ ืืึทืงืืืขื ืึท ืจืฉืืื ืคืื ืงืึธื ื ืขืงืืขื ืืึธืืขืืก (ืฆื ืืขืคึฟืื ืขื ืืืืก ืืืื ืื ื ืขืฅ ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืคึผืืืฆืืื ื ืืขืืืื).
network_list = getNetworklist()
ืืึทืงืืืขื ืึท ืจืฉืืื ืคืื ื ืขืฅ ืื ืืขืจืคืืืกืื ืืื ืืึทื ืฅ ืคึผืฉืื.
def getNetworklist():
full_networklist = os.listdir('/sys/class/net/')
network_list = [x for x in full_networklist if "eth" in x and x != "eth0"]
return network_list
ื ืึธื ืืืงืืืขื ืื ืจืฉืืื, ืืื ืฉืืขืื IP ืึทืืจืขืกืขืก ืฆื ืึทืืข ืื ืืขืจืคืืืกืื, ืืื ืืื ืืขืืืืื ืืื ืื ืืืื ืืื ืื ืงืึทืคึผืืื ืืืขืื ืืขื ืืึธืืขื.
SetIpAllNetwork(network_list)
def SetIpAllNetwork(network_list):
for iface in network_list:
lastip = "%d" % (3 + network_list.index(iface))
cmd_run ("sudo ifconfig " + iface + " 192.168.8." + lastip +" up")
ืืขืจื ืึธื ืืื ืคืฉืื ืืืื ืืืจื ืืขืืขืจ ืฆืืืื ื ืืื ืึท ืฉืืืืฃ. ืืื ืืื ืงืึทื ืคืืืืขืจ ืืขืืขืจ ืฆืืืื ื.
for iface in network_list:
ConfigNetwork(iface)
def ConfigNetwork(iface):
#ัะฑัะฐััะฒะฐะตะผ ะฒัะต ะฝะฐัััะพะนะบะธ
cmd_run("sudo ip route flush all")
#ะะฐะทะฝะฐัะฐะตะผ ัะปัะท ะฟะพ ัะผะพะปัะฐะฝะธั
cmd_run("sudo route add default gw 192.168.8.1 " + iface)
#ะทะฐะดะฐะตะผ dns-ัะตัะฒะตั (ััะพ ะฝัะถะฝะพ ะดะปั ัะฐะฑะพัั speedtest)
cmd_run ("sudo bash -c 'echo nameserver 8.8.8.8 > /etc/resolv.conf'")
ืืื ืงืึธื ืืจืึธืืืจื ืื ืฆืืืื ื ืคึฟืึทืจ ืคืึทื ืืงืฉืึทื ืึทืืืื, ืืืื ืขืก ืืื ืงืืื ื ืขืฅ, ืืื ืืืฉืขื ืขืจืืื ืขืจืจืึธืจืก. ืืืื ืขืก ืืื ืึท ื ืขืฅ, ืขืก ืืื ืฆืืื ืฆื ืืึทื ืืืขื!
ืืึธ ืืื ืงืึทื ืคืืืืขืจ ssh ืจืืืื ื ืฆื ืืขื ืฆืืืื ื (ืืืื ืขืก ืืื ื ืืฉื ืืขืืื), ืฉืืงื ืขืจืจืึธืจืก ืฆื ืื ืกืขืจืืืขืจ ืืืื ืื ืฆืืื ืืื ืืขืงืืืขื, ืฉืืงื ืืึธืืก ืืื ืืขืกืึธืฃ ืืืืคื ืึท ืกืคึผืืืืขืกื ืืื ืจืึทืืขืืืขื ืื ืืึธืืก ืฆื ืึท ืงืกืื ืืขืงืข.
if not NetworkAvalible():
....
#ะะดะตัั ะผั ัะพัะผะธััะตะผ ะพัะธะฑะบะธ
....
else: #ะััั ัะตัั, ััะฐ, ัะฐะฑะพัะฐะตะผ!
#ะัะปะธ ั ะฝะฐั ะฟัะพะฑะปะตะผะฝัะน ะธะฝัะตััะตะนั, ะฝะฐ ะบะพัะพัะพะผ ssh, ัะพ ะผะตะฝัะตะผ ะตะณะพ
if (sshint == lastbanint or sshint =="free"):
print("********** Setup SSH ********************")
if sshint !="free":
ัmd_run("sudo ip route del default via 192.168.8.1 dev " + sshint +" table 102")
SetupReverseSSH(iface)
sshint = iface
#ัะฐะท ัะตัะบะฐ ัะฐะฑะพัะฐะตั, ัะพ ะดะฐะฒะฐะน ััะพัะฝะพ ะฒัะต ะพัะฟัะฐะฒะธะผ!!!
if ready_to_send:
print ("**** Ready to send!!!")
if sendLogs():
ready_to_send = False
if error_status:
SendErrors()
#ะธ ะดะฐะปะตะต ัะตััะธััะตะผ ัะบะพัะพััั ะธ ัะพั
ัะฐะฝัะตะผ ะปะพะณะธ.
ืขืก ืืื ืืืื ืฆื ืืขืจืืึธื ืขื ืื ืคึฟืื ืงืฆืืข ืคืื โโืืึทืฉืืขืืืงื ืื ืคืึทืจืงืขืจื ssh.
def SetupReverseSSH(iface):
cmd_run("sudo systemctl stop autossh.service")
cmd_run("sudo ip route add default via 192.168.8.1 dev " + iface +" table 102")
cmd_run("sudo systemctl start autossh.service")
ืืื ืคืื ืงืืจืก, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืื ืึทืืข ืืขื ืฉืืื ืงืืื ืฆื ืกืืึทืจืืึทืคึผ. ืฆื ืืึธื ืืึธืก ืืื ืืึทืื ืึท ืืขืงืข:
sudo vim /etc/systemd/system/modems_speedtest.service
ืืื ืืื ืฉืจืืื ืืื ืืื:
[Unit]
Description=Modem Speed Test
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service]
User=khadas
ExecStart=/usr/bin/python3.6 /home/khadas/modems_speedtest/networks.py
RestartSec=5
Restart=always
[Install]
WantedBy=multi-user.target
ืืื ืงืขืจ ืืืืฃ ืึทืืืึธืืึธืึทืืื ื ืืื ืึธื ืืืืื!
sudo systemctl enable modems_speedtest.service
sudo systemctl start modems_speedtest.service
ืืืฆื ืืื ืงืขื ืขื ืืขื ืืึธืืก ืคืื ืืืึธืก ืืื ืืขืฉืขืขื ืืฉ ืืื ืืขื ืืึทืคึฟืขื:
journalctl -u modems_speedtest.service --no-pager -f
ืจืขืืืืืึทืื
ื ื, ืืืฆื ืื ืืขืจืกื ืืืืืืืง ืืึทื ืืื, ืืืึธืก ืืขืืจืืคื ืืื ืึท ืจืขืืืืืึทื? ืืึธ ืืขื ืขื ืึท ืืืกื ืืจืึทืคืก ืืืึธืก ืืื ืืขืจืืื ืฆื ืืึทืคึผื ืืขืฉืึทืก ืื ืึทื ืืืืืงืืื ื ืืื ืืืืึทืืื ื ืคึผืจืึธืฆืขืก. ืื ืืจืึทืคืก ืืขื ืขื ืืขืืืื ืืื ืื ืืคึผืืึธืฅ ืืื ืื ืคืืืืขื ืืข ืฉืจืืคื.
#! /usr/bin/gnuplot -persist
set terminal postscript eps enhanced color solid
set output "Rostelecom.ps"
#set terminal png size 1024, 768
#set output "Rostelecom.png"
set datafile separator ';'
set grid xtics ytics
set xdata time
set ylabel "Speed Mb/s"
set xlabel 'Time'
set timefmt '%d.%m.%Y;%H:%M:%S'
set title "Rostelecom Speed"
plot "Rostelecom.csv" using 3:6 with lines title "Download", '' using 3:7 with lines title "Upload"
set title "Rostelecom 2 Ping"
set ylabel "Ping ms"
plot "Rostelecom.csv" using 3:8 with lines title "Ping"
ืืขืจ ืขืจืฉืืขืจ ืืขืจืคืึทืจืื ื ืืื ืืขืืืขื ืืื ืื Tele2 ืึธืคึผืขืจืึทืืึธืจ, ืืืึธืก ืืื ืืขืคืืจื ืคึฟืึทืจ ืขืืืขืืข ืืขื.
ืืึธ ืืื ืืขืืืืื ื ืึท ืืื ืึทืืืฉ ืืขืกืื ืกืขืจืืืขืจ. ืกืคึผืื ืืขืืฉืขืจืืึทื ืฅ ืึทืจืืขื, ืึธืืขืจ ืืืึทืงืืขื ืืื ืืืืขืจ ืคืื, ืึธืืขืจ ืขืืืขืืข ืืืจืืฉื ืืืืขื ืืืขืจื ืืื ื ืึธื ืงืขื ืืืง, ืืื ืืึธืก ืงืขื ืขื ืืืื ืืืงืืืขื ืืืจื ืคืืืืขืจืื ื ืื ืืึทืื, ืืืฉื, ืืื ืึท ืืึธืืืื ื ืืืจืืฉื ืืืืขื.
ืฉืคึผืขืืขืจ ืืื ืืขืืืื ืึท ื ืืืขืจ ืคืื ืืจืึทืคืก ืคึฟืึทืจ ืื ืืขืจืข ืืขืืขืงืึธื ืึธืคึผืขืจืืืืขืจื. ืืื ืืขื ืคืึทื, ืขืก ืืื ืฉืืื ืืืื ืืขืกืืื ื ืกืขืจืืืขืจ, ืืื ืื ืจืขืืืืืึทืื ืืขื ืขื ืืืื ืืืืขืจ ืืฉืืงืึทืืืข.
ืืื ืืืจ ืงืขื ืขื ืืขื, ืื ืืขืืข ืืื ืืืืขืจ ืืจืืื ืคึฟืึทืจ ืคืึธืจืฉืื ื ืืื ืคึผืจืึทืกืขืกืื ื ืคืื ืื ืืึทืื, ืืื ืงืืืจ ื ืืฉื ืืขืฆืืข ืคึฟืึทืจ ืึท ืคึผืึธืจ ืคืื ืืืึธืื ืคืื ืึทืจืืขื. ืึธืืขืจโฆ
ืจืขืืืืืึทื ืคืื ืืขืจ ืึทืจืืขื
ืื ืึทืจืืขื ืืื ืคึผืืืฆืืื ื ืืขืขื ืืืงื ืจืขืื ืฆื ืฆืืฉืืื ืื ืืืืกืขืจ ืืืื ืงืึธื ืืจืึธื. ืืืื ืข ืคืื โโืื ืฉืืืึทืืงืืืื ืคืื ืืขื ืคึผืจืึธืืขืงื, ืืืื ืืืื ืกืึทืืืืฉืขืงืืืื ืืืื ืื ื, ืืื ืืขืืืขื ืืขืจ ืืึธืืขื, ืืืึธืก ืืื ื ืืฉื ืืึทืงืข ืืืืื ืฆื ืึทืจืืขืื ืกืืืืึทืืืืื ืืึทืกืื ืืื ืื ืืขืจืข ืืึธืืขืืก, ืืื ืืขืืืื ืึทืืึท ืืจืืงืก ืืขืืขืจ ืืึธื ืขืก ืืื ืืขืืืขื ืืึธืืืื. ืคึฟืึทืจ ืื ืฆืืืขืงื, ืขืก ืืขื ืขื ืึท ืจืืืืง ื ืืืขืจ ืคืื ืื ืืขืจืข ืืึธืืขื ืืึธืืขืืก; ืืืืฉืึทืืืึทืื ืืื ืืขื ืขื ืฉืืื ืืื ืื Mini PCI-e ืคึฟืึธืจืืึทื ืืื ืืขื ืขื ืืื ืกืืึทืืืจื ืื ืื ืืืื ืืื ืืขื ืขื ืคืื ืืจืื ืืขืจ ืฆื ืงืึทื ืคืืืืขืจ. ืึธืืขืจ ืืึธืก ืืื ืืึธืจ ืึทื ืึทื ืืขืจ ืืขืฉืืืืข. ืืขืจ ืคืจืืืขืงื ืืื ืืขืืืขื ืืื ืืขืจืขืกืื ื ืืื ืืื ืืื ืืขืืืขื ืืืืขืจ ืฆืืคืจืืื ืื ืืื ืืื ืืขืงืขื ื ืื ืืืืื ืขืืขื ืืื ืืื.
ืืงืืจ: www.habr.com