November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Monday, January 3rd, 2011 07:53 pm

На самом деле это не клавиатура, а ИК-пульт, но с точки зрения ОС это комплект из USB-мыши и клавиатуры с небольшим набором мультимедийных кнопок.

В Windows работает влёт без всяких дополнительных драйверов. В линуксе работало очень частично и местами неправильно, пока я не нашел драйвер. Хотя если выражаться точно, то это не драйвер устройства. Это маленький патч, который на лету фиксит ошибку в описании одного конкретного USB- устройства. Собственно, вот весь функционал, остальное только привязка вызова этой функции в нужное время в нужном месте:

static void aureal_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int rsize)
{
        if (rsize >= 54 && rdesc[52] == 0x25 && rdesc[53] == 0x01) {
                dev_info(&hdev->dev, "fixing Aureal Cy se W-01RN USB_V3.1 "
                                "report descriptor. Keyboard Logical Maximum = 101\n");
                rdesc[53] = 0x65;
        }
}

Невыясненным остаётся вопрос, почему оно таки работает в Windows без всяких телодвижений. Потому что в линуксе криво реализована поддержка USB HID? Или потому что она криво реализована в Windows, а пульт, заточенный для работы с Windows Media Center, работает с учётом этой кривизны? Или потому что эта часть вообще не регламенитруется спецификациями, а производители сделали так, чтобы оно работало с учетом реализации HID в Windows?

Более ранние ссылки о том же пульте: https://ru-linux.livejournal.com/2579350.html, https://ru-linux.livejournal.com/2647723.html

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

[identity profile] blog.vnaum.com (from livejournal.com)
Wednesday, January 5th, 2011 12:18 pm (UTC)
>> Модификаторами работают кнопки turbo, auto и clear - их нажатия jstest не видит.
> А что они делают?

"turbo": зажимаешь "турбо" + кнопку, и она теперь "турбированная" - её
можно просто держать зажатой, "долбит" джойстик сам.

"auto": то же самое, плюс можно уже и не держать - джойстик сам стреляет

"clear": снимает эффекты верхних двух с указанной кнопки.

> Для какого ядра вам патч сделать?

В идеале, наверное, надо работать для будущих поколений - чтоб в
апстрим толкать можно было.

У самого у меня текущее ядро из squeeze, 2.6.32-5-openvz-686.
Или удобно было бы иметь что-то вроде упомянутого в посте
http://gitorious.org/hid-aureal-kernel-module.
Friday, January 7th, 2011 03:18 pm (UTC)
Ага, спасибо. Только сейчас увидел комментарий.
Тогда модификаторы на дескриптор не влияют.