Aller au contenu

Webcam Usb Sous Dsm5 - Cedarview


catimimi

Messages recommandés

Posté(e)

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.

Posté(e)

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...

Posté(e)

Salut,

J'ai un DS213J je serais tres interressé par ton package.

Peux tu partager ?

Avez vous pensé a publier sur SynoCommunity ?

Posté(e)

je viens juste de terminer la cross-compilation: pas encore tester si ca fonctionne :P .

je commence maintenant la création de package en suivant la doc Syno...

Posté(e)

Bonjour,

Je n'utilise plus ce paquet. J'ai cross-compilé et installé mjpg_streamer dont le fonctionnement est incomparable.

Cordialement.

Michel.

Posté(e)

Salut,

@Catimini :

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

@bagou91

des news ? ta compilation a t'elle marchée ?

Posté(e)

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.

Posté(e)

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....

Posté(e)

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.

Posté(e)

@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 ?

Posté(e)

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)

Posté(e)

@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.

Posté(e)

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.

Posté(e)

J'ai installé le package mais par contre il ne demarre pas.

Sais tu commen je peu verifier que ma cam est vue ou alors les logs ?

Posté(e)

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.

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.