Artigos Recentes

My Twitter


    « 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:

    jansen@scadufax:~$ lsusb | grep 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 |

    16 Responses to “Problemas com webcam Syntek no Ubuntu 9.04.”

    1. Hamilton Says:
      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

    2. admin Says:
      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

    3. Hamilton Says:
      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

    4. Osmario Avila Says:
      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

    5. andrius Says:
      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???

    6. admin Says:
      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

    7. admin Says:
      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

    8. Clei Says:
      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.

    9. J. Says:
      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

    10. admin Says:
      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

    11. admin Says:
      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

    12. Luis Says:
      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

    13. Luis Says:
      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

    14. Luis Says:
      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.

    15. admin Says:
      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

    16. admin Says:
      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

    Comments