Как заставить Empathy Internet Messaging изменить веб-камеру по умолчанию?

Установка из источника работала для меня - вот журнал: http://eumenidae.blogspot.com/2012/02/upgrading-to-vlc-20-on-ubuntu-1104-with.html

6
задан 13 April 2012 в 07:21

1 ответ

То, что вы хотите, я думаю, это udev правила.

Я на 12.04, поэтому ваш пробег может отличаться, но вот пример: вы хотите сменить switch / dev / video1 и / dev / video0. Сначала получите нужную информацию: udevadm info -a -p $(udevadm info -q path -n /dev/video0) udevadm info -a -p $(udevadm info -q path -n /dev/video1) Скопируйте обе эти огромные блоки текста в gedit Mine:

looking at device '/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1:1.0/video4linux/video0': KERNEL=="video0" SUBSYSTEM=="video4linux" DRIVER=="" ATTR{name}=="USB2.0 PC CAMERA" ATTR{index}=="0" looking at parent device '/devices/pci0000:00/0000:00:12.2/usb1/1-1/1-1:1.0': KERNELS=="1-1:1.0" SUBSYSTEMS=="usb" DRIVERS=="uvcvideo" ATTRS{bInterfaceNumber}=="00" ATTRS{bAlternateSetting}==" 0" ATTRS{bNumEndpoints}=="01" ATTRS{bInterfaceClass}=="0e" ATTRS{bInterfaceSubClass}=="01" ATTRS{bInterfaceProtocol}=="00" ATTRS{supports_autosuspend}=="1" ATTRS{iad_bFirstInterface}=="00" ATTRS{iad_bInterfaceCount}=="02" ATTRS{iad_bFunctionClass}=="0e" ATTRS{iad_bFunctionSubClass}=="03" ATTRS{iad_bFunctionProtocol}=="00" looking at parent device '/devices/pci0000:00/0000:00:12.2/usb1/1-1': KERNELS=="1-1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 4" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="80" ATTRS{bMaxPower}=="320mA" ATTRS{urbnum}=="5064" ATTRS{idVendor}=="18ec" ATTRS{idProduct}=="3299" ATTRS{bcdDevice}=="0100" ATTRS{bDeviceClass}=="ef" ATTRS{bDeviceSubClass}=="02" ATTRS{bDeviceProtocol}=="01" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="480" ATTRS{busnum}=="1" ATTRS{devnum}=="14" ATTRS{devpath}=="1" ATTRS{version}==" 2.00" ATTRS{maxchild}=="0" ATTRS{quirks}=="0x0" ATTRS{avoid_reset_quirk}=="0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="ARKMICRO" ATTRS{product}=="USB2.0 PC CAMERA" looking at parent device '/devices/pci0000:00/0000:00:12.2/usb1': KERNELS=="usb1" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{configuration}=="" ATTRS{bNumInterfaces}==" 1" ATTRS{bConfigurationValue}=="1" ATTRS{bmAttributes}=="e0" ATTRS{bMaxPower}==" 0mA" ATTRS{urbnum}=="324" ATTRS{idVendor}=="1d6b" ATTRS{idProduct}=="0002" ATTRS{bcdDevice}=="0302" ATTRS{bDeviceClass}=="09" ATTRS{bDeviceSubClass}=="00" ATTRS{bDeviceProtocol}=="00" ATTRS{bNumConfigurations}=="1" ATTRS{bMaxPacketSize0}=="64" ATTRS{speed}=="480" ATTRS{busnum}=="1" ATTRS{devnum}=="1" ATTRS{devpath}=="0" ATTRS{version}==" 2.00" ATTRS{maxchild}=="6" ATTRS{quirks}=="0x0" ATTRS{avoid_reset_quirk}=="0" ATTRS{authorized}=="1" ATTRS{manufacturer}=="Linux 3.2.0-22-generic ehci_hcd" ATTRS{product}=="EHCI Host Controller" ATTRS{serial}=="0000:00:12.2" ATTRS{authorized_default}=="1" looking at parent device '/devices/pci0000:00/0000:00:12.2': KERNELS=="0000:00:12.2" SUBSYSTEMS=="pci" DRIVERS=="ehci_hcd" ATTRS{vendor}=="0x1002" ATTRS{device}=="0x4396" ATTRS{subsystem_vendor}=="0x1043" ATTRS{subsystem_device}=="0x8389" ATTRS{class}=="0x0c0320" ATTRS{irq}=="17" ATTRS{local_cpus}=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f" ATTRS{local_cpulist}=="0-3" ATTRS{numa_node}=="0" ATTRS{dma_mask_bits}=="32" ATTRS{consistent_dma_mask_bits}=="32" ATTRS{broken_parity_status}=="0" ATTRS{msi_bus}=="" ATTRS{companion}=="" ATTRS{uframe_periodic_max}=="100" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""

Вы ищете атрибуты из lsusb, которые соответствуют вашим камера:

SUBSYSTEMS=="usb"
ATTRS{idVendor}=="firsthalf"
ATTRS{idProduct}=="secondhalf"

Тогда как root вы редактируете свой /etc/udev/rules.d/25-video-device.rules Это имя относительно произвольно. Это число связано с тем, какие команды сначала обрабатываются, но всплывают во множестве поисковых запросов. Давайте просто используем его.

Mine выглядит так:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="18ec", ATTRS{idProduct}=="3298", NAME:="video0", OPTIONS:="link_priority=100"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="090c", ATTRS{idProduct}=="c371", NAME:="video2"

Сохраните файл

Некоторые источники указывают как root service udev restart, но я получил жесткий замок. Поэтому просто перезагрузите его, включив его. Теперь запустите все, что не позволит вам выбрать видеоустройство. Поскольку они, вероятно, жестко связаны с использованием / dev / video0, это должно «просто работать».

По какой бы то ни было причине, по крайней мере для меня, он не будет перегружать и вытеснять существующее видео0, он просто создает два файла (может быть, по дизайну). Вы могли бы ln -sf /dev/video1 /dev/video0. Для меня устройства, которые я указал таким образом, похоже, работают. Я тестировал с guvcview.

Поздравляем, вы только что написали правило udev, чтобы преодолеть жесткий код.

Вы также можете указать запуск команд в конце этих правил udev.

SUBSYSTEMS=="usb", ATTRS{idVendor}=="18ec", ATTRS{idProduct}=="3298", NAME:="video0", OPTIONS:="link_priority=100", RUN+="ln -sf /dev/video1 /dev/video0"

SUBSYSTEMS=="usb", ATTRS{idVendor}=="090c", ATTRS{idProduct}=="c371", NAME:="video2"

Теперь ваше видео USB занимает / dev / video0 и / dev / video1. Вы не потеряете свой встроенный, так как теперь он находится на /dev/video2.

7
ответ дан 25 May 2018 в 12:59

Другие вопросы по тегам:

Похожие вопросы: