You never can tell with bees (dil) wrote,
You never can tell with bees
dil

Про мультимедиа-клавиатуру

На самом деле это не клавиатура, а ИК-пульт, но с точки зрения ОС это комплект из 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?

Более ранние ссылки о том же пульте: http://community.livejournal.com/ru_linux/2579350.html, http://community.livejournal.com/ru_linux/2647723.html

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

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

Tags: linux, multimedia, windows
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 72 comments