αααα»αα’αα‘α»ααααααΆααα±αααα ααΆα αααΈαα αααα»αααααΌαααΆααααααααΌαα±ααα αΌααα½ααααα»αααΆαα’αα·ααααααα§ααααααααααΆααααΆααααααΏααααααΌααΉα LTE αααααΆααααααα·ααααα·αααααα·ααΆαα½αα ααα½αα
α’αα·αα·ααα ααααΆααααααααααΏαααααααα·ααααα·ααααΌαααααΆαααααααααααα αααα»αααΈααΆααααΌαα·ααΆαααααααααααααααΆ ααΎααααΈα’αΆα αααααΆααΎααααα·ααααα·ααααΌααααααα½αααΆαααααα’αααα»ααααααΆααααΆαααα αααααα‘αΎαα§ααααααααααααΎααΆααααααΆαα LTE α§ααΆα ααααααααΆααααΆαααααΆαααΈααα’αΌα αααα»ααααααΆαα½αααααΆααα αααα αΆααααΌααααααααΆααααΆαααΆαααα αα·ααααααΆααααα’αΆα ααααΎαα ααΆα αααααααΆαα§ααααααααααα
αααα»αβααΉαβαα·ααΆαβααααΆααβααΆβαα·α
αα
ααΆαβαααβαα·αβαααβααΆααααβαααα»α αα·αβααΉαααα’ααβααΎβα
ααααααΉαβαααα»αβαααβαα αααα»αβααΉαβααααΆααβα’αααβααΈβαααα αΆβαααβαααα»αβααΆαβαα½α αα·αβααααβαααβαααα»αβαααααααΆαβααΆβα ααΌα
αααα ααααα
α
ααΆαααααααααΆαα
ααΆαααΆααααααΏαααααΆααααααΆαααααααΆα LTE ααΊααΆαααα αΆαααααα»αααααΆααα½αα α’αααααααΌαααααΎαααΎαα§ααααα αα·ααα αα αααααααΆαααααααααΉαααααΌα α αΎαααΆααααΆαααΆααααααΉααααΆαααα’α’αααΈαααααΆαααΈ αα·αααααα·ααααα·ααΆααααααααΆααααα·ααΆαααααα ααΎαααΈααα ααααΏαα’αΆα ααααΌαααΆαααα₯αααα·ααααααααααΆααΆα αααΎαα α ααα½αα’αααααΆααα ααΎαααα‘αΆ ααααααααα’αΆααΆαααΆαα» ααΌααααΈααααΈαααα·ααΆαα½ααα αααα‘αΆαα½α ααααΏαα’αΆα αααααααα½ααααΆαααααΆαααααααΆααααααααΆα topology α ααΆααΌαα αααααΊααΆαααα αΆαααααΆαα ααα½αα αααΎαααααα·αααααΆαα α αΎαααΆαααααααα·ααααα·ααααΌαααααΆαααααααααα’αΆα αααααααΆαααΆααΆαααααΉαααααΌαα
ααααΌα α’αα·αα·ααααααΆααααα αααααα»αα’αααααΆααααα»αααααΆαα½αααΌααααααααααααααα·ααααα·αα ααααΎααΆαααΆααααααααααααΆαααα ααΎααΌαααααα α αΎααααααΆαααααααααααααααααΆααααααΏααα αααα»αααααα αααααααΆα αααααααααΆααααααααα»ααααααΆααααΆαααΆααααααΏααααααΆα Lte αααααΈααΆαα·αααααααααααα αααααααααΆααααα αΆαααα
αααααΆααααααααααααΆ αααα»αααΆααααααα α α·ααααα·ααααα α·αααααΉαααΆαααΆααααα½α α¬ααΆαα’αα»ααααααΆααααααααα ααα»ααααααΎααααΈαααα»αααααΏαααααΆαα’αα·ααααααα α§ααΆα ααα ssh αααα αααΆαααααΌαααΆαααααΎαααααΆααααΆαα αΌαααααΎααΈα ααααΆα αααα½αα±αα VPN ααΆαααααααααΆααα»α ααΎααααΈααααααααααααΆααΎααΆαααα‘αΎααααΆαααΈααα αα·ααααΆαααΈααααααααΈαα½ααα
ααΆααα·α αα αα αα ααααα
ααΌα
αααααΆααααααΆαααα
αααα»αα’ααααα
αα·α αα ααΆααα αα αααααααΊααΆααααααΆαα αααα»αααΉααααααΈαααΆααααα·α αααααΆααααΆααααααΉαααααα’αααααααΎααααΆααα α»ααααααα αααααΎααααααααααααΆααα αα ααααα αα·αα§αααααααααΌαααΆαααααααααα’αα·αα·ααα ααΌα αααα αααααααα αα αααααααααααα½αα―α αααααΆααααΈααΆαα’αα»αααααΆααα’ααα
ααα’ααααΎαα»αααααΌαααααααααααα½α αααααΆα α’α§ ααααΎβαααααβααααΏαβαααααΆααβααΆαβαααααΆαα lte ααΆαβαααβαααΌααΉα Huawei e3372h - 153 ααααα·ααααα·ααααΌαααααΆααααααΆα αααΎα (ααΈαα½ααα n) α ααΆααα αΆαααΆα αααααααααα»αααΆαααα½αααΌα’αααααααΈα’αααααα½α GPS αααααααΆααααΆαααα UART α ααααΎααΆαααΆαααααααααΏααααααααΎααααΆαααα
ααα ααααα www.speedtest.net α αΎαααΆααααΆα αΌααα αααα»ααα»ααΌα ααΆα
ααΆααΆααααα»ααααααα csv α αααααΆααααααααΎαααααΆαααααΆαα’ααΈααααααααΆαα 6 ααααααααα αααα»αααααΈααΆαααα α»α ααΌααααα·α ααααα LED αααααααΆαααα GPIO α
αααα»αααΆααα·αααααΆα’αααΈαααααααα αα ααααααααα»αααααααα₯ααα·ααααα αααααΆααααΈααΆαααΆααααααααααΆα αααΎαα ααα»ααααα’αααααααααα·α αα ααΆαααΊα’αΆα ααΎαααΎααα½α α αΎαα αα½ααααααΆα αααααΌαααΆααααααα±αααααααΆααα’αααΈααααααααΆαα ααα»ααααααΆααα·αααΆααΆαααααααααΈαααααΆα αα αααβααΊβααΆβααΆαβαα·αβαααβααΆαβαα·αβαααβαααα»αβααΆαβααααΎβαααβααβαααααΆααβααΈβααΆαααΆαβααααΆααβααααβαααα»α αα·αβαα βααααβα α»αβαααααΆα αα
αα ααΈααααααα»αα ααααΆααααΆαααΆαααα α·ααααα»αααΆαααααααααα ααααααΆααα·ααααααΆα’αα·αα·ααααΆααααααααααΆαα»αααΎααΆαααααΎααααΆααααααΆααααααΆααααααΏα αα·ααααααααΉα αααααααααααααααΆααααααααα»ααααΆαααααΆααα ααα·ααΆααααΆαααααα·αααααα ααΌα ααααααααΆαα’αααΈαα·αααααααΌαααΆααα·αααα ααΌα ααααβααΎαβααααΌαβαααβαααβα αααΆααβααΆααβαααα
ααααΆαααααααα αα·αααΆαα’αα·αααααα
αααααααΆαααααΊααΆαααααα·αααΆαααααααα ααΌα ααααβα αΎα αααα»αβααΉαβαα»αβααΆβα ααβαααβααααΆαβαααααβα’αααΈβαα·αααα
αααα»αααΆααααααα
α
α·αααα’αα»ααααααααααααΆααααΌααα
αααα»α python αααααΈααΆααΆααα·αααΆαααα»ααα·αααΆααααα·ααααααααα»αααΆαα’αα·ααααααααΆααΆαααααΆαααααααα αααα»αααΆαααααΎαααΎαααΆ αααααΆαααΆαα§ααΆα ααα αα·ααααααααααΆααααααααααα½α
ααΆααααα
αααα’αΆα
αααααΎαααααΏαααααΆαα’αα·ααααααα α’αΆαααααα ααα»ααα αααα»ααα»αα±ααα’αααααααααααααα·ααΈα’αΆααΈαααΆααα’αααα»ααααααΆααααα·αααααααααΌααααααααα»ααααα»αααΆαα’αα·αααααααααα»α python α αΎααααα»ααααααααΈαααΆααααα»αααΆαααααΆααααΆααα·αααααααα»ααααααααΆαααΆ ααΎααααΈαααααΉαααααΆααααααααα»αα
ααααααα αααα»αααααΎαααΆααααα»αααΆαααααΎαααΆ python ααΆαααΈαααααααα»αααααΎαααΆααααα 2 αα·α 3 ααΆαααααααααα»αααΆααααααααΆααα ααΎααΈααΈα
ααααΆαααααααααΉα
α αΆααααα½α vim2
αααα»αβααααΌαβααΆαβααβαααααβαα»αααααΌαααβαααααβααβαα½αβααΆβαααΆαααΈαβααααΆααβααααβαααα»α
ααααααααααααΎαααΆαααααααααΆαα’αΆαα»ααΆαααααα’α₯αααα
αααααααΆααααααααααΆααα αα·αααΌααααααα SMART-TV ααα»αααααα·ααααααα·αααααα»ααααααΆαααα·α
αα
ααΆαααα α¬α’αΆα
αα·ααΆαααΆαααΆαα·αααααααα α§ααΆα ααα ααααααααααααα·ααααα·ααΆαα
ααααααααααΆααΊ Android α αΎαααΈαα»α
ααΊααΆααααααααααααα·ααααα·ααΆααααααΆααααααα α αΎαααΆααααααααΆαααααΆααααΆααααΆααΆααΌαααααα·ααααα·ααΆααααααΆααα»αααΆαααααααα nodes αα·α drivers ααΆααα’αααα
αααααααΈαα»α
αααααα α αΎααααα»αααααααααΆαααα αΆαα½αα
ααα½αααΆααααααΉααααααα·ααΈαααααΆ USB αααααα·ααΆααα ααΌα
αααααααΌααΉααα·αααααΎαααΆαααΌα
ααΆαααααΉααα»ααα
ααΎααααΆααααααα ααΆααααΆαα―αααΆαααααΈααα αα·αααα
αΆααααα
αΆαααααα ααΌα
ααααααααα·ααααα·ααΆαααΈαα½ααααααΌαα
αααΆααααα
αααΎααααα»αααΆαααΈααααΆαα
αΌαα
αα ααΌααααΈααααΆαααΆαααααααΆααΆαα½α GPIO ααΆαααααΆαα
αααΎαα ααΆα§ααΆα ααα αααα»αααΆαα
αααΆααααααΆα
αααΎαααααααΎααααΈααα‘αΎα LEDα ααα»ααααβααΎααααΈβααΆβααααα
ααΆβααΆβααΌαααααΆαβαα·αβααααΆααβααΆβααααααβααααΆαβαααα½αβααααααβααΆβαα ααΏαβααααΆααβααΊβααΆβααααΎαααΆαβα αΎαβααΆαβαααα USBα
ααααΌααααα»αααααΌαααα‘αΎαααΈαα»α αα ααΎααααΆααααα ααΎααααΈαα»αα±ααααΎαααΆαα―αααΆααααααααααΆααααα»ααααααααααααΆ αα·ααααααΆααα’ααααααααΉααααααααΆαααΆαα½ααααααααααααα½αααα αααα»ααααα»ααααααααααΌααααα
ααΆααααααΎαααΈααααα»αααΆαααα‘αΎαααΈαα»α α αα ααΎααΆα SD ααΆααααα α¬αα ααΎ MMC ααΆααααα»αα αααα»αααΆαα αααΆαααααα½αααααΆα ααΎααααΈααααααααα·ααΈααααΎα±ααααΆααααΎαααΆαααΆαα½αααΆα ααΌα αααααααα»αααΆααααααα α α·αααααα‘αΎαααΆαα ααΎ MMC αααααΈααΆααΆαααΆαααααααααααα ααΆααΉαααΆααααααΆααααα½ααααα»αααΆαααααΎααΆαααΆαα½αααΆαααΆααααα α
α’αααΈαααααα·ααΈαααααα
- α§ααααα Pin GNDα <β> Pin17 αα GPIO αααα VIMs
- Tool Pin TXDα <β> Pin18 αα GPIO αααα VIMs (Linux_Rx)
- α§ααααα Pin RXDα <β> Pin19 αα GPIO αααα VIMs (Linux_Tx)
- Tool Pin VCCα <β> Pin20 αα GPIO αααα VIMs
αααααΆααααΈααααααα»αααΆαααΆααααααααα·ααΈαααααα
ααΎααααΈα’αΆααα‘αΌααααααα·ααΈααααααααα αααα»αααααΌαααΆαα§αααααααααΎααααΆααα ααααααΆααααα’α·αααααααα’αααΈααΏαααα
git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL
Aaand... ααααΆαα’αααΈααααΎαααΆαααα αααα»αβααΆαβα αααΆαβαααβααΈαβααΈβααααβααααααα½αβααααααΈαβααα‘αΎαβααΌα ααααβα’αααΈαβααΉαβααα‘αΎαβααΆαβααααΉαβααααΌαβαααααΆααβαααα»αα αααα»ααα·αα αΆαα’αααΈααααααα»αααΆαααααΎαα ααΈααααα ααα»ααααααααΆαααααααααΆαα½αααααααααα ααΌα ααααααΌαααααααααα ααα»ααααβααΎβααααΆαβα§αααααβααααΎααααΆααβααΆααβααα ααΆβααααΆαβα ααα»α βααΆβαααα»αβααΆαβααααΎβααΆαα»ααααα vim2 αααβααα αααααΎαααΆααα»αααααααααααΆαα½αααΆαα!
αααααΆααααΈααααααααααΆαααΈαααααΆαααα ααΆαααααααα
ααΆαααααααα αα·αααΆαααα‘αΎαααααααΈα αααα»αααΆαααα½ααααα
ααα§αααααααααΎααααΆααααααααα»αααααΎαααΆαα αααα»αααΆαααααΆαααααααααΆαααα USB αα
αα»αααααΌαααααΈαα»α
αααααααα»α α αΎαααααΆαααααΆαα UART ααΆαααααΆααααΆαααΆαααΎα
αααα»ααααα»αααα‘αΎαααααΆααΈα minicom αααααααααααααα»ααααααΆααααααΏα 115200 αααααααΆαααΆααααααααααααα α»ααααααααΉα αα·ααααααα·ααΈα α αΎαααΌαα
αΆααααααΎαα
αα
ααααααα»α VIM2 αα
αααα»αααααΆααΈα UART αααα»αα
α»α
ααααΆααα
α»α
ααΌα
ααΆ spacebar ααΎααααΈααααααααΆααααα»αα αααααΆααααΈαααααΆααααα
α‘αΎα
kvim2#
αααα»ααααα αΌαααΆααααααααΆα
kvim2# run update
αα ααΎαααΆαααΈααααααΎααααα»ααααα»α αααα»αααααα·ααααα·α
burn-tool -v aml -b VIM2 -i VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img
αααα αΎαααΆααΆ, phew α αααα»αααΆααα·αα·αααα αΎα ααΆαααΈαα»α αα ααΎααααΆαα α αΌα/ααΆααααααααΆαα khadas:khadas.
αααααΆααααΈααα ααΆααααααααααΌααα½αα ααα½αααΌα α αααααΆααααΆαααΆαααααααααα αααα»ααα·αααΆααααααααΆαααααααΆαα sudo (ααΆα αα·αααΆααα»ααααα·ααΆα ααα»ααααααΆααααα½α)α
sudo visudo
αααα»αααααααα½ααααααΆαααα ααααααα αΎααααααΆαα»α
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
αααααΆαααααααα»αααααΆααααααΌαααΌαααααΆααα αα α»ααααααααΎααααΈα±αααααααααΆααΊαα ααΈαααα»αααΌααααΌααΎαα·αααΌα ααααααααΆααΉααα Greenwich α
sudo timedatectl set-timezone Europe/Moscow
α¬
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
ααααα·αααΎα’ααααα·ααΆα ααΌααα»αααααΎααααΆαααα Raspberry Pi αααααΎαααΆαα αααααααααααααα
αααΌααΉα Huawei e3372h β 153
αααΌααΉααααααΊααΆαααααααΆαααααααΆαααααααΆαααααα»α α αΎαααΆααα·αααΆααΆαααααΆαααΆα§αααααααααααααααΆααααΌαα ααΆααΌαα ααααα "αααΌααΉα" αααααΆααα§αααααααΆααααααα·ααααα»ααααα αΆααααΈααααΉαααΆαααααΆαααΆαααΆαααααααα αααααΊααΆααΆααα½αααααααααΆαααΆααα αααααααΉααααααΆαα§αααααααααααααααααααααΎααΆ CD-ROM ααΎααααΈααα‘αΎααααααα·ααΈαααααΆα α αΎααααααΆααααααααΌααα ααααααΆααααααΆαα
ααΆαααααΆαααααααα ααΆαααααααααααα’αααααααΎααΈαα»α αααααΆααααΈααΆααααααααΆααα’αα ααΆααΎααα ααΌα αααα αααααΆααααΈααααΆαααααΌααΉα αααα»αααΆαα ααα»α αααααΆαααααααΆα eth* αααααΆαααα dhcp ααα½αααΆαα’αΆααααααΆα IP 192.168.8.100 αα·αα αααα ααα αΌαααααΆαααΎα ααΊ 192.168.8.1 α
α αΎααααααααΆααααααΆαααααα»α! αααΌααααααΌααΉαααααα·αα’αΆα ααααΎαααΆααααα»ααααααααααΌααΉααααααααΌαααΆαααααααααααααααΆααααααααΆ AT ααα. α’αααΈααααααααΆαααΉαααΆααααααΆαααα αααααΎαααΆααααααΆαα PPP αααααΆαααααΌααΉαααΈαα½αα α αΎααααααΆααααααααΎαααΆαααΆαα½ααα½αααα ααα»αααααααα»αααααΈαααααααα»α "αααα½αααΆααααααΆαα" (ααΆααααα αααΆααααΆαααααα ααα α’ααααα»αααΉαααΈαα»α αααααΆαα αααΆαα udev) αααααΎαα ααα»α αααααΆαα eth αα·ααααααα’αΆααααααΆα IP α±ααααΆααΆαααα dhcp α
ααΎααααΈαααααΆαααΆαααΆααα
ααααααααααααα αααα»αααααΎα±ααααααα
ααΆααα "αααΌααΉα" α αΎααα·ααΆαααΆααΆααααααΆα αα·αα
αααα
ααα
αΌα αααααααΆααΌα
ααΆααΆαααααΆααααΆααααααΆαααααΈααΆαα½αααΉαα
αααα
ααα
αΌαα
αα
ααααααααΆααααΌααΉααα½α ααΆαα·ααααααΆαα±ααααΆααααα αΆαα·αααααΆαα½αααααα ααα»αααααα
ααααααααΆαα
αααΎαααΆααα½α αααααΊ n-pieces ααΌαααΆααααααΆαααΆααααααααΉαααΎαα‘αΎαα
αααααΊ n network cards αααααΆαα’αΆααααααΆα IP ααΌα
ααααΆ αααααΈαα½ααααΆα gateway ααααΆαααΎαααΌα
ααααΆα ααα»ααααααΆααα·ααα½αααΆααΈαα½ααααααΌαααΆαααααΆαααα
ααααα·ααααα·ααααααΆααααααααΆα
ααααΌα αααα»αααΆααααααααααΆαααΆαααααα½αα αααααααΎααΆααααααααΆ ifconfig α¬ ip αα·αα ααα»α αααααΆααααΆααα’αα α αΎαααααΆααααααΎαααΆαααα α αΎαααΆαααααααΆα αααααβααααΆαβααΊβααα’βαααααΆααβα’αααβααΆααβααααΆ ααΎαβαααβααβααΆβαααα»αβα’αα‘α»αβαααβααβααΆαβααααΌαβαααα»αβαα·αβα’αΆα βααααΆααβαα βα§αααααβααΆαβααα α αΎαα αΆααααΆααααΈααΆαααααΌαααΉαααΆαα αα·αααΏα αααα»ααα·αααΆααααΆαα±ααΆαααΎααααΈααααΆααα’αααΈααΆααα’ααα
ααΌα ααααα αΎα αααα»αααΆαααααΎαααΎαααααΌαααααΆαααααΆααααααΌαα’αΆααααααΆα IP αααααααΌααΉαααααα α αΎααααααΆααααααΎαα ααΆα ααααααααΎααΆααααααααααΌαα
ααααα·ααααααΆααΆααααα
αααααααα αΆαααααααα»αααΆαα½ααααΌααΉαααα αααα»αααααΈααΆααααα αΆααΆααα ααΆααΆααααα α αΎαααΆαααααααααααααΆαααααΆααααααααΆαααα’αα
ααΆααααααααααα USB ααααΌαααΆαααΆαααΆαα αααα»αβααΆαβαααααααΆαβαααα αΆβαααβαααβαα·ααΆαβαααβααΆαααβαααααααΆααβαα
ααΆααβαααααααααα αααα αΆαα½ααααααααααα»αααΆααα½αααααα αα·ααααααααααΆαααααααααΆααααΌαα αααααΆααααΈα§αααααα
αΆααααααΎαα‘αΎααα·α α¬ααΆαα
αΆααααααΎααααααΆαα αα·αααααααΌααΉαααΆααα’ααααααΌαααΆαααααΎα α αΎααα·ααααααααααα α αΎααααα»ααα·αα’αΆα
αααααααΆα ααα»α’αααΈααΆαααΆααΆααΎαα‘αΎα αα·ααααα’αααΈααΆαααα½ααααααααΆααααααα ααα»ααααααΏαααααΌαα
ααΎααααΈα±αααααΌααΉαααααΎαααΆαααΆαααααΉαααααΌα αααα»αααΆαααα‘αΎααααα αα usb-modeswitch α
sudo apt update
sudo apt install -y usb-modeswitch
αααααΆααααΈααααααααΆααααΈααααΆαα αααΌααΉαααΉαααααΌαααΆαααααΎααααΆαααααΉαααααΌα αα·αααααααα
ααΆααααααααααααααααααααα udev α αααα»ααα·αα·ααααααααααΆααααααααΆαααααΌααΉα α αΎαααααΌαααααΆααααΆαααααΆαααα
α
ααααα
αααα αΆαα½ααααααααααα»ααα·αα’αΆα
αααααααΆαααΆαα ααΎαααα»αα’αΆα
αααααααααααα·ααααα·αααααααΎααααα»αααααΎααΆαααΆαα½αααΈαααΌααΉαααααααααααααΆ? αααααααααα·ααααα·ααααΆααα
αααα»αα
ααα»α
αααααΆαααααααΆααααΌααΉααα
192.168.8.1 α αααααΊααΆααααααααααΆαααΆααααααααααα½ααα·ααααααααΆααααααααΎαααα Ajax ααΌα
ααααααααΆαααα wget ααααα αα·αααααααααααΉααα·αααααΎαααΆαααα ααΌα
αααααααα»αα
αΆααααααΎαααΎαααΈαααααααααΎαααα ααααα ααΆααΎα α αΎαααΆαααΉαααΆαααα»ααααα»αααααΎααΏααα·αααα ααα»αααααα½αα
ααα½αα ααΆααααααααΆααααΆααααααααΉαααΆαα α αΎαααααα·ααααα·ααα
αΆααααααΎαααα½ααααααααΎ Speedtest API αααα½αα―αα
ααΆαα αααΎαααΉαααΆααααααΆααααα½αααααα·αααΎαααΌααΉαααΆαααΆαα αΌαααααΎααΆααααααΆααααααααΆ AT α ααΆα’αΆα ααααααα ααΆααααααααααΆα‘αΎααα·α αααααΎαααΆααααααΆαα ppp ααααα IP ααα½αααΆαααααα·ααααα·ααααΌαααααΆααααααα ααα»ααααβααΆβα’αα»αα αααα»αβαααα»αβααααΎβααΆαβααΆαα½αβααΉαβα’αααΈβαααβαααα»αβααααΌαβααΆαβαααααβα²ααα
αααααααα GPS
α§αααααααα½α GPS ααααααα»αααααΌαααΆααααααα±ααααΆαα ααα»α αααααΆαα UART αα·αααΆαααα ααΆαα·ααααααΆαααααααααΆαααααα’αααα»αααααα ααα»ααααααΆαα ααα’αΆα ααααΎαααΆαααΆα αα·αααΆααααα α’αααααα½αααΎααα ααΌα αααα
αα·ααΆαα±ααααααααα
αααααΆααΎαααααΌααααααααα»ααααααααΎααΆαααΆαα½αα’αααααα½α GPS ααα»ααααααΌα
ααααααα»αααΆαααααΉααα»α α’αααΈααααααααΆαααααΌαααΆααα·ααααααΆαααα½αααΎαααΆααΌαααα αΎαα ααΌα
ααααααΎαααααΆααααααααΎαααααααααΆααααααααααα½α
ααΆααααα
α
ααααΌααααα»αααΎα uaart_AO_B (UART_RX_AO_B, UART_TX_AO_B) ααΎααααΈααααΆαα GPS α
khadas@Khadas:~$ sudo fdtput -t s /dtb.img /serial@c81004e0 status okay
αααααΆαααααααα»ααα·αα·αααααΎαααΆαααααααααααααα·ααααα·ααΆαα
khadas@Khadas:~$ fdtget /dtb.img /serial@c81004e0 status
okay
ααΆαααβαααααΆβαααβααααβααΆβααβααααα½α devtree ααααΆαα αααβααΆβααΆαβαααα½αβααΆααα
αααααΆααααΈααααααααααααα·ααααα·ααΆαααα ααΌαα αΆααααααΎαα‘αΎααα·α αα·αααα‘αΎααααα·α GPS α
khadas@Khadas:~$ sudo reboot
ααΆαααα‘αΎααααα·α GPS α αααα»αααα‘αΎαα’αααΈαααααααααΆα α αΎαααΆααααΆα ααααααΆαα ααΎααααΈααααααα ααΆααααααααααααααα
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 ααα GPS ααΉααααα½αα
DEVICES="/dev/ttyS4"
α αΎααααααΆααααααΎαααΎαα’αααΈααααααααΆαα αΎαα αΆααααααΎαα
/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket
αααααΆααααΈααααααα»αααααΆαα GPS α
αααα GPS αααα·ααα
αααα»ααααααααααα»α ααααααααΎαααααΆααααα α»α UART α’αΆα
ααΎαααΎααα
αααααααααΆααααααααααα»αα
αααα»αα αΆααααααΎαα‘αΎααα·αα αΎααα·αα·αααααΎαααααα·ααααα·ααΆα GPS αααααααΎαααααα·ααΈ gpsmon α
α’ααααα·αα’αΆα
ααΎαααΎαααααΆαααααα
αααα»αααΌαααα’ααααααααααα ααα»ααααα’αααα’αΆα
ααΎαααΆαααααΆαααααααΆααααααΆαα½αα’αααααα½α GPS α αΎααααααΆααααααΆα’αααΈαααΊααα’α
αα αααα»α python αααα»αααΆαααΆααααααααααΎαααΆα αααΎααααααΆααααααΎααΆαααΆαα½ααααα·αααα ααα»αααααααα»αααΆααααααααΆααααα αΆαααααααΎαααΆαααΆαααααΉαααααΌαααΆαα½α python 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 αα·ααΆααΈαααα»αααΉαααα½αααΆαααΌα’αααααα¬α’ααα ααΆα/α αΆα αααα»αααΆαααΆαααααΆααΆαα ααα½ααααααααΎααααΈααα½αααΆαααΌα’αααααα αα·αβααα’βαααααΎαβαα ααΆαβαααβα αΎαβαα½α ααα»ααααβααΆβααααΎαααΆαα αααα»αααΆααααααα α α·αααααααΎααααααααααα GPS α’αΆα ααΆαααα½ααα·αααα’ α αΎααα·ααααααααα½ααα·ααααααααα ααααα·αααΎα’ααααααα αΆαααα½ααα·αααααα αααααΆααααααααα·αααΎα’αααααααΎααΆααα αααα»αααααααααΆα ααααααΆα αααααα·ααΈααΉαααααααα αααααααααα ααΌα ααααβα αΎα αααα»αβααΆαβα’αα»ααααβαααααΎαβαα·αβααααααβαααα
ααΆαααααΆααα ααααα·αααΎααΆααααα αααΎα ααΆααΉαα’αΆα ααα½αααΆααα·ααααααααΈ GPS αααααααΆααααΆαααα UART αααααΆαα αααα»ααααααααα‘αΆαααΆα ααααα‘αα α αΎαααααΎααΆαααΆαα½αααΆα ααα»ααααβααααΆαβαααβααααΆβααΆααβααβααα α ααα»βααΌα ααααβα αΎαβααΆαβααΆβααΌαβα’αΆαααααβαααΆαβααααααααα ααΆα αααα»ααα·αααααΆαααααα
αααααΊααααααα αααααααΊ
ααΆαααααΆαα LED ααΊααΆαααα αα·ααα·ααΆααααα»αααααααα½αα ααΆαααααΆαα ααααααΊααΆααα pin αα αααα»ααααααααααα·αααααΌαααααΆααΉαααα pin αα ααΎααααΆαα αΎααααααΆαααα―αααΆαααααΌαααΆααααααααααααααααα ααΎααααΈααααααααααα pin αααααααΉα αα·αααα pin αα αααα»α OS α’αααααααΌαααααΎαααΆαααΆααααααααΆα
gpio readall
ααΆααΆαααααΆαααααΎααααααααα»ααα αααα»ααααααααα αα·ααα ααΎααααΆαααΉαααααΌαααΆααααα αΆαα αααααΆααβααβαααα»αβα’αΆα βααααΎαααΆαβαααα»αβαα βαααα»α OS αααα½αβααΆβααΆαβα αΎαα αααα»αααααΈαααααααα»α LED ααααΌαααΆαααααΆαα 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() α αΎα LED ααΉαααααΉαααααααα
ααααΆαααααααα·ααΈ
API αααααααααΏα
ααΆααΆααα
ααααΈααΈαααΆαααα’ααα
αΆααααααααααΆ speedtest.net ααΆα python-API ααααΆαααααα½α α’αααα’αΆα
ααΎαααΆαα
ααΏαααα’ααΊααΆααΆαααΌαααααααααα’αΆα
ααΎαααΆααααααα ααααααααΎααΆαααΆαα½α API ααα (α§ααΆα αααααΆαααα) α’αΆα
ααααΆααα
αααα»α
αααα»αααα‘αΎααααααΆααα python αααααααΎααΆααααααααΆααΆααααααα
sudo -H pip3 install speedtest-cli
α§ααΆα ααα α’ααααααααΆααα’αΆα ααα‘αΎααααααα·ααΈααΆαααααααααΏααα αααα»α Ubuntu αααααααΆααααΈαααααα·ααΈα αααααΊααΆαααααα·ααΈ python ααΌα ααααΆ ααααααααΆααααα’αΆα ααααΌαααΆαααΎαααααΎαααΆααααααααΆααααΈαα»αααΌαα
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"
#ΡΡΡ ΠΈΠ΄Π΅Ρ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°ΠΉΠ» Π»ΠΎΠ³ΠΎΠ²
αα ααΈαααααααα α’αααΈααααααααΆαααΆααααααα ααΆαα·αααΆαααααα αααααΈααΆααΆα αΆααααΌα ααΆααΆααααααΆααααααα ααααΌα αααΆαααΆαααααααααΆαααΈαααααΊααααΎααΉα []αα½ααααα·ααΆαααΆ ααααΎαααΎααααΆαααΈαααααα’αααα»αα ααΆαααααα αααα»αααΆααααΆαααΈαααα ααααα α αΎαααΌα αααα’ααααααα ααααΆααΆα ααααΏαα’αααα αααααΊααΆαααααΆααααααααα»αααααΆααα½α αααααααΎαααΆαααΈαααααα ααααα·αααΎααΌα αααα αα·αα·αααα α¬ααΆααααα ααΆαααΆαααΆαααααΆαααααΆαα ααα»αααααααααΊααΆα§ααΆα αααααααααΆα ααααΆααααααΏααααααΆααααααα·ααααα·αα Beeline αα αααααααΎαααΎααααΆαααΈαααααΆααααα αα·αααααααα
ααααααααααΆαααΆααααααΏααα
αααααααΎαααΎααααΆαααΈαααααΆαααααα
ααααααβααβααΆαβααααΎβααβαααβααααΏαβαααβααΆαβααααΎαβααΎαβαααΆαβααΉαβααΉαβαα½αβαααΆαααΈαβαααααΎβαα½αβα
ααα‘α»ααααααααΎααααα ααΆα "ααα" αα
ααααααααΆααααΈα α αΎαααΆα
αΆαααΆα
αααααΌαααα
αααααααααΎαα·ααΈααΆαααααααα·ααα·ααααΆα ααα»ααααααΆαα½αααΉααααΆαααΈααααααααΆαα·α
ααΆαααααα·α
α αΎαααα αααΆααααααααΆαααΆαα
ααΆααΌαα
αααααΊααΆααααααααααΆαααααΆαααα’ααα
αΆαααα α αΎααααα»αααΉαααΆααααααΏααααΆαααΈααααααααααα»ααααααααΎα§αααααααααΎααααΆαα iperf α ααα»ααααααΎααααααΆααααααΆααααΌααααααααα
αα
αααααα
ααΆαααααΎαααα»ααααα·αααα α»α
ααΎααααΈααααΎαααα»ααα αααα»αααΆαααΆααααααααααΎααααααααααΆααΆα
αααΎα ααα»αααααα
ααΈαααα
αα αααα»αααΆααααααααΆαααΌα
ααΆααααααα αααα»αααΆαα
α»αααααααααα’αααααα»ααααα
ααΎ Yandex α αΎααααααΆαααααα
αααααα ααα»ααααΌαααΆαααααΎααΆαα’ααααααααααα ααααα·αααΎααΆαααΆααααααΆαααααααΆαα α¦ ααααα ααααΆαααα α α¦ ααααΉα αααα α‘α’ ααααααααα αα·α α‘α¨ αααα ααΆαααααΎααΆααΌα ααΆααααααα
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
ααα α»αααααααΌαααΆαααααΎααααΌααααα ααΎααααΈα αΆααααααΎαααΆαα½ααα½αααααααΌαααΆαααααααα αααα»ααααααΈα αΎααααααΆααααααΆαααααΎααααααααααααΎαααααα·ααΈααααααααααααα·αααΎααΆαααΆααααααΆααα αααααΆαααΆαααΆααααααααααΆαααααααα αΆααΆαααΎαα‘αΎαααΆαα½αααΉαααΆααα·ααααααΆ Yandex ααΆαααααααααααΎα ααα½αααΆααααααΆαααααΎαααα»ααα½ααααα (αααααΊααΆααΆαααΊα αΆααααΆαααααα αα·αααΆαα’αΆαααΆαα) α αααααΆαααΆα’αΆα ααΆαα ααα½αα αααΎαααααα α»αααΌααααΈαααααα»ααα½αααΆααΈ ααΎαααααΌαααααααα ααααΆαααααΎααα α»αααΆααααααααΈααα ααΌα ααααααΌαα αα αΆαααΆαα αααααααΎααααααΆααααααααααααααααα·α’αααΈαααα αΆααααααααΆααααααααΆαααα Yandex α
αααΆαααΈαααααα·αααααα’
ααΎααααΈα’αΆα α αΌαααααΎαααααααΉαααΈα ααααΆα αα·αα’αΆα ααααΌαααΆααααα αα·αααααααα ααΆααααααααααΆα‘αΎααα·αααΆα αααα»αααααΌαααΆααααΆαααΈαααααΆααααα α ααΆααΌαα ααΎααααΈα±ααααΆαααΆααα»αααα·ααα ααΆααΉαααΆααΆαααααΉαααααΌααααα»αααΆαααααΎαα·ααααααααΆααα’αααα ααΆαααααΆαααΈααα αα·ααααααΎαααααΆα αααααααααααα’αΆαααΆααα’αααα αααα»αα ααα»α αααααΆααααα αααααα ααα»αααααα·ααααααΆααα’αααααα»αααααααα½αααα
αααααΆαα VPS αααα»αααΆαααααΎαααΎα
ααΆαα·ααΈααΆαααααααααΆαααααΆααααααααΆαα½ααααααααΉα vim2 ααΆαααααΎαααΎαααΆαααααΆαα ssh αααα
αααΆα α αΎαααΌα
αααααΆαα’αα»ααααααΆααααα αΆα ααΆαα·ααααααΆααΆαααα’αααα»ααααααα ααααα·αααΎααΆαααααΆααααααΌαααΆαααΆααααα ααααααΆαααΈαααααΆααα
ααα α αΎαααΆαα·αα’αΆα
αα
αα½α
αααααα»αααΆααααααΆααααΆααααααΆαα½ααααα ααΌα
αααα ααΆαα
αααααααΎαααΆααααα»αααΆαααααΎαα·ααΈααααΆαααααααααααααα α§ααΆα ααα VPN α αα
αααα’ααΆαααααα»αα
ααααααΌααα
VPN ααα»αααααα·αααΆααααααα
αααα»αααΉααα·αα αΌααα αααα»αααααααΆααααα’α·αααααΆαααα‘αΎααααααΆααααααΎα ααΆαααΉααααααΉααα·αααα· ααΆααα·αααΆαααααΆααααΆ root ssh αα·αααΆααα·αααααααααααααΆαααα‘αΎα VPS ααα αααα»αα ααααΏααΆα’αααααΉαα’αααΈαααΆααα’ααα αααααΆααααΆααααααΆααααΈα ααααΆα αααα»ααααααΎαα’αααααααΎααααΆααααααΈαα ααΎαααΆαααΈαααα
adduser vimssh
αααα»ααααααΎαααΌααααααααΆαα ssh αα ααΎαααααααΉαααααααΎαα
ssh-keygen
α αΎααααα»αα αααααα½αααΆαα αααΆαααΈαααααααααΎαα
ssh-copy-id [email protected]
αα ααΎαααααααΉαααααααΎα αααα»ααααααΎαααΆααααααΆαα ssh αααα αααΆααααααααααααααααα·αα ααΆααααΆαα αΆααααααΎαα
[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α ααΆαααααα αααααααααα»αααΉαααααΎααΎααααΈααααΆααααΆαααα ssh αααα αααΆαα ααααααααΆαα ααΆαα αΆααααααΎαα αΎαα αΆααααααΎαα
sudo systemctl enable autossh.service
sudo systemctl start autossh.service
α’αααααα’αΆα ααΎαααααΆαααΆαα
sudo systemctl status autossh.service
α₯α‘αΌαααααα ααΎαααΆαααΈααα VPS ααααααΎα ααααα·αααΎααΎαααααΎαααΆαα
ssh -p 8083 khadas@localhost
αααααΆαααααααα»ααα ααααααααααΆααααααααααααα»ααααααααααΉαα α αΎαααΈαααααααΉα αααα»αααα’αΆα ααααΎαααααα ααα» αα·ααα·ααααααααΆαα½αααΆαααα ssh αα ααΆαααααΆαααΈααααααααααα»α αααααΆααΆααααα½αααΆααα
ααΆααααΆααΆααα’ααααααΆ
ααΎαααααΎαααΆα ααΌαα
αΆααααααΎαααΆαα’αα·αααααα αα·αααααΆααααα α»α
Phew, αααα αΎαααΆααΆ, αααα»αααΆααα·αααααΆααααΆααααΆααα’ααα α₯α‘αΌααααααααααααααΌαααΆααααΆααΆααα’ααααααΆα α’αααα’αΆα
ααΎααααααΌα
α ααα»α ααααΆααααΆαα½αααΌαα ααααααααααααα ααααΆαα·αα αΆααααααΎαααΌα ααααα αααααααΆααααΌαααΆααααα αα‘αΎααααααΆαααα·α αα ααΆαααΆααααΆαα ααααααΆααααααααααΆααααΆαααα½αα αααααΈααΆαααα»ααααααααΌααααααααααα αααα»αααΉααα ααααααααααΈα’αααΈαααααΆαααααααααα»ααα ααΈααα αα αααα»αα’ααααα ααΎαα·αααΌα αααααα ααΆαα·αα’αΆα αααααΆαααΆαααααα»αα
αα ααΎαααααΌα αααα»αα αΆααααααΎα gps, gpio α αΎαααΎαααααΎαααΆααααααΆααααααα·ααΈααααααααααΆα ααααα‘ααα
#Π·Π°ΠΏΡΡΠΊ ΠΏΠΎΡΠΎΠΊΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°
pShedulerThread = threading.Thread(target=ShedulerThread, args=(1,))
pShedulerThread.start()
αααααα·ααΈααααααααααΊααΆααααααΆααα ααΆααΎααα ααΎααααΈααΎαααΆααΎαααααααΆααΆααααααααΎααααΈααααΎααΆα αα·αααααΆαααΆαααα α»ααα αα α»ααααααααΆα’αααΈα ααααα·αααΎααΆαααα α»ααααα αααααΎααααα·α ααααα LEDα
#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)
αααααααααααΆααααα»ααααααααααααααΊααΆααααααΆααΆααααααΆαα ssh αααα αααΆααααααΆααααΆαααααΎαααααααΈαα½ααα ααΆαααααΎαααααααΈαα½ααααΆαααααααααΉαααΆααααααα‘αΎααα·αααΌα default gateway αα·α DNS serverα αααβααΆαβααβααααΆαβα’αααβααΆβα’αΆαβαα ααΉαβααΆβααααααΎαβαα·αβαα·αβααΎβααααΌαβαααβααα α’αααααΆααααΎαααα»α Easter ααα½αααΆαααααααααΆααααααα
ααΎααααΈααααΎααΌα ααααααα»ααααααΎαααΆααΆααααααααααΌαααΆα ααααα‘αα -set-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 αα ααΆααα ααα»α αααααΆααααα (ααααα·αααΎααΆαα·αααααΌαααΆαααααΎ) ααααΎααα α»ααα αααΆαααΈααα ααααα·αααΎαααααααΆααααα ααααΎαααααα ααα» α αΎαα α»ααααααααααΎαααΆα speedtest αα·ααααααΆαα»ααααααα ααα»αα αααα»αα―αααΆα csv α
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
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ
αααα αΎα α₯α‘αΌααααα’αααΈαααααααΆαααααα»ααααααΊ ααΎααΆαα’αααΈααΎαα‘αΎαααΆαααααα? αααααΊααΆααααΆα αααα½αα ααα½αααααααα»αααΆααααααααααααΎααααΈα αΆαααααααα»αα’αα‘α»ααααααααΆαα’αα·αααααα αα·αααααΎαααΆαααααα α»αα ααααΆα ααααααΌαααΆααααααΎααααααααΎ gnuplot ααΆαα½αααΉαααααααΈαααΆααααααα
#! /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