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
Subscribe
  • 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
Такие вещи встречаются достаточно часто.
Драйвер USB HID под Windows несомненно другой.
Хотите помогу разобраться что конкретно происходит?
У меня есть некоторый опыт.
Ох, а можно потом рассказать про что там было дело?

А то у меня на руках тоже пара дешёвых китайских USB HID геймпадов, которые под windows показывают 2 оси, а под Linux, внезапно, 6. Причём реально имеющаяся единственная крестовина ложится не на 0 и 1 оси, а на 3 и 4.
VID:PID == 0079:0011 (DragonRise Inc.)

Дамп дескриптора:
004:002:000:DESCRIPTOR 1294125322.024277
05 01 09 04 A1 01 A1 02 75 08 95 05 15 00 26 FF
00 35 00 46 FF 00 09 30 09 30 09 30 09 30 09 31
81 02 75 04 95 01 25 07 46 3B 01 65 14 09 00 81
42 65 00 75 01 95 0A 25 01 45 01 05 09 19 01 29
0A 81 02 06 00 FF 75 01 95 0A 25 01 45 01 09 01
81 02 C0 A1 02 75 08 95 04 46 FF 00 26 FF 00 09
02 91 02 C0 C0
Ага, интересно. Посмотрю сегодня на досуге - отпишусь.
Дааа, здесь разработчики курили что-то забористое.

Можно фотографию этого чудо-устройства для начала?

Кстати, dil, вы не против чтобы мы тут это обсуждали?
Наоборот, я очень даже за, мне самому интересно :)
> Дааа, здесь разработчики курили что-то забористое.

В Китае оно, забористое, доступнее простому люду :-)

> Можно фотографию этого чудо-устройства для начала?

Не вопрос:
http://vnaum.com/misc/201101/dragonrise.jpg

Продавалось под маркой "DVTech PC JS19":
http://market.yandex.ru/model.xml?hid=91117&modelid=6471611

По фоткам сдаётся мне что "Defender Game Master" это тоже он:
http://market.yandex.ru/model.xml?modelid=6157419&hid=91117
Я так понял "наплечных" кнопок всего две. Правильно?
Да, спасибо за фотографию :)

Работают ли какие-нибудь из кнопок как переключатели режимов, модификаторы других кнопок?
По поводу похожести на Defender - 99.9% это он.
Так часто бывает с дешевыми устройствами.
Вижу, что у Defender'а по две наплечных кнопки. Наверное и у вашего так же.
Однако смущает разница в описании. У Defender'а указано 13 кнопок против 8-ми и у него якобы нет датчика движения.
Надо будет снять дамп ввода. С помощью той же usbhid-dump.
Как ответите про его параметры - дам примерный план действий.

Итак, сейчас интересует сколько реально кнопок, есть ли кнопки-переключатели режимов/модификаторы, есть ли на самом деле датчик движения и определяет ли он направление.

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

spb_nick

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

spb_nick

7 years ago

blog.vnaum.com

7 years ago

dil

7 years ago

spb_nick

7 years ago

spb_nick

7 years ago

dil

7 years ago

spb_nick

7 years ago

ИМХО на внешний вид ориентироваться не стоит, корпуса там годами используются и гуляют с фабрики на фабрику, иногда с минимальной доработкой напильником (или конструкцией предусмотрены некоторые вариации в количестве дырок на корупусе), а внутри - что угодно, от ничего вообще (подставка для салфеток) до портативной ядреной бомбы. Це ж Китай...

spb_nick

7 years ago

evgalt

7 years ago

spb_nick

7 years ago

evgalt

7 years ago

spb_nick

7 years ago

evgalt

7 years ago

spb_nick

7 years ago

evgalt

7 years ago

Хорошо я уже - сам себе отвечаю :)
> Ох, а можно потом рассказать про что там было дело?
См. http://dil.livejournal.com/983581.html?thread=7502109#t7502109