Приветствую.
Как-то нашел в кладовке старый стик DVB-T2 тюнер и решил заставить его работать под линухом.
В числе прочих рекомендаций, устанавливал набор модулей linuxtv.
Тюнер не заработал, но перестала определяться вебкамера :(
Камера Logitech C920, много лет работала исправно под всеми осями. Под виндой до сих пор работает.
Ось - Xubuntu 16.04. Ядро 4.4.0.72
Гуглением выяснил, что драйвером для этой модели должен служить uvcvideo. Именно этот драйвер не хочет грузиться.
modprobe uvcvideo
modprobe: ERROR: could not insert 'uvcvideo': Unknown symbol in module, or unknown parameter (see dmesg)
[157889.133443] videobuf2_common: Unknown symbol media_request_object_init (err 0)
[157889.133464] videobuf2_common: Unknown symbol media_request_object_unbind (err 0)
[157889.133496] videobuf2_common: Unknown symbol media_request_object_put (err 0)
[157889.133510] videobuf2_common: Unknown symbol v4l_vb2q_enable_media_source (err 0)
[157889.133520] videobuf2_common: Unknown symbol media_request_put (err 0)
[157889.133536] videobuf2_common: Unknown symbol media_request_object_bind (err 0)
Пробовал делать такие заклинания, для переустановки
apt-get install --reinstall linux-image-extra-`uname -r`
( и других ананлогичных пакетов).
Пробовал скачивать пакеты вручную, доставать из них нужные бинарники .ko и класть в соотв каталог /lib/modules/...
Вот modprobe -D uvcvideo:
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/common/videobuf2/videobuf2-common.ko
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/common/videobuf2_new/videobuf2-core.ko
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/media.ko
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/v4l2-core/videodev.ko
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/common/videobuf2/videobuf2-v4l2.ko
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/common/videobuf2/videobuf2-memops.ko
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/common/videobuf2/videobuf2-vmalloc.ko
insmod /lib/modules/4.4.0-72-generic/kernel/drivers/media/usb/uvc/uvcvideo.ko
Файл videobuf2-common.ko не смог найти в пакетах. Теоретически «оригинальные» драйверы из состава дистрибутива не должны на него ссылаться, он появляется в ядре более поздних версий.
Не пойму, как от него избавиться.
Я так понимаю, что linuxtv поддерживает только последнее ядро, а на остальные плюет. От версии к версии меняется API, состав импортируемых и экспортируемых функций, поэтому мое ядро с новым linuxtv не работает. Портировать эту библиотеку под старое ядро мне не осилить. Если только собрать старую версию из гита, соответствующую этому ядру. Не знаю, как к этому подступиться.
Наверно проще отвязать uvcvideo.ko от videobuf2-common.ko ?
Тоже не знаю как это сделать...
Прошу помощи.
ЗЫ. Обновляться до новой версии убунты нежелательно.