ИспользованиС BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² устройствах Π²Π²ΠΎΠ΄Π°

ΠŸΠΈΡ‚Π΅Ρ€ Π₯Π°Ρ‚Ρ‚Π΅Ρ€Π΅Ρ€ (Peter Hutterer), мэйнтСйнСр подсистСмы Π²Π²ΠΎΠ΄Π° X.Org, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² Red Hat, прСдставил Π½ΠΎΠ²ΡƒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ udev-hid-bpf, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для автоматичСской Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² устройствах Π²Π²ΠΎΠ΄Π° с интСрфСйсом HID (Human Input Device) ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² зависимости ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Для создания ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ HID-устройствами, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ΠΌΡ‹ΡˆΠΈ, примСняСтся подсистСма HID-BPF, появившаяся Π² ядрС Linux 6.3 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ устройств Π²Π²ΠΎΠ΄Π° Π² Ρ„ΠΎΡ€ΠΌΠ΅ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ события Π² подсистСмС HID.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° udev-hid-bpf ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСстС с ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ udev для автоматичСской Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… устройств Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² Ρ€ΡƒΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Π’Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π΄Π²Π΅ основныС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для использованиС вмСстС с udev-hid-bpf: ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для устранСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ обСспСчСнии ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°Ρ…, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для измСнСния повСдСния устройств ΠΏΠΎ ТСланию ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Π·Π°Π΄Π°Ρ‡ΠΈ устранСния Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΈ ошибок Π² устройствах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ оси ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, заявлСниС ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ 8 ΠΊΠ½ΠΎΠΏΠΎΠΊ вмСсто 5) ΠΈ Π½Π΅Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ событий. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Ρ€Π΅Ρ‡ΡŒ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ настроСк устройств, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с исправлСниями со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² основной состав ядра ΠΈ позволят ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· добавлСния Π² ядро ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru