αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αžŠαžΆαž€αŸ‹αž±αŸ’αž™αž“αŸ…αžŠαžΆαž…αŸ‹αž–αžΈαž‚αŸ αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž±αŸ’αž™αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαžŸαŸ‹αž›αŸ’αž”αžΏαž“αž“αŸƒαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž€αŸ„αžŸαž·αž€αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž’αžαž·αžαž·αž‡αž“αž…αž„αŸ‹αžœαžΆαž™αžαž˜αŸ’αž›αŸƒαž›αŸ’αž”αžΏαž“αž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸαž•αŸ’αžŸαŸαž„αŸ—αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαžαžΆαŸ†αž„αž—αžΌαž˜αž·αžŸαžΆαžŸαŸ’αžαŸ’αžšαž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž…αž™αž›αŸ‹αžαžΆαžαžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž‘αžΌαžšαžŸαž–αŸ’αž‘αž˜αž½αž™αžŽαžΆαžŠαŸ‚αž›αž›αŸ’αž’αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αžΆαžαŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ†αž‘αžΎαž„αž§αž”αž€αžšαžŽαŸαžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹ LTE αž§αž‘αžΆαž αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αžŸαžΆαž™αžœαžΈαžŠαŸαž’αžΌαŸ” αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž”αž‰αŸ’αž αžΆαžαŸ’αžšαžΌαžœαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž™αŸ‰αžΆαž„αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αžαŸ„αž€αžαžΆαž˜αžŠαŸ‚αž›αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαžαŸ’αž›αŸƒαŸ—αŸ”

αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž“αž·αž™αžΆαž™β€‹αž—αŸ’αž›αžΆαž˜αŸ—β€‹αžαžΆβ€‹αž€αž·αž…αŸ’αž…αž€αžΆαžšβ€‹αž“αŸαŸ‡β€‹αž˜αž·αž“β€‹αž˜αŸ‚αž“β€‹αžŸαžΆαž˜αž‰αŸ’αž‰β€‹αž”αŸ†αž•αž»αž αž“αž·αž„β€‹αž–αžΉαž„αž•αŸ’αž’αŸ‚αž€β€‹αž›αžΎβ€‹αž…αŸ†αžŽαŸαŸ‡αžŠαžΉαž„β€‹αž”αŸ†αž•αž»αžβ€‹αž“αŸ„αŸ‡β€‹αž‘αŸ αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž”αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αž–αžΈβ€‹αž”αž‰αŸ’αž αžΆβ€‹αžŠαŸ‚αž›β€‹αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αž‡αž½αž” αž“αž·αž„β€‹αžšαž”αŸ€αž”β€‹αžŠαŸ‚αž›β€‹αžαŸ’αž‰αž»αŸ†β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αžœαžΆβ€‹αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžαŸ„αŸ‡αž‘αŸ…αŸ”

αž€αžΆαžšαž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹

αž€αžΆαžšαžœαžΆαžŸαŸ‹αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž”αžŽαŸ’αžαžΆαž‰ LTE αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž αžΆαžŠαŸαžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž˜αž½αž™αŸ– αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž§αž”αž€αžšαžŽαŸ αž“αž·αž„αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœ αž αžΎαž™αžœαžΆαž€αŸαž˜αžΆαž“αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αž™αŸ‰αžΆαž„αž›αŸ’αž’αž’αŸ†αž–αžΈαžŸαžŽαŸ’αž‹αžΆαž“αžŠαžΈ αž“αž·αž„αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αŸƒαž”αžŽαŸ’αžαžΆαž‰αž€αŸ„αžŸαž·αž€αžΆαž•αž„αžŠαŸ‚αžšαŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž›αŸ’αž”αžΏαž“αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‡αŸ‡αž₯αž‘αŸ’αž’αž·αž–αž›αžŠαŸ„αž™αž€αžαŸ’αžαžΆαž‡αžΆαž…αŸ’αžšαžΎαž“αŸ– αž…αŸ†αž“αž½αž“αž’αŸ’αž“αž€αž‡αžΆαžœαž“αŸ…αž›αžΎαž€αŸ’αžšαž‘αžΆ αž›αž€αŸ’αžαžαžŽαŸ’αžŒαž’αžΆαž€αžΆαžŸαž’αžΆαžαž» αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž–αžΈαž€αŸ„αžŸαž·αž€αžΆαž˜αž½αž™αž‘αŸ…αž€αŸ’αžšαž‘αžΆαž˜αž½αž™ αž›αŸ’αž”αžΏαž“αž’αžΆαž…αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž”αžŽαŸ’αžαžΆαž‰ topology αŸ” αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž˜αžΆαž“αž…αŸ†αž“αž½αž“αž…αŸ’αžšαžΎαž“αžŠαŸ‚αž›αž˜αž·αž“αžŸαŸ’αž‚αžΆαž›αŸ‹ αž αžΎαž™αž˜αžΆαž“αžαŸ‚αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸαž‘αŸαžŠαŸ‚αž›αž’αžΆαž…αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžœαžΆαž”αžΆαž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαŸ”

αžŠαŸ†αž”αžΌαž„ αž’αžαž·αžαž·αž‡αž“αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž…αž„αŸ‹αž‡αŸ†αžšαž»αž‰αž’αŸ’αž“αž€αž“αžΆαŸ†αžŸαŸ†αž”αž»αžαŸ’αžšαž‡αžΆαž˜αž½αž™αž‘αžΌαžšαžŸαŸαž–αŸ’αž‘αžšαž”αžŸαŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš αž’αŸ’αžœαžΎαž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αžŠαŸ„αž™αž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž›αžΎαž‘αžΌαžšαžŸαŸαž–αŸ’αž‘ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžŸαžšαžŸαŸαžšαž›αž‘αŸ’αž’αž•αž›αžœαžΆαžŸαŸ‹αž›αŸ’αž”αžΏαž“αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸ€αžœαž—αŸ…αž€αžαŸ‹αžαŸ’αžšαžΆαŸ” αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαžΆαžŸαŸ‹αž›αŸ’αž”αžΏαž“αž”αžŽαŸ’αžαžΆαž‰ Lte αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αž·αž“αžŸαž˜αžŸαŸ’αžšαž”αž€αŸαžŠαŸ„αž™ αž€αŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡αŸ”

αžŠαŸ„αž™αžŸαžΆαžšαžαŸ’αžœαŸ‡αž–αŸαž›αžœαŸαž›αžΆ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž˜αž·αž“αž–αŸαž‰αž…αž·αžαŸ’αžαž“αžΉαž„αž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž› αž¬αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ†αžšαž»αž‰αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αž§αž‘αžΆαž αžšαžŽαŸ ssh αž”αž‰αŸ’αž…αŸ’αžšαžΆαžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž–αžΈαž…αž˜αŸ’αž„αžΆαž™ αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ VPN αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αž‡αžΆαž„αž˜αž»αž“ αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž“αŸ’αžŸαŸ†αž–αŸαž›αžœαŸαž›αžΆαž›αžΎαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž‰αŸ€αžœαž“αžΈαž˜αž½αž™αŸ—αŸ”

αž—αžΆαžšαž€αž·αž…αŸ’αž…αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ

αžŠαžΌαž…αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘ αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαŸ– αž αŸαžαž»αž’αŸ’αžœαžΈαž”αžΆαž“αž‡αžΆαž’αžαž·αžαž·αž‡αž“αž˜αž·αž“αž…αž„αŸ‹αž”αžΆαž“: αž€αž»αŸ†αž’αŸ’αžœαžΎαž€αžΆαžšαžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ! αž˜αž·αž“αžŠαŸ‚αž›, αž€αž“αŸ’αž›αŸ‚αž„αžŽαžΆ!

αž€αž·αž…αŸ’αž…αž€αžΆαžšαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž–αž„αŸ’αžšαžΈαž€αžœαžΆαž”αž“αŸ’αžαž·αž…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž™αž›αŸ‹αžŠαžΉαž„αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž…αž»αž„αž€αŸ’αžšαŸ„αž™αŸ” αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸ αž“αž·αž„αž§αž”αž€αžšαžŽαŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž’αžαž·αžαž·αž‡αž“αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž’αž“αž»αž˜αŸαžαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ–

αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž”αž“αŸ’αž‘αŸ‡αžαŸ‚αž˜αž½αž™ αžŠαŸ„αž™αžŸαžΆαžš ្៧ αž’αŸ’αžœαžΎβ€‹αžαŸαžŸαŸ’αžβ€‹αž›αŸ’αž”αžΏαž“β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αžαž—αŸ’αž‡αžΆαž”αŸ‹ lte αžαžΆαž˜β€‹αžšαž™αŸˆβ€‹αž˜αŸ‰αžΌαžŠαžΉαž˜ Huawei e3372h - 153 αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸαž‡αžΆαž…αŸ’αžšαžΎαž“ (αž–αžΈαž˜αž½αž™αž‘αŸ… n) αŸ” αžœαžΆαž€αŸαž…αžΆαŸ†αž”αžΆαž…αŸ‹αž•αž„αžŠαŸ‚αžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαž‘αž‘αž½αž›αž€αžΌαž’αžšαžŠαŸ„αž“αŸαž–αžΈαž’αŸ’αž“αž€αž‘αž‘αž½αž› GPS αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αžαžΆαž˜αžšαž™αŸˆ UART αŸ” αž’αŸ’αžœαžΎαž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž›αŸ’αž”αžΏαž“αžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž‚αŸαž αž‘αŸ†αž–αŸαžš www.speedtest.net αž αžΎαž™αžŠαžΆαž€αŸ‹αžœαžΆαž…αžΌαž›αž‘αŸ…αž€αŸ’αž“αž»αž„αžαž»αžŠαžΌαž…αž‡αžΆαŸ–

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αžαžΆαžšαžΆαž„αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹ csv αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž•αŸ’αž‰αžΎαžŸαž‰αŸ’αž‰αžΆαž“αŸαŸ‡αžαžΆαž˜αž’αŸŠαžΈαž˜αŸ‚αž›αžšαŸ€αž„αžšαžΆαž›αŸ‹ 6 αž˜αŸ‰αŸ„αž„αž˜αŸ’αžαž„αŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αŸ†αž αž»αžŸ αžŸαžΌαž˜αž–αŸ’αžšαž·αž…αž—αŸ’αž“αŸ‚αž€ LED αžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ… GPIO αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž₯αžαž‚αž·αžαžαŸ’αž›αŸƒ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αžΆαž“αž€αžΆαžšαž™αž›αŸ‹αž–αŸ’αžšαž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αžαŸ’αžαž“αŸαž™αž“αŸƒαž€αž·αž…αŸ’αž…αž€αžΆαžšαž‚αžΊαž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžšαž½αž…αž αžΎαž™αŸ” αž˜αž½αž™αžŸαž”αŸ’αžαžΆαž αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž±αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž–αž·αžαžœαžΆαž˜αžΆαž“αžšαž™αŸˆαž–αŸαž›αž”αžΈαžŸαž”αŸ’αžαžΆαž αŸαŸ” αž“αŸαŸ‡β€‹αž‚αžΊβ€‹αž‡αžΆβ€‹αž€αžΆαžšβ€‹αž‚αž·αžβ€‹αžŠαž›αŸ‹β€‹αž€αžΆαžšβ€‹αž–αž·αžβ€‹αžŠαŸ‚αž›β€‹αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž“αŸαŸ‡β€‹αžαŸ‚β€‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹β€‹αž–αžΈβ€‹αž€αžΆαžšαž„αžΆαžšβ€‹αžŸαŸ†αžαžΆαž“αŸ‹β€‹αžšαž”αžŸαŸ‹β€‹αžαŸ’αž‰αž»αŸ† αž“αž·αž„β€‹αž“αŸ…β€‹αžαŸ’αž„αŸƒβ€‹αž…αž»αž„β€‹αžŸαž”αŸ’αžαžΆαž αŸαŸ”

αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž‘αžΆαž€αŸ‹αž‘αžΆαž‰αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž˜αŸ’αžαž„αž‘αŸ€αžαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆαž’αžαž·αžαž·αž‡αž“αž”αžΆαž“αž™αž›αŸ‹αž–αŸ’αžšαž˜αž‡αžΆαž˜αž»αž“αž›αžΎαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžœαžΆαžŸαŸ‹αž›αŸ’αž”αžΏαž“ αž“αž·αž„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αžŠαŸ‚αž›αž€αŸ†αžŽαžαŸ‹αžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„αŸ” αžαžœαž·αž€αžΆαž€αŸαž˜αžΆαž“αž€αž˜αŸ’αžšαž·αžαž•αž„αžŠαŸ‚αžš αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαž–αž·αžŸαŸαžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‘αž·αž‰αž‘αŸαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž™αžΎαž„β€‹αžαŸ’αžšαžΌαžœβ€‹αž›αŸαž„β€‹αžŠαŸ„αž™β€‹αž…αŸ’αž”αžΆαž”αŸ‹β€‹αž‘αžΆαŸ†αž„β€‹αž“αŸαŸ‡αŸ”

αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ αž“αž·αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αž“αž·αž„αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž αžΎαž™ αžαŸ’αž‰αž»αŸ†β€‹αž“αžΉαž„β€‹αž‘αž»αž€β€‹αžœαžΆβ€‹αž…αŸ„αž›β€‹αžŠαŸ„αž™β€‹αž‚αŸ’αž˜αžΆαž“β€‹αž™αŸ„αž”αž›αŸ‹β€‹αž’αŸ’αžœαžΈβ€‹αž–αž·αžŸαŸαžŸαŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž’αž“αž»αžœαžαŸ’αžαž‚αž˜αŸ’αžšαŸ„αž„αž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„ python αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž€αžΆαžšαž–αž·αžαžαžΆαžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž˜αžΆαž“αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž—αžΆαžŸαžΆαž“αŸαŸ‡αž‘αžΆαž›αŸ‹αžαŸ‚αžŸαŸ„αŸ‡αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαžΆ αžŠαŸ„αž™αžŸαžΆαžšαž˜αžΆαž“αž§αž‘αžΆαž αžšαžŽαŸ αž“αž·αž„αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αžαŸ’αžšαŸ€αž˜αžšαž½αž…αž‡αžΆαžŸαŸ’αžšαŸαž… αžŠαŸ‚αž›αž’αžΆαž…αž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αž’αžΆαžŸαŸ’αžšαŸαž™αž αŸαžαž»αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αžŸαž»αŸ†αž±αŸ’αž™αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž’αžΆαž‡αžΈαž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž€αž»αŸ†αž”αŸ’αžšαž˜αžΆαžαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αŸ’αž“αž»αž„ python αž αžΎαž™αžαŸ’αž‰αž»αŸ†αžαŸ‚αž„αžαŸ‚αžšαžΈαž€αžšαžΆαž™αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αžαžΆαž”αŸ‹αž€αžΆαžšαžšαž·αŸ‡αž‚αž“αŸ‹αž€αŸ’αž“αž»αž„αž“αŸαž™αžŸαŸ’αžαžΆαž”αž“αžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž–αž„αŸ’αžšαžΉαž„αž‡αŸ†αž“αžΆαž‰αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ”

αž•αž„αžŠαŸ‚αžšαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžšαž€αžƒαžΎαž‰αžαžΆ python αž˜αžΆαž“αž–αžΈαžšαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ†αžŽαŸ‚ 2 αž“αž·αž„ 3 αž‡αžΆαž›αž‘αŸ’αž’αž•αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž“αŸ…αž›αžΎαž‘αžΈαž”αžΈαŸ”

αžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„

αž…αžΆαž“αžαŸ‚αž˜αž½αž™ vim2

αžαŸ’αž‰αž»αŸ†β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αž•αŸ’αžαž›αŸ‹β€‹αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšβ€‹αž”αž“αŸ’αž‘αŸ‡β€‹αžαŸ‚β€‹αž˜αž½αž™β€‹αž‡αžΆβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αžŸαŸ†αžαžΆαž“αŸ‹β€‹αžšαž”αžŸαŸ‹β€‹αžαŸ’αž‰αž»αŸ† αžŠαŸ„αž™αžŸαžΆαžš ្៧

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αŸαžŒαŸ€αžŠαŸαž˜αžΆαž“αž’αžΆαž“αž»αž—αžΆαž–αžŠαŸαž›αŸ’αž’αž₯αžαžαŸ’αž…αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž‘αŸ‡αž†αŸ’αž›αžΆαžαžœαŸƒ αž“αž·αž„αž‘αžΌαžšαž‘αžŸαŸ’αžŸαž“αŸ SMART-TV αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αž·αž“αžŸαŸαž€αŸ’αžαž·αžŸαž˜αž”αŸ†αž•αž»αžαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαž“αŸαŸ‡ αž¬αž’αžΆαž…αž“αž·αž™αžΆαž™αž”αžΆαž“αžαžΆαž˜αž·αž“αžŸαž˜αžšαž˜αŸ’αž™αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž…αž˜αŸ’αž”αž„αžšαž”αžŸαŸ‹αžœαžΆαž‚αžΊ Android αž αžΎαž™αž›αžΈαž“αž»αž…αž‚αžΊαž‡αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž”αž“αŸ’αžŸαŸ† αž αžΎαž™αžαžΆαž˜αž“αŸ„αŸ‡αž‚αŸ’αž˜αžΆαž“αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αž’αžΆαž“αžΆαž“αžΌαžœαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŠαŸ‚αž›αž˜αžΆαž“αž‚αž»αžŽαž—αžΆαž–αžαŸ’αž–αžŸαŸ‹αž“αŸƒ nodes αž“αž·αž„ drivers αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž›αžΈαž“αž»αž…αž“αŸ„αŸ‡αž‘αŸαŸ” αž αžΎαž™αžαŸ’αž‰αž»αŸ†αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž”αž‰αŸ’αž αžΆαž˜αž½αž™αž…αŸ†αž“αž½αž“αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž‰αŸ’αž‡αžΆ USB αž“αŸƒαžœαŸαž‘αž·αž€αžΆαž“αŸαŸ‡ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž˜αŸ‰αžΌαžŠαžΉαž˜αž˜αž·αž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαžΌαž…αž€αžΆαžšαžšαŸ†αž–αžΉαž„αž‘αž»αž€αž“αŸ…αž›αžΎαž€αŸ’αžαžΆαžšαž“αŸαŸ‡αž‘αŸαŸ” αžœαžΆαž€αŸαž˜αžΆαž“αž―αž€αžŸαžΆαžšαž€αŸ’αžšαžΈαž€αŸ’αžš αž“αž·αž„αžαŸ’αž…αžΆαžαŸ‹αžαŸ’αž…αžΆαž™αž•αž„αžŠαŸ‚αžš αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž…αŸ†αžŽαžΆαž™αž–αŸαž›αž…αŸ’αžšαžΎαž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαž‡αžΈαž€αž€αž€αžΆαž™αž…αžΌαž›αž…αžαŸ” αžŸαžΌαž˜αŸ’αž”αžΈαžαŸ‚αž€αžΆαžšαž„αžΆαžšαž’αž˜αŸ’αž˜αžαžΆαž‡αžΆαž˜αž½αž™ GPIO αž”αžΆαž“αž™αž€αžˆαžΆαž˜αž…αŸ’αžšαžΎαž“αŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž‡αžΆαž…αŸ’αžšαžΎαž“αž˜αŸ‰αŸ„αž„αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αž‘αžΎαž„ LEDαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž‡αžΆβ€‹αž‚αŸ„αž›αžŠαŸ… αžœαžΆβ€‹αž‡αžΆβ€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“β€‹αž˜αž·αž“β€‹αžŸαŸ†αžαžΆαž“αŸ‹β€‹αžαžΆβ€‹αž”αŸ’αžšαž—αŸαž‘β€‹αž€αŸ’αžαžΆαžšβ€‹αžαŸ‚αž˜αž½αž™β€‹αž”αŸ’αžšαž—αŸαž‘β€‹αžŽαžΆβ€‹αž‘αŸ αžšαžΏαž„β€‹αžŸαŸ†αžαžΆαž“αŸ‹β€‹αž‚αžΊβ€‹αžœαžΆβ€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αž αžΎαž™β€‹αž˜αžΆαž“β€‹αžšαž“αŸ’αž’ USBαŸ”

αžŠαŸ†αž”αžΌαž„αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαžŠαŸ†αž‘αžΎαž„αž›αžΈαž“αž»αž…αž“αŸ…αž›αžΎαž€αŸ’αžαžΆαžšαž“αŸαŸ‡αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž˜αžΎαž›αž„αžΆαž™αž―αž€αžŸαžΆαžšαž–αŸ’αžšαŸƒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αž“αž»αžŸαŸ’αžŸαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αž“αžΆ αž“αž·αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž“αžΉαž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ‚αž˜αž½αž™αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αžŸαžšαžŸαŸαžšαž‡αŸ†αž–αžΌαž€αž“αŸαŸ‡αŸ”

αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαž–αžΈαžšαž€αŸ’αž“αž»αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αž›αžΈαž“αž»αž…αŸ– αž“αŸ…αž›αžΎαž€αžΆαž SD αžαžΆαž„αž€αŸ’αžšαŸ… αž¬αž“αŸ…αž›αžΎ MMC αžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αŸ†αžŽαžΆαž™αž–αŸαž›αž˜αž½αž™αž›αŸ’αž„αžΆαž…αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αžœαž·αž’αžΈαž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αžΆαž αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαžŠαŸ†αž‘αžΎαž„αžœαžΆαž“αŸ…αž›αžΎ MMC αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž˜αžΆαž“αž€αžΆαžšαžŸαž„αŸ’αžŸαŸαž™αž€αŸαžŠαŸ„αž™ αžœαžΆαž“αžΉαž„αž€αžΆαž“αŸ‹αžαŸ‚αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž€αžΆαžαžαžΆαž„αž€αŸ’αžšαŸ…αŸ”

αž’αŸ†αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ αž”αŸ’αžšαžΆαž”αŸ‹αžαŸ’αžšαž„αŸ‹αž“αŸαŸ‡. αžαŸ’αž‰αž»αŸ†αž”αž€αž”αŸ’αžšαŸ‚αž–αžΈαž…αž˜αŸ’αž›αŸ‚αž€αž‘αŸ…αž‡αžΆαž—αžΆαžŸαžΆαžšαž»αžŸαŸ’αžŸαžΈαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž…αŸαž‰αž–αž“αŸ’αž›αžΊαž›αžΎαž€αŸ’αžαžΆαžš αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž—αŸ’αž‡αžΆαž”αŸ‹ Hardware UARTαŸ” αž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αžœαžΆαŸ” αžαžΆαž˜αžœαž·αž’αžΈαžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

  • αž§αž”αž€αžšαžŽαŸ 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

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‘αžΆαž‰αž™αž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹ αž–αžΈαž‘αžΈαž“αŸαŸ‡. αž€αŸ†αžŽαŸ‚αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ VIM1_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.

αžŠαžΎαž˜αŸ’αž”αžΈαž’αžΆαž”αŸ‹αž‘αžΌαžαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αž„αŸ’αž€αž”αŸ‹αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αžαŸ’αžšαžΌαžœαž€αžΆαžšαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ” αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαžšαžΏαž„αž“αŸαŸ‡ αž“αŸ…αž‘αžΈαž“αŸαŸ‡. αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αž”αžΆαž“β€‹αž–αŸ’αž™αžΆαž™αžΆαž˜β€‹αž”αž‰αŸ’αž…αŸαž‰β€‹αžœαžΆβ€‹αž“αŸ…β€‹αž–αžΈβ€‹αž€αŸ’αžšαŸ„αž˜ Windows αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžαŸ’αž‰αž»αŸ†β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αž“αžΌαžœβ€‹αž–αžΆαž€αŸ’αž™β€‹αž˜αž½αž™β€‹αž…αŸ†αž“αž½αž“β€‹αž’αŸ†αž–αžΈβ€‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈβ€‹αž”αž„αŸ’αž€αž”αŸ‹β€‹αž€αŸ’αžšαŸ„αž˜β€‹αž›αžΈαž“αž»αž…αŸ” αžŠαŸ†αž”αžΌαž„αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžŠαŸ†αž‘αžΎαž„αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαž˜αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αŸ”

git clone https://github.com/khadas/utils
cd /path/to/utils
sudo ./INSTALL

Aaand... αž‚αŸ’αž˜αžΆαž“αž’αŸ’αžœαžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αŸαŸ” αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αž…αŸ†αžŽαžΆαž™β€‹αž–αŸαž›β€‹αž–αžΈαžšβ€‹αž”αžΈβ€‹αž˜αŸ‰αŸ„αž„β€‹αž€αŸ‚αžŸαž˜αŸ’αžšαž½αž›β€‹αžŸαŸ’αž‚αŸ’αžšαžΈαž”β€‹αžŠαŸ†αž‘αžΎαž„β€‹αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αž’αŸ’αžœαžΈαŸ—β€‹αž“αžΉαž„β€‹αžŠαŸ†αž‘αžΎαž„β€‹αž”αžΆαž“β€‹αžαŸ’αžšαžΉαž˜β€‹αžαŸ’αžšαžΌαžœβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžαŸ’αž‰αž»αŸ†αŸ” αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž…αžΆαŸ†αž’αŸ’αžœαžΈαžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž’αŸ’αžœαžΎαž“αŸ…αž‘αžΈαž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αŸαž˜αžΆαž“αžŸαŸ€αž€αž“αŸ„αŸ‡αž‡αžΆαž˜αž½αž™αžŸαŸαŸ‡αž•αž„αžŠαŸ‚αžšαŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžŸαžΌαž˜αž”αŸ’αžšαž™αŸαžαŸ’αž“αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž”αžΎβ€‹αž‚αŸ’αž˜αžΆαž“β€‹αž§αž”αž€αžšαžŽαŸβ€‹αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹β€‹αž‘αžΆαŸ†αž„β€‹αž“αŸαŸ‡ αžœαžΆβ€‹αž‚αŸ’αž˜αžΆαž“β€‹αž…αŸ†αžŽαž»αž…β€‹αžŽαžΆβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αž‘αžΆαžšαž»αžŽαž€αž˜αŸ’αž˜ vim2 αž‘αŸ€αžβ€‹αž‘αŸαŸ” αž”αŸ’αžšαžŸαžΎαžšαž‡αžΆαž„αž€αž»αŸ†αžšαž‰αŸ‰αŸαžšαž‰αŸ‰αŸƒαž‡αžΆαž˜αž½αž™αž‚αžΆαžαŸ‹!

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžšαž„αŸ’αžœαž„αŸ‹αž”αŸ’αžšαžΆαŸ†αž–αžΈαžšαž“αŸƒαž‹αžΆαž“αž“αžšαž€ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αžŸαŸ’αž‚αŸ’αžšαžΈαž” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‘αž‘αž½αž›αž€αž‰αŸ’αž…αž”αŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž”αž“αŸ’αž‘αŸ‡αžαžΆαž˜αžšαž™αŸˆ USB αž‘αŸ…αž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž›αžΈαž“αž»αž…αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αž αžΎαž™αž€αŸαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹ UART αžαžΆαž˜αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžαžΆαž„αž›αžΎαŸ”
αžαŸ’αž‰αž»αŸ†αž€αŸ†αž–αž»αž„αžŠαŸ†αž‘αžΎαž„αžŸαŸ’αžαžΆαž“αžΈαž™ minicom αžŸαŸ†αžŽαž–αŸ’αžœαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αŸ’αž”αžΏαž“ 115200 αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ†αž αž»αžŸαž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž αžΎαž™αžŸαžΌαž˜αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž“αŸ…αž–αŸαž›αž•αŸ’αž‘αž»αž€ 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 αžšαžΌαž”αž—αžΆαž–αž”αžŽαŸ’αžαžΆαž‰αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αž“αžΉαž„αž€αžΎαžαž‘αžΎαž„αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž“αŸ„αŸ‡αž‚αžΊ n network cards αžŠαŸ‚αž›αž˜αžΆαž“αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžŠαžΌαž…αž‚αŸ’αž“αžΆ αžŠαŸ‚αž›αž“αžΈαž˜αž½αž™αŸ—αž˜αžΆαž“ gateway αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž€αžΆαžšαž–αž·αžαž–αž½αž€αžœαžΆαž“αžΈαž˜αž½αž™αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αžŠαŸ†αž”αžΌαž„ αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŸαžΆαž˜αž‰αŸ’αž‰αž˜αž½αž™αŸ– αžŠαŸ„αž™αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ ifconfig ឬ ip αž”αž·αž‘αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αžΎαž€αžœαžΆαž˜αŸ’αžαž„ αž αžΎαž™αžŸαžΆαž€αž›αŸ’αž”αž„αžœαžΆαŸ” αžŠαŸ†αžŽαŸ„αŸ‡β€‹αžŸαŸ’αžšαžΆαž™β€‹αž‚αžΊβ€‹αž›αŸ’αž’β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž’αŸ’αž“αž€β€‹αžšαžΆαž›αŸ‹β€‹αž‚αŸ’αž“αžΆ αž›αžΎαž€β€‹αž›αŸ‚αž„β€‹αžαŸ‚β€‹αžαžΆβ€‹αž€αŸ’αž“αž»αž„β€‹αž’αŸ†αž‘αž»αž„β€‹αž–αŸαž›β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž”αŸ’αžŠαžΌαžšβ€‹αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αž’αžΆαž…β€‹αž—αŸ’αž‡αžΆαž”αŸ‹β€‹αž‘αŸ…β€‹αž§αž”αž€αžšαžŽαŸβ€‹αž”αžΆαž“β€‹αž‘αŸαŸ” αž αžΎαž™αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž”αŸ’αžαžΌαžšαž‰αžΉαž€αž‰αžΆαž”αŸ‹ αž“αž·αž„αž›αžΏαž“ αžαŸ’αž‰αž»αŸ†αž–αž·αžαž‡αžΆαž‚αŸ’αž˜αžΆαž“αž±αž€αžΆαžŸαžŠαžΎαž˜αŸ’αž”αžΈαž—αŸ’αž‡αžΆαž”αŸ‹αž’αŸ’αžœαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž•αŸ’αž›αžΌαžœαž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“ IP αžšαž”αžŸαŸ‹αž˜αŸ‰αžΌαžŠαžΉαž˜αžŠαŸ„αž™αžŠαŸƒ αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž”αžΎαž€αž…αžšαžΆαž…αžšαžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœαŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž“αŸαŸ‡αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž”αž‰αŸ’αž αžΆαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΌαžŠαžΉαž˜αž‘αŸαŸ– αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž”αž‰αŸ’αž αžΆαžαžΆαž˜αž–αž› αžœαžΆαž”αžΆαž“αžšαž›αžαŸ‹ αž αžΎαž™αž€αžΆαžšαž•αŸ’αž‚αžαŸ‹αž•αŸ’αž‚αž„αŸ‹αžαžΆαž˜αž–αž›αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αž›αŸ’αž’αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αž‡αŸ’αžˆαž˜αžŽαŸ’αžŒαž› 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 αž“αž·αž„αžαžΆαž˜αž–αž›αŸ” αžœαžΆαž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸαž›αŸ’αž’αž”αŸ†αž•αž»αžαž“αŸ„αŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžœαžΆαž“αŸ…αžαŸ‚αž’αžΆαž…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αžΆαž“ αž“αž·αž„αžŸαžΆαž˜αž‰αŸ’αž‰αŸ” αž’αŸ’αž“αž€αž‘αž‘αž½αž›αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž“αž·αž™αžΆαž™αž±αŸ’αž™αžαŸ’αžšαž„αŸ‹αž‘αŸ… αž“αŸαŸ‡αž‡αžΆαž›αžΎαž€αžŠαŸ†αž”αžΌαž„αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž‘αž‘αž½αž› 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 αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αžαŸ’αžŸαŸ‚ GPS αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸƒαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαŸ’αžŸαŸ‚αž—αŸ’αž›αžΎαž„αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ UART αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž˜αŸ’αžšαžΆαž˜αžŠαŸƒαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ”

αžαŸ’αž‰αž»αŸ†αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αžΎαž„αžœαž·αž‰αž αžΎαž™αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš GPS αžŠαŸ„αž™αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ gpsmon αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž’αŸ’αž“αž€αž˜αž·αž“αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αž•αŸ’αž€αžΆαž™αžšαžŽαž”αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αžαžαž’αŸαž€αŸ’αžšαž„αŸ‹αž“αŸαŸ‡αž‘αŸ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αž€αžΆαžšαž”αŸ’αžšαžΆαžŸαŸ’αžšαŸαž™αž‘αžΆαž€αŸ‹αž‘αž„αž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αž‘αž‘αž½αž› 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.

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αžαŸ’αž‰αž»αŸ†αž”αŸ’αžαžΌαžšαž˜αŸ’αž‡αž»αž› GPIO αž‘αŸ…αžšαž”αŸ€αž”αž‘αž·αž“αŸ’αž“αž•αž›αŸ”

gpio -g mode 421 out

αžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαž›αŸαžαžŸαžΌαž“αŸ’αž™αŸ”

gpio -g write 421 0

αžαŸ’αž‰αž»αŸ†αžŸαžšαžŸαŸαžšαž˜αž½αž™αŸ”

gpio -g write 421 1

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”
αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž—αŸ’αž›αžΊαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŸαžšαžŸαŸαžš "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 αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αž”αžΆαž“αŸ” Github.

αžšαžΏαž„αž›αŸ’αž’αž‚αžΊαžαžΆαž˜αžΆαž“αž€αžΌαžŠαž”αŸ’αžšαž—αž–αžŠαŸ‚αž›αž’αžΆαž…αž˜αžΎαž›αž”αžΆαž“αž•αž„αžŠαŸ‚αžšαŸ” αžšαž”αŸ€αž”αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™ 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 αž“αŸ…αž–αŸαž›αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αžαŸαžšαžαŸαžšαŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”
αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαžœαžΆαžŸαŸ‹αž›αŸ’αž”αžΏαž“αž“αŸ…αž–αŸαž›αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαžΆαž˜αžœαž“αŸ’αžαŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”
αž›αž‘αŸ’αž’αž•αž›β€‹αž“αŸƒβ€‹αž€αžΆαžšβ€‹αž’αŸ’αžœαžΎβ€‹αžαŸβ€‹αžŸαŸ’αžβ€‹αž›αŸ’αž”αžΏαž“β€‹αžŠαŸ„αž™β€‹αž€αžΆαžšβ€‹αž‡αŸ’αžšαžΎαžŸβ€‹αžšαžΎαžŸβ€‹αž™αŸ‰αžΆαž„β€‹αžαžΉαž„β€‹αžšαžΉαž„β€‹αž˜αž½αž™β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αž˜αž½αž™β€‹αŸ”

αž€αŸ†αž‘αž»αž„αž–αŸαž›αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž˜αžΆαž“ "αžšαŸ„αž˜" αž“αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž‘αžΆαŸ†αž„αž–αžΈαžš αž αžΎαž™αžœαžΆαž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαžŠαž€αž…αŸαž‰αžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž‚αžŽαž·αžαžœαž·αž‘αŸ’αž™αžΆαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžαŸαžšαžœαžΆαžαž·αž…αž‡αžΆαž„αž”αž“αŸ’αžαž·αž… αž αžΎαž™αž‘αŸ†αž αŸ†αž˜αžΆαž“αžŸαŸ’αžαŸαžšαž—αžΆαž–αž‡αžΆαž„αŸ”
αž‡αžΆαž‘αžΌαž‘αŸ…αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœαžŠαŸαž’αžŸαŸ’αž…αžΆαžšαŸ’αž™αŸ” αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžœαžΆαžŸαŸ‹αž›αŸ’αž”αžΏαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ iperf αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž™αžΎαž„αž”αŸ’αžšαž€αžΆαž“αŸ‹αžαŸ’αž‡αžΆαž”αŸ‹αž“αžΌαžœαž›αž€αŸ’αžαžŽαŸˆαž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαŸ”

αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžšαž“αž·αž„αž€αŸ†αž αž»αžŸ

αžŠαžΎαž˜αŸ’αž”αžΈαž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžš αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αž‡αž˜αŸ’αžšαžΎαžŸαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž‡αžΆαž…αŸ’αžšαžΎαž“ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ…αž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹ αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ” αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ’αžšαž’αž”αŸ‹αžŸαŸ†αž”αž»αžαŸ’αžšαž“αŸ…αž›αžΎ Yandex αž αžΎαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αž€ αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαŸ†αž”αž»αžαŸ’αžš. αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž–αž·αž“αž·αžαŸ’αž™αžœαžΆ αž αžΎαž™αž’αž“αž»αžœαžαŸ’αžαžœαžΆαž‘αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡αž–αž·αž“αž·αžαŸ’αž™αž‡αž˜αŸ’αžšαžΎαžŸαž•αŸ’αžŸαŸαž„αŸ— αžšαž½αž˜αž‘αžΆαŸ†αž„αž€αžΆαžšαž•αŸ’αž‰αžΎαž–αžΈ gmail αž‡αžΆαžŠαžΎαž˜αŸ” αžαŸ’αž‰αž»αŸ†β€‹αž˜αž·αž“β€‹αž…αž„αŸ‹β€‹αžšαŸ†αžαžΆαž“β€‹αž‡αžΆαž˜αž½αž™β€‹αž“αžΉαž„β€‹αž€αžΆαžšβ€‹αžŠαŸ†αž‘αžΎαž„β€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž˜αŸ’αžšαžΎβ€‹αžŸαŸ†αž”αž»αžαŸ’αžšβ€‹αžšαž”αžŸαŸ‹β€‹αžαŸ’αž‰αž»αŸ† αž αžΎαž™β€‹αž˜αž·αž“β€‹αž˜αžΆαž“β€‹αž–αŸαž›β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžœαžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αžŠαžΌαž…β€‹αžŠαŸ‚αž›β€‹αžœαžΆβ€‹αž”αžΆαž“β€‹αž€αŸ’αž›αžΆαž™β€‹αž‡αžΆβ€‹αž–αŸαž›β€‹αž€αŸ’αžšαŸ„αž™ αžœαžΆβ€‹αž€αŸβ€‹αž₯αžβ€‹αž”αŸ’αžšαž™αŸ„αž‡αž“αŸβ€‹αžŠαŸ‚αžšαŸ”

αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαžαžΆαž˜αž’αŸ’αž“αž€αž€αŸ†αžŽαžαŸ‹αž–αŸαž› αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžšαŸ€αž„αžšαžΆαž›αŸ‹ ៦ αž˜αŸ‰αŸ„αž„αŸ– αžœαŸαž›αžΆαž˜αŸ‰αŸ„αž„ ០៦ αž–αŸ’αžšαžΉαž€ αž˜αŸ‰αŸ„αž„ ៑្ αžαŸ’αž„αŸƒαžαŸ’αžšαž„αŸ‹ αž“αž·αž„ ៑៨ αž™αž”αŸ‹αŸ” αž”αžΆαž“αž•αŸ’αž‰αžΎαžœαžΆαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

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 αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ ruvds.com. αž’αŸ’αž“αž€αž’αžΆαž…αž™αž€αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαŸ” αž αžΎαž™αž‡αžΆαž‘αžΌαž‘αŸ…αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αžœαžΆαž“αžΉαž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž αžΎαž™αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŠαŸ„αž™αžŸαžΆαžšαžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž”αžΆαž“αž”αž„αŸ‹αž”αŸ’αžšαžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž…αŸαž‰αž–αžΈαž αŸ„αž”αŸ‰αŸ…αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž™αž€αžœαžΆαž‡αžΆαž˜αž½αž™αž‘αž»αž“αž”αŸ†αžšαž»αž„αžαžΌαž…αž˜αž½αž™ αžŠαžΎαž˜αŸ’αž”αžΈαž±αŸ’αž™αžœαžΆαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžŠαžΆαž‰ αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ SMTP αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“ VPN αž‡αžΆαžŠαžΎαž˜αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡ αž’αŸ’αž“αž€αž’αžΆαž…αžŠαŸ†αž‘αžΎαž„ Telegram bot αž“αž·αž„αž˜αž·αž“αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‡αžΆαž˜αž½αž™αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαžšαžΆαŸ†αž„αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‘αžΈαž€αŸ’αžšαž»αž„ Amsterdam αž“αž·αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαžΌαž…αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž‡αžΆαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαž‘αŸ†αž“αžΆαž€αŸ‹αž‘αŸ†αž“αž„αž‡αžΆαž˜αž½αž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„ 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 αž‘αŸ…αž€αžΆαž“αŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžŠαŸ‚αž›αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αžŽαžΆαžŸαŸ‹αŸ”

αžŠαžΆαž€αŸ‹αžœαžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆ

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”
αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αžŸαžΌαž˜αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž“αž·αž„αž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ

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 αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž…αŸ’αžšαžΎαž“αžαŸ’αž„αŸƒαŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž“αŸ…αž‘αžΈαž“αŸαŸ‡αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αŸ’αžšαžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžœαžΆαžŸαŸ‹αžαžΆαž˜αžœαž“αŸ’αžαŸ” αž€αžΆαžšαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž›αŸ’αž”αžΏαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαŸ‚αž”αŸ’αžšαž½αž›αž™αŸ‰αžΆαž„αžαŸ’αž›αžΆαŸ†αž„ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžαž˜αŸ’αž›αŸƒαž˜αž’αŸ’αž™αž˜αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αžαŸ‚αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰ αž αžΎαž™αž“αŸαŸ‡αž’αžΆαž…αž‘αž‘αž½αž›αž”αžΆαž“αžŠαŸ„αž™αž€αžΆαžšαžαŸ’αžšαž„αž‘αž·αž“αŸ’αž“αž“αŸαž™ αž§αž‘αžΆαž αžšαžŽαŸαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αž’αŸ’αž™αž˜αŸ”

αž€αŸ’αžšαŸ„αž™αž˜αž€αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž€αŸ’αžšαžΆαž αŸ’αžœαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαž‘αžΌαžšαž‚αž˜αž“αžΆαž‚αž˜αž“αŸαž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸαŸ‡ αž˜αžΆαž“αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαžΆαž€αž›αŸ’αž”αž„αž˜αž½αž™αžšαž½αž…αž αžΎαž™ αž αžΎαž™αž›αž‘αŸ’αž’αž•αž›αž€αŸαž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž•αž„αžŠαŸ‚αžšαŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αžŠαžΌαž…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰ αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž‚αžΊαž‘αžΌαž›αŸ†αž‘αžΌαž›αžΆαž™αžŽαžΆαžŸαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‘αž·αž“αŸ’αž“αž“αŸαž™αž“αŸαŸ‡ αž αžΎαž™αž…αŸ’αž”αžΆαžŸαŸ‹αžŽαžΆαžŸαŸ‹αž˜αž·αž“αž˜αžΆαž“αžšαž™αŸˆαž–αŸαž›αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“αžŸαž”αŸ’αžαžΆαž αŸαž“αŸƒαž€αžΆαžšαž„αžΆαžšαž“αŸ„αŸ‡αž‘αŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€¦

αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αžΆαžšαž„αžΆαžš

αž€αžΆαžšαž„αžΆαžšαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αž—αŸ’αž›αžΆαž˜αŸ—αžŠαŸ„αž™αžŸαžΆαžšαžαŸ‚αž€αžΆαž›αŸˆαž‘αŸαžŸαŸˆαž αž½αžŸαž–αžΈαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αŸ” αž…αŸ†αžŽαž»αž…αžαŸ’αžŸαŸ„αž™αž˜αž½αž™αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡ αžαžΆαž˜αž‚αŸ†αž“αž·αžαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊαž˜αŸ‰αžΌαžŠαžΉαž˜ αžŠαŸ‚αž›αž–αž·αžαž‡αžΆαž˜αž·αž“αž…αž„αŸ‹αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž‡αžΆαž˜αž½αž™αž˜αŸ‰αžΌαžŠαžΉαž˜αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž αžΎαž™αž”αž„αŸ’αž€αžΎαžαž›αŸ’αž”αž·αž…αž”αŸ‚αž”αž“αŸαŸ‡αžšαžΆαž›αŸ‹αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‘αž»αž€αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž˜αžΆαž“αž˜αŸ‰αžΌαžŠαŸ‚αž›αž˜αŸ‰αžΌαžŠαžΉαž˜αž˜αž½αž™αž…αŸ†αž“αž½αž“αž’αŸ†αž•αŸ’αžŸαŸαž„αž‘αŸ€αž αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαž–αž½αž€αžœαžΆαž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹ Mini PCI-e αžšαž½αž…αž αžΎαž™ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αžαžΆαž„αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸ αž αžΎαž™αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž“αŸ„αŸ‡αž‡αžΆαžšαžΏαž„αžαž»αžŸαž‚αŸ’αž“αžΆαž‘αžΆαŸ†αž„αžŸαŸ’αžšαž»αž„αŸ” αž‚αž˜αŸ’αžšαŸ„αž„αž“αŸαŸ‡αž‚αž½αžšαž±αŸ’αž™αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸ αž αžΎαž™αžαŸ’αž‰αž»αŸ†αž–αž·αžαž‡αžΆαžšαžΈαž€αžšαžΆαž™αžŽαžΆαžŸαŸ‹αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž’αžΆαž…αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αžœαžΆαŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž›αŸ’αž”αžΏαž“αž€αŸ’αž“αž»αž„αž–αŸαž›αžŠαŸ†αžŽαžΆαž›αž‚αŸ’αž“αžΆαž“αŸ…αž›αžΎαž˜αŸ‰αžΌαžŠαžΉαž˜ LTE αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹