рдХреНрдпреВрдмрдмреЛрд░реНрдб A10ред рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рд╕реАрдЦрдирд╛

рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░!


рдореИрдВрдиреЗ рдХреНрдпреВрдмрд┐рдПрдмреЛрд░реНрдб рдкрд░ рдЖрдИрдЖрд░ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдЗрд╕ рдЕрджреНрднреБрдд рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдерд╛ (рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╣реЛрдо рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдкрд░ рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рдУрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред рдкрд╕рдВрдж рдЗрд╕ рддрдереНрдп рдХреЗ рдорджреНрджреЗрдирдЬрд░ Cubian ( http://cubian.org/ ) рдкрд░ рдЧрд┐рд░ рдЧрдИ рдХрд┐ рдЖрдкрдХреА рдмрд╛рдЗрдХ рдХреЗ рджреМрд░рд╛рдиред рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛

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

рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдЦрд╛, рдЬрд┐рд╕реЗ рдЕрдм рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

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

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

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

рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдЙрди рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рд░реВрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рд┐рд╕реНрдЯрдо рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдиреБрдЕрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП, рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
modprobe sunxi_ir 

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

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ event1 рдерд╛
рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдЙрдкрдХрд░рдг рдЪрд▓рд╛рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ
 cat /dev/input/event1 | hexdump 
(рдЖрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ [Ctrl] + [C] рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВ)
рд╣реЗрдХреНрд╕рдбрдВрдк рдПрдХ "рд╕реБрдВрджрд░" рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╣рдо рдЙрд╕реА рддрд░рд╣ рд╕реЗ рджрдмрд╛рдП рдЧрдП рдмрдЯрди рдХреЗ рдХреЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рджрдмрд╛рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЪрд╛рд░ рд▓рд╛рдЗрдиреЗрдВ рдорд┐рд▓рддреА рд╣реИрдВ, рд▓рд╛рдЗрдиреЛрдВ рдХреА рдкрд╣рд▓реА рдЬреЛрдбрд╝реА - рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдкрд░ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ ( 0090 0001 ), рджреВрд╕рд░рд╛ - рдмрдЯрди рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ( 0090 0000 )ред рдЗрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдмрд╣реБрдд рдЧрд╣рд░рд╛ рдирд╣реАрдВ рдЧрдпрд╛, рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рдмрдЯрди рдХреЛрдб рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ 0090 рд╣реИ )ред рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ 532a рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛрдб рд╣реИ, рдЕрдЧрд░ рдХреЛрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд░рд┐рдореЛрдЯ рд╕реЗ рднреА рдмрд╛рдБрдзрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЕрдЧрд▓реЗ рдЪрд░рдг рдкрд░ рдЬрд╛рдПрдВ - рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреА рд╕реНрдерд╛рдкрдирд╛
 nano /etc/modules 

рдФрд░ рдЕрдВрдд рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ
sunxi_ir
рдпрд╣ рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдКрдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИред рдореЗрд░реЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:

рдмрдЪрд╛ рд▓рд┐рдпрд╛ рдФрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред

рдЗрд╕рд▓рд┐рдП, рдЖрдИрдЖрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реА рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ, рдЕрдм рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╣рдореЗрдВ рдПрдХ рджрд╛рдирд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдХреНрд▓рд┐рдХреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдЧрд╛, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдореЙрдирд┐рдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдПрдХ рджрдмрд╛рдП рдЧрдП рдмрдЯрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереАред рдореИрдВ рдЕрднреА рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдПрдХ рдЕрдВрддрд╣реАрди рд▓реВрдк рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдЬреЛ рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░реЗ рдХрд┐ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдХрд╛ рдмрдЯрди рджрдмрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВред рдореИрдВ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдХреЗрд╡рд▓ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░реЗ, рдмрд╛рдХреА рд╕рдордп рдореИрдВ рд╕рд┐рд░реНрдл рджрд░реНрдЬрди рднрд░ рдерд╛ред рдирддреАрдЬрддрди, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ php рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ, рдЬрдм рдЖрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрд┐рдЯ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
 #!/usr/bin/php5 <?php $dev="/dev/input/event1"; $f=fopen($dev, 'rb'); if($f){ while (!feof($f)){ $b=fread($f,32); //     64 , 32- ,  32 -  $d=bin2hex($b); // hex  $d=substr($d,18,8); //      $button=substr($d,0,4); // $key=substr($d,4); //0001  0000 switch($button){ case "0090": echo "POWER ".($key=="0001"?"down":"up")."\n"; } //  : /*if($key=="0001"){ if($button=="0090"){ //       } }else{ if($button=="0090"){ //       } } */ } } ?> 

рдлрд╝рд╛рдЗрд▓ рдХреЛ tmp / tst рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ
рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд╣реЛрдиреЗ рджреЗрдВ
 chmod +x /tmp/ts 
рдЪрд▓рд╛рдПрдВ, рдЬрд╛рдВрдЪреЗрдВ:

рдЕрдм, рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ рд░рд┐рдореЛрдЯ рдХрдВрдЯреНрд░реЛрд▓ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдкрд░ "рдЦрд╛рд▓реА" рд╢рдмреНрджреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рди рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдкрд░, рд╣рдореЗрдВ (/ usr / sbin / mylirc) рдорд┐рд▓рддрд╛ рд╣реИ:
 #!/usr/bin/php5 <?php function AccessFile($file,$access){ if(file_exists($file)){ // ! if($f=@fopen($file,$access)){fclose($f);}else{exit("not have access to $file\n");} }else{ return "$file not found (may not have access to the folder)\n"; } } $dev=""; $log=0; if(count($argv)==1){ exit("Use ".dirname( __FILE__ )."/".basename($_SERVER['SCRIPT_FILENAME'])." --device=device [--log=logfile]\n"); }else{ for($i=1;$i<count($argv);$i++){ $cmd=explode("=",$argv[$i]); switch($cmd[0]){ case "--device": $dev=$cmd[1]; echo AccessFile($cmd[1],"rb"); break; case "--log": $log=$cmd[1]; echo AccessFile($cmd[1],"w"); break; } } } if($dev==""){ exit("Use ".dirname( __FILE__ )."/".basename($_SERVER['SCRIPT_FILENAME'])." --device=device [--log=logfile]\n"); } include("/etc/mylirc/buttom_avermedia.php"); if($log){exec("echo `date` > $log");} $f=fopen($dev, 'rb'); if($f){ while (!feof($f)){ $b=fread($f,32); $d=bin2hex($b); $d=substr($d,18,8); $button =substr($d,0,4); $key =substr($d,4); $l=0; for($i=0;$i<count($command);$i++){ if(trim($button)==trim($command[$i][1]) && trim($key)==trim($command[$i][2])){ $l=1; if(trim($command[$i][3])!=""){ //  exec($command[$i][3]." > /dev/null 2>/dev/null &"); }else{ //  ,     : if($log){exec("echo ".$command[$i][0]." ".$command[$i][1]." cmd=null >> $log");}// } } } if(!$l){ //  ,      : if($log){exec("echo not buttom $button $key >> $log");}// } } } ?> 

рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ (- рд▓реЙрдЧ) рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЙрдЧреНрд╕ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ --device рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╢рдкрде рд▓реЗрддрд╛ рд╣реИ
рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ (/etc/mylirc/buttom_avermedia.php):
 <?php $command=array(); //: //, , ,  $command[]=array("POWER", "00ff","0001","led green 1"); $command[]=array("POWER", "00ff","0000",""); $command[]=array("NUMB 1", "0005","0001","led green 0"); $command[]=array("NUMB 1", "0005","0000",""); //   ?> 

рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдПрд▓рдИрдбреА 1 (0) рдкреНрд░реЛрдЧреНрд░рд╛рдо (рдпрд╣ рдореЗрд░реА рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ / usr / sbin / рдореЗрдВ рдбрд╛рд▓рд╛ рд╣реИ)
рдХреНрдпреВрдм (рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рд░рд╛) рдкрд░ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдХреЛ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдЖрдк рдХрд┐рд╕реА рднреА рдХрдВрд╕реЛрд▓ рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдирд┐рд╖реНрдкрд╛рджрди рдЬрдбрд╝ рд╕реЗ рдЖрддрд╛ рд╣реИ, рддрджрдиреБрд╕рд╛рд░ рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рдВрдЫрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдПрдХ рдбреЗрдореЙрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕рдВрдЪрд╛рд▓рди (/ usr / sbin / mylirc) рдХреЛ рд╢реБрд░реВ / рд░реЛрдХ / рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХреЗрдВ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ /etc/init.d-shsh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓рд┐рдпрд╛ рдЧрдпрд╛, рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдФрд░ рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ред /etc/init.d/01_lirc:
 #!/bin/sh ### BEGIN INIT INFO # Provides: 01_lirc # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: LIRC on PHP server ### END INIT INFO set -e # /etc/init.d/01_lirc: start and stop the "LIRC on PHP" daemon test -x /usr/sbin/mylirc || exit 0 ( /usr/sbin/mylirc -\? 2>&1 | grep -q mylirc ) 2>/dev/null || exit 0 umask 022 . /lib/lsb/init-functions run_by_init() { ([ "$previous" ] && [ "$runlevel" ]) || [ "$runlevel" = S ] } export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" case "$1" in start) log_daemon_msg "Starting LIRC on PHP deamon" "mylirc" || true if start-stop-daemon --quiet --oknodo --exec /usr/sbin/mylirc --background --start -- --device=/dev/input/event1 --log=/var/log/log_lirc; then log_end_msg 0 || true else log_end_msg 1 || true fi ;; stop) log_daemon_msg "Stopping LIRC on PHP deamon" "mylirc" || true if start-stop-daemon --stop --oknodo --name mylirc --retry=KILL/1; then log_end_msg 0 || true else log_end_msg 1 || true fi ;; restart) log_daemon_msg "Restarting LIRC on PHP deamon" "mylirc" || true start-stop-daemon --stop --oknodo --name mylirc --retry=KILL/1; if start-stop-daemon --quiet --oknodo --exec /usr/sbin/mylirc --background --start -- --device=/dev/input/event1 --log=/var/log/log_lirc; then log_end_msg 0 || true else log_end_msg 1 || true fi ;; status) ID=`(lsof | grep mylirc | grep /dev/ 2>&1) 1>/dev/null || echo 0;` if [ "$ID" = "0" ]; then echo "LIRC on PHP deamon \033[37;1;41m shutdown \033[0m"; else echo "LIRC on PHP deamon \033[37;1;42m started \033[0m"; fi tput sgr0 ;; *) log_action_msg "Usage: /etc/init.d/mylirc {start|stop|restart|status}" || true exit 1 esac exit 0 


рдЕрдм рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдбреЗрдорди рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 /etc/init.d/01_lirc start 
рдмрдВрдж рдХрд░реЛ:
 /etc/init.d/01_lirc stop 
рд╕реНрдерд┐рддрд┐:
 /etc/init.d/01_lirc status 

рдФрд░ рдЗрд╕реА рддрд░рд╣ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ
рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдбреЗрдореЙрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
 cd /etc/init.d/ update-rc.d 01_lirc defaults 

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ:
 cd /etc/init.d/ update-rc.d 01_lirc remove 


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

рдкреАрдПрд╕рдПрд╕
рдПрдбрд╡рд░реНрдбреЙрдЗрдб рдиреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдЬреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ (/etc/mylirc/buttom_avermedia.php рдХреЗ рд╕рдорд╛рди),
рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ
 #!/usr/bin/php5 <?php declare(ticks = 1); pcntl_signal(SIGINT, "signal_handler"); function signal_handler($signal){ global $f,$out; if($signal==SIGINT){ fclose($f); exec('echo ?\> >> '.$out); exit("\n$out create!\n"); } } function AccessFile($file,$access){ if(file_exists($file)){ // ! if($f=@fopen($file,$access)){fclose($f);}else{exit("not have access to $file\n");} }else{ return "$file not found (may not have access to the folder)\n"; } } $dev=""; $out=""; if(count($argv)==1){ exit("Use ".dirname( __FILE__ )."/".basename($_SERVER['SCRIPT_FILENAME'])." --device=device --out=config.php\n"); }else{ for($i=1;$i<count($argv);$i++){ $cmd=explode("=",$argv[$i]); switch($cmd[0]){ case "--device": $dev=$cmd[1]; echo AccessFile($cmd[1],"rb"); break; case "--out": $out=$cmd[1]; echo AccessFile($cmd[1],"w"); break; } } } if(($dev=="")||($out=="")){ exit("Use ".dirname( __FILE__ )."/".basename($_SERVER['SCRIPT_FILENAME'])." --device=device --out=config.php\n"); } echo "press [Ctrl]+[C] to stop and press any button on the remote\n"; $f=fopen($dev, 'rb'); if($f){ exec('echo \<?php > '.$out); exec('echo " \$command=array();" >> '.$out); $i=0; $j=1; while (!feof($f)){ $b=fread($f,32); $b=bin2hex($b); $b=substr($b,18,8); $button =substr($b,0,4); $key =substr($b,4); $i=$i+($j++)%2; //  $but='$command[]=array("'.$i.'", "'.$button.'","'.$key.'",""); // #'.$i; exec('echo \' '.$but.'\' >> '.$out); echo $but."\n"; //   ,  ,       } } ?> 

рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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


All Articles