Управляем чем угодно откуда угодно

Помощник админа

Кто что сделал и кто что собирается делать

Помощник админа

Сообщение Dimano » 10 ноя 2013, 22:49

Есть у меня желание сделать эдакий расширенный аналог IP KVM из виртурилки. Я являюсь единственным айтишником в небольшом филиале, и во время отпуска возникают разные ситуации. Несколько раз приходилось устраивать "секс по телефону", диктуя команды пользователю, т.к. простой удаленный доступ не всегда может помочь. В этой ситуации могла бы помочь виртурилка. Для передачи видео будет использоваться камера, а клавиатура и мышь передаваться через USB gadget g_hid. Ещё хотелось бы иметь двустороннюю аудиосвязь через микрофон и динамик. При этом устройство можно поставить и на шасси, чтобы поиграться, это не помешает основным функциям.

Единственное что меня огорчает, это то, что USB разъем у виртурилки один, и если я его буду использовать в режиме OTG, то не смогу одновременно подключить например USB модем в режиме HOST, я правильно понимаю? В этом случае чтобы не зависеть от наличия интернета в локальной сети, можно использовать 3g роутер, но это как ни крути дополнительное устройство.
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Помощник админа

Сообщение Dimano » 10 ноя 2013, 23:18

Первым делом я начал пробовать подключить модуль ядра g_hid но натыкался на no such devices. Оказывается надо добавлять устройства в ядро. (как то так, может я коряво выразился) вот что у меня получилось.

Патчи для файлов (с учётом исправления uart1 от lyxstv http://forum.virt2real.ru/viewtopic.php?f=38&t=13369&start=20#p17662)
/opt/virt2real-sdk/kernel/arch/arm/mach-davinci/
board-dm365-evm.c https://www.dropbox.com/s/z5duc0m9jzus1q0/board-dm365-evm.diff
board-virt2real-dm365.h https://www.dropbox.com/s/ews2x3q5snnwmjg/board-virt2real-dm365.diff
файл hid_struct.h https://www.dropbox.com/s/wq9mdr3qgslmdzl/hid_struct.h чтобы не захламлять board-dm365-evm.c достаточно большим количеством строк.

Для того чтобы клавиатура и мышь работали надо скомпилировать ядро с указанными изменениями (UPD: в текущем SDK в ядро включен USB Gadget Ethernet g_ether, нам же надо или изменить его на g_hid, либо сделать и тот и другой модулями), в uEnv.txt включить необходимые устройства ghid=km (если нужно только клавиатуру то ghid=k только мышь то ghid=m, ещё можно включит джойстик j, но он у меня как устройство в windows появился но, при тесте ничего не происходит). Далее после загрузки выполняем modprobe g_hid (UPD: если уже загружен модуль USB Gadget то его сначала надо выгрузить. Например rmmod g_ether.ko)(можно добавить в /etc/virt2real/autostart.sh), после чего появятся устройства /dev/hidg0, /dev/hidg1 и т.д. в зависимости от того сколько устройств вы включили а в хост машине соответственно новые устройства
(Внимание если у вас была подключена только клавиатура, а затем вы добавили мышь, в windows необходимо будет обновить драйвер иначе работать не будет).

Затем запускаем программу теста https://www.dropbox.com/s/vw8mkw3le4vlsoe/hid_gadget_test
hid_gadget_test /dev/hidg0 keyboard
hid_gadget_test /dev/hidg1 mouse
и пробуем.
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Помощник админа

Сообщение Dimano » 14 ноя 2013, 00:32

Создал тестовый веб интерфейс, для работы с клавиатурой.

В начале работы долго не мог понять что за коды посылаются в /dev/ghid0, оказалось что даже сканкоды AT клавиатур и XT клавиатур немного но различаются, а USB клавиатуры используют совсем другие сканкоды.

Итак для подключения тестового интерфейса необходимо в каталоге /var/www/ создать любой каталог (у меня он называется test) и скопировать туда два файла:
index.php
test.php
После этого в браузере открыть <адрес виртурилки>/созданный каталог, в моем случае 192.168.42.128/test
Если у кого будут какие либо замечания к коду веб интерфейса, говорите, веб программирование не мой конек, мог и накосячить.

А теперь слайды! :) Видео работы веб клавиатуры. Видео без комментариев, ибо в соседней комнате спит ребенок, да и без них всё понятно.


Теперь буду бороться с мышью.
Последний раз редактировалось Dimano 10 фев 2014, 10:39, всего редактировалось 2 раз(а).
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Помощник админа

Сообщение Dimano » 14 ноя 2013, 14:58

Dimano писал(а):Теперь буду бороться с мышью.

Ага, не тут то было. В самой важной части виртуальная клавиатура то и не работает: в BIOS и при загрузке. :(
Оказывается чтобы работать в биосе надо поддерживать Keyboard Boot Protocol и соответственно ловить команду чтобы на него переключиться. Буду копать дальше.

:?: P.S. Напишите хоть какой-то отклик, а то у меня чувство что я сам с собой разговариваю. Никому не интересен этот проект?
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Помощник админа

Сообщение Wedmer » 16 ноя 2013, 05:48

А ведь решение в общем не только для виртурилки подойдет.
Wedmer
 
Сообщения: 17
Зарегистрирован: 16 ноя 2013, 03:29

Re: Помощник админа

Сообщение Alyoha » 16 ноя 2013, 08:53

Нормально! Подписалкся на твою тему!
Alyoha
 
Сообщения: 51
Зарегистрирован: 01 окт 2013, 04:42

Re: Помощник админа

Сообщение Dimano » 18 ноя 2013, 11:17

Wedmer писал(а):А ведь решение в общем не только для виртурилки подойдет.

Да, но нужно устройство с USB OTG и при этом ещё какой либо интерфейс для связи, и интерфейс для подключения камеры.
Если к примеру взять Raspberry Pi, то в моделе А есть поддержка OTG, но при этом свзязатся с ней будет уже не просто, т.к. другого USB нет, Ethertnet, Wifi тоже. А в моделе B для реализации Ethernet применён внутренний USB HUB, который препятствует USB OTG. http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=15696
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Помощник админа

Сообщение Dimano » 18 ноя 2013, 11:34

Я долго готовился, курил доки, а получилось так, что в нашем случае для работы в режиме boot interface надо в файле hid_struct.h в дескрипторе клавиатуры в .subclass поставить 1 вместо 0 и всё. Провел опыт управления ноутбуком через камеру. Для нормальной работы пришлось уменьшать яркость экрана, иначе происходила засветка, особенно где на светлом фоне тёмные буквы. Надо научиться управлять яркостью и контрастностью самой камеры. Попытался снять видео телефоном, но не хватило рук :) позже сниму фотиком со штатива.

Alyoha писал(а):Нормально! Подписалкся на твою тему!

;)
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

Re: Помощник админа

Сообщение phoenix367 » 18 ноя 2013, 11:46

Dimano писал(а):Я долго готовился, курил доки, а получилось так, что в нашем случае для работы в режиме boot interface надо в файле hid_struct.h в дескрипторе клавиатуры в .subclass поставить 1 вместо 0 и всё. Провел опыт управления ноутбуком через камеру. Для нормальной работы пришлось уменьшать яркость экрана, иначе происходила засветка, особенно где на светлом фоне тёмные буквы. Надо научиться управлять яркостью и контрастностью самой камеры. Попытался снять видео телефоном, но не хватило рук :) позже сниму фотиком со штатива.

Alyoha писал(а):Нормально! Подписалкся на твою тему!

;)


Вы когда такое пишете, то выкладывайте сразу патч, а иначе не понятно, что и где конкретно надо исправить.
phoenix367
 
Сообщения: 193
Зарегистрирован: 09 сен 2013, 00:19

Re: Помощник админа

Сообщение Dimano » 18 ноя 2013, 11:53

phoenix367 писал(а):Вы когда такое пишете, то выкладывайте сразу патч, а иначе не понятно, что и где конкретно надо исправить.
Перекачайте файл hid_struct.h из второго сообщения, там уже содержится изменение.
Dimano
 
Сообщения: 35
Зарегистрирован: 17 окт 2013, 12:23

След.

Вернуться в Проекты на базе Виртурилки

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1