рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ
рдЖрдЗрдП рд╕рдорд╕реНрдпрд╛ рд╢реБрд░реВ рдХрд░рдХреЗред рджрд┐рдпрд╛: рдПрдХ рд▓реИрдкрдЯреЙрдкред рдирдпрд╛ рд▓реИрдкрдЯреЙрдк, рдЧреЗрдорд┐рдВрдЧред RGB рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЗ рд╕рд╛рдеред рдпрд╣рд╛рдБ рдПрдХ рд▓реИрдкрдЯреЙрдк рдЗрд╕ рддрд░рд╣ рд╣реИ:
рдЫрд╡рд┐ lenovo.com рд╕реЗ рд▓реА рдЧрдИ рд╣реИрдЗрд╕ рд▓реИрдкрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рднреА рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕рд┐рд░реНрдл рдЗрд╕ рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░реЗред рдФрд░ рдЪрдордХрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм, рдФрд░ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╕реБрдВрджрд░ рд░рдВрдЧ рдЪрдВрдЪрд▓ред рд╣рд╛рдВ, рдпрд╣ рдмрд╕ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдЕрдкрдиреЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рд▓рд┐рдЦреЗ рдмрд┐рдирд╛? рд╕рд░рд▓ рдЬрд╡рд╛рдм рдЬрд▓реНрджреА рд╕реЗ рдЖрдпрд╛ - рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВред рдЕрдЪреНрдЫрд╛, рдЪрд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдЪрд░рдг 1 - рдХреЛрдб рдореЗрдВ delving
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕реЗ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдмреИрдХрд▓рд╛рдЗрдЯ рдХреИрд╕реЗ рдЪрдордХрддреА рд╣реИред рдмрдврд╝рддреА рдХрдард┐рдирд╛рдИ рдХреЗ рдХреНрд░рдо рдореЗрдВ:
1. рдПрдХ рдмрдбрд╝рд╛ рдФрд░ рдкрдВрдк рдЧреЗрдорд┐рдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо Lenovo Nerve Center - рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рд╕рднреА рдмреИрдХрд▓рд╛рдЗрдЯ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрдВрдХреНрд╢рди рд╣реИред
2. рдПрдлрдПрди + рд╕реНрдкреЗрд╕ рд╣реЙрдЯрдХреАрдЬрд╝ рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╕рдВрднрд╡ рд╣реИред рдпрд╣ рдЙрд╕реА рдХрд╛рд░реНрдпрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред
3. BIOSред рдЬрдмрдХрд┐ рд▓реИрдкрдЯреЙрдк рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдмреИрдХрд▓рд╛рдЗрдЯ рднреА рдЯрд┐рдордЯрд┐рдорд╛рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд▓рд╛рд▓ рд░рдВрдЧ рдореЗрдВ, рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдПред
рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдБ рдХрд┐ рдореБрдЭреЗ рддреАрдиреЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдирд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рдЧрддрд┐ рдХреАред рд╣рдо рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ
рдЦреИрд░, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрд▓реЗрдВ:

рд╣рдо рддреБрд░рдВрдд рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ DLL рд╣реИ - LedSettingsPlugin.dllред рдХреНрдпрд╛ рд╣рдорд╛рд░рд╛ ...? рдЖрдЗрдП рдЖрдИрдбреАрдП рдкреНрд░реЛ рдореЗрдВ рдЦреЛрд▓реЗрдВ рдФрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рд╕реНрдХреНрд░реАрди рдХреЗ рджрд╛рд╣рд┐рдиреЗ рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдмрд╛рдХреА рд╣реИ - рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡рд┐рдзрд┐ рдирд╛рдо рдХреЗ рд╕рдорд╛рди рдХрдИ рд░реЗрдЦрд╛рдПрдВ рд╣реИрдВред рдХреНрдпреЛрдВ?

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

рд╣рдо рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ ... Y720LedSetHelper :: SetLEDStatusExред рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рдореЗрдВ рдЬрд░реВрд░рдд рд╣реИ! рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЬреИрд╕рд╛ рдХреБрдЫ рдпрд╣рд╛рдВ рдмрдирддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд CHDDevHelper :: HidRequestsBelPath рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ var_38 рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рднреА рдХрд╛рдпрд╛рдкрд▓рдЯ рдЖрдИрдбреАрдП рдХреГрдкрдпрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рдХрд░рддреЗ рд╣реИрдВред
Var_34 рд╣рдорд╛рд░реЗ рд▓рд┐рдП рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдпрд╣ var_38 рдХреЗ рдареАрдХ рдмрд╛рдж рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдкрд░рдВрдкрд░рд╛ рдореЗрдВ, рдЖрд░рдПрд╕рдкреА рдХреЗ рддрд╣рдд рдЪрд░ рдХреЛ рд░рд┐рд╡рд░реНрд╕ рдСрд░реНрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╡рд░_34 рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░ рдХрд╛ рдирд╛рдо рд╣реИ - -34 рд╣ред
рд╣рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ var_38 рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╢реИрд▓реА, рд░рдВрдЧ, рдирдВрдмрд░ рддреАрди рдФрд░ рдмреНрд▓реЙрдХ рдХреАрдмреЛрд░реНрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рд░рдВрдЧ рд▓рд╛рдЧреВ рд╣реЛрдЧрд╛ред (рдЖрдЧреЗ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рддреАрди рдпрд╣рд╛рдБ рдХреА рдЪрдордХ рдорд╛рди рд╣реИред рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдореВрд▓ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднреА рдардВрдбрд╛ рдХрд░ рджреЗрддреЗ рд╣реИрдВ!)
рдЖрдЗрдП HidRequestsByPath рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЕрдВрдд рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рддрд╛ рд╣реИред

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

рдПрдХреАрдХреГрдд рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдПрдХреНрд╕рдкреНрд░реЗрд╕, рдЗрдВрдХред рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧ рд░рд╣рд╛ рд╣реИред рд╣рдо рдкреНрд░рд╕рд┐рджреНрдз рдЙрдкрдХрд░рдг / рджреЗрд╡ / hidraw рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд╣рдо рд╕рд╣реА рдкрд╛рддреЗ рд╣реИрдВ ... рдпрд╣ рдлрд╛рдЗрд▓реЛрдВ / sys / class / hidraw / hidraw * / device / uevent рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЦреЛрдЬ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

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

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ - рдпрд╣ рд╡рд╣ рд╣реИред

рдПрдХ рдЙрдкрдХрд░рдг рдЬрд┐рд╕реЗ рдореИрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ dmesg рдореЗрдВ рднрд░ рд░рд╣рд╛ рд╣реВрдВред
[рд╡рд╣ lsusb рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛? рдФрд░ USB рдмрд┐рд▓рдХреБрд▓ рднреА рдирд╣реАрдВред рдпрд╣ I2C HID рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдмрд╕ рдореЗрдВ HID рдЧреИрдЬреЗрдЯ
рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рдХрд╛рд░реАрдЧрд░реЛрдВ рдХреЗ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рд╣рд╛рдереЛрдВ рд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ
рдЫрд┐рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред]
рдЧреАрддрд╛рддреНрдордХ рд╡рд┐рд╖рдпрд╛рдВрддрд░ - рдЪрд▓реЛ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ
рд╕рд╣реА рдЙрдкрдХрд░рдг рдХреА рдЦреЛрдЬ рдореЗрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рд▓рдЧрднрдЧ рдХрд░реНрдиреЗрд▓ рдкрд░ рдЙрдард╛рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рд▓реЙрдХ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ dmesg рд╢реАрдЯ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдерд╛ред рдЪреВрдБрдХрд┐ рдореИрдВ рдпрд╣рд╛рдБ рд╣реВрдБ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╡рдЪрди рдХреНрдпреЛрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛? рд╡реИрд╕реЗ рднреА рд╣рд╛рдереЛрдВ рдХреА рдЦреБрдЬрд▓реАред
рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ I2C HID рдкрд░ рдЙрдкрдХрд░рдг рдХрд╣рд╛рдВ рд╣реИрдВ, рдФрд░ рдХрд╣рд╛рдВ рд▓рд┐рдЦрдирд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рдХреМрди рд╕реА рд╡рд┐рд╖рдорддрд╛рдПрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВред
рдпрд╣рд╛рдБред рдЖрдЧреЗ рдХреА рд╣рд▓рдЪрд▓ рдХреЗ рдмрд┐рдирд╛, рдЖрдЗрдП рд╣рдо рддреНрд░реБрдЯрд┐ рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВ - рдЧрд▓рдд рдЗрдирдкреБрдЯ рд▓рдВрдмрд╛рдИред рдЪрд▓реЛ рдЗрд╕реЗ рд╕рд╣реА рдХрд░реЗрдВред

рдПрдХ рдирдпрд╛ рдХреНрд╡рд┐рдХ рдЬреЛрдбрд╝реЗрдВ, рдЗрд╕реЗ I2C_HID_QUIRK_BAD_INPUT_SIZE рдирд╛рдо рджреЗрдВред рдореМрдЬреВрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рд╕реЗред

рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХреНрд╡рд░реНрдХреБрдЯ рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред рд╣рдордиреЗ рдЕрдм рддрдХ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ:
1. "i2c hid рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓" рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЦреЛрдЬреЗрдВред рдбрдХрдбрдХрдЧреЛ рдХреА рдЪреМрдереА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ред
2. рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рддреАрди (!) рд╢рдмреНрдж рд▓рд┐рдЦреЗ - BAD_INPUT_SIZE
3. рдмреАрдЖрдИрдЯреА (4) рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред рдпрд╣ BIT (5) рдирд┐рдХрд▓рд╛ред
4. рд╣рдордиреЗ рдПрдХ рдирдВрдмрд░ hid-ids.h рдореЗрдВ рдЬреЛрдбрд╝рд╛ - рд╣рдорд╛рд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрдИрдбреА (рдЪрд┐рддреНрд░рдг рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдВ рднреА рдпрд╣ рд▓рдЧрднрдЧ рд╣реИ)ред
рдЕрдм рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рд╣рдо рд▓рд╛рдЗрди рджреЗрдЦрддреЗ рд╣реИрдВ - `ret_size = ihid-> inbuf [0] | ihid-> inbuf [1] << 8; `
рдФрд░ рдлрд┐рд░ рдпрд╣ рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ ret_size рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред
рдпрджрд┐ рдХреНрд╡реАрдпрд░ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддреЛ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░реЗрдВ, рдареАрдХ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред

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

рдФрд░ рд╡рд╣ рдпрд╣ рд╣реИред
рдЪрд░рдг 3 - рдбреНрд░рд╛рдЗрд╡рд░!
рддрдм рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ - рдЕрд░реЗ рд╣рд╛рдБ, рдЖрдкрдХреЛ рдЕрднреА рднреА рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦрдирд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдХрд░реНрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ (рд╕рд╡рд╛рд▓ рд╡рд╣рд╛рдВ рдЙрдард╛рдП рдЬрд╛рдиреЗ рд▓рдЧреЗ, рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реЛрдЪрдирд╛ рдкрдбрд╝рд╛ред рдпрджрд┐ рдХреЛрдИ рд╣реИрдмреНрд░реЛрд╡реНрд╕реНрдХ рдирд╛рдЧрд░рд┐рдХ рдореБрдЭреЗ рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рд┐рдЦреЗрдВ - рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА!)
рдЕрдЬрдЧрд░ рдЦреЛрд▓реЛред (рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдмреИрд╢ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрдкрдирд╛ рджрд┐рдорд╛рдЧ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдмрджрд▓ рд▓рд┐рдпрд╛ред) рд╣рдо рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рдЯреВрд▓ / рджреЗрд╡ / рд╣рд┐рджреНрд░рд╡ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗред
/ dev / hidraw0, / dev / hidraw1 - рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ? рд╕рд░рд▓ I / O рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рд▓реЗрдХрд┐рди GetFeature рдФрд░ SetFeature рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рд╣реИ ...
StackOverflow (рдпрд╛ рдХрд┐рд╕реА рдФрд░, рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ) рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдЗрд╕реЗ рдХреБрдЫ ioctl рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдпрд╣ HID рдбрд┐рд╡рд╛рдЗрд╕, рдЯрд░реНрдорд┐рдирд▓ рдФрд░ рдЬреИрд╕реА рдЕрд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐ рд╣реИред
Ioctl рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЙрд╕реЗ рдПрдХ рдУрдкрди рдлрд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рджреЗрддреЗ рд╣реИрдВ (рдЬреЛ рдЗрд╕рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ,
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреА рдПрдХ рдХрдбрд╝реА рд╣реИ ), рдХреБрдЫ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдПрдХ рдмрдлрд░ - рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╡рд╣ рдЗрд╕ рдмрдлрд░ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдмрд╕ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ: 0xC0114806, рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ SetFeatureред рдпрд╣ рд╣реИ
(6 << 29) | (ord('H') << 8) | (0x06 << 0) | (0x11 << 16).
рдпрд╣рд╛рдВ рдкрд╣рд▓реЗ 6 рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдлрд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реА рд╣реЛрдЧреАред рдХреНрдпреЛрдВ рдкрдврд╝рдирд╛ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ - рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╢рд╛рдпрдж рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдСрд░реНрдб ('рдПрдЪ') рдпрд╣рд╛рдБ - рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЫрд┐рдкрд╛ред рд╢рд╛рдпрдж рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХрд╛ рдорддрд▓рдм рд╣реИ, рдлрд╝рд╛рдЗрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдЪрдЖрдИрдбреАред
0x06 - рдЯреАрдо рд╣реАред HID рдХреЗ рд╕рд╛рде рдЫрдареА рдЯреАрдо SetFeature рд╣реИред рдЕрдВрддрд┐рдо рднрд╛рдЧ рдмрдлрд░ рдХреА рд▓рдВрдмрд╛рдИ рд╣реИред
рдпрд╣ рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ ioctl рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ - рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИред
рд╡рд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ ред
рдЕрдВрддрднрд╛рд╖рдг
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкрдврд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред рдЙрдкрдпреЛрдЧреА рднреА, рд╢рд╛рдпрджред рдХреБрдЫ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдпрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ - рддреЗрдЬ-рджреГрд╖реНрдЯрд┐ рд╡рд╛рд▓рд╛ рдкрд╛рдардХ, рд╢рд╛рдпрдж, рдбреНрд░рд╛рдЗрд╡рд░ рдореЗрдВ рд░рд╛рдЬреНрдп рдХреЗ рдкрдврд╝рдиреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛, рдФрд░ рдХреБрдЫ рджреВрд╕рд░рд╛ рд╕реЗрдЯрдлрд╝реНрд░реАрдЪрд░, рдЬрд┐рд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдкрд╛рда рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдмрдбрд╝реА рдЪреАрдЬреЗрдВ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдмрд╛рдЗрдХ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд▓реЗрдЦ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐ рдХреБрдЫ рдЫреЛрдЯрд╛ рдФрд░ рд╕реБрдЦрдж, рдЦреБрд▓рд╛-рд╕реНрд░реЛрдд рдпрд╛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рдмрдирд╛рдирд╛, рдмрд┐рд▓реНрдХреБрд▓ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЪрд╛рдп рдХреЗ рд╕рд╛рде рд╢рд╛рдо рдХрд╛ рдПрдХ рд╕рдкреНрддрд╛рд╣ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдХреЛрдб рдореЗрдВ рддрд▓реНрд▓реАрди рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред