рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

рдХреНрд╡рд╛рд░реЗрдиреНрдЯрд╛рдЗрдирдХреЛ рд╕рдордпрдорд╛, рдорд▓рд╛рдИ рдзреЗрд░реИ рд╕реЗрд▓реБрд▓рд░ рдЕрдкрд░реЗрдЯрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ LTE рдореЛрдбреЗрдорд╣рд░реВрдХреЛ рдЧрддрд┐ рдирд╛рдкреНрдиреЗ рдЙрдкрдХрд░рдгрдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рднрд╛рдЧ рд▓рд┐рди рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

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

рдо рддреБрд░реБрдиреНрддреИ рднрдиреНрдиреЗрдЫреБ рдХрд┐ рдХрд╛рд░реНрдп рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓ рд░ рд╕рдмреИрднрдиреНрджрд╛ рдЬреНрдЮрд╛рди-рдЧрд╣рди рдЫреИрди; рдо рддрдкрд╛рдИрд▓рд╛рдИ рдмрддрд╛рдЙрдиреЗрдЫреБ рдХрд┐ рдореИрд▓реЗ рдХреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рд╛рдордирд╛ рдЧрд░реЗ рд░ рдореИрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рд╕рдорд╛рдзрд╛рди рдЧрд░реЗрдВред рддреНрдпрд╕реЛрднрдП, рдЬрд╛рдФрдВред

рднрдиреНрдиреБ

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

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

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

рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдХрд╛рд░реНрдп

рд▓реЗрдЦрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рд╣рд░реВ рдмрд┐рдирд╛: рдХрд┐рди рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдпреЛ рдЪрд╛рд╣рдБрджреИрдирдиреН: рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдмрд┐рдирд╛ рдХрд╛рдо рдирдЧрд░реНрдиреБрд╣реЛрд╕реН! рдХрд╣рд┐рд▓реНрдпреИ, рдХрддреИ!

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

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

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

csv рдврд╛рдБрдЪрд╛рдорд╛ рддрд╛рд▓рд┐рдХрд╛ред рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдЪрд┐рдиреНрд╣ рдкреНрд░рддреНрдпреЗрдХ 6 рдШрдгреНрдЯрд╛рдорд╛ рдЗрдореЗрд▓ рдорд╛рд░реНрдлрдд рдкрдард╛рдЙрдиреБрд╣реЛрд╕реНред рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, GPIO рдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ LED рд▓рд╛рдИ рдЭрд┐рдореНрдХрд╛рдЙрдиреБрд╣реЛрд╕реНред

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

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

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

рдпреЛрдЬрдирд╛ рд╕рд░рд▓ рд░ рд╕реНрдкрд╖реНрдЯ рдЫред рддреНрдпрд╕реИрд▓реЗ, рдо рдпрд╕рд▓рд╛рдИ рдХреБрдиреИ рд╡рд┐рд╢реЗрд╖ рдЯрд┐рдкреНрдкрдгреА рдмрд┐рдирд╛ рдЫреЛрдбреНрдиреЗрдЫреБред

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

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

рд╕рд╛рдереИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдореИрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдП рдХрд┐ рдкрд╛рдЗрдердирдХрд╛ рджреБрдИ рдЪрд╛рд▓реБ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ 2 рд░ 3 рдЫрдиреН, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдо рддреЗрд╕реНрд░реЛрдорд╛ рдмрд╕реЗрдБред

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

рдПрдХрд▓-рдкреНрд▓реЗрдЯ vim2

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

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

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

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

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

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

  • рдЙрдкрдХрд░рдг рдкрд┐рди GND: <тАФ> VIMs рдХреЛ GPIO рдХреЛ Pin17
  • рдЙрдкрдХрд░рдг рдкрд┐рди TXD: <тАФ> VIMs рдХреЛ GPIO рдХреЛ Pin18 (Linux_Rx)
  • рдЙрдкрдХрд░рдг рдкрд┐рди RXD: <тАФ> VIMs рдХреЛ GPIO (Linux_Tx) рдХреЛ Pin19
  • рдЙрдкрдХрд░рдг рдкрд┐рди VCC: <тАФ> VIMs рдХреЛ GPIO рдХреЛ Pin20

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

рддреНрдпрд╕рдкрдЫрд┐, рдореИрд▓реЗ рдлрд░реНрдорд╡реЗрдпрд░ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реЗрдВ рдпрд╣рд╛рдБ рджреЗрдЦрд┐ред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд░реНрдорд╡реЗрдпрд░ рд╕рдВрд╕реНрдХрд░рдг VIM1_Ubuntu-server-bionic_Linux-4.9_arm64_EMMC_V20191231.

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

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

Aaand... рдХреЗрд╣рд┐ рдХрд╛рдо рдЧрд░реНрджреИрдиред рдореИрд▓реЗ рд╕реНрдерд╛рдкрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрди рдХреЗрд╣реА рдШрдгреНрдЯрд╛ рдмрд┐рддрд╛рдПрдБ рддрд╛рдХрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдореЗрд░реЛ рд▓рд╛рдЧрд┐ рд╕рд╣реА рд░реВрдкрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рд╣реБрдиреЗрдЫред рдореИрд▓реЗ рддреНрдпрд╣рд╛рдБ рдХреЗ рдЧрд░реЗрдВ рдорд▓рд╛рдИ рдпрд╛рдж рдЫреИрди, рддрд░ рддреНрдпрд╣рд╛рдБ рдШреЛрдбрд╛рд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ рд╕рд░реНрдХрд╕ рдкрдирд┐ рдерд┐рдпреЛред рддреНрдпрд╕реИрд▓реЗ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреБрд╣реЛрд╕реНред рддрд░ рдпреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдмрд┐рдирд╛ vim2 рд▓рд╛рдИ рдпрд╛рддрдирд╛ рджрд┐рдирдХреЛ рдХреБрдиреИ рдорддрд▓рдм рдЫреИрдиред рдЙрд╣рд╛рдБрд╕рдБрдЧ рдкрдЯрдХреНрдХреИ рдЧрдбрдмрдб рдирдЧрд░реНрдиреБ рд░рд╛рдореНрд░реЛ!

рдирд░рдХрдХреЛ рд╕рд╛рдд рд╕рд░реНрдХрд▓, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рд░ рд╕реНрдерд╛рдкрдирд╛ рдкрдЫрд┐, рдореИрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдВред рдореИрд▓реЗ рдмреЛрд░реНрдбрд▓рд╛рдИ USB рдорд╛рд░реНрдлрдд рдореЗрд░реЛ рд▓рд┐рдирдХреНрд╕ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рдЬрдбрд╛рди рдЧрд░реЗрдВ, рд░ рдорд╛рдерд┐рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдЕрдиреБрд╕рд╛рд░ UART рдкрдирд┐ рдЬрдбрд╛рди рдЧрд░реЗрдВред
рдо рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд░ рд╕рдлреНрдЯрд╡реЗрдпрд░ рддреНрд░реБрдЯрд┐ рдирд┐рдпрдиреНрддреНрд░рдг рдмрд┐рдирд╛, 115200 рдХреЛ рдЧрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд░реЛ рдордирдкрд░реНрдиреЗ minicom рдЯрд░реНрдорд┐рдирд▓ рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИрдЫреБред рд░ рд╕реБрд░реБ рдЧрд░реМрдВред

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

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

kvim2# 

рдо рдЖрджреЗрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдЫреБ:

kvim2# run update

рд╣реЛрд╕реНрдЯрдорд╛ рдЬрд╕рдмрд╛рдЯ рд╣рд╛рдореА рд▓реЛрдб рдЧрд░реНрджреИрдЫреМрдВ, рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдЫреБ:

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

рддреНрдпреЛ рд╣реЛ, рдУрдлред рдореИрд▓реЗ рдЬрд╛рдБрдЪ рдЧрд░реЗрдВ, рдмреЛрд░реНрдбрдорд╛ рд▓рд┐рдирдХреНрд╕ рдЫред рд▓рдЧрдЗрди/рдкрд╛рд╕рд╡рд░реНрдб khadas:khadasред

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

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

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпреЛ рдЧрд╛рд╣реНрд░реЛ рд▓рд╛рдЧреНрдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдмреЛрд░реНрдб рдкреНрд░рдпреЛрдЧ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН; рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд░рд╛рдореНрд░реЛ рдЫред рдЗрдорд╛рдирджрд╛рд░реАрдкреВрд░реНрд╡рдХред

рдореЛрдбреЗрдо Huawei e3372h - 153

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

рд╡рд╛рд╕реНрддреБрдЧрдд рд░реВрдкрдорд╛, рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рд╕рдмреИ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрдЫрд┐, рдпреЛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ: рдореЛрдбреЗрдо рдЬрдбрд╛рди рдЧрд░реЗрдкрдЫрд┐, рдорд╕рдБрдЧ eth* рдиреЗрдЯрд╡рд░реНрдХ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдЫ, рдЬреБрди dhcp рдорд╛рд░реНрдлрдд IP рдареЗрдЧрд╛рдирд╛ 192.168.8.100, рд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧреЗрдЯрд╡реЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред 192.168.8.1 рд╣реЛред

рд░ рд╕рдмреИрднрдиреНрджрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХреНрд╖рдг! рдпреЛ рдореЛрдбреЗрдо рдореЛрдбреЗрд▓рд▓реЗ рдореЛрдбреЗрдо рдореЛрдбрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрджреИрди, рдЬреБрди AT рдЖрджреЗрд╢рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдиреНрддреНрд░рд┐рдд рд╣реБрдиреНрдЫред рд╕рдмреИ рдХреБрд░рд╛ рдзреЗрд░реИ рд╕рд░рд▓ рд╣реБрдиреЗрдЫ, рдкреНрд░рддреНрдпреЗрдХ рдореЛрдбреЗрдордХреЛ рд▓рд╛рдЧрд┐ PPP рдЬрдбрд╛рдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВрд╕рдБрдЧ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрд░ рдореЗрд░реЛ рдХреЗрд╕рдорд╛, "рдЖрдлреИ" (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдкрдорд╛, udev рдирд┐рдпрдо рдЕрдиреБрд╕рд╛рд░ рд▓рд┐рдирдХреНрд╕ рдбрд╛рдЗрднрд░), рдПрдХ eth рдЗрдиреНрдЯрд░рдлреЗрд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ рд░ dhcp рдорд╛рд░реНрдлрдд рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

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

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

рддреНрдпреЛ рд╣реЛ, n рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрд╣рд░реВ, рд╕рдорд╛рди IP рдареЗрдЧрд╛рдирд╛рдХреЛ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧреЗрдЯрд╡реЗрд╕рдБрдЧред рддрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛, рддрд┐рдиреАрд╣рд░реВ рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рдЕрдкрд░реЗрдЯрд░рд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдЫред

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

рддреНрдпрд╕рдХрд╛рд░рдг, рдореИрд▓реЗ рдореЛрдбреЗрдорд╣рд░реВрдХреЛ рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдорд╛рд░реНрдЧ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЯреНрд░рд╛рдлрд┐рдХ рдЪрд▓рд╛рдЙрдиреЗ рдмрд╛рдЯреЛ рд░реЛрдЬреЗрдВред

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

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

рдореЛрдбреЗрдо рд╕рд╣рд┐ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ USB-modeswitch рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдВред

sudo apt update
sudo apt install -y usb-modeswitch

рдЬрд╕ рдкрдЫрд┐, рдЬрдбрд╛рди рдкрдЫрд┐, рдореЛрдбреЗрдо рд╕рд╣реА рд░реВрдкрдорд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЗрдиреЗрдЫ рд░ udev рдЙрдкрдкреНрд░рдгрд╛рд▓реА рджреНрд╡рд╛рд░рд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдиреЗрдЫред рдо рдХреЗрд╡рд▓ рдореЛрдбреЗрдо рдЬрдбрд╛рди рдЧрд░реЗрд░ рд░ рдиреЗрдЯрд╡рд░реНрдХ рджреЗрдЦрд╛ рдкрд░реНрджрдЫ рднрдиреЗрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреБред
рдореИрд▓реЗ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдирд╕рдХреНрдиреЗ рдЕрд░реНрдХреЛ рд╕рдорд╕реНрдпрд╛: рд╣рд╛рдореАрд▓реЗ рдпрд╕ рдореЛрдбреЗрдордмрд╛рдЯ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЕрдкрд░реЗрдЯрд░рдХреЛ рдирд╛рдо рдХрд╕рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫреБ? рдЕрдкрд░реЗрдЯрд░ рдирд╛рдо рдореЛрдбреЗрдо рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ 192.168.8.1 рдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫред рдпреЛ рдПрдХ рдЧрддрд┐рд╢реАрд▓ рд╡реЗрдм рдкреГрд╖реНрда рд╣реЛ рдЬрд╕рд▓реЗ Ajax рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдорд╛рд░реНрдлрдд рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ, рддреНрдпрд╕реИрд▓реЗ рдХреЗрд╡рд▓ рдкреГрд╖реНрда wgeting рд░ рдирд╛рдо рдкрд╛рд░реНрд╕рд┐рдЩрд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдиред рддреНрдпрд╕реЛрднрдП рдореИрд▓реЗ рд╡реЗрдм рдкреГрд╖реНрда рдЖрджрд┐ рдХрд╕рд░реА рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рд╣реЗрд░реНрди рдерд╛рд▓реЗрдБ, рд░ рдореИрд▓реЗ рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ рдмрдХрд╡рд╛рд╕ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреБ рднрдиреЗрд░ рдорд╣рд╕реБрд╕ рдЧрд░реЗрдВред рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рдЙрд╕рд▓реЗ рдереБрдХреНрдпреЛ, рд░ рдЕрдкрд░реЗрдЯрд░рд▓реЗ Speedtest API рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдерд╛рд▓реНрдпреЛред

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

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

рдорд▓рд╛рдИ рджрд┐рдЗрдПрдХреЛ GPS рд░рд┐рд╕реАрднрд░рдорд╛ UART рдЗрдиреНрдЯрд░рдлреЗрд╕ рд░ рдкрд╛рд╡рд░ рдерд┐рдпреЛред рдпреЛ рдЙрддреНрддрдо рд╕рдорд╛рдзрд╛рди рдерд┐рдПрди, рддрд░ рдпреЛ рдЕрдЭреИ рдкрдирд┐ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░ рд╕рд░рд▓ рдерд┐рдпреЛред рд░рд┐рд╕рд┐рднрд░ рдХреЗрд╣рд┐ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдереНрдпреЛред

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

рдЗрдорд╛рдирджрд╛рд░ рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рдореЗрд░реЛ рдкрд╣рд┐рд▓реЛ рдкрдЯрдХ GPS рд░рд┐рд╕реАрднрд░рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрдиреЗ рдерд┐рдпреЛ, рддрд░ рдореИрд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реЗ рдЕрдиреБрд╕рд╛рд░, рд╕рдмреИ рдХреБрд░рд╛ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдореЛ рд╕рдордп рдкрд╣рд┐рд▓реЗ рд╕реЛрдЪрд┐рдПрдХреЛ рдерд┐рдпреЛред рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рддрдпрд╛рд░ рд╕рдорд╛рдзрд╛рди рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред

рдкрд╣рд┐рд▓реЗ, рдо uart_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 рдбрд┐рдмрдЧрд░ рддрд╛рд░рд╣рд░реВ рдореЗрд░реЛ рдФрдВрд▓рд╛рд╣рд░реВ рдореБрдирд┐ рджреЗрдЦрд┐рдиреНрдЫрдиреНред

рдо рд░рд┐рдмреБрдЯ рдЧрд░реНрдЫреБ рд░ gpsmon рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ GPS рд╕рдЮреНрдЪрд╛рд▓рди рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреБред

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕ рд╕реНрдХреНрд░рд┐рдирд╕рдЯрдорд╛ рдЙрдкрдЧреНрд░рд╣рд╣рд░реВ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрди, рддрд░ рддрдкрд╛рдИрдВрд▓реЗ GPS рд░рд┐рд╕реАрднрд░рд╕рдБрдЧ рд╕рдЮреНрдЪрд╛рд░ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдпрд╕рдХреЛ рдЕрд░реНрде рд╕рдмреИ рдареАрдХ рдЫред

рдкрд╛рдЗрдердирдорд╛, рдореИрд▓реЗ рдпреЛ рдбреЗрдордирд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ, рддрд░ рдореИрд▓реЗ рдкрд╛рдЗрдерди 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 рд▓реЗ рдХрдордЬреЛрд░ рд░рд┐рд╕реЗрдкреНрд╢рди рд╣реБрди рд╕рдХреНрдЫ рд░ рд╕рдзреИрдВ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИрдиред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдкрд░реНрдЦрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдЯрд╛рдврд╛рдХреЛ рдХреЛрдард╛рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдпрд╕ рдард╛рдЙрдБрдорд╛ рд╕реНрдерд┐рд░ рд╣реБрдиреЗрдЫред рддреНрдпрд╕реИрд▓реЗ, рдореИрд▓реЗ рдпреЛ рдЕрдпреЛрдЧреНрдп рд╡рд┐рдХрд▓реНрдк рд▓рд╛рдЧреВ рдЧрд░реЗрдВред

рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛, рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рд╕рдордп рдерд┐рдпреЛ рднрдиреЗ, UART рдорд╛рд░реНрдлрдд рд╕реАрдзреИ GPS рдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдореНрднрд╡ рд╣реБрдиреЗрдЫ, рдпрд╕рд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рдереНрд░реЗрдбрдорд╛ рдкрд╛рд░реНрд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдпрд╕рдХреЛ рд╕рд╛рде рдХрд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрд░ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рд╕рдордп рдерд┐рдПрди, рддреНрдпрд╕реИрд▓реЗ рдХреНрд░реВрд░ рд░реВрдкрдорд╛ рдХреБрд░реВрдк рдХреЛрдбред рд░ рд╣реЛ, рдорд▓рд╛рдИ рд▓рд╛рдЬ рд▓рд╛рдЧреНрджреИрдиред

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

LED рдЬрдбрд╛рди рдПрдХреИ рд╕рдордпрдорд╛ рд╕рд░рд▓ рд░ рдЧрд╛рд╣реНрд░реЛ рдерд┐рдпреЛред рдореБрдЦреНрдп рдХрдард┐рдирд╛рдИ рднрдиреЗрдХреЛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд░рд╣реЗрдХреЛ рдкрд┐рди рдирдореНрдмрд░ рдмреЛрд░реНрдбрдорд╛ рд░рд╣реЗрдХреЛ рдкрд┐рди рдирдореНрдмрд░рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдБрджреИрди рд░ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдмрд╛рдпрд╛рдБ рд╣рд╛рддрд▓реЗ рд▓реЗрдЦрд┐рдПрдХреЛ рд╣реБрдирд╛рд▓реЗред OS рдорд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд┐рди рдирдореНрдмрд░ рд░ рдкрд┐рди рдирдореНрдмрд░ рддреБрд▓рдирд╛ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

gpio readall

рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд░ рдмреЛрд░реНрдбрдорд╛ рдкрд┐рди рдкрддреНрд░рд╛рдЪрд╛рд░рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реБрдиреЗрдЫред рдЬрд╕ рдкрдЫрд┐ рдо OS рдорд╛ рдкрд┐рди рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рд╕рдХреНрдЫреБред рдореЗрд░реЛ рдХреЗрд╕рдорд╛ рдПрд▓рдИрдбреА рдЬрдбрд╛рди рднрдПрдХреЛ рдЫ GPIOH_5.

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

рдо GPIO рдкрд┐рдирд▓рд╛рдИ рдЖрдЙрдЯрдкреБрдЯ рдореЛрдбрдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдЫреБред

gpio -g mode 421 out

рдо рд╢реВрдиреНрдп рд▓реЗрдЦреНрдЫреБред

gpio -g write 421 0

рдПрдЙрдЯрд╛ рд▓реЗрдЦреНрдЫреБ ред

gpio -g write 421 1

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг
"рез" рд▓реЗрдЦрд┐рд╕рдХреЗрдкрдЫрд┐ рд╕рдмреИ рдмрдЬреНрдпреЛ

#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 рд╕реБрдиреНрджрд░ рд░реВрдкрдорд╛ рдЭрд┐рдореНрдХрд┐рдиреЗрдЫред

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

Speedtest API

рдпреЛ рдПрдХ рдареВрд▓реЛ рдЖрдирдиреНрдж рд╣реЛ рдХрд┐ speedtest.net рд╕реЗрд╡рд╛рдХреЛ рдЖрдлреНрдиреИ python-API рдЫ, рддрдкрд╛рдИрд▓реЗ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ Github.

рд░рд╛рдореНрд░реЛ рдХреБрд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рддреНрдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рдХреЛрдбрд╣рд░реВ рдкрдирд┐ рд╣реЗрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпрд╕ API (рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ) рдХреЛ рд╕рд╛рде рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рдорд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЦрдгреНрдб.

рдо рдирд┐рдореНрди рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рдкрд╛рдЗрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджрдЫреБред

sudo -H pip3 install speedtest-cli

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

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 рдмрд╛рдЯ рдкрдард╛рдЙрдиреЗ, рдЖрджрд┐ рд╕рд╣рд┐рдд рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫред рдо рдореЗрд░реЛ рдореЗрд▓ рд╕рд░реНрднрд░ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдкрд░реЗрд╢рд╛рди рдЧрд░реНрди рдЪрд╛рд╣рдиреНрди рд░ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдордп рдерд┐рдПрди, рддрд░ рдпреЛ рдкрдЫрд┐ рдмрд╛рд╣рд┐рд░ рдЖрдпреЛ, рдпреЛ рдкрдирд┐ рд╡реНрдпрд░реНрде рдерд┐рдпреЛред

рд▓рдЧрд╣рд░реВ рддрд╛рд▓рд┐рдХрд╛ рдЕрдиреБрд╕рд╛рд░ рдкрдард╛рдЗрдпреЛ, рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдЬрдбрд╛рди рдЫ, рдкреНрд░рддреНрдпреЗрдХ 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

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

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рд░реНрднрд░

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

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

рдзреЗрд░реИ LTE рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг

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

рдо рдлрд╛рдпрд░рд╡рд╛рд▓ рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ, рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВ рдкреНрд░рддрд┐рдмрдиреНрдз рдЧрд░реНрдиреЗ, рд░реВрдЯ 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 рдореЛрдбреЗрдорд╣рд░реВрдорд╛ рдПрдХ рд╕рд╛рде рдЧрддрд┐ рдкрд░реАрдХреНрд╖рдг
рд╕реНрд╡рд┐рдЪ рдЕрди рдЧрд░реНрджреИ, рд╡рд┐рдХрд╛рд╕ рд░ рдбрд┐рдмрдЧрд┐рдЩ рд╕реБрд░реБ рдЧрд░реМрдВ

рдУрдл, рдареАрдХ рдЫ, рдпреЛ рд╣реЛ, рдореИрд▓реЗ рд╕рдмреИ рдиреЛрдбрд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реЗрдВред рдЕрдм рдпреЛ рд╕рдмреИ рдПрдХ рд╕рд╛рде рд░рд╛рдЦреНрдиреЗ рд╕рдордп рд╣реЛред рддрдкрд╛рдИрдВ рдХреЛрдб рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдареАрдХ рдЫ.

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

рд╕реБрд░реБрдорд╛, рдо gps, gpio рд╕реБрд░реБ рдЧрд░реНрдЫреБ рд░ рдЫреБрдЯреНрдЯреИ рдЕрдиреБрд╕реВрдЪрдХ рдереНрд░реЗрдб рд╕реБрд░реБ рдЧрд░реНрдЫреБред

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

рдЕрдиреБрд╕реВрдЪрдХ рдПрдХрджрдо рд╕рд░рд▓ рдЫ: рдпрд╕рд▓реЗ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдиреЗ рд╕рдордп рдЖрдПрдХреЛ рдЫ рд░ рд╡рд░реНрддрдорд╛рди рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╣реЛ рднрдиреЗрд░ рд╣реЗрд░реНрдиреЗ рджреЗрдЦрд┐рдиреНрдЫред рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдЭрдгреНрдбрд╛ рдЫ рднрдиреЗ, рд╣рд╛рдореА рдПрд▓рдИрдбреА рдЭрд┐рдореНрдХрд╛рдЙрдБрдЫреМрдВред

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

рдпрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рдХрдард┐рди рднрд╛рдЧ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рд░рд┐рднрд░реНрд╕ ssh рдЬрдбрд╛рди рдХрд╛рдпрдо рд░рд╛рдЦреНрдиреБ рд╣реЛред рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдгрдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдЧреЗрдЯрд╡реЗ рд░ 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'")

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

рдпрд╣рд╛рдБ рдо рдпрд╕ рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ ssh рд░рд╛рдЙрдЯрд┐рдЩ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдЫреБ (рдпрджрд┐ рдпреЛ рдЧрд░рд┐рдПрди рднрдиреЗ), рд╕рдордп рдЖрдПрдХреЛ рдЦрдгреНрдбрдорд╛ рд╕рд░реНрднрд░рдорд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН, рд▓рдЧрд╣рд░реВ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН рд░ рдЕрдиреНрддрдорд╛ рд╕реНрдкреАрдбрдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН рд░ рд▓рдЧрд╣рд░реВрд▓рд╛рдИ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди