umr 0.2 - добавил возможность менять устройства
Спасибо большое!
Хочу поделиться опытом внедрения ее у себя. Сделал себе интернет-радиоприемник из второго dir320 на кухню. Управление с помощью мышки и UMR.
Так как я подключил к роутеру usb-хаб, а через нее флешку, звуковую карту и мышку, то у меня оказалось два устройства в /dev/input:
event0
event1
Причем программа с event0 не работала. На удачу я залез редактором mc внутрь запускаемого файла umr (да простит меня автор), нашел event0 и заменил на event1. Удача была на моей стороне
Вот на этом шаге долго провозился. Тестирую в консоли - все работает, если программа грузиться через post-boot - не работает.
Оказалось что я прописал в umr.cfg реакцию на кнопку: mpc next, а надо полный путь указывать: /opt/bin/mpc next
Last edited by Cucumber; 07-06-2011 at 21:12.
umr 0.2 - добавил возможность менять устройства
DIR-320 / WL-500gPv2 / O'Play R1
Чтобы скрипт не жрал ресурсы нужно слегка переделать обвязку цикла чтения - нужен таймаут при отсутствии ввода, иначе его будет "циклить". вместо go to я бы сделал так:
$delay = 1;
$run = 1;
while($run){
sysread(REMOTE, $df, 64);
if($df ne '' ){
$ascii = substr(unpack("H*",$df),20,6);
...(if){}.
}else{
sleep($delay);
}
}
Для отладки можно написать undef $run; в ветке обработки определенной клавиши, тогда скрипт будет завершаться при нажатии этой клавиши. Вообще я писал что-то подобное, но для обработки нажатий клавиш дистанционки, там даже была обработка строковых комманд - типа если вводится номер интернет радиостанции - принимать три цифры или таймаут и только потом реагировать. Если интересно, могу поискать скрипт и выложить. Правда он на обьектно-ориентированном перле, не знаю, исполняем ли он в среде microperl.
sevic За подсказку конечно спасибо , но скрипт и так вообще не грузит систему. Лучше подскажите решение проблемы описаной выше. Буду очень признательный , спасибо !!!
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
Если Вы о проблеме запуска system с выводом во внешний файл, то я могу предположить следующее - нужно не перенаправлять вывод в файл в самом вызове, а получить результат вызова system в массив и уже его из скрипта печатать в файл. В перле есть несколько функций для запуска внешних процессов, почитайте про все, возможно какая-то из них подойдет лучше, нежели system.
Я не програмист ,и и з всего услышаного не понял вообще ничего , приведите лучше пример , и поподробней объясните чё к чему для чайниковЕсли Вы о проблеме запуска system с выводом во внешний файл, то я могу предположить следующее - нужно не перенаправлять вывод в файл в самом вызове, а получить результат вызова system в массив и уже его из скрипта печатать в файл. В перле есть несколько функций для запуска внешних процессов, почитайте про все, возможно какая-то из них подойдет лучше, нежели system.
Спасибо !!
Asus RT-N16 FW:1.9.2.7-rtn-r2944 + HDD 1 TB WD WD10EARS + Mobile Rack AgeStar SUB3AHT
USB Flash 2 Gb Программы для чайника + nShaper + Poptop + Онлайн радио + Egreat EG-R1
Вот, кстатит очень интересный вариант qwerty клавиатуры, очень маленькая и беспроводная, возможно будет интересно.
Мужики а кто подскажет почему так происходит при подключении клавиатуры ?
Думал питания не хватает подключил блок питания для USB хаба один фиг ругаетсяCode:02:45:33 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:35 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:37 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:38 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:40 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:41 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:43 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:45 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:46 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:48 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10 02:45:50 21-07-2011 (info|kern|kernel) usb 1-2.4: reset low speed USB device using ohci_hcd and address 10
А гугл уже не катит?
Навскидку:
https://bugs.launchpad.net/ubuntu/+s...ux/+bug/124406
https://bugs.launchpad.net/ubuntu/+s....20/+bug/91230
https://bugzilla.kernel.org/show_bug.cgi?id=9448
Если есть желание помучаться, а не просто выкинуть клаву с нестандартным поведением, то надо сперва проверять на большом линухе, с разными версиями ядер.
Вот собрал некое подобие медиацентра на обрезках залитой чем-то липким, мультимедийной клавиатуры DELL SK-8135.
Плёнки удалил, оставив только электронику с набортным USB хабом на 2 дырки. В итоге клава и хаб определились и уселись.
Nov 28 19:48:00 kernel: input: USB HID v1.10 Keyboard [Dell Dell USB Keyboard] on usb1:6.0
Nov 28 19:48:00 kernel: input: USB HID v1.00 Device [C-Media Electronics Inc. USB Audio Device] on usb1:7.2
в /dev/input появились event0 и event1
однако скрипты от andr128 ничего не видят при нажатии на дополнительные мультимедиа кнопки и кручение ручки громкости (аналог мышинного колёсика)
При подключении к электронных обрезков клавы к виндовой машине всё работает, громкость рулится, треки переключаются... т.е. железо исправно. Хаб тоже работает, там стоит USB-адаптер (USB -звуковая карточка) от колоночек SVEN -PS30.
Причем подключаем классическую мышь с шариком и колесом всё работает (hint! у древних механических мышей в дополнение к стандартному интерфейсу можно использовать колёсики X и Y),,, Работает даже беспроводная клава от Logitech.
А эта зараза от DELL не хочет. Посмотрел в сторону Lineak (Linux демон для мультимедийных клав http://lineak.sourceforge.net) однако в нашем репозитарии его нет, а компиляцию исходников боюсь не осилю.
Есть подозрения, что эти кнопки инициализируются какой-то дополнительной командой.
Кто что скажет, в какую сторону копать, или броить всё, присобачив обычныю мышку?
А вот и свеженькие новости.
Косолапый мультимедиа кейбордодевайс запустить удалось.
Оказалось, что он вешается на /dev/input/event2, но что интересно это устройство появлялось только после того как при включении питания удерживаешь нажатой какую нибудь мультимедиакнопку на клавиатуре.
С чем это связанно понять не мог, скорее всего с energysaving-ом зашитым где-то в дебрях девйаса. Однако все скрипты, столь любезно предоставленные местным обществом, заработали, громкость рулится ручкой, треки переключаются. За что всем большое спасибо.
Однако заниматься рукоблудством с Linux устройствами как-то не кузяво.
В сявзи с этим вопрос существуют ли какие команды будящие или реинициализирующие команды для USB-устройств?
зыЖ в этой чертовой клаве сидит uSB хаб на три порта, два торчат дырками наружу, а один смотрит на контроллер клавы, но почемуто связывается он с двумя HID. Один висит на стандартных кнопках, а другой если шаманство удаётся, вешается на мультимедиакнопки.
И в догонку.
Присмотрелся к звуковушке от колонок SVEN PS-30. Внутри обнаружился чип CM6120S. После изучения datasheet обнаружено, что у него есть возможность подключения управляющих кнопочек "VOL UP", "VOL-DN", "MUTE". Маловато конечно, но всё же хоть что-то.
Это так для справки.
Last edited by Omega; 04-12-2011 at 20:05. Reason: fixed
Никак, не ломая не получается, этот агрегат склеен из двух половинок.
Если желание столь остро, что совсем невмоготу, то аккуратно ножичком-отвёрткой вдоль шва. Однако после надо будет склеивать. Да и не стоят те кнопки того.
Добавил в репозиторий triggerhappy — демона, отслеживающего нажатия на кнопки подключенных клавиатур\мышей\др.HID-устройств и выполняющего какие-нибудь действия по этим событиям.