OpenWRT рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ HTTP рдкрд░ рдХреБрдЫ рднреА рд╕рдХреНрд╖рдо рдХрд░рдирд╛


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

рдЖрдЙрдЯрдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдирд┐рдпрдорд┐рдд рдпреВрдПрд╕рдмреА рдХреАрдмреЛрд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдореИрдВ рд╕реБрдкрд░рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдХреАрдорддреЛрдВ рдкрд░ рдШреГрдгрд┐рдд-рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдорд┐рд▓рд╛, рддреЛ рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ - рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? рд╣рд╛рдБ, рдХрд┐рд╕ рд▓рд┐рдП! рдХреАрдмреЛрд░реНрдб рдореЗрдВ рддреАрди рдПрд▓ рдИ рдбреА рд╣реИрдВ рдЬреЛ рдЗрд╕ рдХреАрдмреЛрд░реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдХрд░рдг рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрд▓ рдИ рдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рд╕рд░реНрдХрд┐рдЯ рдХреЗ рд╕рд╛рде рдмрджрд▓рдирд╛ - рд╣рдореЗрдВ рддреАрди рднрд╛рд░реЛрдВ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдорд┐рд▓рддрд╛ рд╣реИред рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ - рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдЖрдЧреЗ рд╢реЛрдзрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ред рдмреЗрд╢рдХ, рдЖрдк рдмрдВрджреВрдХ рд╕реЗ рдЧреМрд░реИрдпреЛрдВ рдХреЛ рдЧреЛрд▓реА рдирд╣реАрдВ рдорд╛рд░ рд╕рдХрддреЗ рд╣реИрдВ, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдЗрдХрдЯреНрдард╛ (рдпрд╛ рдЦрд░реАрдж) рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рдлрд╛рдпрджреЗ (рдЕрдзрд┐рдХ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ, рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХ рд╕реНрддрд░, рдЖрджрд┐) рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди "рдХреАрдмреЛрд░реНрдб" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдлрд╛рдпрджреЗ рднреА рд╣реИрдВ - рдпрд╣ рдПрдордХреЗ рд╕реЗ рдЕрдкрд░рд┐рдЪрд┐рдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИред рдЖрдк рдмрд╕ рдЖрдЬ, рдЕрднреА рдФрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдЙрдкрдХрд░рдг рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдлрд╛рдпрджреЗ рдХреЗ рдмреАрдЪ:

рд╣рдо OpenWRT рдбрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ

рдЗрд╕ рдЪрд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдХ рд░рд╛рдЙрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореЗрд░реА рд▓рд╛рдЧрдд рдореБрдЭреЗ 850rред
Openwrt.org рдкрд░ рдореЙрдбрд▓ рдкреЗрдЬ рд╡реНрдпрд╛рдкрдХ рдЪрдордХрддреА рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрдВ рдПрдХ рдЯреНрд░рдВрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВ рд╕реНрд╡рдпрдВ рдмреАрдЯрд╛ рдПрдЯрд┐рдЯреНрдпреВрдб рдПрдбрдЬрд╕реНрдЯрдореЗрдВрдЯ 12.09 рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░реВрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп рд╕реНрдиреИрдкрд╢реЙрдЯ рдУрдкрдирд░рдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ, рдФрд░ AA12.09 рдХреЛ рдЖрдЦрд┐рд░рдХрд╛рд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рдХрдИ рдкреНрд░рд╛рдердорд┐рдХ рдСрдкрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  1. рдЕрдкрдиреЗ рдкреАрд╕реА рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдХреЗ рд╕рд╛рде рд░рд╛рдЙрдЯрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ (рдЪрдордХрддреА рдХреЗ рдмрд╛рдж, рд╡рд╛рдИрдлрд╛рдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛)
  2. рд░рд╛рдЙрдЯрд░ рдкреНрд░рд╢рд╛рд╕рди рдкреГрд╖реНрда рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрддрд╛ 192.168.0.254 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ, рдкрд╛рд╕рд╡рд░реНрдб: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ)
  3. рд╕рд┐рд╕реНрдЯрдо рдЯреВрд▓реНрд╕> рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрдЧреНрд░реЗрдб рдЯреИрдм рдкрд░, рдкрд╣рд▓реЗ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдлрд░реНрдорд╡реЗрдпрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, "рдЕрдкрдЧреНрд░реЗрдб" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдбрд╛рдЙрдирд▓реЛрдб рдЗрдВрдбрд┐рдХреЗрдЯрд░ рджреЛ рдмрд╛рд░ 100% рддрдХ рди рдкрд╣реБрдВрдЪ рдЬрд╛рдПред
  4. рдЪреВрдВрдХрд┐ OpenWRT рдиреЗрдЯрд╡рд░реНрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЯреАрдкреА-рд▓рд┐рдВрдХ рд╡рд╛рд▓реЗ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдИрдерд░рдиреЗрдЯ рдХреЗрдмрд▓ рдХреЛ рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдФрд░ рдкреБрди: рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реИред
  5. рд╣рдо рдЯреЗрд▓рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рдЙрдЯрд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ (192.168.1.1 - рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рддрд╛рдЬрд╝рд╛" рдУрдкрдирдбрдмреНрд▓реНрдпреВрдЖрд░рдЯреА рдХрд╛ рдкрддрд╛) рдФрд░ рдкрд╛рд╕рд╡рд╛рд░реНрдб рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВ - рдЕрдм рд░рд╛рдЙрдЯрд░ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИ (рдФрд░ рдЯреЗрд▓рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рдирд╣реАрдВ рд╣реИ)ред


рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
192.168.1.x рдЦрдВрдб рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ IP рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдВ:
uci set network.lan.proto=static uci set network.lan.ipaddr=192.168.1.222 uci set network.lan.netmask=255.255.255.0 uci set network.lan.gateway=192.168.1.1 uci set network.lan.dns=8.8.8.8 uci changes uci commit /etc/init.d/network restart 

рдЬрд╣рд╛рдВ 192.168.1.1 рд╣рдорд╛рд░реЗ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдХрд╛ рдкрддрд╛ рд╣реИ, рдФрд░ 192.168.1.222 рдмрд┐рдирд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рдЖрдИрдкреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдорд╛рд░реЗ рдмреЙрдХреНрд╕ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ред рдпреВрд╕реАрдЖрдИ рдкрд░рд┐рд╡рд░реНрддрди рдХрдорд╛рдВрдб рд╕рднреА рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд╛рд▓рд╛ рдЙрдкрдХрд░рдг, рдмрд╛рд╣рд░ рд╕реЗ рджреБрд░реНрдЧрдо рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдПрдХ "рдЬрд╝реЛрдВрдмреА" рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рд╕рднреА рд╕рдорд╛рди рдкрд░реЗрд╢рд╛рдиреА рд╣реБрдИ, рддреЛ OpenWRT рдПрдХ "рд░рд┐рдХрд╡рд░реА рдореЛрдб" рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдЬреИрд╕реЗ рд╣реА WPS рдмрдЯрди рдлреНрд▓реИрд╢ рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рджрдмрд╛рдП рд░рдЦреЗрдВ - MR3020 рдиреЗрдЯрд╡рд░реНрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдмреВрдЯ рд╣реЛрдЧрд╛ред
рдпрджрд┐ рдиреЗрдЯрд╡рд░реНрдХ DHCP рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 uci set network.lan.proto=dhcp uci set network.lan.hostname=etherelay uci commit /etc/init.d/network restart 

рджреВрд╕рд░реА рдкрдВрдХреНрддрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рд╡рд╛рдЗрд╕ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рдж рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдИрдкреА тАЛтАЛрджреНрд╡рд╛рд░рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣реЛрд╕реНрдЯрдирд╛рдо рджреНрд╡рд╛рд░рд╛, рдпрджрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ 100% рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЦреЛрдЬ рд╕реЗ рдмрдЪреЗрдВ, рддреЛ рдПрдХ рд╕реНрдерд┐рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдпрд╣ рд╣рдорд╛рд░реЗ TP-LINK рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд dhcp рд╕рд░реНрд╡рд░ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЙрдкрдпреЛрдЧреА рд╣реИ:
 uci set dhcp.lan.ignore=1 uci commit /etc/init.d/dnsmasq restart 

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

рдХреАрдмреЛрд░реНрдб рдХрдиреЗрдХреНрд╢рди рдФрд░ рдПрд▓рдИрдбреА рдирд┐рдпрдВрддреНрд░рдг рдкрд░реАрдХреНрд╖рдг

H-WRT рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреАрдмреЛрд░реНрдб рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ kmod-usb-hid рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
 opkg update opkg install kmod-usb-hid 

рдпрд╣ рдХреАрдмреЛрд░реНрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИ:
 root@OpenWrt:~# dmesg | tail [ 66.380000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 68.780000] hub 1-0:1.0: connect-debounce failed, port 1 disabled [ 71.180000] hub 1-0:1.0: connect-debounce failed, port 1 disabled root@OpenWrt:~# 

рдХреНрд╖рдорд╛! рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереАред рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ?
рдПрдХ рд╕рдорд╛рди рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдЬрд▓реНрджреА рдорд┐рд▓ рдЬрд╛рддреА рд╣реИ - рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдЪрд┐рдкрд╕реЗрдЯ рдХреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реАрдорд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдСрди-рдмреЛрд░реНрдб USB рд╣рдм рдХрдо рдЧрддрд┐ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкрдХреНрд╖ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рд╕рдордп рдЬрд╝реЗрди рдЖрддреНрдорд╛ рдПрдХ рдЯреНрд░реЗрд╕ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╖реНрдкрд┐рдд рд╣реЛ рдЧрдпрд╛ - рд╣рдо рдПрдХ рдмрд╛рд╣рд░реА рдпреВрдПрд╕рдмреА рд╣рдм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреАрдмреЛрд░реНрдб рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ:
 root@OpenWrt:~# dmesg | tail [ 143.120000] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 143.270000] hub 1-1:1.0: USB hub found [ 143.270000] hub 1-1:1.0: 4 ports detected [ 143.580000] usb 1-1.2: new low-speed USB device number 3 using ehci-platform [ 143.730000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.0/input/input0 [ 143.730000] generic-usb 0003:040B:2000.0001: input: USB HID v1.10 Keyboard [Generic USB Keyboard] on usb-ehci-platform-1.2/input0 [ 143.770000] input: Generic USB Keyboard as /devices/platform/ehci-platform/usb1/1-1/1-1.2/1-1.2:1.1/input/input1 [ 143.780000] generic-usb 0003:040B:2000.0002: input: USB HID v1.10 Mouse [Generic USB Keyboard] on usb-ehci-platform-1.2/input1 root@OpenWrt 

рдмрд╣реБрдд рдмреЗрд╣рддрд░ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдореБрдЭреЗ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ "рд▓рдЧрднрдЧ рдХрд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛" рдФрд░ рдлреЛрдЯреЛ рдореЗрдВ "рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛" рд▓рд┐рдЦрдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ "рдЬреЗрдиреЗрд░рд┐рдХ рдпреВрдПрд╕рдмреА рдХреАрдмреЛрд░реНрдб" рдХреЛ рдорд╛рдиреНрдпрддрд╛ рджреА рдЧрдИ рдереАред рджреЛ "рдбрд┐рд╡рд╛рдЗрд╕" рд╣рдореЗрд╢рд╛ рдХреАрдмреЛрд░реНрдб рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдирд╣реАрдВ рдкреВрдЫрддреЗ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдХреАрдмреЛрд░реНрдб рдХреЛ рдорд╛рдЙрд╕ рдХреНрдпреЛрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ... рд╡реИрд╕реЗ рднреА, рд╣рдо "рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдХреЗ рд▓рд┐рдП рдПрд▓рдИрдбреА рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
 cat /dev/input/event0 > /dev/null & printf "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00\x01\x00\x00\x00\x01" > /dev/input/event0 

рдХреИрдкреНрд╕ рд▓реЙрдХ рдПрд▓рдИрдбреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╣рд╛рдВ рдЬрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬреЛ рд▓реЛрдЧ рдХреЗрд╡рд▓ рдЗрд╕ рддрдереНрдп рд╕реЗ рдЦреБрд╢ рд╣реИрдВ рд╡реЗ рдЕрдЧрд▓реЗ рдХрджрдо рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓реБрдХ рдореЗрдВ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рднреНрд░рдо рд╣реИ
рдЕрд░рд╛рдЬрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:
рдХреАрдмреЛрд░реНрдб (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕) рдХреЗ рд╕рд╛рде рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ / dev / input / event0 рдореЗрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИрдВ)ред рдИрд╡реЗрдВрдЯ рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ input.h рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИ:
  struct input_event { struct timeval time; __u16 type; __u16 code; __s32 value; }; 

рдЬрд╣рд╛рдВ рдкреНрд░рдХрд╛рд░ рдЗрдирдкреБрдЯ рддрддреНрд╡ (рдХреАрдмреЛрд░реНрдб рдмрдЯрди рдпрд╛ рдорд╛рдЙрд╕ / рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдореВрд╡рдореЗрдВрдЯ, рдЖрджрд┐) рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдХреЛрдб рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрддреНрд╡ рдХреЛрдб рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдИрд╡реАрдХреЗрдХреЗрдИ рдХреАрдмреЛрд░реНрдб рдЗрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдХреБрдВрдЬреА рдирдВрдмрд░ рдпрд╣рд╛рдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛), рдФрд░ рдореВрд▓реНрдп рдХреНрд░рдорд╢рдГ рд╣реИред рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡ рдФрд░ рдХреНрдпрд╛ рдкрд░рд┐рдорд╛рдг (рдпрд╣ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдХреАрдмреЛрд░реНрдб рдкрд░ Q рдХреБрдВрдЬреА рджрдмрд╛рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ:
 root@OpenWrt:~# cat /dev/input/event0 | hexdump 0000000 505b 0ed9 0009 6bdd 0004 0004 0007 0014 0000010 505b 0ed9 0009 6be6 0001 0010 0000 0001 0000020 505b 0ed9 0009 6bec 0000 0000 0000 0000 0000030 505b 0ed9 000a 2756 0004 0004 0007 0014 0000040 505b 0ed9 000a 275e 0001 0010 0000 0000 0000050 505b 0ed9 000a 2762 0000 0000 0000 0000 

рдЬрд╣рд╛рдВ рдкрд╣рд▓реЗ 8 рдмрд╛рдЗрдЯреНрд╕ (505b 0ed9 000 * ****) рдЗрд╡реЗрдВрдЯ рдХрд╛ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ, рдЕрдЧрд▓реЗ рджреЛ рдмрд╛рдЗрдЯреНрд╕ (0001) рдИрд╡реЗрдВрдЯ (EV_KEY) рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдлрд┐рд░ рдХреБрдВрдЬреА рдирдВрдмрд░ (0010) рдХреЗ рджреЛ рдмрд╛рдЗрдЯреНрд╕, рдЬреЛ рдЕрд▓реНрдлрд╝рд╛рдиреНрдпреВрдореЗрд░рд┐рдХ рдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╕реНрдХреИрди рдХреЛрдб рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрддреЗ рд╣реИрдВ рд╕реЗрдЯ рез рдореЗрдВред рдХрд┐рд╕реА рднреА рддрд░рд╣, "рдкрдВрдк" рдХреАрдЬ рдХреЛ рджрдмрд╛рдХрд░ рдЬреИрд╕реЗ рд╡реЙрд▓реНрдпреВрдо рдХрдВрдЯреНрд░реЛрд▓, рдкреНрд▓реЗрдмреИрдХ рдХрдВрдЯреНрд░реЛрд▓ рдЖрджрд┐ред рдХреАрдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рджреВрд╕рд░реЗ рд╣реИрдВрдбрд▓рд░ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ / рджреЗрд╡ / рдЗрдирдкреБрдЯ / рдЗрд╡реЗрдВрдЯ 1 рдореЗрдВ) рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛ред рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рдСрдЯреЛ-рд░рд┐рдкреАрдЯ рдЗрд╡реЗрдВрдЯ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╛рдж рд░рдЦреЗрдВ, рдореИрдВрдиреЗ рдЗрдирдкреБрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рдХреА "рдмреЛрдирд╕" рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛? рдЕрдВрддрд┐рдо 4 рдмрд╛рдЗрдЯреНрд╕ (0000 0001 рдпрд╛ 0000 0000) рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд░рдорд╢рдГ рдПрдХ рдкреНрд░реЗрд╕ рдпрд╛ рд░рд┐рд▓реАрдЬ рд╣реБрдИ рд╣реИред рд╢реВрдиреНрдп рд╕реЗ рдорд┐рд▓рдХрд░ рдкреИрдХреЗрдЯ рдИрд╡реА_рдПрд╕рд╡рд╛рдИрдПрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдкреГрдердХреНрдХрд░рдг рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЯрд╛рдЗрдк 4 рдХреЗ рд╕рд╛рде рдШрдЯрдирд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдкреНрд░рдХрд╛рд░ рдФрд░ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рдПрдХ рд╣реА input.h рдореЗрдВ рджреА рдЧрдИ рд╣реИрдВ, рдФрд░ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рдлрд┐рд░ рдорд╕реНрддреА рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдпрджреНрдпрдкрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдкрд░ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреБрдЫ рдШрдЯрдирд╛рдПрдВ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдпрд╣ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреЙрдпрд╕реНрдЯрд┐рдХ рдпрд╛ рдлрд┐рд░ (рдЯрд╛-рдбреИрдо!) рдПрд▓рдИрдбреАред рдЕрд░реНрдерд╛рддреН, EV_LED, LED_CAPSL рдХреЛрдб рдФрд░ 1 рд╕реЗ / dev / рдЗрд╡реЗрдВрдЯ / рдЗрдирдкреБрдЯ 0 рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рдШрдЯрдирд╛ рд▓рд┐рдЦрддреЗ рд╣реБрдП, рд╣рдо рдХреАрдмреЛрд░реНрдб рдХреЛ рдХреИрдкреНрд╕ рд▓реЙрдХ рдПрд▓рдИрдбреА рдХреЛ рд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХрд░реЗрдВрдЧреЗред рдмреНрд░реИрдб Hards, рд▓рд┐рдирдХреНрд╕ USB рдЗрдирдкреБрдЯ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЗрдирдкреБрдЯ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ (рдкрд╣рд▓реЗ рд▓реЗрдЦ рд╕реЗ рдЬрд╛рд░реА рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрд▓рдИрдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде), рдЖрдкрдХреЛ рдЗрдирдкреБрдЯ рдбрд┐рд╡рд╛рдЗрд╕, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпреВрдПрд╕рдмреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдлреА рдХреБрдЫ рдмрддрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рджрдпрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рдкрд╛рдпрд╛, рдЬрдм рд╕рдорд╕реНрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИ рдереАред рд╡реИрд╕реЗ, рдореИрдВ рдмрд╣реБрдд рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдерд╛ - рдирд╡реАрдирддрдо рд╕реНрдиреИрдкрд╢реЙрдЯреНрд╕, рд╕рд╛рде рд╣реА рдмреАрдЯрд╛ 12.09, рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ , рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рд▓рдЧрд╛рддрд╛рд░ рдирд╣реАрдВ рдкрдврд╝реА рдЬрд╛рдиреЗ рдкрд░ рдИрд╡реЗрдВрдЯ рднреЗрдЬрдирд╛ рдЕрд╕реНрдерд┐рд░ рд╣реИред рдпрд╣реА рдЯреАрдо рдХреЗ рд▓рд┐рдП рд╣реИ
 cat /dev/input/event0 > /dev/null & 
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ r31214 рдлрд░реНрдорд╡реЗрдпрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдРрд╕реА рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдирд╣реАрдВ рдереАрдВ, рдЗрд╕рд▓рд┐рдП рдПрд▓рдИрдбреА рддреБрд░рдВрдд рдЪрд╛рд▓реВ рд╣реЛ рдЧрдИ - рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛, рддреЛ рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣рд╛ рд╣реЛрддрд╛ред

рд▓рд┐рдкрд┐

рдПрд▓ рдИ рдбреА рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ HTTP рдкрд░ рдЙрдиреНрд╣реЗрдВ рдлреНрд▓реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рддреБрд░рдВрдд рдЗрд╕реЗ / www / cgi-bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛:
 cd /www mkdir cgi-bin cd cgi-bin wget http://etherelay.googlecode.com/files/ctlrelay chmod +x ctlrelay 

рдЗрд╕рдХрд╛ рдкрд╛рда рдФрд░ рд╡рд┐рд╡рд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
 #!/bin/sh KB_LEDS=/dev/input/event0 EV_LED="\x00\x11" LED_NUML="\x00\x00" LED_CAPSL="\x00\x01" LED_SCROLLL="\x00\x02" TURN_ON="\x00\x00\x00\x01" TURN_OFF="\x00\x00\x00\x00" DT_DUMMY="\x00\x00\x00\x00\x00\x00\x00\x00" # 16-       NUM_ON=$DT_DUMMY$EV_LED$LED_NUML$TURN_ON NUM_OFF=$DT_DUMMY$EV_LED$LED_NUML$TURN_OFF CAPS_ON=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_ON CAPS_OFF=$DT_DUMMY$EV_LED$LED_CAPSL$TURN_OFF SCROLL_ON=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_ON SCROLL_OFF=$DT_DUMMY$EV_LED$LED_SCROLLL$TURN_OFF #"",        if ! ps | grep -qe "[c]at $KB_LEDS"; then cat $KB_LEDS > /dev/null & fi #   "" command GET- #   -      if [ -z "$QUERY_STRING" ]; then COMMAND=$1; else COMMAND=`echo "$QUERY_STRING" | sed -n 's/^.*command=\([^&]*\).*$/\1/p'` printf "Content-type: text/plain\r\n\r\n" fi #     case $COMMAND in num_on) printf $NUM_ON > $KB_LEDS;; num_off) printf $NUM_OFF > $KB_LEDS;; caps_on) printf caps_on > /var/rrr printf $CAPS_ON > $KB_LEDS;; caps_off) printf caps_off > /var/rrr printf $CAPS_OFF > $KB_LEDS;; scroll_on) printf $SCROLL_ON > $KB_LEDS;; scroll_off) printf $SCROLL_OFF > $KB_LEDS;; num_pulse) printf $NUM_ON > $KB_LEDS sleep 1 printf $NUM_OFF > $KB_LEDS ;; caps_pulse) printf $CAPS_ON > $KB_LEDS sleep 1 printf $CAPS_OFF > $KB_LEDS ;; scroll_pulse) printf $SCROLL_ON > $KB_LEDS sleep 1 printf $SCROLL_OFF > $KB_LEDS ;; *) WRONG_ARG=1;; esac #       if [ -z $WRONG_ARG ] then STATE_FILE=/var/ledstate DEFAULT_STATE={\"num\":false,\"caps\":false,\"scroll\":false} if ! [ -e $STATE_FILE ]; then echo $DEFAULT_STATE > $STATE_FILE; fi AFFECTED_LED=`echo $COMMAND | sed -r -e 's/_[az]+$//'` NEW_STATE=`echo $COMMAND | sed -r -e 's/^[az]+_//' -e 's/on/true/' -e 's/off|pulse/false/'` sed -i -r 's/"'"$AFFECTED_LED"'":[az]+/"'"$AFFECTED_LED"'":'"$NEW_STATE"'/' $STATE_FILE fi 

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛ рд╣реИ рдХрд┐ рдХреЙрдиреНрд╕реНрдЯреЗрдВрдЯреНрд╕ EV_LED, LED_NUML, LED_CAPSL, LED_SCROLLL, рдЗрдирдкреБрдЯ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред рд╕рдордп рд╣рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рд╣рдо рдЗрд╕реЗ рд╢реВрдиреНрдп рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдмреЗрд╢рдХ, рдХреЛрдб рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдкреНрд░рд╛рдкреНрдд рдХрдорд╛рдВрдб рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдордХреНрдЦреА рдкрд░ "рдИрд╡реЗрдВрдЯ" рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ рд╕реНрд╡рд┐рдЪ рдореЗрдВ рдкреНрд░реА-рдкреЙрдкреБрд▓реЗрдЯреЗрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдерд╛ред рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрд╕реЗ рд▓рд┐рдЦрддреЗ рд╕рдордп рдИрд╡реЗрдВрдЯ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдХреБрдЦреНрдпрд╛рдд рдмреИрд╕рд╛рдЦреА рдЖрдИред рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ, рдпрд╣ рдкрд╣рд▓реЗ рдХреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛, рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХреА рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдВрддрд┐рдо рдЯреБрдХрдбрд╝рд╛ рдПрд▓ рдИ рдбреА рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрддреА рд╣реИ:
  {"рд╕рдВрдЦреНрдпрд╛": рд╕рдЪ, "рдХреИрдк": рдЧрд▓рдд, "рд╕реНрдХреНрд░реЙрд▓": рдЧрд▓рдд} 
рдпрджрд┐ рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕рднреА рдЧрд▓рдд рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред OpenWRT рдореЗрдВ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / var / RAM рдореЗрдВ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬрдм рд╕рднреА рдПрд▓рдИрдбреА рдмрдВрдж рд╣реИрдВред рдЖрд░рд╛рдорджрд╛рдпрдХ рдЫреЛрдЯреА рдпреЛрдЬрдирд╛! рдореИрдВрдиреЗ рд╢рд╛рдпрдж рдпрд╣рд╛рдБ HTTP рдЕрдиреБрд░реЛрдз рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдкрдврд╝рд╛ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рдерд╛ рдФрд░ рд▓рд┐рдВрдХ рдХреЛ рдирд╣реАрдВ рд╕рд╣реЗрдЬрд╛ рдерд╛, рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐, рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╣рд╛рдБ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИ)ред рдпрджрд┐ рд╕реАрдЬреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ "рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдкрд╛рда / рд╕рд╛рджрд╛" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдХреНрд╡реЗрд░реА рдХрд╛ рдкрд░рд┐рдгрд╛рдо 502 (рдЦрд░рд╛рдм рдЧреЗрдЯрд╡реЗ) рд╣реЛрдЧрд╛, рди рдХрд┐ 200 (рдареАрдХ), рдЬреЛ рдШрд╛рддрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрджрд╕реВрд░рдд рд╣реИред

рдЕрдм рдПрд▓рдИрдбреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рд╕реНрдХреНрд░реЙрд▓ рд▓реЙрдХ" рдПрд▓рдИрдбреА рдХреЛ рдХрд╣реЗрдВ, рд▓рд┐рдЦреЗрдВ:
 ./ctlrelay scroll_on 

рдмрдВрдж рдХрд░реЗрдВ:
 ./ctlrelay scroll_off 

рдЖрдк рдкрд▓рдХ (рд╕реНрдХреНрд░реЙрд▓_рдкреБрд▓) рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рд╕рдореНрдорд╛рдирд┐рдд рдЕрдирдВрдд рдЕрдЧреНрд░рд╡рд╛рд▓ рдкрд╣рд▓реЗ рд╣реА рдпрд╣рд╛рдБ рдХрдИ рд▓реЛрдЧреЛрдВ рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ: тАЬрдореИрдВ рдпрд╣ рд╕рдм рджрд┐рди рдХрд░ рд╕рдХрддрд╛ рдерд╛ред рдпрд╣ рдмрд╣реБрдд рдордЬреЗрджрд╛рд░ рд╣реИ! рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЪрд▓реЛ рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ рдмрдирд╛рддреЗ рд╣реИрдВ ...

рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕

рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рдмрд┐рдирд╛ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреНрдпрд╛ рд╣реИ? рдЗрд╕рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
 opkg status uhttpd 

рдпрджрд┐ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд▓рд╛рдЗрди рдХреА рд╕реНрдерд┐рддрд┐ рд╣реИ: рд╕реНрдерд╛рдкрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдФрд░ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдПрдЯрд┐рдЯреНрдпреВрдб рдПрдбрдЬрд╕реНрдЯрдореЗрдВрдЯ 12.09 рдмреАрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рддреЛ рд╕рд░реНрд╡рд░ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
 opkg update opkg install uhttpd /etc/init.d/uhttpd enable /etc/init.d/uhttpd start 

рдЕрдЧрд▓рд╛ рд╣рдореЗрдВ рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдЪрд╛рд╣рд┐рдП:
 <!DOCTYPE html> <html> <head> <title>Relay control</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript"> function command(action) { url="/cgi-bin/ctlrelay?command="+action; url=url+"&fuie=" + Math.random(); var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET",url,false); xmlhttp.send(); } function get_status() { var xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { ledstate = JSON.parse(xmlhttp.responseText) for (led in ledstate) { document.getElementById(led).checked=ledstate[led] } } } xmlhttp.open("GET","/ledstate?fuie="+ Math.random(),false); xmlhttp.send(); setTimeout("get_status()",500); } </script> </head> <body onload="get_status()"> <div class="controls"> <div class="control"> <label for="scroll">Scroll Lock LED</label> <input id="scroll" type="checkbox" onclick="if (this.checked) command ('scroll_on'); else command ('scroll_off')"> </div> <div class="control"> <label for="caps">Caps Lock LED</label> <input id="caps" type="checkbox" onclick="if (this.checked) command ('caps_on'); else command ('caps_off')"> </div> <div class="control"> <label for="num">Num Lock LED</label> <button id="num" type="button" onclick="command('num_pulse')">1s blink</button> </div> </div> </body> </html> 

рдкрд╣рд▓реЗ рддреЛ рдореИрдВ JQuery.get () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рддрдм рдореБрдЭреЗ рд╕рд┐рд░реНрдл GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд▓рд┐рдП JQuery рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд▓рдЧрд╛ред рд╣рдорд╛рд░реЗ рджреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдп рд╣реИрдВред рдкрд╣рд▓рд╛, рдХрдорд╛рдВрдб (рдПрдХреНрд╢рди) , рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИ, рдЬреЛ GET рдЕрдиреБрд░реЛрдз рдХреЗ "рдХрдорд╛рдВрдб" рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ "рдХрдорд╛рдВрдб" рдХреЛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреА рдСрдиреНрдХрд▓рд┐рдХ рдШрдЯрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рд╕рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рд╣реА рд╕реБрдВрджрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рд╕рдВрджреЗрд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдлрд╝рдВрдХреНрд╢рди, get_status () рдХреЛ рдСрдирд▓реЛрдб рдИрд╡реЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдПрд▓рдИрдб рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ (рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдПрдХ) рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреЗрдЬ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдВрдпреЛрдЧ рд╕реЗ, рд░рд╛рдЬреНрдп рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╕рд╛рд╣рдЪрд░реНрдп рд╕рд░рдгреА рдХрд╛ JSON рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ, рдФрд░ рд╣рдо рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ JSON.parse () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдиреБрд░реЛрдз рдХреЛ рд╣рд░ рдЖрдзреЗ рд╕реЗрдХрдВрдб рдореЗрдВ рджреЛрд╣рд░рд╛рдиреЗ рд╕реЗ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХрд┐рдП рдЧрдП рд░рд╛рдЬреНрдп рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Url fuie = Math.random () рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддрд╛рдХрд┐ рдкрддрд╛ рд╣рд░ рдмрд╛рд░ рдЕрджреНрд╡рд┐рддреАрдп рд╣реЛ - рдлрд┐рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрд╢ рдореЗрдВ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЪрд░ рдХреЗ рдирд╛рдо рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИред

рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ - рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╕рд░реНрд╡рд░ рдкрд░ / var рдлрд╝реЛрд▓реНрдбрд░ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рд╕реАрдорд╕реНрдЯрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдкрд╣реБрдВрдЪ" рдЬрд╣рд╛рдВ рд╕реЗ рд▓реАрдбрд╕реНрдЯреНрд░реЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдВрдЧреЗ:
 ln -s /var/ledstate /www/ledstate 

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

рдпреЛрдЬрдирд╛

рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреАрдмреЛрд░реНрдб рдХреЛ рдЕрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреЛрд░реНрдб рдХреЛ рдЙрд╕рдореЗрдВ рд╕реЗ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд (рдмрд╣реБрдд рд╕рд░рд▓реАрдХреГрдд) рдореЙрдбрд▓ (рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП) рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХреАрдмреЛрд░реНрдб рдПрд▓ рдИ рдбреА рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╕рд░реНрдХрд┐рдЯ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВрдЧреЗ:
рдХреАрдмреЛрд░реНрдб рдПрд▓рдИрдбреА рд╡рд╛рдпрд░рд┐рдВрдЧ рдЖрд░реЗрдЦ
рдЖрд░реЗрдЦ 1. рдХреАрдмреЛрд░реНрдб рдПрд▓рдИрдбреА рдЪрд╛рд▓реВ рдХрд░рдирд╛
"рдХрдЪрд░рд╛" рдЦрдВрдб рд╕реЗ рддреАрди рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП "рдХреНрд▓реЗрд╡реНрд╕" рдореЗрдВ рдПрд▓рдЗрдбреА рдХрд╛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реА рд╕рдорд╛рд╡реЗрд╢ рдерд╛, рдХреЗрд╡рд▓ рдЙрдирдХреА рдзрд╛рд░рд╛рдПрдВ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИрдВ - рдЖрдорддреМрд░ рдкрд░ рд▓рдЧрднрдЧ 18mA, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА 3mAред рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдиреНрдп рдпреЛрдЬрдирд╛рдПрдВ рд╕рдВрднрд╡ рд╣реИрдВред
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рдЫреЛрдЯреЗ рдЙрдкрдХрд░рдг рдФрд░ рдХрд┐рд╕реА рднреА рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд░рд┐рдореЛрдЯ "рд░реАрд╕реЗрдЯ" (рдЕрдиреНрдп рдмрдЯрди / рддрд░реНрдХ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг) рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдСрдкреНрдЯреЛрдХреЙрдкрд▓рд░ рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
Optocoupler рддрд░реНрдХ рд╕реНрддрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреАрдмреЛрд░реНрдб рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ
рдпреЛрдЬрдирд╛ 2. рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рд╕рдВрдХреЗрдд рдХрд╛ рдЧрдарди
рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдкрд╛рд╡рд░ рдХреЗ рд╕рд╛рде рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдареЛрд╕-рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рд▓реЗрддреЗ рд╣реИрдВ:
рдХреАрдмреЛрд░реНрдб рдПрд▓рдИрдбреА рдХреЗ рдмрдЬрд╛рдп рдареЛрд╕ рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рд╕рд░реНрдХрд┐рдЯ
рдЖрд░реЗрдЦ 3. рдареЛрд╕ рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рдирд┐рдпрдВрддреНрд░рдг
170 рд░реВрдмрд▓ рдХреА рдХреАрдордд рдХреЗ рдХрд╛рд░рдг рдореИрдВрдиреЗ рдШрд░реЗрд▓реВ рд░рд┐рд▓реЗ K293KP13P рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЬрд┐рд╕ рд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЙрд╕рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдХрд░рдВрдЯ 1A рд╣реИред рдирд┐рдпрдВрддреНрд░рдг рдПрд▓рдИрдбреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд╛рд▓реВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП (рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЗрд╕реЗ I F рдорд┐рдирдЯ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдпрджрд┐ рдХреАрдмреЛрд░реНрдб рдмреЛрд░реНрдб рдХрдо рдХрд░рдВрдЯ рджреЗрддрд╛ рд╣реИ (рдПрд▓рдИрдбреА рдХреЗ рдПрдХ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрд▓рдЧ рдХрд░реЗрдВ рдФрд░ рдЕрдВрддрд░ рдореЗрдВ рдХрд░рдВрдЯ рдХреЛ рдорд╛рдкреЗрдВ), рддреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд╕реНрд╡рд┐рдЪ рдХрд╛рдо рдХрд░реЗрдЧрд╛:
рдПрдХ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд╕реНрд╡рд┐рдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдареЛрд╕-рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рдХрд╛ рд╕рдорд╛рд╡реЗрд╢ред
рдпреЛрдЬрдирд╛ 4. рдПрдХ рдХреБрдВрдЬреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдареЛрд╕ рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рдХрд╛ рдХрдиреЗрдХреНрд╢рди
рдпрджрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рдпрд╛ "рд╢рд╛рд╕реНрддреНрд░реАрдп" рд╡рд┐рджреНрдпреБрдд рд░рд┐рд▓реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдареЛрд╕ рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╣ рдмрдЪрд╛рдПрдЧрд╛:
рд░рд┐рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдХреАрдмреЛрд░реНрдб рдХреЗ рдмрдЬрд╛рдп рдПрд▓рдИрдбреА
рд╕реНрдХреАрдо 5. рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдХреЗрдорд┐рдХрд▓ рд░рд┐рд▓реЗ рдХрдВрдЯреНрд░реЛрд▓
рдПрдХ рдареЛрд╕ рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рдХрд╛рдлреА рдорд╣рдВрдЧрд╛ рд╣реИ, рдФрд░ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реИред рдПрдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд░рд┐рд▓реЗ рдЕрдзрд┐рдХ "рдПрдореНрдкрд░реЗрдЬ рдкреНрд░рддрд┐ рд░реВрдмрд▓" рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рдХрдорд┐рдпрд╛рдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдЪрд╛рд▓реВ рд░рд╛рдЬреНрдп рдореЗрдВ рдмрдбрд╝реА рдЦрдкрдд рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╕рд╛рде рдПрдХ рд╣реА рдореЙрдбрд▓ рдХреЗ рддреАрди рд░рд┐рд▓реЗ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдЖрд░реЗрдЦ рдореЗрдВ, рдпреВрдПрд╕рдмреА рд╕реЗ рд▓реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЦрдкрдд рд▓рдЧрднрдЧ 300 рдПрдордП рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдкреЛрд░реНрдЯ рдХреЛ рдЗрддрдирд╛ "рджреВрдз" рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдПрдорд┐рдЯрд░ рд╕реЗ рди рдЬреЛрдбрд╝реЗрдВ (рдЖрд░реЗрдЦ рдореЗрдВ рдзрд░рд╛рд╢рд╛рдпреА), рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рд╕реНрд░реЛрдд рд╕реЗред
рдпреЛрдЬрдирд╛рдПрдВ 4 рдФрд░ 5, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЙрди рдХреАрдмреЛрд░реНрдб рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрд▓рдИрдбреА рдХреЛ "рд╕рд╛рдорд╛рдиреНрдп рдПрдиреЛрдб" (рдПрдиреЛрдб рдбрд╛рдпреЛрдб рдФрд░ рдмреЛрд░реНрдб рдХреЗ "рдкреНрд▓рд╕" рдХреЗ рдмреАрдЪ рдкреНрд░рддрд┐рд░реЛрдз рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд┐рд▓реНрдХреБрд▓ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ 0 рдУрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдЗрд╕рд╕реЗ рдкрд░реЗрд╢рд╛рди рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдХреБрдВрдЬреА рдХреЗ рдмрдЬрд╛рдп рдХрдо-рд╢рдХреНрддрд┐ рд╡рд╛рд▓реЗ рдСрдкреНрдЯрд┐рдХрд▓ рд░рд┐рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдПрд▓рдИрдбреА рдХреЗ рдмрдЬрд╛рдп рдЪрд╛рд▓реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ 5 рд╕реЗ 25 рдПрдордП рдкреНрд░рддрд┐ рдПрд▓рдИрдбреА рдХреЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ 99% рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд▓реЗ рд╕рднреА рдХреАрдмреЛрд░реНрдб рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ 60 рд╡реА рддрдХ рд╡реЛрд▓реНрдЯреЗрдЬ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдФрд░ 300 рдПрдордП рддрдХ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рддреЛ рдЖрдк рд░рд┐рд▓реЗ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реАрдзреЗ рдСрдкреНрдЯреЛ-рд░рд┐рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд░рд┐рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рдХреАрдмреЛрд░реНрдб рдХреЗ рдмрдЬрд╛рдп рдПрд▓рдИрдбреА
рдпреЛрдЬрдирд╛ 6. рдПрдХ рдСрдкреНрдЯреЛ-рд░рд┐рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рджреНрдпреБрдд рд░рд┐рд▓реЗ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг
рдпреЛрдЬрдирд╛ рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХрдИ рд╕рд░рд▓реАрдХрд░рдг рд╣реИрдВ:
рд╕рд░реНрдХрд┐рдЯ рдореЗрдВ рдлреНрдпреВрдЬ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рд╕рд░реНрдХрд┐рдЯ 5 рдореЗрдВ рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд▓рдЧрднрдЧ рдЕрдзрд┐рдХрддрдо рдХрд▓реЗрдХреНрдЯрд░ рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ - рдпрд╣ рдПрдХ рдЫреЛрдЯреА рдпрд╛рддреНрд░рд╛ рдХреА рд╡рд░реНрддрдорд╛рди, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЯреНрд░рд╛рдВрдЬрд┐рд╕реНрдЯрд░ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИред рдареЛрд╕-рд░рд╛рдЬреНрдп рд░рд┐рд▓реЗ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рдЖрдкрдХреЛ рдореЛрдЯрд░ рдпрд╛ рдЕрдиреНрдп рдЖрдЧрдордирд╛рддреНрдордХ рднрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдПрдХ рднрд┐рдЧреЛрдирд╛ рдЖрд░рд╕реА-рд╕рд░реНрдХрд┐рдЯ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рдШрдЯрдХреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдореЗрд░реЗ рд▓рд┐рдП рдирд┐рдХрдЯрддрдо (рдореЗрд░реЗ рд▓рд┐рдП) рдЙрдкрд▓рдмреНрдзрддрд╛ рдФрд░ рдореВрд▓реНрдп рдХреА рдХрд╕реМрдЯреА рджреНрд╡рд╛рд░рд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛ред рдорд╣рдВрдЧреЗ рд░реЗрдбрд┐рдпреЛ рд╕реНрдЯреЛрд░ - рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХреНрд░реЗрддрд╛ рд╕реЗ " рдПрдл " рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рде рд╡рд╛рдВрдЫрд┐рдд рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП "рдареЛрд╕ рд╢рд░реАрд░" рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рд╢реНрди рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╕реНрддреБрдд рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдореЙрдбрд▓ рдЧрд▓рдд рд╣реИ: рдХреАрдмреЛрд░реНрдб рдмреЛрд░реНрдб рд╡рд░реНрддрдорд╛рди рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ "рдПрд▓рдИрдбреА" рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреЗрд╡рд▓ 2.5 рд╡реА рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рд╡реЛрд▓реНрдЯреЗрдЬ рдкрд░ рдПрдиреЛрдб рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ - рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдмрджрд▓реЗ рд╣реБрдП рдПрд▓рдИрдбреА рдХреЗ рд╕рдорд╛рди рд╡реЛрд▓реНрдЯреЗрдЬ рдбреНрд░реЙрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП; рдмреЛрд░реНрдб "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛"ред
рдХреНрдпрд╛ рд╣рдореЗрд╢рд╛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдореМрд▓рд┐рдХ рд╡рд┐рджреНрдпреБрдд рд╕реБрд░рдХреНрд╖рд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдЬреЛ рд╕рдВрднрд╡рддрдГ рддрд╛рд░реЛрдВ рдкрд░ рдХрд╣реАрдВ рд▓рдЯрдХрд╛ рд╣реЛрдЧрд╛ рдпрд╛ рднреВрд▓ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдореЗрдЬ рдкрд░ рдХрдмрд╛рдбрд╝ рдХреЛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЕрдЧрд░ рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддреЛ рдЧрд▓рддреА рд╕реЗ рдЬреАрд╡рд┐рдд рднрд╛рдЧреЛрдВ рдХреЛ рдЫреВрдиреЗ рд╕реЗ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдпрдерд╛, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рджреНрдпреБрдд рдкреНрд░рд╡рд╛рд╣ рдЖрдкрдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╣ рд╕рдХрддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдмреНрд░реЗрдбрдмреЛрд░реНрдб рдкрд░ рд╡рд┐рдХрд▓реНрдк 3 рдФрд░ 6 рдПрдХрддреНрд░ рдХрд┐рдП, рдпрд╣ рдЗрд╕ рддрд░рд╣ рдирд┐рдХрд▓рд╛:

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

рдкреНрд░рд╕рд╛рдзрди рд╕рд╛рдордЧреНрд░реА рдФрд░ рдкреНрд░рджрд░реНрд╢рди

рдПрдЪрдЯреАрдПрдордПрд▓ рд╕реЗ - рдкреНрд░рддрд┐ рдХрд┐рд▓реЛрдореАрдЯрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рдирд╕реНрдкрддрд┐, рдмрд╛рдЗрдХ рдХреЗ рд╢рд░реНрдЯ рдХреЗ рд╕рд╛рде рд╕реНрдкреВрд▓ рдФрд░ рдкрд╛рд╕реНрддрд╛ рдХреЗ рд╕рд╛рде рдЧреНрд▓рд╛рд╕ рдЬрд╛рд░ рд╕реЗ:

рдЪрд▓реЛ рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рдЪрдордХрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред
  1. рдЪреВрдВрдХрд┐ рдореЗрд░реА рдХрд▓рд╛рддреНрдордХ рдХреНрд╖рдорддрд╛рдПрдВ рд╢реВрдиреНрдп рдкрд░ рд╣реИрдВ, рдФрд░ рд╕реНрд╡рд╛рдж рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЙрдирдХреЗ рдкрд╛рд╕ рд╣реИ - рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдЪреБрд░рд╛рдпрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣рд╛рдВ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА (рдФрд░ рдереЛрдбрд╝рд╛ рд╕реАрдПрд╕рдПрд╕): http://www.seanslinsky.com/demo/ios-toggle-switches/ ред
  2. рдЧреНрд░реИрдбрд┐рдПрдВрдЯ рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдордбрдХреБ.рдмреЗ / рдмреАрдЬреА рдиреЗ рдПрдХ рдЙрдмрд╛рдК рд╡реЙрд▓рдкреЗрдкрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдмрдирд╛рдИред
  3. рд╢рд╛рдВрдд рдЯреЙрдЧрд▓ рдЬрдирд░реЗрдЯрд░ proto.io/freebies/onoff рдмрдЯрди рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рд▓рдЧрднрдЧ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдУрдкреЗрд░рд╛ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ IE рдореЗрдВ рднреА рдЕрдЧрд░ рдпрд╣ = 9 рд╣реИред
  4. рдЪреВрдВрдХрд┐ рдЖрд╡рд░реНрдзрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо davidwalsh.name/change-text-size-onclick-with-javascript рдкреЗрдЬ рдХреЗ рдЕрдВрджрд░ рд╕реНрдХреЗрд▓ рдмрдЯрди рдмрдирд╛рддреЗ рд╣реИрдВ

CSS рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ 90% рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ HTML рдКрдкрд░ рдХреЗ 90% рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
 cd /www mkdir luci mv index.html luci wget http://etherelay.googlecode.com/files/index.html wget http://etherelay.googlecode.com/files/style.css 

рджреВрд╕рд░реА рдФрд░ рддреАрд╕рд░реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдПрдХ рдЕрд▓рдЧ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рд╛рдЙрдЯрд░ рдХреА рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдлрд╝рд╛рдЗрд▓ (рдпрджрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИ рд╣реИрдВ) рдХреЛ "рдЫрд┐рдкрд╛рдПрдВ", рдЕрдм рдпрд╣ рд░реВрдЯрд░_рдбреНрд░реЗрд╕ / рд▓реНрдпреВрд╕реА рдХреЗ рдкрддреЗ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИредрдФрд░ рд╕рд░реНрд╡рд░ рдкрддреЗ рдкрд░ рд╕реБрд▓рдн "рдореБрдЦреНрдп" рдкреГрд╖реНрда, рд╣рдорд╛рд░рд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рддрд╕реНрд╡реАрд░ рдПрдХ рд╣рдЬрд╛рд░ рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдЗрд╕ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╣рдЬрд╛рд░ рдЪрд┐рддреНрд░ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдореЗрд░реА рд╡рд╛рдЪрд╛рд▓рддрд╛ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░реЗрдЧрд╛ред
рдЕрдкрдбреЗрдЯ: nm11 рдиреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЬрд╝рд╛рд░реНрдб рд▓реЙрдЧрд┐рди рдФрд░ рд▓реБрдореЛрд╕ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде ):
 uci set uhttpd.main.config=/etc/httpd.conf uci commit uhttpd echo "/:wizard:lumos" > $(uci get uhttpd.main.config) /etc/init.d/uhttpd restart 

Source: https://habr.com/ru/post/In151982/


All Articles