“Não foi possível reivindicar interface na câmera: -6” ao tentar conectar a câmera usb (Kinect)

5

Eu instalei a biblioteca do freenect de openkinect.org . Com essa biblioteca, há um aplicativo de demonstração que você pode executar a partir do terminal para testar o Kinect. No entanto, quando eu executo este comando, recebo a seguinte saída:

richard@behemoth:~$ sudo freenect-glview 
Kinect camera test
Number of devices found: 1
Could not claim interface on camera: -6
Could not open device

Este erro em particular é lançado pela biblioteca libusb pela função libusb_claim_interface e o erro -6 corresponde ao LIBUSB_ERROR_BUSY . Então, meu palpite é que tem algo a ver com a montagem do usb, em vez de especificamente a biblioteca freenect ou o próprio Kinect.

Então, minha pergunta é como posso descobrir qual recurso está usando essa interface e como posso liberá-la para que eu possa acessá-la?

Editar:

O que eu tentei até agora (só para ter certeza):

  • Rebooted
  • Plugged-out, conectado
  • Tentei diferentes portas USB
  • Reiniciado o udev

Informações adicionais que podem ser úteis:

/ etc / fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda1 during installation
UUID=1c73f217-ac8d-451b-8390-7a680628a856 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=bb49bd29-07ec-45a0-bbab-46fb8362b06b none            swap    sw              0       0

sudo uname -r:

Linux behemoth 3.0.0-14-genérico-pae # 23-Ubuntu SMP seg 21 de novembro 22:07:10 UTC 2011 i686 i686 i386 GNU / Linux

cat / etc / lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.10
DISTRIB_CODENAME=oneiric
DISTRIB_DESCRIPTION="Ubuntu 11.10"
    
por rzetterberg 12.01.2012 / 13:28

4 respostas

2

Não tenho o seu ambiente e não posso testar, mas este excerto da FAQ da gphoto parece dizer que isso pode ser uma questão de permissões, em vez de algum programa monopolizando a interface.

A seguinte citação contém um link para o capítulo Configurar permissões para portas USB que você pode verificar .

Why do I get the error message "Could not claim the USB device"?

You have to make sure that no such kernel module is loaded and that you have set up the permissions on your USB device correctly, such that you have (non-root) write access to the camera device. How to set this up, is described at Section 4.3, Setting up permissions for USB ports.

This can also happen with cameras that works as USB Mass Storage devices. A notable example is if you have an Olympus Camera that gets auto-detected as an Olympus C-2040Z. In this case, you can try, if you run Linux, to remove the usb-storage kernel module and attempt to use libgphoto2 with it. But, unless you want to control the camera (not all the model supports it), it is not a recommended solution. Keeps using USB Mass Storage. Some of these Olympus supports to be switched to "PC Control" mode in order to be remote controlled with an external program like one using libgphoto2.

    
por 15.01.2012 / 11:45
2

Parece muito que outro driver esteja segurando ou usando seu dispositivo. Executar:

lsusb

E tente encontrar a linha com a cinética

Bus 002 Device 004: ID 046d:0850 Logitech, Inc. QuickCam Web

Copie e cole a string após o ID (como 046d: 0850) no google e veja se você se depara com o módulo correspondente do kernel do Linux.

Se você tiver sorte, adicione-o aos módulos da lista negra. Crie seu próprio arquivo para /etc/modprobe.d/blacklist-kinetic.conf

blacklist MODULENAME

executar depmod -a reinicie e tente novamente

Apenas tenha cuidado para não colocar na lista negra nenhum módulo que você realmente precise.

    
por 17.01.2012 / 23:02
2

Isso foi um pouco confuso, mas finalmente descobri.

Os kernels mais recentes do Linux vêm com um driver para usar o Kinect como uma webcam, e parece estar pegando a câmera do Kinect primeiro, o que resulta na mensagem de erro quando você tenta executar o freenect-glview: interface na câmera: -6 ".

Faça um lsmod e canalize isso para um grep na string gspca para que você veja apenas as listagens gspca:

 lsmod | grep gspca
 gspca_kinect   12792     0
 gspca_main     27610     1     gspca_kinect
 videodev       85626     1     gspca_main

 modprobe -r gspca_kinect
 modprobe -r gspca_main

Então o glenect-glview deve funcionar.

    
por 11.04.2012 / 21:57
1

Novos kernels linux possuem os drivers ms gspca instalados e não serão desanexados. Eles só te dão a câmera rgb e vão sem profundidade, então mate-os!

lsmod

Deve listar todos eles. Encontre os dois módulos gspca. kinect e main, eu acredito.

then modprobe -r gspca_kinect

Em seguida, mate o outro e tente novamente o glenect-glview. A vida é boa!

    
por 05.03.2012 / 02:21