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:
sn9c20x 0c45:624e PC Camera (SN9C201 + SOI968)
En el caso de nuestro amigo jjJJ:
spca561 046d:092e Logitech QC Elch2
# 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
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….
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
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.
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…
didac
motion.conf
como hacer que motion NO guarde las imagenes?
me llena la memoria del ruter y tengo que andar borrando manualmente…
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.
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.
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
hola Didac… mira esto haber que se puede hacer…
http://www.mumudvb.net/node/36
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.
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á …
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.
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.
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
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.
Gracias… Por hechale un vistazo…
De todos modos sigo recopilando info….
Eso d bluetooch suena bueno…lo sigo igualmente…
Saludos
Gracias… Por hechale un vistazo…
De todos modos sigo recopilando info….
Eso d bluetooch suena bueno…lo sigo igualmente…
Saludos
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
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.
esperó a esto que comentas….pero sigo buscando.
Que ya me pordria a compilarlo yo mismo.
Me pongo en stanby.
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
Hola Didac !! Lo primero gracias por compartir conocimientos. Quiero instalar una camara de fotos a modo de webcam, pero no consigo encontrar los drivers. Creo que el link que proporcionas, (https://www.kernel.org/doc/Documentation/video4linux/gspca.txt) no funciona..
Cuando escribo el comando lsusb me aparece lo siguiente:
root@OpenWrt:/# lsusb
Bus 001 Device 005: ID 04cb:0118 Fuji Photo Film Co., Ltd FinePix A303 Zoom (DSC)
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Necesito un poquito de ayuda ya que me quedo pillado al no poder encontrar el driver para esta cámara. Gracias de antemano !
Hola Sergio:
Lamento el retraso en la respuesta, como puedes imaginar estaba de vacaciones y sin cobertura de ningún tipo.
Por lo que me dices, este es el driver que necesitas:
Description
The Fujifilm FinePix USB V4L2 driver (finepix) kernel module.
Name
kmod-video-gspca-finepix
Depends
kmod-video-gspca-core
Espero te sea de ayuda.
ciao DIdac sono sempre io ti leggo sempre 😉
quale modulo richiede questa webcam?
Bus 001 Device 003: ID 1e4e:0102 Cubeternet GL-UPC822 UVC WebCam
ho fatto diverse ricerche ma nulla
Ciao Marco:
Bus 001 Dispositivo 003: ID 1e4e: 0102 Cubeternet GL-UPC822 UVC WebCam
Si tratta di una generica webcam USB 2.0, USB Video Class Driver.
autista:
kmod-video-UVC
Per catturare l’immagine mjpg-streamer
Per il controllo della luminosità, contrasto, uvcdynctrl
Test: v4l-utils
LEDE per HG-553, pacchetti e firmware.
Controlla il manifest, troverai anche il tema vpnc.
https://mega.nz/#F!4HYRDYYb!mRGoxNi3K-1v_F3iHCVMkQ
Un saluto:
Didac
ciao Didac
kmod-video-uvc è installato ho installato v4al-utils
ti posto qualcosa io non ci capisco granchè
root@R00ter:~# v4l2-compliance
Driver Info:
Driver name : uvcvideo
Card type : USB2.0 Camera
Bus info : usb-ehci-platform-2
Driver version: 4.9.120
Capabilities : 0x84200001
Video Capture
Streaming
Extended Pix Format
Device Capabilities
Device Caps : 0x04200001
Video Capture
Streaming
Extended Pix Format
Compliance test for device /dev/video0 (not using libv4l2):
Required ioctls:
test VIDIOC_QUERYCAP: OK
Allow for multiple opens:
test second video open: OK
test VIDIOC_QUERYCAP: OK
test VIDIOC_G/S_PRIORITY: OK
Debug ioctls:
test VIDIOC_DBG_G/S_REGISTER: OK (Not Supported)
test VIDIOC_LOG_STATUS: OK (Not Supported)
Input ioctls:
test VIDIOC_G/S_TUNER/ENUM_FREQ_BANDS: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_S_HW_FREQ_SEEK: OK (Not Supported)
test VIDIOC_ENUMAUDIO: OK (Not Supported)
fail: v4l2-test-input-output.cpp(445): could not set input to 0
test VIDIOC_G/S/ENUMINPUT: FAIL
test VIDIOC_G/S_AUDIO: OK (Not Supported)
Inputs: 0 Audio Inputs: 0 Tuners: 0
Output ioctls:
test VIDIOC_G/S_MODULATOR: OK (Not Supported)
test VIDIOC_G/S_FREQUENCY: OK (Not Supported)
test VIDIOC_ENUMAUDOUT: OK (Not Supported)
test VIDIOC_G/S/ENUMOUTPUT: OK (Not Supported)
test VIDIOC_G/S_AUDOUT: OK (Not Supported)
Outputs: 0 Audio Outputs: 0 Modulators: 0
Input/Output configuration ioctls:
test VIDIOC_ENUM/G/S/QUERY_STD: OK (Not Supported)
test VIDIOC_ENUM/G/S/QUERY_DV_TIMINGS: OK (Not Supported)
test VIDIOC_DV_TIMINGS_CAP: OK (Not Supported)
test VIDIOC_G/S_EDID: OK (Not Supported)
Control ioctls:
fail: v4l2-test-controls.cpp(212): missing control class for cla ss 00980000
fail: v4l2-test-controls.cpp(241): missing control class for cla ss 009a0000
test VIDIOC_QUERY_EXT_CTRL/QUERYMENU: FAIL
test VIDIOC_QUERYCTRL: OK
warn: v4l2-test-controls.cpp(421): s_ctrl returned EIO
warn: v4l2-test-controls.cpp(421): s_ctrl returned EIO
test VIDIOC_G/S_CTRL: OK
warn: v4l2-test-controls.cpp(662): s_ext_ctrls returned EIO
warn: v4l2-test-controls.cpp(662): s_ext_ctrls returned EIO
warn: v4l2-test-controls.cpp(684): g_ext_ctrls(0) invalid error_ idx 0
warn: v4l2-test-controls.cpp(729): s_ext_ctrls returned EIO
warn: v4l2-test-controls.cpp(742): error_idx should be equal to count
warn: v4l2-test-controls.cpp(760): error_idx should be equal to count
test VIDIOC_G/S/TRY_EXT_CTRLS: OK
test VIDIOC_(UN)SUBSCRIBE_EVENT/DQEVENT: OK
test VIDIOC_G/S_JPEGCOMP: OK (Not Supported)
Standard Controls: 12 Private Controls: 0
Format ioctls:
test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: OK
fail: v4l2-test-formats.cpp(1125): got error 16 when setting par ms for buftype 1
test VIDIOC_G/S_PARM: FAIL
test VIDIOC_G_FBUF: OK (Not Supported)
test VIDIOC_G_FMT: OK
test VIDIOC_TRY_FMT: OK
fail: v4l2-test-formats.cpp(418): expected EINVAL, but got 16 wh en getting format for buftype 1
fail: v4l2-test-formats.cpp(952): Video Capture is valid, but no S_FMT was implemented
test VIDIOC_S_FMT: FAIL
test VIDIOC_G_SLICED_VBI_CAP: OK (Not Supported)
test Cropping: OK (Not Supported)
test Composing: OK (Not Supported)
fail: v4l2-test-formats.cpp(1406): doioctl(node, VIDIOC_S_FMT, & fmt)
fail: v4l2-test-formats.cpp(1503): doioctl(node, VIDIOC_S_FMT, & fmt)
test Scaling: FAIL
Codec ioctls:
test VIDIOC_(TRY_)ENCODER_CMD: OK (Not Supported)
test VIDIOC_G_ENC_INDEX: OK (Not Supported)
test VIDIOC_(TRY_)DECODER_CMD: OK (Not Supported)
Buffer ioctls:
fail: v4l2-test-buffers.cpp(446): ret && ret != EINVAL
test VIDIOC_REQBUFS/CREATE_BUFS/QUERYBUF: FAIL
fail: v4l2-test-buffers.cpp(571): q.has_expbuf(node)
test VIDIOC_EXPBUF: FAIL
Test input 0:
Total: 42, Succeeded: 35, Failed: 7, Warnings: 8
Ciao Marco:
Lo guardo per vedere se posso fare qualsiasi cosa, ma in ogni caso, dai un’occhiata alla MAN di v4l2-compliance.
https://www.mankier.com/1/v4l2-compliance
Didac.