LINUX.ORG.RU

Сообщения ad

 

Компиляция общего драйвера HID

Требуется скомпилировать в модуль и установить общий драйвер устройств USB HID. Компиляция проходит успешно, однако после установки драйвер не загружается.

Ubuntu 14.04, Linux 3.13.0, исходники получаются при помощи apt-get source, linux-3.13.0/drivers/hid/Makefile:

hid-y	:= hid-core.o hid-input.o hid-debug.o hidraw.o
obj-m	+= hid.o
all:
	$(MAKE) -C "/lib/modules/`uname -r`/build" M=`pwd` modules
install:
	$(MAKE) -C "/lib/modules/`uname -r`/build" M=`pwd` modules_install
clean:
	$(MAKE) -C "/lib/modules/`uname -r`/build" M=`pwd` clean

Далее make && sudo make install && depmod -a. Драйвер устанавливается в /lib/modules/3.13.0-85-generic/extra. Далее sudo rmmod hid_generic && sudo rmmod usbhid && sudo rmmod hid && sudo modprobe hid && sudo modprobe usbhid. После этого драйвер hid_generic загружается уже автоматически и всё работает как при использовании оригинального драйвера из репозитория, в основном дереве драйверов.

Добавление в Makefile

INSTALL_MOD_DIR	:= updated
export INSTALL_MOD_DIR
и установка драйвера в директорию /lib/modules/3.13.0-85-generic/updated не решает проблему.

После переименования в основном дереве драйверов hid.ko в hid.ko.original с целью вынуждения ядра загружать изменённую версию драйвера из updated при загрузке драйвера (sudo modprobe hid) выдаётся сообщение об ошибке:

modprobe: ERROR: could not insert 'hid': Unknown symbol in module, or unknown parameter (see dmesg)

При этом в dmesg ничего не выводится. Я так понял, проблема с динамическим связыванием этого модуля с другими модулями, что делать в этой ситуации? Как скомпилировать общий драйвер HID, установить его (в extra или updated?) и добиться того, чтобы работала именно новая скомпилированная версия, а не версия в основном дереве драйверов из репозитория. Или для этого нужно компилировать этот драйвер с другими зависящими от него драйверами, т. е. usbhid, hid-generic и специальными драйверами различных устройств USB HID?

Компиляция требуется для того, чтобы внести небольшое изменение в драйвер, а именно добавить устройство USB HID, для которого я пишу драйвер, в таблицу устройств, для которых существует специализированный драйвер, который требуется загрузить вместо общего драйвера hid-generic.ko, которая находится в общем драйвере HID (hid.ko), без этого изменения мой драйвер загружается при подключении, но не задействуется (вариант с отсутствием цифровой подписи модуля я исключил, так как, во-первых, модуль загружается, а во-вторых, отсутствие цифровой подписи лишь включает для модуля kernel taint).

 ,

ad
()

Китайские адаптеры PS/2

В продаже есть множество китайских адаптеров PS/2, например, http://www.ulmart.ru/goods/369397 Какие из них лучше, какой производитель делает лучшие адаптеры, какие микросхемы лучше с точки зрения точности реализации (вариантов) интерфейса PS/2, наименьшего количества ошибок, совместимости с оборудованием, наличия реализации функциональности устройств?

У меня, например, у мыши не работают две дополнительные кнопки сбоку и горизонтальное колесо работает как вертикальное.

Адаптер создаёт два устройства /dev/input/event*, как выяснить, какой драйвер их создаёт (скорее всего usbhid, конечно, но нужно на всякий случай проверить)?

 

ad
()

Настройка или калибровка сканера

Ubuntu 14.04, SANE 1.0.23, HP ScanJet 3970C. На странице http://sane-project.org/sane-mfgs.html состояние поддержки сканера указано как Good, для устройства есть хороший бекенд для SANE, самый большой по количеству строк кода среди всех моделей сканеров, поддерживаемых в Linux.

При помощи XSANE получается неплохо сканировать в режиме оттенков серого, но в цветном режиме изображение получается позеленевшим: https://s26.postimg.org/p44b8asbt/hpsj3970c-green.png

Мне кажется, что проблема не в бекенде, а в настройке или отсутствии калибровки или неправильных действиях пользователя. При сканировании в двухцветном чёрно-белом режиме изображение либо полностью белое, либо полностью чёрное, в зависимости от выставленного порога (больше 128 или меньше), поэтому сканирую только в режиме оттенков серого. Все настройки XSANE перебрал, ничего не помогает. Проблема стоит с 2009 года.

 ,

ad
()

Передать информацию по USB от одного устройства к другому напрямую

Технология USB позволяет передать информацию от одного периферийного устройства к другому напрямую, без её прокачки через память компьютера?

То есть чтобы информация передавалась от одного устройства к другому, а USB-хост-контроллер, управляемый драйвером (драйвером из ядра, который, возможно, придётся модифицировать и/или написать ещё один драйвер или модуль) и программой, только управлял этой передачей данных.

Возможна ли передача данных через некорневой (периферийный, подключаемый к корневому) USB-концентратор и какая в обоих случаях будет скорость передачи данных?

В общем, идея в том, чтобы передавать несжатое видео высокого разрешения с камеры напрямую на Intel Movidius Neural Compute Stick https://developer.movidius.com/, без прокачки через память компьютера, а на компьютер от последнего получать только сильно профильтрованную нейросетью информацию, это позволит варить видео на множестве камер, USB-контроллеров, USB-концентраторов и вышеупомянутых необычных устройств и получать уже профильтрованную информацию в относительно небольшом количестве на один компьютер, на который будет небольшая нагрузка.

 

ad
()

Автоматическое переключение вывода звука на подключаемые Bluetooth-наушники

Используется Ubuntu 14.04 и PulseAudio 4.0. Наушники отлично подключаются и работают в режимах HSP и A2DP, поэтому модель наушников даже не привожу в надежде на то, что это не важно. Однако после успешного подключения вывод звука по умолчанию во всех приложениях продолжает осуществляться через колонки. Как настроить так, чтобы при подключении Bluetooth-наушников устройством вывода звука по умолчанию стали подключаемые наушники? Кроме того, по умолчанию режим работы наушников — HSP, как сделать так, чтобы режимом по умолчанию был A2DP?

Насколько я знаю, PulseAudio выбирает тот профиль для карты, у которого наибольший приоритет, и для вывода звука по умолчанию использует ту карту и тот сток, у порта которых наибольший приоритет и тот порт, у которого наибольший приоритет. У меня приоритет для порта наушников всегда оказывается меньше, чем для порта колонок. Как изменить эти приоритеты?

В крайнем случае можно сделать:

/etc/init/custom/bluetooth-headphones-switch.conf:

description «Upstart service for bluetooth headphones switching to»

start on bluetooth-device-added

exec pacmd set-default-sink '57'

В статье http://itshaman.ru/articles/123/podklyuchenie-bluetooth-naushnikov-i-garnitur... написано, что при наличии PulseAudio при подключении Bluetooth-гарнитуры PulseAudio будет автоматически переводить звук на неё. Получается, что в новой версии PulseAudio изменили приоритеты по умолчанию? Я в Zorin 6, основанной на Ubuntu 12.04, ранее наблюдал автоматическое переключение, но только со второго подключения устройства. Первый раз не переключилось, я переключил вручную, при втором подключении снова не переключилось, я снова переключил вручную, а при третьем подключении устройства переключилось.

 ,

ad
()

RSS подписка на новые темы