martes, 13 de octubre de 2015

Instalación de WebCam USB para Openwrt Chaos Calmer

He movido los trastos

A: http://www.ipv6labs.es

Allí hay mucho más, que te puede ser útil

Puedes seguir esta entrada en:

http://www.ipv6labs.es
     Aunque ya lo tenía previsto, hoy me ha solicitado jj JJ que explique la manera de instalar una webcam usb a nuestro Openwrt.

     Lo primero que debemos hacer es comprobar que tenemos el soporte mínimo correspondiente, (en mis compilaciones si las tienes), buscando entre los mensajes de kernel al inicio encontramos:


#dmesg | less
[ 9.496000] usbcore: registered new interface driver usbfs
[ 9.500000] usbcore: registered new interface driver hub
[ 9.508000] usbcore: registered new device driver usb
[ 9.760000] SCSI subsystem initialized
[ 9.780000]
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 9.792000] ehci-platform: EHCI generic platform driver
[ 9.796000] ehci-platform ehci-platform: EHCI Host Controller
[ 9.804000] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[ 9.812000] ehci-platform ehci-platform: irq 18, io mem 0xfffe1300
[ 9.828000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00, overcurrent ignored
[ 9.836000] hub 1-0:1.0: USB hub found
[ 9.840000] hub 1-0:1.0: 2 ports detected
[ 9.856000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 9.864000] ohci-platform: OHCI generic platform driver
[ 9.868000] ohci-platform ohci-platform: Generic Platform OHCI controller
[ 9.876000] ohci-platform ohci-platform: new USB bus registered, assigned bus number 2
[ 9.884000] ohci-platform ohci-platform: irq 13, io mem 0xfffe1400
[ 9.952000] hub 2-0:1.0: USB hub found
[ 9.956000] hub 2-0:1.0: 2 ports detected
[ 9.968000] uhci_hcd: USB Universal Host Controller Interface driver
[ 9.984000] usbcore: registered new interface driver usb-storage
[ 10.164000] usb 1-1: new high-speed USB device number 2 using ehci-platform
[ 10.300000] hub 1-1:1.0: USB hub found
[ 10.304000] hub 1-1:1.0: 2 ports detected
     Tenemos soporte de EHCI y OHCI para USB.

     Insertamos nuestra webcam y vemos que nos dice openwrt:
#dmesg
43.724000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 51.820000] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 456.052000]
usb 1-1.1: new high-speed USB device number 3 using ehci-platform
     Bien, hemos conectado en realidad una Webcam de la marca Trust, modelo Megapixel USB2 Webcam Live, Item number:15007, pero vamos a comprobar que reconoce nuestro OpenWRT:
#lsusb
root@OpenWrt:~# lsusb
Bus 001 Device 003: ID 0c45:624e Microdia PC Camera (SN9C201 + SOI968)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0424:2502 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bien, ya tenemos con lo que empezar a trabajar, Openwrt nos a detectado:
Bus 001 Device 003:
ID 0c45:624e Microdia PC Camera (SN9C201 + SOI968)
     Nos detecta realmente su chip interno, así que vamos a comprobar a través de su ID, el driver que corresponde, desde esta lista:
      https://www.kernel.org/doc/Documentation/video4linux/gspca.txt

     En nuestro caso:
sn9c20x 0c45:624e PC Camera (SN9C201 + SOI968)

     En el caso de nuestro amigo jjJJ:
spca561 046d:092e Logitech QC Elch2

     Vamos a instalar los drivers correspondientes a nuestra cam:
# opkg update
# opkg install kmod-video-core kmod-video-gspca-sn9c20x
     En el caso de jjJJ:
# opkg update
# opkg install kmod-video-core kmod-video-gspca-spca561
     Vamos a comprobar nuestra cam:
#dmesg
[ 2587.760000] i2c /dev entries driver
[ 2588.044000] Linux video capture interface: v2.00
[ 2588.448000] gspca_main: v2.14.0 registered
[ 2588.656000] gspca_main: gspca_sn9c20x-2.14.0 probing 0c45:624e
[ 2589.404000] gspca_sn9c20x: SOI968 sensor detected
[ 2589.408000] input: gspca_sn9c20x as /devices/platform/ehci-platform/usb1/1-1/1-1.1/input/input0
[ 2589.420000] usbcore: registered new interface driver gspca_sn9c20x
     Una vez instalado el driver y reconocida nuestra cámara, ya podemos instalar el sofware de captura de nuestra elección, ya sea mjpg-streamer o el famoso motion.

     Espero os sirva de ayuda.


21 comentarios:

Unknown dijo...

Gracias didac por tu gran ayuda... Ahora tengo una duda... Como se le asigna un puerto al dispositivo para entrar desde el navegador o VLC..

Gracias..
Gran trabajo... No tengo muy claro de cómo se hace....
El imaginó que son retos que te pones....

Didac dijo...

Hola jjJJ!

Por ejemplo, al instalar motion en nuestro OpenWrt, se le asignan dos puertos IP, en mi caso 8888 para control y configuración, y otro puerto el 8001 para visualización.

Como la IP de mi OpenWrt es la 192.168.1.2, solamente tengo que abrir un explorador apuntando a http://192.168.1.2:8001 y sale una página web mostrando el streaming de la cámara, de la misma manera, si lo haces desde VLC, des menu medio -->abrir ubicación de red --> http://192.168.1.2:8001 y voilà, ya tienes tu cámara ip sobre VLC, ademas, tendrías una página de control en el puerto 8888 para correguir y mejorar la imagen en casi real-time.

Si no te aclaras con la config de motion, házmelo saber, y puedo hacer una entrada explicándolo.

Espero te sea de ayuda, y ánimo.

Didac

Rubencito. dijo...

Hola, hay posibilidad de hacer lo mismo con un Eye Toy de una PS3.
Las veces que intenté conectarlo a un portatil con windows 8.1, no me dejaba ni de broma.

Saludos.

Unknown dijo...

motion, que tiene muchas más funcionalidades

root@OpenWrt:~# opkg update; opkg install motion
root@OpenWrt:~# mkdir -p /mnt/snapshot
Configuramos el programa:

root@OpenWrt:~# nano /etc/motion/motion.conf

#Solo toco estos parámetros, el resto los quedo igual de momento:

daemon on
width 352
height 288
framerate 5
snapshot_interval 10
target_dir /mnt/snapshot
snapshot_filename %Y-%m-%d-%H:%M:%S-snapshot-%v
picture_filename %d%m%Y-%H%M%S-%q
stream_port 8081
stream_maxrate 5
stream_localhost off

Lo ejecutamos con:

root@OpenWrt:~# motion -c /etc/motion.conf

Si abrimos un navegador con http://ip-router:8081 veremos el flujo de vídeo de la cámara. Simultáneamente se graban 5 frames por segundo en /mnt/snapshot cuando la cámara detecte movimiento. Si no hay movimiento se grabará una imagen cada 10 segundos (llamada *snapshot.jpg). Esto tiene mejor pinta. Si queremos matar el proceso, que se está ejecutando como demonio, haremos

root@OpenWrt:~# killall motion



Didac esto lo recorte de una web... pero seguro que puedes mejorarlo...

Gracias...

Unknown dijo...


didac

motion.conf

como hacer que motion NO guarde las imagenes?

me llena la memoria del ruter y tengo que andar borrando manualmente...

Didac dijo...

Hola jj JJ:

Monta un usb que apunte a /mnt/snapshot aquí es donde grabará los snapshots.
Si tu compilación te lo permite por espacio, instala ffmpeg, que es el conversor a mpeg.
Recuerda, que el paquete motion, va a buscar su config por defecto al directorio /etc/motion, créalo y guarda allí tu motion.conf
Un fichero de ejemplo, descomprimelos y guárdalos en /etc/motion
https://mega.nz/#!EstmyIpA
Revisa puertos de hhtp, 8001 visualización y 8888 config, apunta snapshots a /mnt/penmotion.

Espero te sea de ayuda.

Didac.

Didac dijo...

Hola Rubencito:
El único proyecto que conozco que funcione la Eye Toy de PS3 en PC es:
https://codelaboratories.com/downloads/

En cuanto a openwrt, tengo entendido que responde al siguiente driver:
kmod-video-gspca-ov534 - 3.18.20-1 - The OV534 USB Camera Driver (ov534) kernel module
Por lo que haciendo:
# opkg install kmod-input-core kmod-video-gspca-core kmod-video-gspca-ov534

Debería funcionarte.

Espero tus noticias.

Didac.

Unknown dijo...

didac gracias por pronta respuesta....

He editado el config original del motion.conf y hace referencias a dvb-tuner... es posible añadir un usb-tdt2 a openWRT?

:p

Unknown dijo...

hola Didac... mira esto haber que se puede hacer...

http://www.mumudvb.net/node/36

Didac dijo...

Hola jj JJ!!

El paquete motion, debería ser el mismo en Debian que en OpenWrt, por lo que el soporte de dispositivos también.

Puede ser interesante, pero ten en cuenta, la memoría y CPU/SOC que utilice el router, tiene unas limitaciones evidentes.

En cuanto al enlace, lo primero que leo, es que solamente da soporte a Openwrt con kernel 2.6, con lo que en principio, sin más pruebas, solamente funcionaría con versiones antiguas de OpenWrt.

Espero haberte ayudado.

Didac.

Unknown dijo...

Gracias pronta respuesta....
La práctica de inyectar la cámara USB funciona bien tal como tu cuentas...aunque la cam es de baja calidad....


Tengo un wintv nova tdt USB que utilizo con hackinthos aquí aparcado ... Lo conecte al ruter y openwrt lo reconoce perfectamente ... Ahora no se como inyectarlo en kernel....para probar como va aunque en tu última compilación la flash esta muy justa para instalar más visitas... Pero siempre puedo recurrir a extroot.. . todo se andará ...

Unknown dijo...

A .. Que he vistto en la última compilación que bine preinstalado NODOGSPLASH.... fantástico... En la última ver. De este plugin para openwrt tenía el problema de control QoS en el fichero de configuración d NODOGSPLASH no administra el tema del control d ancho de banda dowload y upload para los usuariosi aquí no funcionaba...
Saludos.

Unknown dijo...

Didac... Aquí tengo algo:
https://github.com/openwrt/bcm63xx-next/blob/master/drivers/media/usb/dvb-usb/nova-t-usb2.cc

Esto supongo que hay que compilar junto con openwrt o no?

iluminanos.

Unknown dijo...

Didac:

Aquí un link q parece ser un script que auto instala todo lo necesario para muchos modelos de dvb-tv-usb en openwrt... Hechale un .... Si tienes tiempo...
https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg03946.html

Continuó ... Hasta que logre ver un canal d la tdt sin internet vía hg556a+openwrt por WiFi... Gracias de nuevo

Didac dijo...

Hola jjJJ!

El projecto es interesante, aunque no puedo seguirlo por que no tengo un usb-dvb.
Recuerda, que en ambas páginas hablan de versiones de Kernel 3.x y 2.6, que podrían ser incompatibles con la distribución actual.

En estos momentos estoy acabando el proyecto de bluetooth y holux 236 GPSlim, luego intentaré conseguir un usb-dbv a ver si tengo suerte.

Didac.

Unknown dijo...

Gracias... Por hechale un vistazo...
De todos modos sigo recopilando info....
Eso d bluetooch suena bueno...lo sigo igualmente...

Saludos

Unknown dijo...

Gracias... Por hechale un vistazo...
De todos modos sigo recopilando info....
Eso d bluetooch suena bueno...lo sigo igualmente...

Saludos

Unknown dijo...

Hola Didac
Más información:

Esta es muy buena:

http://eko.one.pl/?p=openwrt-dvb

Si crees que debes crear otro hilo sólo para este tema HG556a DVB-t2 es un buen momento....

Saludos

Didac dijo...

Hola jj JJ:

He mirado la página y por lo que veo, hace referencia a la versión OpenWrt Attitude Adjustment y a la plataforma ar71xx.
De todas maneras, he encontrado la página de MuMuDVB, que contiene todas las sources incluido los drivers.
A ver si hago un hueco, y compilaré una versión multidriver para DVB y ya de paso, explico como hacerlo.

Didac.

Unknown dijo...

esperó a esto que comentas....pero sigo buscando.
Que ya me pordria a compilarlo yo mismo.

Me pongo en stanby.

Didac dijo...

Hola jj JJ:
Ya he publicado nueva entrada con los drivers para DVB, Tuners y capturadoras de video para Chaos Calmer.

Espero te sea de ayuda.

Didac