Ubuntu 12.04 posts #16 e #17 - Webcam Quickcam Express gspca e qc-usb

Iniciado por boladegude, 01 de Julho de 2009, 00:37

tópico anterior - próximo tópico

boladegude

[Editado:

Informações da minha Quickcam...
$lsusb
ID 046d:0840 Logitech, Inc. QuickCam Express

no ubuntu 9.10 koala essa webcam tem suporte nativo
correção 17/04/2010 ... o driver nativo não funciona corretamente.
correção 08/03/2011 ... no entanto leia o que está escrito no post #8
correção 26/04/2011 ... problema do driver nativo gspca corrigido no post #12

--> Só realize o tutorial abaixo se quiser instalar o driver qc-usb para a Quickcam,
pois o problema do driver gspca está resolvido no post #12 <--

As correções para o koala estão descritas abaixo em negrito.
Correções válidas para o ubuntu 10.04 lucid (03/06/2010).]


Webcam Quickcam Express qc-usb solução
Funcionando no Ubuntu 9.04 Jaunty
Funcionando no ubuntu 9.10 Koala

1)
Insira sua webcam na entrada USB

2)
Baixe qc-usb pelo synaptic,
os fontes do driver irão para /usr/src (comprimidos).
Baixe ambos, qc-usb-source e qc-usb-utils.

3)
Abra um terminal e comece a digitar...
sudo su
cd /usr/src
tar -xvjf qc-usb.tar.bz2
cd /usr/src/modules/qc-usb

[editado: para ubuntu 9.10 koala
antes de dar o comando make copie o patch do link a seguir para este diretório e aplique-o para corrigir bugs na versão do koala...
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=45;filename=kcompat-2.6.30.patch;att=1;bug=524112
patch -Np1 < kcompat-2.6.30.patch
(referência:
http://www.vivaolinux.com.br/dica/Quickcam-Express-configurando-modulo-%28Ubuntu-9.10%29)
]

make
e pronto o modulo "quickcam.ko" já existirá nesta pasta (/usr/src/modules/qc-usb).

4)
Digite...
cd /etc/modprobe.d
gedit blacklist.conf
coloque no final do arquivo essas duas linhas
[editado: para ubuntu 9.10 koala
# por usuario para koala
blacklist gspca_stv06xx
salve e saia de gedit.
]


# por usuario para jaunty
blacklist quickcam
salve e saia de gedit.

5)
Digite...
cd /etc
gedit rc.local
coloque essas duas linhas antes de exit 0
insmod /usr/src/modules/qc-usb/quickcam.ko
qcset /dev/video1 debug=0
("no meu caso" a câmera era o dispositivo video1)
salve e saia de gedit.

Reinicie o computador.
Se não cometeu nenhum erro de digitação a câmera estará instalada.
Instale aMSN e Mercury para utilizá-la
O Kopete não funcionou de jeito nenhum aqui.

É possível que você enfrente problemas com o  microfone, como eu.
Nesse caso veja o post sobre o microfone em...
http://ubuntuforum-br.org/index.php/topic,52678.0.html

Com o Mercury é necessário o seguinte ajuste antes de usá-lo:
1)
Já ter instalado o Java
2)
Instalar o Mercury via Synaptic
3)
Digitar no terminal...
sudo su
cp  /usr/share/mercury/jni/jmf/libjmutil.so  /usr/lib/jvm/"sua_versao_do_java"/jre/lib/i386/
(substitua "sua_versao_do_java" pelo nome que esta na sua pasta jvm).
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

#1
Olá,

A cada nova versão de kernel que for lançado...
(hoje, 01/07/2010 foi lançado o kernel 2.6.32-23-generic)
...
faça o seguinte...
digite os seguintes comandos...
sudo su
cd /usr/src/modules/qc-usb
make

[pronto o driver da quickcam express estará atualizado para o novo kernel]
[de reboot e a camera estará funcionando novamente]
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

#2
[Editado!
Está aprimorado no post #4 (desconsidere este post)
]


Para você rodar comandos ou programas no momento que insere a webcam no conector USB faça o seguinte:

Script 1:

(inico)
###### nome deste script: 91-quickcam_seunome.rules
###### colocá-lo na pasta /etc/udev/rules.d
###### udevadm control --reload-rules (se quiser ativar a regra sem reboot)

###### para rodar programa com a inserção da webcam
###### por usuário para quickcam

#### para o caso de precisar rodar um programa que vá utilizar o servidor X
#### RUN+="/bin/dash -c 'DISPLAY=:0 /programa a rodar com atalho completo'"

ENV{ID_V4L_PRODUCT}=="Logitech QuickCam USB"
ACTION=="add", KERNEL=="video1", RUN+="/bin/dash -c 'DISPLAY=:0 /usr/local/bin/comandos_quickcam.sh'"
(fim)

(Esse comando roda o script comandos_quickcam.sh. Coloque lá o que você quer que seja executado quando você insere a camera.)


Script 2:

(inicio)
#!/bin/sh
# nome deste script: comandos_quickcam.sh
# colocar na pasta /usr/local/bin e dar permissão para execução
qcset /dev/video1 compatible=dblbuf
qcset /dev/video1 debug=0
(fim)

(Os comandos colocados nesse script fazem o seguinte respectivamente:
- muda o número de buffers da webcam para 2 buffers
- desativa o debug da camera para não ficar relatando frames perdidos a todo instante.
mas você pode mandar executar qualquer coisa nesse script.

Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

[Editado: informação importante no post 8]

Olá,

Tomei um baile de meses para descobrir porque a minha quickcam express não funcionava mais.
Depois de toda pesquisa deixo aqui a solução de graça.
Afinal é para isso que serve a comunidade, para facilitar as coisas, não para resolver os problemas e guardar para si como muitos.
É valido tudo que está nos posts anteriores.

O problema com a quickcam express é que ela não está mais funcionando com HUB USB.
Pelo menos é o que ocorreu aqui no meu PC.
Costumava colocar na entrada usb da multi leitora de cartões na parte frontal do PC.
Pois é... não funciona mais nas novas versões de kernel do linux.

Simplesmente faça o seguinte, ligue a câmera diretamente numa porta USB do micro, sem HUB.
Ou seja, ligue atrás do PC que alguma das portas certamente será direta, sem HUB.

ID 046d:0840 Logitech, Inc. QuickCam Express

Referências:
http://forums.quickcamteam.net/showthread.php?tid=1027

Abraço,
boladegude.
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

(ícone monitor da sua câmera e outros)

Criei scripts que permitem que você determine comandos quando a webcam é inserida e quando é retirada.
Já tem comandos colocados para:
1) colocar um ícone na área de notifição quando a camera está inserida e retirar o ícone quando a camera é retirada
2) colocar um double buffer na quickcam, para cheese e outros
3) desativar o debug da quickcam para não ficar listando lost frames

Você pode colocar outros comandos.
Observe que minha câmera em específico está em /dev/video1
Mude isso no script comandos_quickcam_in.sh se não for o seu caso.

[bug corrigido]
Para instalá-los apenas baixe o arquivo scripts quickcam express.zip no link...
[ versão corrigida no post #10 ]
http://www.divshare.com/download/14044003-f78
... descompacte o arquivo, siga as instruções e reinicie a máquina.
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

Espere aí...

Tem um bug no ícone monitor da camera...
Se reinicia apenas a sessão perde-se o ícone...
Vou ver se dá pra contornar!
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

bug contornado, faça download em...
[ versão corrigida no post #10 ]
http://www.divshare.com/download/14044003-f78
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

#7
Não tinha percebido que na regra
91-quickcam_usuario.rules
KERNEL=="video1" ou
KERNEL=="video0"
também tem que ser ajustado de acordo com seu sistema.

De qualquer forma KERNEL não é o parâmetro mais correto para identificar o dispositivo a ser usado.
Vou colocar o link de um novo script para monitor da webcam com os parâmetros mais corretos.
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

Infromação importante...

O driver gspca nativo do ubuntu lucid fica com uma qualidade
de imagem bastante ruim e tremida [Editado: solução no post #12].
E o driver qc-usb tem uma qualidade de imagem muito melhor e é mais estável.

Mas

1) qc-usb é v4l1 e funciona com camorama, cheese, xawtv, e Ekiga
   No entanto não funciona com Skype nem Gmail video chat
   o que deixa esse driver com pouca utilidade.

2) gspca é v4l2 e não funciona com xawtv e camorama
   Mas funciona com Skype, Gmail video chat, Ekiga e cheese
   o que deixa o driver bastante útil apesar da qualidade muito ruim. [Editado: solucionado no post #12]

Estou pesquisando um patch existente para melhorar a qualidade do gspca, se der jogo posto como fazer aqui.
[Editado: resolvido no post #12]
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

platao

\\\\\\\\Apostilas Dicas e Guias do Ubuntu\\\\\\\\\> http://ubuntuforum-br.org/index.php/topic,79368.msg440997.html#msg440997

boladegude

#10
obrigado platao!

[ Editado 20/05/2012:
Há uma versão destes scripts para Ubuntu 12.04 Precise Pangolin no post #17
]

(ícone monitor da sua câmera e outros - versão corrigida)

[os scrpipts deste post (#10) são para Ubuntu 10.04]
Criei scripts que permitem que você determine comandos quando a webcam é inserida e quando é retirada.
Resolvem também o conflito gerado pela troca entre /dev/video0 e /dev/video1 nas várias inicializações do Ubuntu. Resolvido renomeando estes dispositivos para /dev/camera e /dev/tv

Ainda tem comandos colocados para:
1) colocar um ícone na área de notifição quando a camera está inserida e retirar o ícone quando a camera é retirada
2) colocar um double buffer na quickcam, para cheese e outros
3) desativar o debug da quickcam para não ficar listando lost frames

Você pode colocar outros comandos.

Quanto aos itens 2 e 3), se você utilizar o driver gspca ao invés de quickcam eles apenas não terão efeito.
Pode deixar os comandos lá para quando você utilizar o driver quickcam, mas convém comentá-los (#).

baixe os scripts do link...
http://www.divshare.com/download/24671880-d2b

agora acho que está tudo ok, mas qualquer problema postem aí.

[
errata:
(para downloads antes de 04/05/2011)
Vá na pasta ~/bin e edite o script show_webcam_on
Na linha 17 substitua...
 exec 3> >(zenity --notification --window-icon=bin/cameramonitor.xpm --text="Webcam ON!" --listen)
por...
 exec 3> >(zenity --notification --window-icon=$HOME/bin/cameramonitor.xpm --text="Webcam ON!" --listen)
(sem essa correção o ícone na área de notificação aparece como um "i")
]

[ Editado:
Vá na pasta ~/bin , edite o script show_webcam_on
e substitua todas as ocorrências de sleep 3 por sleep 5 para economizar CPU.
]

[ Editado (01/2012):
No script...
75-quickcam_usuario.rules
...verifique com o comando...
udevadm info -a -p $(udevadm info -q path -n /dev/videoN)
... quais os parâmetros corretos para...
ATTRS{idVendor}
ATTRS{idProduct}
conforme está em [Editado 21/10/2013] abaixo no post.
Esses parâmetros do barramento PCI não são adequados pois podem variar:
ATTRS{vendor}
ATTRS{device}


E no script...
91-quickcam_usuario.rules
sudo udevadm info --query=env --name='/dev/seu_dispositivo'
... para saber a variável para colocar em ENV

]

[ Editado:
Para quem seguiu o link a partir do 'Tutorial Instalação PlayTV PVR e Controle Remoto':
Em
75-quickcam_usuario.rules
Substitua...
#KERNEL=="video*", SUBSYSTEM=="video4linux", ATTR{name}=="cx88*", ATTRS{vendor}=="0x14f1", ATTRS{device}=="0x8800", SYMLINK+="tv"
...por...
KERNEL=="video*", SUBSYSTEM=="video4linux", ATTR{name}=="cx88*", ATTRS{vendor}=="0x14f1", ATTRS{device}=="0x8800", SYMLINK+="tv"
]

[ de reboot após instalar tudo ]



[ Editado 21/10/2013:

Ocorreu que o número do {device} do PCI mudou de 0x4397 para 0x4396.
Então não é um parâmetro bom para usar pois muda de tempos em tempos.

1)
Na regra que cria o link simbólico chamado "camera", substituí o parâmetro {device} e {vendor} do PCI, que são variáveis, pelos ids da câmera que são absolutamente invariáveis, assim...
script 75-quickcam_usuario.rules:
# essa é a regra da webcam
KERNEL=="video*", SUBSYSTEM=="video4linux", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0840", SYMLINK+="camera"

(Note que têm que ser os ids da câmera e não do host controller)

2)
Na regra que coloca e retira o ícone da câmera no painel de controle, quando ela é inserida ou retirada, os ids da câmera não funcionaram, pois ao retirar a câmera o ícone não é retirado do painel de controle.
A solução que achei foi colocar apenas o ENV que já diz que é a "Logitech QuickCam USB".
Depois na ACTION apenas o KERNEL=="video*"
E evitei também aqui colocar o parâmetro {vendor} e {device} do PCI, pois pelo menos o {device} se modifica de tempos em tempos. A regra ficou assim...
script 91-quickcam_usuario.rules:
ENV{ID_V4L_PRODUCT}=="Logitech QuickCam USB"
ACTION=="add", KERNEL=="video*", RUN+="/bin/bash -c '/usr/local/bin/comandos_quickcam_in.sh'"
ACTION=="remove", KERNEL=="video*", RUN+="/bin/bash -c '/usr/local/bin/comandos_quickcam_out.sh'"

Agora sim esse modelo de regra está bem consistente.
E você pode usar esse modelo para controlar a inserção remoção de outras câmeras também, da mesma forma.
Testei com uma Multilaser e funcionou perfeitamente utilizando o mesmo esquema mostrado aqui em 1) e 2).

]


Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

#11
[correção]

Para downloads do post anterior antes de 06/04/2011

no script show_webcam_on_init que é colocado na pasta ~/bin
Substitua na linha 27...
 zenity --error --text="show_capture_init -\nFalha ao finalizar os\nprocessos show_capture" &
por
 zenity --error --text="show_webcam_on_init -\nFalha ao finalizar os\nprocessos show_webcam_on" &

Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

#12
[Solução para Quickcam Express muito escura no Skype]

[Solution for Quickcam too dark in Skype]
[keywords: webcam too dark, trembling,  Skype, gspca]

Como mencionei no post #8, eu ia pesquisar um patch para o problema da Quickcam Express
ficar muito escura e tremer com o driver gspca, notadamente no Skype.
Acabei por fazer algo melhor.
Criei um pequeno programinha em C que resolve o problema da imagem escura, especialmente no caso da Quickcam Express.
Encontrei um programa na web que aumentava a exposição da webcam clareando a imagem.
O problema é que esse programa não adiantava para a Quickcam Express, pois ela está configurada para autoganho (autogain) no driver gspca, de forma que a exposição escurecia automaticamente de novo, tão logo a camera era ligada.
Então criei um novo programa, que 1) aumenta a exposição 2) desabilita o autoganho, possibilitando assim que a imagem permaneça clara.
De quebra, a imagem para de tremer também. Porque ela tremia devido ao autoganho.

Faça download do programa set_exposure_no_autogain.c.zip deste link...
http://www.divshare.com/download/14920762-05a
... descompacte e abra o programa, sem alterar, para ler as instruções
que estão escritas no cabeçalho do programa.

As instruções estão repetidas aqui por comodidade:

Instale o pacote libv4l-dev pelo synaptic.
(Apenas se necessário) instale o pacote build-essential pelo synaptic.

Compile desta forma:
gcc set_exposure_no_autogain.c -lv4l2 -o set_exposure_no_autogain

Testado apenas no Ubuntu 10.04
Utilização:
No meu sistema eu configurei a Quickcam Express assim...
./set_exposure_no_autogain /dev/camera 60
... e a imagem ficou bem clara!
(como as paredes aqui são brancas, o branco ficou muito explodido,
com sol então é necessário baixar o valor para 30 ou menos).
[Observe que fiz um programa bem simples apenas para resolver o problema.
Você pode alterar o programa C para melhorá-lo, colocando outros parâmetros
mais sofisticados]

Mais um exemplo de utilização para uma webcam hipotética...
./set_exposure_no_autogain /dev/video0 2000

Você tem que rodar esse programa novamente toda vez que reiniciar o computador
ou sempre que retirar e inserir a camera novamente.

Você pode ajeitar isso editando /etc/rc.local. [editado: veja post #14]
Ou colocando um atalho para o programa no script chamado por udev quando a camera é inserida.
Para fazer isso faça o download no post #10 e siga as instruções para rodar o comando toda vez
que a camera é inserida.
Além disso, o valor pode ser modificado mesmo quando a webcam está ligada.

Disclaimer:
Use com cuidado. Valores de exposição e ganho muito altos podem danificar sua webcam.
O autoganho tem um certo nivel de proteção para o sensor da webcam.
Não aponte a webcam para uma janela ou fonte de luz muito forte.
Este software é distribuido SEM NENHUMA GARANTIA.

Referências:
http://v4l2spec.bytesex.org/spec/x542.htm
http://packages.ubuntu.com/source/lucid/v4l2ucp
http://ubuntuforums.org/showthread.php?t=950799&page=2
http://www.mail-archive.com/linux-media@vger.kernel.org/msg10664.html

[Editado: para downloads antes de 28/04/2011
Os seguintes includes são desnecessários para este programa C e podem ser removidos...
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <linux/types.h>
#include <libv4l2.h> (coloque de volta este include) 01/05/2011
(Only if needed) Install build-essential package by synaptic.
fim Editado]

[Editado: para ver a faixa de valores de exposure para sua webcam específica instale o programa guvcview. ]
Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

[Solved] Webcam doesn't work anymore in Skype after new version (2.2.0.25)
keywords: webcam, no image, skype, quickcam express.

Ao atualizar para versão 2.2.0.25 o SkypeWrapper é removido.
Por isso o skype não funciona mais com algumas webcams.

Para resolver isso crie um wrapper a mão, assim:

1)
Crie a pasta ~/bin se já não existir.
De reboot no computador.

2)
Edite um novo documento no gedit e digite esse script dentro:

#!/bin/bash
export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so
## export XLIB_SKIP_ARGB_VISUALS=1 (olá, o Skype só parou de sumir aleatoriamente depois que comentei essa linha)
skype &

3)
Salve o que você recém editou com o nome de skype-wrapper na pasta ~/bin e depois vá nessa pasta, clique com o botão direito do mouse em cima do script skype-wrapper, propriedades, vá na aba permissões e dê permissão para execução.

4)
Agora vá em Sistema > Preferências > Menu principal.
Vá em Menus: Aplicativos > Internet.
Clique em Skype e abra as Propriedades.
Em Comando: substitua skype por skype-wrapper.

5)
Digite skype-wrapper no campo "Comando:" em qualquer menu que utilize para chamar o skype (painel de controle, por exemplo).
Se quiser chamar o skype pela linha de comando, também, digite skype-wrapper.

Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.

boladegude

#14
Citação de: boladegude online 24 de Abril de 2011, 10:08
[Solução para Quickcam Express muito escura no Skype]

[Solution for Quickcam too dark in Skype]

...

Você tem que rodar esse programa novamente toda vez que reiniciar o computador
ou sempre que retirar e inserir a camera novamente.

Você pode ajeitar isso editando /etc/rc.local.
Ou colocando um atalho para o programa no script chamado por udev quando a camera é inserida.
Para fazer isso faça o download no post #10 e siga as instruções para rodar o comando toda vez
que a camera é inserida.

...


Aqui na minha máquina Ubuntu o comando para configurar a exposição da webcam
não funcionou ao iniciar o computador, nem em /etc/rc.local, nem chamado por udev rules.
Ou seja, o comando não funciona antes que a sessão do X inicie.

Tive que colocar o comando para configurar a exposição em...
Sistema > Preferências > Aplicativos de sessão
Nome:         webcam exposure
Comando:    set_exposure_no_autogain /dev/camera 60
Comentário: configura a exposição da webcam

No entanto deixe o comando em udev rules para quando você
retirar a webcam e inseri-la novamente durante a sessão do X, assim...

Coloque o comando
set_exposure_no_autogain /dev/camera 60
no script comandos_quickcam_in.sh  (veja no post #10)
que fica na pasta /usr/local/bin
e coloque o programa
set_exposure_no_autogain
também na pasta /usr/local/bin

Become an Ubuntu user. Don't just use it as a virtual machine.
If you have some space in your HD then dual boot it with Windows or Mac.
It's a fine system. You shall be willing to study a little, but is worth your effort.