LINUX.ORG.RU

Сообщения ad

 

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

Форум — Development

Требуется скомпилировать в модуль и установить общий драйвер устройств 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

Форум — Linux-hardware

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

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

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

 

ad
()

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

Форум — Multimedia

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 от одного устройства к другому напрямую

Форум — Development

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

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

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

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

 

ad
()

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

Форум — Multimedia

Используется 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 подписка на новые темы