рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рд╕рдВрдЧрд░реЛрдз рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рдХрдИ рд╕реЗрд▓реБрд▓рд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХреА рдЧрдИ рдереАред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдЧреНрд░рд╛рд╣рдХ рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рджреВрд░рд╕рдВрдЪрд╛рд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреА рдЧрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдПрд▓рдЯреАрдИ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреМрди рд╕рд╛ рд╕реЗрд▓реБрд▓рд░ рдСрдкрд░реЗрдЯрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдг рдХреЗ рд▓рд┐рдПред рд╕рд╛рде рд╣реА, рдорд╣рдВрдЧреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмрд┐рдирд╛, рд╕рдорд╕реНрдпрд╛ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рдФрд░ рд╕рд╕реНрддреЗ рдореЗрдВ рд╣рд▓ рдХрд░рдирд╛ рдерд╛ред

рдореИрдВ рддреБрд░рдВрдд рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рд░реНрдп рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЬреНрдЮрд╛рди-рдЧрд╣рди рдирд╣реАрдВ рд╣реИ; рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдХрд┐рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ред рддреЛ рдЪрд▓рддреЗ рд╣реИрдВред

рдиреЛрдЯ

рдПрд▓рдЯреАрдИ рдХрдиреЗрдХреНрд╢рди рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкрдирд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рдЬрдЯрд┐рд▓ рдорд╛рдорд▓рд╛ рд╣реИ: рдЖрдкрдХреЛ рд╕рд╣реА рдЙрдкрдХрд░рдг рдФрд░ рдорд╛рдк рддрдХрдиреАрдХ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рд╕реЗрд▓реБрд▓рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЯреЛрдкреЛрд▓реЙрдЬреА рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреА рднреА рдЕрдЪреНрдЫреА рд╕рдордЭ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рд╕рд╛рде рд╣реА, рдЧрддрд┐ рдХрдИ рдХрд╛рд░рдХреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛ рд╕рдХрддреА рд╣реИ: рдПрдХ рд╕реЗрд▓ рдкрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдореМрд╕рдо рдХреА рд╕реНрдерд┐рддрд┐, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╕реЗрд▓ рд╕реЗ рджреВрд╕рд░реЗ рд╕реЗрд▓ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЯреЛрдкреЛрд▓реЙрдЬреА рдХреЗ рдХрд╛рд░рдг рдЧрддрд┐ рдирд╛рдЯрдХреАрдп рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдЬреНрдЮрд╛рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рджреВрд░рд╕рдВрдЪрд╛рд░ рдСрдкрд░реЗрдЯрд░ рд╣реА рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЧреНрд░рд╛рд╣рдХ рдХреЗрд╡рд▓ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдлреЛрди рд╕реЗ рдХреВрд░рд┐рдпрд░ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд╕реАрдзреЗ рдлреЛрди рдкрд░ рдорд╛рдк рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рдЧрддрд┐ рдорд╛рдк рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдПрдХ рдиреЛрдЯрдмреБрдХ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдПрд▓рдЯреАрдИ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рдЧрддрд┐ рдХреЛ рдорд╛рдкрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИред

рд╕рдордп рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдореИрдВрдиреЗ рд╕реБрд╡рд┐рдзрд╛ рдпрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХрддрд╛ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреА рдЧрддрд┐ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓рд┐рдпреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд░реНрд╡рд░ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдзрд┐рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╡реАрдкреАрдПрди рдХреЗ рдмрдЬрд╛рдп, рд░рд┐рдореЛрдЯ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдПрд╕рдПрд╕рдПрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рд╕рдВрджрд░реНрдн рдХреА рд╢рд░реНрддреЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рд▓реЗрдЦ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛: рдЧреНрд░рд╛рд╣рдХ рдЗрд╕реЗ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛: рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рди рдХрд░реЗрдВ! рдХрднреА рдирд╣реАрдВ, рдХрд╣реАрдВ рднреА!

рддрдХрдиреАрдХреА рдХрд╛рд░реНрдп рдХрд╛рдлреА рд╕рд░рд▓ рдерд╛, рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред рддрдХрдиреАрдХреА рд╕рдорд╛рдзрд╛рди рдФрд░ рдЙрдкрдХрд░рдг рдХрд╛ рдЪреБрдирд╛рд╡ рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рддреЛ, рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реНрд╡рдпрдВ, рд╕рднреА рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЗ рдмрд╛рдж:

рдПрдХрд▓ рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд vim2 рдПрдЪ рдореЙрдбреЗрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд▓рдЯреАрдИ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдХ рдмрдирд╛рдПрдВuawei e3372h - 153 рдХрдИ рджреВрд░рд╕рдВрдЪрд╛рд░ рдСрдкрд░реЗрдЯрд░ (рдПрдХ рд╕реЗ рдПрди рддрдХ)ред рдпреВрдПрдЖрд░рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝реЗ рдЬреАрдкреАрдПрд╕ рд░рд┐рд╕реАрд╡рд░ рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐ рдорд╛рдкреЗрдВ www.speedtest.net рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рдЦреЗрдВ рдЬреИрд╕реЗ:

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рд╕реАрдПрд╕рд╡реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛. рдлрд┐рд░ рдпрд╣ рд╕рд╛рдЗрди рд╣рд░ 6 рдШрдВрдЯреЗ рдореЗрдВ рдИ-рдореЗрд▓ рд╕реЗ рднреЗрдЬреЗрдВред рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, GPIO рд╕реЗ рдЬреБрдбрд╝реА рдПрд▓рдИрдбреА рдХреЛ рдЭрдкрдХрд╛рдПрдВред

рдХрдИ рдЕрдиреБрдореЛрджрдиреЛрдВ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХрд╛ рдирд┐рдГрд╢реБрд▓реНрдХ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдп рдХрд╛ рдЕрд░реНрде рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдкреНрддрд╛рд╣ рдХрд╛ рд╕рдордп рджрд┐рдпрд╛ рдЧрдпрд╛ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рддреАрди рд╕рдкреНрддрд╛рд╣ рддрдХ рдЪрд▓рд╛ред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХреЗрд╡рд▓ рдЕрдкрдиреА рдореБрдЦреНрдп рдиреМрдХрд░реА рдХреЗ рдмрд╛рдж рдФрд░ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдкрд░ рдХрд┐рдпрд╛ рдерд╛ред

рдпрд╣рд╛рдВ рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдЧрддрд┐ рдорд╛рдк рд╕реЗрд╡рд╛ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╕рд╣рдордд рдерд╛, рдЬрд┐рд╕рдиреЗ рдореЗрд░реА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдХрд╛рдлреА рд╕реАрдорд┐рдд рдХрд░ рджрд┐рдпрд╛ред рдмрдЬрдЯ рднреА рд╕реАрдорд┐рдд рдерд╛ рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рдЦрд╛рд╕ рдЦрд░реАрджрд╛рд░реА рдирд╣реАрдВ рд╣реБрдИ. рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрди рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреЗрд▓рдирд╛ рдерд╛ред

рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдФрд░ рд╡рд┐рдХрд╛рд╕

рдпреЛрдЬрдирд╛ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ. рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЫреЛрдбрд╝ рджреВрдБрдЧрд╛ред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдореИрдВрдиреЗ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣рд╛рдВ рдвреЗрд░ рд╕рд╛рд░реЗ рддреИрдпрд╛рд░ рдЙрджрд╛рд╣рд░рдг рдФрд░ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рдереЗ рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЧрддрд┐ рджреЗ рд╕рдХрддреЗ рдереЗред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рднреА рдкреЗрд╢реЗрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реЛрдВ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рд╡реЗ рдкрд╛рдпрдерди рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдореЗрд░реЗ рдкрд╣рд▓реЗ рдЕрдиреБрднрд╡ рдХреЛ рди рдбрд╛рдВрдЯреЗрдВ, рдФрд░ рдЕрдкрдиреЗ рдХреМрд╢рд▓ рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рд╕реБрдирдХрд░ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдЦреБрд╢реА рд╣реЛрддреА рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкрд╛рдпрдерди рдХреЗ рджреЛ рд╕рдВрд╕реНрдХрд░рдг 2 рдФрд░ 3 рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореИрдВрдиреЗ рддреАрд╕рд░реЗ рдкрд░ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдиреЛрдбреНрд╕

рд╕рд┐рдВрдЧрд▓-рдкреНрд▓реЗрдЯ vim2

рдореБрдЭреЗ рдореЗрд░реА рдореБрдЦреНрдп рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ vim2

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдФрд░ рд╕реНрдорд╛рд░реНрдЯ-рдЯреАрд╡реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ, рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдореАрдбрд┐рдпрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░, рд▓реЗрдХрд┐рди рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЕрдиреБрдкрдпреБрдХреНрдд, рдпрд╛ рдХрд╣реЗрдВ рддреЛ рдЦрд░рд╛рдм рд░реВрдк рд╕реЗ рдЙрдкрдпреБрдХреНрддред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдУрдПрд╕ рдПрдВрдбреНрд░реЙрдЗрдб рд╣реИ, рдФрд░ рд▓рд┐рдирдХреНрд╕ рдПрдХ рдорд╛рдзреНрдпрдорд┐рдХ рдУрдПрд╕ рд╣реИ, рдФрд░ рддрджрдиреБрд╕рд╛рд░ рдХреЛрдИ рднреА рд▓рд┐рдирдХреНрд╕ рдХреЗ рддрд╣рдд рд╕рднреА рдиреЛрдбреНрд╕ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рдЙрдЪреНрдЪ-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдБ рдЗрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ USB рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдереАрдВ, рдЗрд╕рд▓рд┐рдП рдореЙрдбреЗрдо рдЗрд╕ рдмреЛрд░реНрдб рдкрд░ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рдереЗред рдЗрд╕рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рднреА рдмрд╣реБрдд рдЦрд╝рд░рд╛рдм рдФрд░ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЧреЛрджреА рдХреЛ рдЦрдВрдЧрд╛рд▓рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ GPIO рдХреЗ рд╕рд╛рде рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдо рдореЗрдВ рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЦреВрди рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрд▓рдИрдбреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдХрдИ рдШрдВрдЯреЗ рд▓рдЧ рдЧрдПред рд▓реЗрдХрд┐рди, рд╡рд╕реНрддреБрдирд┐рд╖реНрда рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рдВрдЧрд▓-рдмреЛрд░реНрдб рдерд╛, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛ рдФрд░ рдЗрд╕рдореЗрдВ рдпреВрдПрд╕рдмреА рдкреЛрд░реНрдЯ рдереЗред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЗрд╕ рдмреЛрд░реНрдб рдкрд░ рд▓рд┐рдирдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП, рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЬреЛ рдЗрд╕ рдПрдХрд▓-рдмреЛрд░реНрдб рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдЪрдХреНрдХрд░ рдореЗрдВ рди рдкрдбрд╝реЗрдВ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ рдпрд╣ рдЕрдзреНрдпрд╛рдп рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдБред

рд▓рд┐рдирдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ: рдмрд╛рд╣рд░реА рдПрд╕рдбреА рдХрд╛рд░реНрдб рдкрд░ рдпрд╛ рдЖрдВрддрд░рд┐рдХ рдПрдордПрдорд╕реА рдкрд░ред рдореИрдВрдиреЗ рд╢рд╛рдо рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдИ рдХрд┐ рдЗрд╕реЗ рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдордПрдорд╕реА рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрд╛рд╣рд░реА рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдХреБрдЯрд┐рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ. рдореИрдВ рдЕрдЬреАрдм рд╕реЗ рд░реВрд╕реА рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реВрдВред рдмреЛрд░реНрдб рдХреЛ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдпреВрдПрдЖрд░рдЯреА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЗрд╕ рдЕрдиреБрд╕рд╛рд░ред

  • рдЯреВрд▓ рдкрд┐рди рдЬреАрдПрдирдбреА: <тАФ> рд╡реАрдЖрдИрдПрдо рдХреЗ рдЬреАрдкреАрдЖрдИрдУ рдХрд╛ рдкрд┐рди17
  • рдЯреВрд▓ рдкрд┐рди TXD: <тАФ> VIMs рдХреЗ GPIO (Linux_Rx) рдХрд╛ рдкрд┐рди18
  • рдЯреВрд▓ рдкрд┐рди рдЖрд░рдПрдХреНрд╕рдбреА: <тАФ> рд╡реАрдЖрдИрдПрдо рдХреЗ рдЬреАрдкреАрдЖрдИрдУ (рд▓рд┐рдирдХреНрд╕_рдЯреАрдПрдХреНрд╕) рдХрд╛ рдкрд┐рди19
  • рдЯреВрд▓ рдкрд┐рди рд╡реАрд╕реАрд╕реА: <тАФ> рд╡реАрдЖрдИрдПрдо рдХреЗ рдЬреАрдкреАрдЖрдИрдУ рдХрд╛ рдкрд┐рди20

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлрд░реНрдорд╡реЗрдпрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЕрдд:. рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг VIM1_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.

рдЗрд╕ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ. рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдлрд╝реНрд▓реИрд╢ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреЛ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдлрд╝рд░реНрдорд╡реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рдмрддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдБрдЧрд╛ред

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

рдЖрдирдВрдж... рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛. рдореИрдВрдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рдШрдВрдЯреЗ рдмрд┐рддрд╛рдП рддрд╛рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рдЬрд╛рдПред рдореБрдЭреЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рдШреЛрдбрд╝реЛрдВ рд╡рд╛рд▓рд╛ рд╕рд░реНрдХрд╕ рднреА рдерд╛ред рддреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЛред рд▓реЗрдХрд┐рди рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ vim2 рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХрд╖реНрдЯ рджреЗрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрд╕рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЦрд┐рд▓рд╡рд╛рдбрд╝ рди рдХрд┐рдпрд╛ рдЬрд╛рдП!

рдирд░рдХ рдХреЗ рд╕рд╛рдд рдЪрдХреНрдХрд░реЛрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдХрд╛рд░реНрдпрд╢реАрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рдкреИрдХреЗрдЬ рдорд┐рд▓рд╛ред рдореИрдВрдиреЗ рдмреЛрд░реНрдб рдХреЛ рдпреВрдПрд╕рдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдирдХреНрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛, рдФрд░ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпреВрдПрдЖрд░рдЯреА рдХреЛ рднреА рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ред
рдореИрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рдмрд┐рдирд╛ 115200 рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдкрд╕рдВрджреАрджрд╛ рдорд┐рдиреАрдХреЙрдо рдЯрд░реНрдорд┐рдирд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ.

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

UART рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ VIM2 рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдореИрдВ рд▓реЛрдбрд┐рдВрдЧ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдкреЗрд╕рдмрд╛рд░ рдЬреИрд╕реА рдПрдХ рдХреБрдВрдЬреА рджрдмрд╛рддрд╛ рд╣реВрдВред рд▓рд╛рдЗрди рджрд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж

kvim2# 

рдореИрдВ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ:

kvim2# run update

рдЬрд┐рд╕ рд╣реЛрд╕реНрдЯ рд╕реЗ рд╣рдо рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ:

burn-tool -v aml -b VIM2 -i  VIM2_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.img

рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЙрдлрд╝. рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА, рдмреЛрд░реНрдб рдкрд░ рд▓рд┐рдирдХреНрд╕ рд╣реИред рд▓реЙрдЧрд┐рди/рдкрд╛рд╕рд╡рд░реНрдб рдЦрд╝рд╛рдбрд╛:рдЦрд╝рд╛рдбрд╛ред

рдЙрд╕рдХреЗ рдмрд╛рдж, рдХреБрдЫ рдЫреЛрдЯреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рдЖрдЧреЗ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдореИрдВ sudo рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддрд╛ рд╣реВрдВ (рд╣рд╛рдВ, рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ)ред

sudo visudo

рдореИрдВ рдкреНрд░рдкрддреНрд░ рдореЗрдВ рдкрдВрдХреНрддрд┐ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╣реЗрдЬрддрд╛ рд╣реВрдВ

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD: ALL

рдлрд┐рд░ рдореИрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдмрджрд▓ рджреЗрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╕рдордп рдореЙрд╕реНрдХреЛ рдореЗрдВ рд╣реЛ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЧреНрд░реАрдирд╡рд┐рдЪ рдореЗрдВ рд╣реЛрдЧрд╛ред

sudo timedatectl set-timezone Europe/Moscow

рдпрд╛

ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рдХрдард┐рди рд▓рдЧрддрд╛ рд╣реИ рддреЛ рдЗрд╕ рдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ; рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдмреЗрд╣рддрд░ рд╣реИред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗред

рдореЙрдбреЗрдо рд╣реБрдЖрд╡реЗрдИ e3372h - 153

рдпрд╣ рдореЙрдбреЗрдо рдореЗрд░реЗ рд▓рд┐рдП рд░рдХреНрдд рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдерд╛, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдмрд╛рдзрд╛ рдмрди рдЧрдпрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП "рдореЙрдбреЗрдо" рдирд╛рдо рдХрд╛рдо рдХреЗ рд╕рд╛рд░ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рдВрдпреЛрдЬрди рд╣реИ, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдбреА-рд░реЛрдо рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреА рджреГрд╖реНрдЯрд┐ рд╕реЗ, рдПрдХ рд▓рд┐рдирдХреНрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ, рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: рдореЙрдбреЗрдо рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдПрде * рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЬреЛ рдбреАрдПрдЪрд╕реАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ 192.168.8.100 рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ 192.168.8.1 рд╣реИ.

рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг! рдпрд╣ рдореЙрдбреЗрдо рдореЙрдбрд▓ рдореЙрдбреЗрдо рдореЛрдб рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬрд┐рд╕реЗ рдПрдЯреА рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреЗрдо рдХреЗ рд▓рд┐рдП рдкреАрдкреАрдкреА рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдПрдВ рдФрд░ рдлрд┐рд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "рд╕реНрд╡рдпрдВ" (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, udev рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рд▓рд┐рдирдХреНрд╕ рдЧреЛрддрд╛рдЦреЛрд░), рдПрдХ рдПрде рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдбреАрдПрдЪрд╕реАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдЖрдЧреЗ рдХреЗ рднреНрд░рдо рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ "рдореЙрдбреЗрдо" рд╢рдмреНрдж рдХреЛ рднреВрд▓рдХрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдФрд░ рдЧреЗрдЯрд╡реЗ рдХрд╣реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдПрдХ рдирдП рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб рдХреЛ рдЧреЗрдЯрд╡реЗ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕рд╛ рд╣реИред
рдЬрдм рдПрдХ рдореЙрдбреЗрдо рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ, рдЕрд░реНрдерд╛рддреН рдПрди-рдЯреБрдХрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдирд┐рдореНрди рдиреЗрдЯрд╡рд░реНрдХ рдЪрд┐рддреНрд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдЕрд░реНрдерд╛рддреН, n рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдб, рд╕рдорд╛рди IP рдкрддреЗ рдХреЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдХреЗ рд╕рд╛рдеред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдСрдкрд░реЗрдЯрд░ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдерд╛: ifconfig рдпрд╛ ip рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ рдмрд╕ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рдПрдХ рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рд╕рдорд╛рдзрд╛рди рд╕рднреА рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдерд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛рдпрд╛ред рдФрд░ рдЪреВрдБрдХрд┐ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдмрд╛рд░-рдмрд╛рд░ рдФрд░ рддреЗрдЬрд╝ рд╣реЛрддреА рд╣реИ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдореЙрдбреЗрдо рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдФрд░ рдлрд┐рд░ рд░реВрдЯрд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдЪрд▓рд╛рдиреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдЪреБрдирд╛ред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдпрд╣ рдореЙрдбреЗрдо рдХреЗ рд╕рд╛рде рдореЗрд░реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдВрдд рдирд╣реАрдВ рдерд╛: рдмрд┐рдЬрд▓реА рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реЗ рдЧрд┐рд░ рдЧрдП, рдФрд░ рдпреВрдПрд╕рдмреА рд╣рдм рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рд░ рдмрд┐рдЬрд▓реА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореИрдВрдиреЗ рдкрд╛рд╡рд░ рдХреЛ рд╕реАрдзреЗ рд╣рдм рдореЗрдВ рд╣рд╛рд░реНрдб рд╕реЛрд▓реНрдбрд░рд┐рдВрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕рдХрд╛ рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдЬрд┐рд╕рдиреЗ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдпрд╛: рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░рд┐рдмреВрдЯ рдпрд╛ рдХреЛрд▓реНрдб рд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рдмрд╛рдж, рд╕рднреА рдореЙрдбреЗрдо рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓рд╛ рдФрд░ рд╣рдореЗрд╢рд╛ рдирд╣реАрдВ, рдФрд░ рдореИрдВ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реБрдЖ рдФрд░ рдХрд┐рд╕ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рджреНрд╡рд╛рд░рд╛ рд╣реБрдЖред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЪреАрдЬрд╝реЗрдВ.

рдореЙрдбреЗрдо рдХреЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдпреВрдПрд╕рдмреА-рдореЛрдбрд╕реНрд╡рд┐рдЪ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ред

sudo apt update
sudo apt install -y usb-modeswitch

рдЬрд┐рд╕рдХреЗ рдмрд╛рдж, рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЙрдбреЗрдо рдХреЛ udev рд╕рдмрд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╣рдЪрд╛рдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдмрд╕ рдореЙрдбреЗрдо рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдХреЗ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред
рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЬрд┐рд╕реЗ рдореИрдВ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛: рдореИрдВ рдЗрд╕ рдореЙрдбреЗрдо рд╕реЗ рдЙрд╕ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдирд╛рдо рдореЙрдбреЗрдо рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ 192.168.8.1 рдкрд░ рдирд┐рд╣рд┐рдд рд╣реИред рдпрд╣ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдкреЗрдЬ рд╣реИ рдЬреЛ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреЗрдЬ рдХреЛ рднреВрд▓ рдЬрд╛рдиреЗ рдФрд░ рдирд╛рдо рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ рд╡реЗрдм рдкреЗрдЬ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрддреНрдпрд╛рджрд┐, рдФрд░ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рдмрдХрд╡рд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрд╕рдиреЗ рдереВрдХ рджрд┐рдпрд╛, рдФрд░ рдСрдкрд░реЗрдЯрд░ рдиреЗ рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред

рдпрджрд┐ рдореЙрдбреЗрдо рдореЗрдВ рдПрдЯреА рдХрдорд╛рдВрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рддреЛ рдмрд╣реБрдд рдХреБрдЫ рдЖрд╕рд╛рди рд╣реЛрддрд╛ред рдЗрд╕реЗ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛, рдкреАрдкреАрдкреА рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдирд╛, рдЖрдИрдкреА рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛, рдЯреЗрд▓реАрдХреЙрдо рдСрдкрд░реЗрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрджрд┐ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдлрд╝рд╕реЛрд╕, рдореБрдЭреЗ рдЬреЛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдореИрдВ рдЙрд╕реА рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдЬреАрдкреАрдПрд╕

рдореБрдЭреЗ рдЬреЛ рдЬреАрдкреАрдПрд╕ рд░рд┐рд╕реАрд╡рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЙрд╕рдореЗрдВ рдпреВрдПрдЖрд░рдЯреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдкрд╛рд╡рд░ рдерд╛ред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдФрд░ рд╕рд░рд▓ рдерд╛ред рд░рд┐рд╕реАрд╡рд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛.

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рд╕рдЪ рдХрд╣реВрдБ рддреЛ, рдЬреАрдкреАрдПрд╕ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдореМрдХрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА, рд╕рдм рдХреБрдЫ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реА рд╕реЛрдЪ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдЬреАрдкреАрдПрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП uart_AO_B (UART_RX_AO_B, UART_TX_AO_B) рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВред

khadas@Khadas:~$ sudo fdtput -t s /dtb.img /serial@c81004e0 status okay

рдмрд╛рдж рдореЗрдВ рдореИрдВ рдСрдкрд░реЗрд╢рди рдХреА рд╕рдлрд▓рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реВрдБред

khadas@Khadas:~$ fdtget /dtb.img /serial@c81004e0 status
okay

рдпрд╣ рдХрдорд╛рдВрдб рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбреЗрд╡рдЯреНрд░реА рдХреЛ рддреБрд░рдВрдд рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж, рдЬреАрдкреАрдПрд╕ рдбреЗрдореЙрди рдХреЛ рд░реАрдмреВрдЯ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред

khadas@Khadas:~$ sudo reboot

рдЬреАрдкреАрдПрд╕ рдбреЗрдореЙрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛. рдореИрдВ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЖрдЧреЗ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рддреБрд░рдВрдд рдХрд╛рдЯ рджреЗрддрд╛ рд╣реВрдВред

sudo apt install gpsd gpsd-clients -y
sudo killall gpsd
 
/* GPS daemon stop/disable */
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket

рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдВрдкрд╛рджрди.

sudo vim /etc/default/gpsd

рдореИрдВ рдПрдХ рдпреВрдПрдЖрд░рдЯреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕ рдкрд░ рдЬреАрдкреАрдПрд╕ рд▓рдЯрдХрд╛ рд░рд╣реЗрдЧрд╛ред

DEVICES="/dev/ttyS4"

рдФрд░ рдлрд┐рд░ рд╣рдо рд╕рдм рдХреБрдЫ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

/* GPS daemon enable/start */
sudo systemctl enable gpsd.socket
sudo systemctl start gpsd.socket

рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВ рдЬреАрдкреАрдПрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдЬреАрдкреАрдПрд╕ рддрд╛рд░ рдореЗрд░реЗ рд╣рд╛рде рдореЗрдВ рд╣реИ, рдпреВрдПрдЖрд░рдЯреА рдбрд┐рдмрдЧрд░ рддрд╛рд░ рдореЗрд░реА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЗ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реЗ рд╣реИрдВред

рдореИрдВ рдЬреАрдкреАрдПрд╕рдореЛрди рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреАрдкреАрдПрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рд░реАрдмреВрдЯ рдФрд░ рдЬрд╛рдВрдЪрддрд╛ рд╣реВрдВред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдЖрдк рдЗрд╕ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЬреАрдкреАрдПрд╕ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред

рдкрд╛рдпрдерди рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдбреЗрдореЙрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рдЖрдЬрд╝рдорд╛рдП, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╕рдордЭреМрддрд╛ рдХрд┐рдпрд╛ рдЬреЛ рдкрд╛рдпрдерди 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 рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рдореБрдЭреЗ рдпрд╛ рддреЛ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛ рдпрд╛ рдирд╣реАрдВред рд╣рд╛рдВ, рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рджрд╕ рдкреНрд░рдпрд╛рд╕ рдереЗред рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ, рдЯреЗрдврд╝рд╛ рдФрд░ рддрд┐рд░рдЫрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЬреАрдкреАрдПрд╕ рдХрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдЦрд░рд╛рдм рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдкрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рджреВрд░рд╕реНрде рдХрдорд░реЗ рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рд░реБрдХ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕ рдЕрд╕реБрдВрджрд░ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрджрд┐ рдЕрдзрд┐рдХ рд╕рдордп рд╣реЛрддрд╛, рддреЛ рдЬреАрдкреАрдПрд╕ рд╕реЗ рд╕реАрдзреЗ рдпреВрдПрдЖрд░рдЯреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛, рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрддрд╛ред рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдордп рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХреНрд░реВрд░ рд░реВрдк рд╕реЗ рдмрджрд╕реВрд░рдд рдХреЛрдбред рдФрд░ рд╣рд╛рдВ, рдореБрдЭреЗ рдХреЛрдИ рд╢рд░реНрдо рдирд╣реАрдВ рд╣реИ.

рдкреНрд░рдХрд╛рд╢ рдЙрддреНрд╕рд░реНрдЬрдХ рдбрд╛рдпреЛрдб

рдПрд▓рдИрдбреА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд░рд▓ рдФрд░ рдХрдард┐рди рдерд╛ред рдореБрдЦреНрдп рдХрдард┐рдирд╛рдИ рдпрд╣ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд┐рди рдирдВрдмрд░ рдмреЛрд░реНрдб рдкрд░ рдкрд┐рди рдирдВрдмрд░ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрд╛рдПрдВ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред OS рдореЗрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд┐рди рдирдВрдмрд░ рдФрд░ рдкрд┐рди рдирдВрдмрд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

gpio readall

рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдмреЛрд░реНрдб рдкрд░ рдкрд┐рди рдкрддреНрд░рд╛рдЪрд╛рд░ рдХреА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рдПрдЧреАред рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдУрдПрд╕ рдореЗрдВ рдкрд┐рди рдХреЛ рдСрдкрд░реЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрд▓рдИрдбреА рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдЬреАрдкреАрдЖрдИрдУрдПрдЪ_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() рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдПрд▓рдИрдбреА рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рдЭрдкрдХреЗрдЧреАред

рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдиреЛрдбреНрд╕

рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ рдПрдкреАрдЖрдИ

рдпрд╣ рдмрд╣реБрдд рдЦреБрд╢реА рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ.рдиреЗрдЯ рд╕реЗрд╡рд╛ рдХрд╛ рдЕрдкрдирд╛ рдкрд╛рдпрдерди-рдПрдкреАрдЖрдИ рд╣реИ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ Github.

рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдРрд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рджреЗрдЦрд╛ рднреА рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ (рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг) рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЦрдВрдб.

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред

sudo -H pip3 install speedtest-cli

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реАрдзреЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реЗ рдЙрдмрдВрдЯреВ рдореЗрдВ рд╕реНрдкреАрдб рдЯреЗрд╕реНрдЯрд░ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣реА рдкрд╛рдпрдерди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рд╕реАрдзреЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

sudo apt install speedtest-cli -y

рдФрд░ рдЕрдкрдиреА рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реНрдкреАрдб рдорд╛рдкреЗрдВ.

speedtest-cli
Retrieving speedtest.net configuration...
Testing from B***** (*.*.*.*)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by MTS (Moscow) [0.12 km]: 11.8 ms
Testing download speed................................................................................
Download: 7.10 Mbit/s
Testing upload speed......................................................................................................
Upload: 3.86 Mbit/s

рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЗрд╕ рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдкрдбрд╝рд╛ред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЯреЗрд▓реАрдХреЙрдо рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрд╕реЗ рдкреНрд▓реЗрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

import speedtest
from datetime import datetime
...
#╨г╨║╨░╨╖╤Л╨▓╨░╨╡╨╝ ╨║╨╛╨╜╨║╤А╨╡╤В╨╜╤Л╨╣ ╤Б╨╡╤А╨▓╨╡╤А ╨┤╨╗╤П ╤В╨╡╤Б╤В╨░
#6053) MaximaTelecom (Moscow, Russian Federation)
servers = ["6053"]
# If you want to use a single threaded test
threads = None
s = speedtest.Speedtest()
#╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨╕╨╝╤П ╨╛╨┐╨╡╤А╨░╤В╨╛╤А╨░ ╤Б╨╛╤В╨╛╨▓╨╛╨╣ ╤Б╨▓╤П╨╖╨╕
opos = '%(isp)s' % s.config['client']
s.get_servers(servers)
#╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╤В╨╡╨║╤Б╤В╨╛╨▓╤Г╤О ╤Б╤В╤А╨╛╨║╤Г ╤Б ╨┐╨░╤А╨░╨╝╨╡╤В╤А╨░╨╝╨╕ ╤Б╨╡╤А╨▓╨╡╤А╨░
testserver = '%(sponsor)s (%(name)s) [%(d)0.2f km]: %(latency)s ms' % s.results.server
#╤В╨╡╤Б╤В ╨╖╨░╨│╤А╤Г╨╖╨║╨╕
s.download(threads=threads)
#╤В╨╡╤Б╤В ╨▓╤Л╨│╤А╤Г╨╖╨║╨╕
s.upload(threads=threads)
#╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╤А╨╡╨╖╤Г╨╗╤М╤В╨░╤В╤Л
s.results.share()

#╨Я╨╛╤Б╨╗╨╡ ╤З╨╡╨│╨╛ ╤Д╨╛╤А╨╝╨╕╤А╤Г╨╡╤В╤Б╤П ╤Б╤В╤А╨╛╨║╨░ ╨┤╨╗╤П ╨╖╨░╨┐╨╕╤Б╨╕ ╨▓ csv-╤Д╨░╨╣╨╗.
#╨┐╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨┐╨╛╨╖╨╕╤Ж╨╕╤О GPS
longitude, latitude = getPositionData(agps_thread)
#╨▓╤А╨╡╨╝╤П ╨╕ ╨┤╨░╤В╨░
curdata = datetime.now().strftime('%d.%m.%Y')
curtime = datetime.now().strftime('%H:%M:%S')
delimiter = ';'
result_string = opos + delimiter + str(curpos) + delimiter + 
	curdata + delimiter + curtime + delimiter + longitude + ', ' + latitude + delimiter + 
	str(s.results.download/1000.0/1000.0) + delimiter + str(s.results.upload / 1000.0 / 1000.0) + 
	delimiter + str(s.results.ping) + delimiter + testserver + "n"
#╤В╤Г╤В ╨╕╨┤╨╡╤В ╨╖╨░╨┐╨╕╤Б╤М ╨▓ ╤Д╨░╨╣╨╗ ╨╗╨╛╨│╨╛╨▓

рдпрд╣рд╛рдБ рднреА, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд╕рд░реНрд╡рд░ рдкреИрд░рд╛рдореАрдЯрд░ рдмрд░рд╛рдмрд░ рдерд╛ [], рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рд░реНрд╡рд░ рдЪреБрдиреЗрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореЗрд░реЗ рдкрд╛рд╕ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╕рд░реНрд╡рд░ рдереЗ, рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдЧрддрд┐ред рдпрд╣ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рд╣реИ, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рд╕реНрдерд┐рд░ рдпрд╛ рдЧрддрд┐рд╢реАрд▓, рдЕрдиреБрд╕рдВрдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдмреАрд▓рд╛рдЗрди рдСрдкрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдорд╛рдк рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрдм рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рддрдп рд╕рд░реНрд╡рд░ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ
рдбрд╛рдпрдиреЗрдорд┐рдХ рд╕рд░реНрд╡рд░ рдЪреБрдирддреЗ рд╕рдордп рдЧрддрд┐ рдорд╛рдкрдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдоред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ
рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░рд┐рдгрд╛рдо, рдПрдХ рд╕рдЦреНрддреА рд╕реЗ рдЪрдпрдирд┐рдд рдПрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рдеред

рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рджреЛрдиреЛрдВ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ "рдлрд░" рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЧрдгрд┐рддреАрдп рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдпрд╣ рдереЛрдбрд╝рд╛ рдХрдо рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЖрдпрд╛рдо рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рд╣реЛрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдорд╣рд╛рди рд╢реЛрдз рдХрд╛ рд╕реНрдерд╛рди рд╣реИред рдФрд░ рдореИрдВ iperf рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреА рдЧрддрд┐ рдорд╛рдкреВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рд╣рдо рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдкрд░ рдХрд╛рдпрдо рд╣реИрдВред

рдореЗрд▓ рднреЗрдЬрдирд╛ рдФрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдБ

рдореЗрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрдИ рджрд░реНрдЬрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдк рдЖрдЬрд╝рдорд╛рдП, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рд╕рд╣рдордд рд╣реБрдЖред рдореИрдВрдиреЗ рдпрд╛рдВрдбреЗрдХреНрд╕ рдкрд░ рдПрдХ рдореЗрд▓рдмреЙрдХреНрд╕ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд▓реЗ рд▓рд┐рдпрд╛ рдпрд╣ рдореЗрд▓ рднреЗрдЬрдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ. рдореИрдВрдиреЗ рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ рдЗрд╕реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЬреАрдореЗрд▓ рд╕реЗ рднреЗрдЬрдирд╛ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИред рдореИрдВ рдЕрдкрдирд╛ рдореЗрд▓ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдордп рднреА рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛, рдпрд╣ рднреА рд╡реНрдпрд░реНрде рдерд╛ред

рд▓реЙрдЧ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднреЗрдЬреЗ рдЧрдП рдереЗ, рдЕрдЧрд░ рдХреЛрдИ рдХрдиреЗрдХреНрд╢рди рд╣реИ, рд╣рд░ 6 рдШрдВрдЯреЗ: 00 рдмрдЬреЗ, рд╕реБрдмрд╣ 06 рдмрдЬреЗ, рджреЛрдкрд╣рд░ 12 рдмрдЬреЗ рдФрд░ рд╢рд╛рдо 18 рдмрдЬреЗред рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рднреЗрдЬрд╛ред

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

рд╢реБрд░реБрдЖрдд рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреА рднреЗрдЬреА рдЧрдИрдВ. рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреА рдореЗрдВ рдЬрдорд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдпрджрд┐ рдХреЛрдИ рдХрдиреЗрдХреНрд╢рди рдерд╛, рддреЛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рднреЗрдЬрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рддрдм рд╕рдорд╕реНрдпрд╛рдПрдБ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдИрдВ рдХрд┐ рдпрд╛рдВрдбреЗрдХреНрд╕ рдХреЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рджрд┐рди рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдПрдХ рд╕реАрдорд╛ рд╣реИ (рдпрд╣ рджрд░реНрдж, рджреБрдЦ рдФрд░ рдЕрдкрдорд╛рди рд╣реИ)ред рдЪреВрдБрдХрд┐ рдкреНрд░рддрд┐ рдорд┐рдирдЯ рднреА рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рднреЗрдЬрдирд╛ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕рд▓рд┐рдП рдпрд╛рдВрдбреЗрдХреНрд╕ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬрддреЗ рд╕рдордп рдзреНрдпрд╛рди рд░рдЦреЗрдВред

рдлреАрдбрдмреИрдХ рд╕рд░реНрд╡рд░

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдПрдХ рджреВрд░рд╕реНрде рдЯреБрдХрдбрд╝реЗ рддрдХ рдкрд╣реБрдВрдЪ рдкрд╛рдиреЗ рдФрд░ рдЙрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдПрдХ рдмрд╛рд╣рд░реА рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрдирд╛ рдФрд░ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕рднреА рд╕реБрдВрджрд░ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдирд╛ рд╕рд╣реА рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдореЗрдВ рдирд╣реАрдВ.

рд╡реАрдкреАрдПрд╕ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЪреБрдирд╛ ruvds.com. рдЖрдк рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рд░реНрд╡рд░ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ. рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореЗрд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЬреЗрдм рд╕реЗ рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рд░рд┐рдЬрд░реНрд╡ рдХреЗ рд╕рд╛рде рд▓реЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рддрд╛рдХрд┐ рдЕрдЧрд░ рд╣рдо рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдПрд╕рдПрдордЯреАрдкреА рд╕рд░реНрд╡рд░, рд╡реАрдкреАрдПрди рдЗрддреНрдпрд╛рджрд┐ рддреИрдирд╛рдд рдХрд░ рд╕рдХреЗрдВ рддреЛ рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред рд╕рд╛рде рд╣реА, рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдФрд░ рдЗрд╕рдХреЗ рдЕрд╡рд░реБрджреНрдз рд╣реЛрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рди рд╣реЛред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдореНрд╕реНрдЯрд░реНрдбрдо рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЪреБрдирд╛ред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, vim2 рдиреЗ рдПрдХ рд░рд┐рд╡рд░реНрд╕ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдЪреБрдирд╛ рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ рдХреЛ рд░реЛрдХ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЕрдиреНрдп рд╕рдВрдЪрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реАрдкреАрдПрди, рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрднреА рднреА рдмреЗрд╣рддрд░ рд╣реИред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рд╡реАрдкреАрдПрди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рдирд╣реАрдВ рдерд╛ред

рдореИрдВ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ, рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ, рд░реВрдЯ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рд╡реАрдкреАрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреНрдп рд╕рдЪреНрдЪрд╛рдЗрдпреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ред рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдм рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВред рд░рд┐рдореЛрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рддрд╛ рд╣реВрдВред

adduser vimssh

рдореИрдВ рдЕрдкрдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ ssh рдХрдиреЗрдХреНрд╢рди рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдБред

ssh-keygen

рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реВрдВред

ssh-copy-id [email protected]

рд╣рдорд╛рд░реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдмреВрдЯ рдкрд░ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░рд┐рд╡рд░реНрд╕ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддрд╛ рд╣реВрдВред

[Unit] Description=Auto Reverse SSH
Requires=systemd-networkd-wait-online.service
After=systemd-networkd-wait-online.service
[Service] User=khadas
ExecStart=/usr/bin/ssh -NT -o ExitOnForwardFailure=yes -o ServerAliveInterval=60 -CD 8080 -R 8083:localhost:22 [email protected]
RestartSec=5
Restart=always
[Install] WantedBy=multi-user.target

рдкреЛрд░реНрдЯ 8083 рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд░рд┐рд╡рд░реНрд╕ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдЗрд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВред

sudo systemctl enable autossh.service
sudo systemctl start autossh.service

рдЖрдк рд╕реНрдерд┐рддрд┐ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

sudo systemctl status autossh.service

рдЕрдм, рд╣рдорд╛рд░реЗ VPS рд╕рд░реНрд╡рд░ рдкрд░, рдпрджрд┐ рд╣рдо рдЪрд▓рд╛рддреЗ рд╣реИрдВ:

ssh -p 8083 khadas@localhost

рдлрд┐рд░ рдореИрдВ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдЯреБрдХрдбрд╝реЗ рдкрд░ рдкрд╣реБрдБрдЪрддрд╛ рд╣реВрдБред рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реЗ рдореИрдВ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рдФрд░ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдбрд╛рд▓реЗрдВ

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ
рд╕реНрд╡рд┐рдЪ рдСрди рдХрд░рддреЗ рд╣реБрдП, рдЖрдЗрдП рд╡рд┐рдХрд╛рд╕ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рд╢реБрд░реВ рдХрд░реЗрдВ

рдУрд╣, рдареАрдХ рд╣реИ, рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдореИрдВрдиреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИред рдЕрдм рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдЖрдк рдХреЛрдб рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ.

рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЗрд╕ рддрд░рд╣ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рднрд▓реЗ рд╣реА рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рджреЗ рд░рд╣рд╛ рд╣реВрдВ, рдлрд┐рд░ рднреА рдореИрдВ рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдореВрд▓реНрдпрд╡рд╛рди рдЪреАрдЬреЛрдВ рдХреЛ рд╕реАрдзреЗ рдкрд╛рда рдореЗрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред

рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдореИрдВ рдЬреАрдкреАрдПрд╕, рдЬреАрдкреАрдЖрдИрдУ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдЕрд▓рдЧ рд╢реЗрдбреНрдпреВрд▓рд░ рдереНрд░реЗрдб рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реВрдВред

#╨╖╨░╨┐╤Г╤Б╨║ ╨┐╨╛╤В╨╛╨║╨░ ╨┐╨╗╨░╨╜╨╕╤А╨╛╨▓╤Й╨╕╨║╨░
pShedulerThread = threading.Thread(target=ShedulerThread, args=(1,))
pShedulerThread.start()

рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: рдпрд╣ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ рдХреНрдпрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдзреНрд╡рдЬ рд╣реИ, рддреЛ рд╣рдо рдПрд▓рдИрдбреА рдХреЛ рдЭрдкрдХрд╛рддреЗ рд╣реИрдВред

#sheduler
def ShedulerThread(name):
	global ready_to_send
	while True:
		d = datetime.today()
		time_x = d.strftime('%H:%M')
		if time_x in time_send_csv:
			ready_to_send = True
		if error_status:
			error_blink()
		else:
			good_blink()
		time.sleep(1)

рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдПрд╕рдПрд╕рдПрдЪ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдФрд░ DNS рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЪреВрдВрдХрд┐ рд╡реИрд╕реЗ рднреА рдХреЛрдИ рдирд╣реАрдВ рдкрдврд╝рддрд╛ рд╣реИ, рддреЛ рдЬрд╛рди рд▓реЗрдВ рдХрд┐ рдЯреНрд░реЗрди рд▓рдХрдбрд╝реА рдХреА рдкрдЯрд░рд┐рдпреЛрдВ рдкрд░ рдирд╣реАрдВ рдЪрд▓рддреА рд╣реИред рдЬреЛ рдХреЛрдИ рднреА рдИрд╕реНрдЯрд░ рдЕрдВрдбрд╛ рдкрд╛рддрд╛ рд╣реИ рдЙрд╕реЗ рдХреБрдЫ рдХреИрдВрдбреА рдорд┐рд▓рддреА рд╣реИред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд░реВрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ -рд╕реЗрдЯ-рдорд╛рд░реНрдХ 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

рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕рднреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдкрддреЗ рд╕реЗрдЯ рдХрд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдореЙрдбреЗрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдерд╛ред

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'")

рдореИрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ, рдпрджрд┐ рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ, рддреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ!

рдпрд╣рд╛рдВ рдореИрдВ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрд╕рдПрд╕рдПрдЪ рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВ (рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдпрджрд┐ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рддреЛ рд╕рд░реНрд╡рд░ рдкрд░ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рднреЗрдЬреЗрдВ, рд▓реЙрдЧ рднреЗрдЬреЗрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдПрдВ рдФрд░ рд▓реЙрдЧ рдХреЛ рдПрдХ рд╕реАрдПрд╕рд╡реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред

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()
#╨╕ ╨┤╨░╨╗╨╡╨╡ ╤В╨╡╤Б╤В╨╕╤А╤Г╨╡╨╝ ╤Б╨║╨╛╤А╨╛╤Б╤В╤М ╨╕ ╤Б╨╛╤Е╤А╨░╨╜╤П╨╡╨╝ ╨╗╨╛╨│╨╕. 

рд░рд┐рд╡рд░реНрд╕ рдПрд╕рдПрд╕рдПрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИред

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 рдСрдкрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХрдИ рджрд┐рдиреЛрдВ рддрдХ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдорд╛рдкрдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЧрддрд┐ рдорд╛рдк рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЙрддрд╛рд░-рдЪрдврд╝рд╛рд╡ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдФрд╕рдд рдореВрд▓реНрдп рдЕрднреА рднреА рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓рддреА рдФрд╕рдд рдХреЗ рд╕рд╛рдеред

рдмрд╛рдж рдореЗрдВ рдореИрдВрдиреЗ рдЕрдиреНрдп рдЯреЗрд▓реАрдХреЙрдо рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдПред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд╣рд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдерд╛, рдФрд░ рдкрд░рд┐рдгрд╛рдо рднреА рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдереЗред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рдЕрдиреБрд╕рдВрдзрд╛рди рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╖рдп рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдХреЗ рдХрд╛рдо рддрдХ рдирд╣реАрдВ рдЯрд┐рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рдитАж

рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо

рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдкрд░реЗ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдЕрдЪрд╛рдирдХ рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХрдордЬреЛрд░ рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдореЗрд░реА рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд░рд╛рдп рдореЗрдВ, рдореЙрдбреЗрдо рдерд╛, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреНрдп рдореЙрдбреЗрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдФрд░ рд╣рд░ рдмрд╛рд░ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдРрд╕реА рдЪрд╛рд▓реЗрдВ рдмрдирд╛рддрд╛ рдерд╛ред рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдиреНрдп рдореЙрдбреЗрдо рдореЙрдбрд▓ рд╣реИрдВ; рдЖрдорддреМрд░ рдкрд░ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд┐рдиреА рдкреАрд╕реАрдЖрдИ-рдИ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣реИ. рдкрд░рд┐рдпреЛрдЬрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдереА рдФрд░ рдореБрдЭреЗ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдореИрдВ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрд╛ред

рдХрдИ рдПрд▓рдЯреАрдИ рдореЙрдбреЗрдо рдкрд░ рдПрдХ рд╕рд╛рде рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ