« Criptografia rápida com o GPG. | Main | Site de Rubens Barrichello foi invadido e pichado! »
Problemas com webcam Syntek no Ubuntu 9.04.
By admin | Abril 26, 2009
Assim que adquiri meu laptop atual, um Asus F9S, fiquei algum tempo sem poder utilizar a webcam integrada. Estava começando a ministrar um treinamento de segurança de redes com mais de 120 horas e, como o dispositivo não funcionou imediatamente após a instalação do sistema operacional, o Ubuntu Linux 7.10 na época, acabei deixando pra depois. Passadas algumas semanas, descobri um driver, ainda em desenvolvimento, o stk11xx, que a fez funcionar perfeitamente.
Aqui está a identificação da webcam Syntek:
Bus 002 Device 003: ID 174f:6a33 Syntek Web Cam - Asus F3SA, F9J, F9S
Com o Ubuntu Linux 8.04 tudo passou a funcionar "out of the box", sem sequer necessitar da compilação do driver stk11xx. No Ubuntu Linux 8.10, uma nova surpresa: o dispositivo não funcionou após a instalação do sistema operacional. Entretanto, mesmo que essa situação fosse incômoda e representasse uma "volta no tempo", a simples compilação do stk11xx foi suficiente para dar vida, novamente, à minha webcam.
Acabei de instalar o Ubuntu Linux 9.04, liberado no dia 23 de abril de 2009 e uma nova surpresa: o dispositivo não estava funcionando novamente logo após a instalação do sistema.
Sem pestanejar, fui ao site do stk11xx e procurei pela versão mais atual do driver, a 2.0. Na primeira tentativa de compilá-lo, uma notícia ruim: essa versão do driver é voltada para o kernel 2.6.29 e o Ubuntu 9.04 (Jaunty Jackalope) utiliza, atualmente, o 2.6.28-11. Tentei então utilizar a versão 1.4.0, última antes da 2.0. O processo de compilação foi simples e além de pacotes como gcc, make e build-essential, precisei apenas instalar o ctags. Tudo utilizando o apt-get, obviamente. Feito isso, foi suficiente descompactar o arquivo "tar.gz" e compilar o driver:
root@scadufax:/usr/local/src# tar -xzvf stk11xx-1.4.0.tar.gz
root@scadufax:/usr/local/src# cd stk11xx-1.4.0
root@scadufax:/usr/local/src/stk11xx-1.4.0# make -f Makefile.standalone
Terminada a compilação, que durou apenas alguns poucos segundos, carreguei o módulo de kernel recém gerado:
root@scadufax:/usr/local/src/stk11xx-1.4.0# depmod -a
root@scadufax:/usr/local/src/stk11xx-1.4.0# modprobe stkwebcam
root@scadufax:/usr/local/src/stk11xx-1.4.0# insmod -f stk11xx.ko
Tentei utilizar dois ou três aplicativos para testar e… má notícia: a webcam não estava funcionando. Passados alguns minutos dedicados em buscas em fóruns, encontrei outro problema: o Ubuntu Linux 9.04, em sua instalação, não está incluindo o usuário criado durante a própria instalação no grupo "video". Era exatamente por conta disso que, após a inserção do driver, nenhum aplicativo estava conseguindo utilizá-la. Para resolver, basta inserir o seu usuário nesse grupo e , depois, reiniciar sua sessão:
jansen@scadufax:/home/jansen$ sudo addgroup jansen video
Passado o susto, estou por aqui com o Ubuntu Linux 9.04 instalado e minha câmera interna funcionando perfeitamente. Que boas notícias e menos surpresas venham nas próximas versões…
Existe uma discussão interessante sobre o tema AQUI (em inglês).
Topics: Dicas e truques |
Maio 11th, 2009 at 8:40 pm
Ola Jansen ..
Uso aki no meu Asus F9S uma fork do ubuntu ( Linuxmint Gloria 7 ) baseado 100% no jaunty 2.6.28-11 ..
Tudo funciona perfeitamente , essa distro é linda .. MAS … webcam naum rolou …Gostaria que vc , se possivel , publicasse os comandos passo a passo para instalar pacotes como gcc, make e build-essential e o ctags. Desci aki o stk11xx1.4 desconpactei , mas naum deu certo a compilação ..
Minha webcam ( ID 174f:6a33 Syntek Web Cam - Asus F3SA, F9J, F9S ) naum ta funcionando ..
Me ajude ,
obrigado adiantado ..
Hamilton
Maio 11th, 2009 at 9:02 pm
Olá Hamilton,
para instalar o gcc, o make, o build-essential e o ctags, você pode executar o seguinte comando com o seu computador conectado à Internet:
$ sudo apt-get install gcc make build-essential ctags
O comando irá pedir sua senha para poder executar com privilégios do super-usuário (root). Sendo sua distro baseada no Ubuntu Linux, esse comando deve obter esses pacotes nos repositórios e instalá-los em sua máquina.
Em seguida, tente seguir os passos que descrevi, ok?
Espero que você consiga sucesso…
Saudações,
Jansen
Maio 14th, 2009 at 3:49 pm
desculpe pela insistencia , mas ão compilou não …
deu esse erro , e agora ?
linuxmint@Mint-Asus /usr/local/src $ sudo tar -xzvf stk11xx-1.4.0.tar.gz
stk11xx-1.4.0/
stk11xx-1.4.0/stk11xx.txt
stk11xx-1.4.0/Makefile
stk11xx-1.4.0/Kbuild
stk11xx-1.4.0/README
stk11xx-1.4.0/Makefile.standalone
stk11xx-1.4.0/stk11xx.h
stk11xx-1.4.0/doxygen.cfg
stk11xx-1.4.0/stk11xx-buf.c
stk11xx-1.4.0/stk11xx-dev.c
stk11xx-1.4.0/stk11xx-dev.h
stk11xx-1.4.0/Kconfig
stk11xx-1.4.0/stk11xx-v4l.c
stk11xx-1.4.0/stk11xx-usb.c
stk11xx-1.4.0/stk11xx-dev-6a31.c
stk11xx-1.4.0/stk11xx-dev-6a33.c
stk11xx-1.4.0/stk11xx-dev-6a51.c
stk11xx-1.4.0/stk11xx-dev-6a54.c
stk11xx-1.4.0/stk11xx-dev-6d51.c
stk11xx-1.4.0/stk11xx-sysfs.c
stk11xx-1.4.0/stk11xx-bayer.c
stk11xx-1.4.0/stk11xx-dev-a311.c
stk11xx-1.4.0/stk11xx-dev-a821.c
linuxmint@Mint-Asus /usr/local/src $ ls
stk11xx-1.4.0 stk11xx-1.4.0.tar.gz
linuxmint@Mint-Asus /usr/local/src $ cd /usr/local/src/stk11xx-1.4.0
linuxmint@Mint-Asus /usr/local/src/stk11xx-1.4.0 $ sudo make -f Makefile.standalone
make -C /lib/modules/2.6.28-11-generic/build SUBDIRS= modules
make[1]: Entrando no diretório `/usr/src/linux-headers-2.6.28-11-generic’
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
make[2]: *** Sem regra para processar o alvo `kernel/bounds.c’, necessário por `kernel/bounds.s’. Pare.
make[1]: ** [prepare0] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-headers-2.6.28-11-generic’
make: ** [driver] Erro 2
linuxmint@Mint-Asus /usr/local/src/stk11xx-1.4.0 $
Hamilton
Maio 19th, 2009 at 10:18 pm
Gostaria de usar minha webcam para conversar com imagem em programas como o aMSN. Nunca consegui nas versões até 8.10. Agora instalei a 9.04 do Ubuntu mas não estou conseguindo. Minha webcam é LG. Você já tentou fazer com a sua?
grato
Junho 2nd, 2009 at 4:08 pm
está ocorrendo o seguinte erro!
andrius@andrius-laptop:~$ cd stk11xx-1.4.0
andrius@andrius-laptop:~/stk11xx-1.4.0$ sudo depmod -a
andrius@andrius-laptop:~/stk11xx-1.4.0$ sudo modprobe stkwebcam
[b]andrius@andrius-laptop:~/stk11xx-1.4.0$ sudo insmod -f stk11xx.ko
insmod: can’t read ’stk11xx.ko’: No such file or directory
andrius@andrius-laptop:~/stk11xx-1.4.0$ [/b]
não existe esse arquivo na pasta
vc pode ajudar???
Junho 3rd, 2009 at 9:57 pm
Olá Hamilton,
você instalou os headers do seu kernel para compilar o driver? Acho que você não deve ter o pacote que contém os headers. Caso você, de fato, não o tenha, é só executar o seguinte:
$ sudo apt-get install linux-headers-$(uname -r)
Depois, tente compilar novamente o driver da webcam.
[]’s
Jansen
Junho 3rd, 2009 at 9:58 pm
Andreus,
você compilou o driver? Não vi em sua mensagem a referência à execução do seguinte comando:
make -f Makefile.standalone
Espero que seja apenas isso para você ter acesso na compilação do driver.
Abraço,
Jansen
Novembro 18th, 2009 at 10:07 am
Cara, na versão 9.10 karmic koala, eu compilei (com insmod -f stk11xx.ko), abri um programa e funcionou normalmente, nem precisou adicionar o meu nome de usuário no grupo de vídeo. Antes que me pergunte, o módulo do meu syntek é (Bus 001 Device 003: ID 174f:5237 Syntek). E tou usando a última versão do driver (2.1.0) Brigadão.
Janeiro 8th, 2010 at 11:37 am
Eu estou a usar o linuxmint 8 64-bit, tentei seguir os passos indicados mas obtive o seguinte erro:
make -C /lib/modules/2.6.31-14-generic/build SUBDIRS=/usr/local/src/stk11xx-2.1.0 modules
make[1]: Entrando no diretório `/usr/src/linux-headers-2.6.31-14-generic’
CC [M] /usr/local/src/stk11xx-2.1.0/stk11xx-v4l.o
/usr/local/src/stk11xx-2.1.0/stk11xx-v4l.c:1737: error: unknown field ‘compat_ioctl’ specified in initializer
/usr/local/src/stk11xx-2.1.0/stk11xx-v4l.c:1737: error: ‘v4l_compat_ioctl32’ undeclared here (not in a function)
make[2]: ** [/usr/local/src/stk11xx-2.1.0/stk11xx-v4l.o] Erro 1
make[1]: ** [_module_/usr/local/src/stk11xx-2.1.0] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-headers-2.6.31-14-generic’
Poderá ter a ver com o facto de ser uma versão de 64 bit?
Obrigado
Luís
Janeiro 8th, 2010 at 7:30 pm
Olá Luis,
de fato o problema aparenta ter alguma relação com a questão da sua plataforma estar utilizando código 64 bits. Procurando por esse erro na Internet, pude verificar comentários nesse sentido. Entretanto, por não ter uma plataforma semelhante, não consigo lhe dar uma orientação mais precisa.
De qualquer maneira, caso você encontre uma solução, poste aqui na parte de comentários para ajudar outras pessoas que estejam com o mesmo problema.
Encontrando algo, publicarei por aqui, certo?
Saudações livres!
Jansen
Janeiro 8th, 2010 at 7:32 pm
A propósito, Luis, você tem a bilbioteca libv4l instalada em seu sistema? Eu procurei nos repositórios do Ubuntu, por exemplo, e ela aparece como disponível para instalação.
Caso negativo, experimente instalá-la e, em seguida, compilar o código do driver novamente.
Abraço,
Jansen Sena
Janeiro 9th, 2010 at 10:21 am
Obrigado pela resposta.
De facto tenho essas bibliotecas instaladas, quer a libv4l quer lib32v4l.
Eu vou continuar a procurar alguma solução para este problema partilharei com certeza.
Abraço
Janeiro 9th, 2010 at 11:11 am
Entretanto arranjei uma solução que deixou a webcam a funcionar. Talvez não a mais simples.
Tive que editar o código do ficheiro stk11xx-v4l.c
Acho que o problema reside na definição da estrutura e de uma das variáveis. Assim tive que trocar a linha que tem
.compat_ioctl = v4l_compat_ioctl32,
por,
.unlocked_ioctl = v4l2_compat_ioctl32,
Abraço
Janeiro 9th, 2010 at 11:23 am
Remover o idfef onde essa linha se encontra também permite ter a câmara a funcionar. Não sei qual o risco de retirar mas a primeira solução também não me parece totalmente segura.
Janeiro 9th, 2010 at 3:23 pm
Ok, Luis. Meus parabéns por ter resolvido o problema e meus agradecimentos por ter compartilhado sua solução por aqui. Tenho certeza de que isso ajduará outros usuários a resolverem o problema.
Saudações livres!
Jansen
Fevereiro 21st, 2010 at 7:25 pm
Olá Luis. Tentei utilizar suas dicas em um computador com o Ubuntu 9.10 (x86_64) instalado. Entretanto, se compilar trocando a linha “.compat_ioctl = v4l_compat_ioctl32,” por “.unlocked_ioctl = v4l2_compat_ioctl32,” o sistema operacional trava após a inserção do módulo.
Se tentar compilar o módulo removendo completamente o “ifdef” que contém a definição de “.compat_ioctl = v4l_compat_ioctl32,”, tudo funciona perfeitamente.
Abraço,
Jansen