Aller au contenu

Webcam Usb Sous Dsm5 - Cedarview


catimimi

Messages recommandés

Bonjour,

On vient de me demander comment j'avais fait pour cross-compiler. Je vous donne les détails ci-dessous.

1° - récupérer la "Tool chain" : http://sourceforge.net/projects/dsgpl/files/DSM%205.0%20Tool%20Chains/Intel%20x86%20Linux%203.2.40%20%28Cedarview%29/gcc473_glibc217_x86_64_cedarview-GPL.tgz/download , en ce qui me concerne.

2° - récupérer les sources du noyau : http://sourceforge.net/projects/dsgpl/files/Synology%20NAS%20GPL%20Source/4458branch/synogpl-4458-cedarview.tbz/download en ce qui me concerne.

3° - récupérer le mode d'emploi : http://ukdl.synology.com/download/Document/DeveloperGuide/DSM_Developer_Guide.pdf

Dans ce qui va suivre, il faudra adapter les "x86_64-pc-linux-gnu" en fonction de votre processeur !!

Dans un ordinateur sous linux :

1° - installer la tool chain dans le répertoire /usr/local (si vous en choississez un autre, il faudra modifier toutes les références à /usr/local)

2° - décompresser les sources du noyau dans le répertoire de votre choix, on l'appellera "source" dans ce qui va suivre.

3° - copier le contenu du répertoire source/linux-3.x/include/linux dans /usr/local/x86_64-pc-linux-gnu/include/linux (ceci sera nécessaire pour la compilation de uvc-stream)

4° - copier /usr/local/x86_64-pc-linux-gnu/include/linux/videodev2.h en /usr/local/x86_64-pc-linux-gnu/include/linux/videodev.h (ceci sera nécessaire pour la compilation de uvc-stream qui fait réference à videodev.h)

5° - compiler les modules comme indiqué sur la notice pages 15 et 16, lors de la commande menuconfig :

- selectionner "video for Linux" (taper M)
- selectionner "video capture adapters" -> "V4L USB devices" -> "USB Video Class (UVC)" (taper M)

6° - récupérer les sources de uvc-streamer ici : https://github.com/leoz2011/mjpg-streamer/tree/master/uvc-streamer et les copier dans le répertoire de votre choix

6° - Dans le module makefile de uvc-streamer remplacer la ligne :

CC=gcc

par :

CC = /usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-gcc
LD = /usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ld
RANLIB=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ranlib
CFLAGS="-I/usr/local/x86_64-pc-linux-gnu/include"
LDFLAGS="-L/usr/local/x86_64-pc-linux-gnu/lib"

7° - dans le répertoire des sources de uvc-streamer lancer la compilation de uvc-stream par la commande make

C'est terminé, maintenant, il vous faut modifier le paquet spk :

1°- décomprimer le paquet webcam-cedarview-50 ainsi que package.tgz

2°- remplacer les fichiers *.ko et uvc-stream par ceux que vous venez de compiler

3° - reconstruire le paquet.

Bon courage.

Cordialement.

Michel.

PS : j'ai fait ceci de mémoire, dites moi si quelque chose ne va pas.

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

j'apporte quelques détails en plus pour la cross-compilation suite aux mp échangés avec catimimi que je remercie pour son aide.

mon nas: DS213J

cpu: armada 370

mon OS de dev: Ubuntu 14.04-LTS 32bits

récupérer la toolchain "soft", et la décompresser: http://sourceforge.net/projects/dsgpl/files/DSM%205.0%20Tool%20Chains/Marvell%20armada%20370%20Linux%203.2.40/

les sources (dernière branche (4458 date 2014-05-02), puis le fichier tbz armada370): http://sourceforge.net/projects/dsgpl/files/Synology%20NAS%20GPL%20Source/

installer tout ça si ce n'est pas déjà fait:

sudo apt-get install make gcc libncurses5-dev

copier le contenu du répertoire /source/linux-3.x/include/linux dans /usr/local/soft/arm-marvell-linux-gnueabi/include/linux

copier /usr/local/soft/arm-marvell-linux-gnueabi/include/linux/videodev2.h en /usr/local/soft/arm-marvell-linux-gnueabi/include/linux/videodev.h

se placer dans /sources/linux-3.x, puis suivre la doc page 15-16 du mode d'emploi Syno DSM Dev Guide:
cp synoconfigs/armada370 .config
make ARCH=arm CROSS_COMPILE=/usr/local/soft/bin/arm-marvell-linux-gnueabi- oldconfig
make ARCH=arm CROSS_COMPILE=/usr/local/soft/bin/arm-marvell-linux-gnueabi- menuconfig

Avec le v(+) en bas tu fais défiler les menus et tu vas vers
"Device drivers" -> tape M sur "multimedia support" -> "Video capture adapters (NEW)" -> "V4L USB devices (NEW)"
et tape M sur "USB Video Class (UVC)"

make ARCH=arm CROSS_COMPILE=/usr/local/soft/bin/arm-marvell-linux-gnueabi- modules

pour retrouver le chemin d'un module après la compilation, utiliser la commande suivante dans /sources/linux-3.x:
find * | grep nom_du_module

pour la compilation de uvc_streamer, les chemins pour les variables d'environnement seront les suivants:
CC=/usr/local/soft/bin/arm-marvell-linux-gnueabi-gcc
LD=/usr/local/soft/bin/arm-marvell-linux-gnueabi-ld
RANLIB=/usr/local/soft/bin/arm-marvell-linux-gnueabi-ranlib
CFLAGS="-I/usr/local/soft/arm-marvell-linux-gnueabi/include -mhard-float -mfpu=vfpv3-d16"
LDFLAGS="-L/usr/local/soft/arm-marvell-linux-gnueabi/lib"

plus qu'à tester l'exécution sur le nas...

Lien vers le commentaire
Partager sur d’autres sites

Salut,

@Catimini :

que veux tu dire par incomparabe ? je suppose mieux? mais a quel niveau ?

Bonjour,

Fluidité sous html, définition HD, plugins de sortie multiples ....

Bien entendu, cela marche avec surveillance station.

Cordialement.

Michel.

Lien vers le commentaire
Partager sur d’autres sites

cross-compilation OK

package créé OK

mais pas encore testé car je n'ai pas en ce moment ma webcam usb chez moi :(

mais au vu des dernières news de catimimi, je remet en question le package de uvc_stream...

il vaudrait mieux s'essayer sur mjpg_streamer sauf qu’apparemment un package SPK n'est pas possible pour que l'application puisse fonctionner derrière.

je vais déjà voir si j'arrive à le cross-compiler....

Lien vers le commentaire
Partager sur d’autres sites

mais au vu des dernières news de catimimi, je remet en question le package de uvc_stream...

il vaudrait mieux s'essayer sur mjpg_streamer sauf qu’apparemment un package SPK n'est pas possible pour que l'application puisse fonctionner derrière.

je vais déjà voir si j'arrive à le cross-compiler....

Bonjour,

Pour avoir les sources :

wget http://sourceforge.net/code-snapshots/svn/m/mj/mjpg-streamer/code/mjpg-streamer-code-182.zip

ne cross-compiler que le dossier "mjpg-streamer"

auparavant il faut cross-compiler libjpeg

http://www.ijg.org/files/jpegsrc.v9a.tar.gz

Cordialement.

Michel.

Lien vers le commentaire
Partager sur d’autres sites

@Remylpat, voici en PJ le spk.

je pense qu'une fois l'appli lancé, il suffit de se rendre sur l'ip du nas:8080 comme catimimi l'a expliqué dans son 1er message.

http://dl.free.fr/mN9eMIqxI

@catimimi

je suis reparti de zero avec tes nouvelles sources.

j'ai réussi à cross-compiler jpeg et mjpg-streamer :)

pourrais tu nous dire comment utiliser tout ça sur nos nas ?

Lien vers le commentaire
Partager sur d’autres sites

Le package s'installe,

je ne sais pas s'il est censé se demarrer car qd on click sur RUN il failed.

A priori je n'accede pas a la cam par 127.0.0.1 port 80 en local depuis le syno (vis Surveillance station seul moyen de faire du 127.0.0.1)

Lien vers le commentaire
Partager sur d’autres sites

@catimimi

je suis reparti de zero avec tes nouvelles sources.

j'ai réussi à cross-compiler jpeg et mjpg-streamer :)

pourrais tu nous dire comment utiliser tout ça sur nos nas ?

Bonjour,

Tu as obligatoirement cross-compilé libjpeg et mjpg-streamer dans un dossier /usr/local sur un ordinateur Linux (pour ne pas perturber mon linux, je renomme le dossier local et je crèe un lien appelé local vers un autre dossier), tu as fait make puis make install cela a créé les répertoires /usr/local/bin /usr/local/lib /usr/local/share /usr/local/www

Il suffit de recopier ces dossiers dans les dossiers correspondants du NAS.

J'ai ensuite créé un dossier /usr/local/etc/KernelModules dans lequel j'ai copié les modules créés pour uvc-streamer.

Enfin dans le dossier /usr/local/etc/rc.d j'ai placé le script EXECUTABLE webcam.sh suivant :

#!/bin/sh

#

case "$1" in

start)

insmod /lib/modules/videobuf-core.ko

sleep 1

insmod /lib/modules/videobuf-vmalloc.ko

sleep 1

insmod /usr/local/etc/KernelModules/v4l2-compat-ioctl32.ko

sleep 1

insmod /usr/local/etc/KernelModules/videodev.ko

sleep 1

insmod /usr/local/etc/KernelModules/v4l2-common.ko

sleep 1

insmod /usr/local/etc/KernelModules/uvcvideo.ko

sleep 1

mknod /dev/video0 c 81 0

sleep 1

/usr/local/bin/mjpg_streamer -i "input_uvc.so -d /dev/video0 -f 24 -r 1280x1024" -o "output_http.so -w /usr/local/www -p 8080" -b

;;

stop)

killall mjpg_streamer

sleep 1

rm /dev/video0

sleep 1

rmmod uvcvideo

sleep 1

rmmod v4l2-common

sleep 1

rmmod videodev

sleep 1

rmmod v4l2-compat-ioctl32

sleep 1

rmmod videobuf-vmalloc

sleep 1

rmmod videobuf-core

;;

*)

echo "Usage: {start|stop}"

exit 1

;;

esac

La camera est visible par http://localhost:8080/stream_simple.html

et sous surveillance station

port 8080

path /?action=stream

Enfin, il faut indiquer au NAS d'aller chercher les plugins dans /usr/local/lib en ajoutant les lignes :

LD_LIBRARY_PATH=/usr/local/lib

export LD_LIBRARY_PATH

au fichier /root/.profile

Voilà, je crois avoir été complet. L'installation ne sera pas perturbée lors des mises à jour de firmware.

Cordialement.

Michel.

Lien vers le commentaire
Partager sur d’autres sites

bonjour,

oui et non...

mjpg_streamer se lance bien avec les modules input, et output.

mais je crois que ma camera n'est pas compatible avec, car mjpg_streamer s'arrete juste après m'avoir donné les infos pris en config (fps, resolution, etc)

c'est une vieille camera usb SD.

ce week end je vais m'en acheter une logitech HD :)

je peux toujours te mettre le package à dispo...

http://dl.free.fr/uu8h3dn6s

je mettrais officiellement dans le centre de téléchargement, une fois que le package sera validé fonctionnel.

Lien vers le commentaire
Partager sur d’autres sites

en ssh (root):

> /var/packages/webcam/scripts/start-stop-status start

ça te charge les modules nécessaires, et devrait te retourner un message comme quoi mjpg_streamer s'est lancé en "background", sauf qu'il s'arrete juste après je suppose.

ensuite:

> export LD_LIBRARY_PATH=/usr/local/webcam/lib

> /usr/local/webcam/bin/mjpg_streamer -i "input_uvc.so -d /dev/video0 -f 24 -r 1280x1024" -o "output_http.so -w /usr/local/webcam/www -p 8080"

postes moi ce que mjpg_streamer te retourne.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.