catimimi Posté(e) le 22 août 2014 Auteur Posté(e) le 22 août 2014 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.
bagou91 Posté(e) le 22 août 2014 Posté(e) le 22 août 2014 merci beaucoup pour tes explications détaillées ! je vais tenter de cross-compiler avec le toolchain du ds213j et ferai un retour.
bagou91 Posté(e) le 26 août 2014 Posté(e) le 26 août 2014 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...
Remylpat Posté(e) le 26 août 2014 Posté(e) le 26 août 2014 Salut, J'ai un DS213J je serais tres interressé par ton package. Peux tu partager ? Avez vous pensé a publier sur SynoCommunity ?
bagou91 Posté(e) le 26 août 2014 Posté(e) le 26 août 2014 je viens juste de terminer la cross-compilation: pas encore tester si ca fonctionne . je commence maintenant la création de package en suivant la doc Syno...
catimimi Posté(e) le 29 août 2014 Auteur Posté(e) le 29 août 2014 Bonjour, Je n'utilise plus ce paquet. J'ai cross-compilé et installé mjpg_streamer dont le fonctionnement est incomparable. Cordialement. Michel.
Remylpat Posté(e) le 29 août 2014 Posté(e) le 29 août 2014 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 ?
catimimi Posté(e) le 29 août 2014 Auteur Posté(e) le 29 août 2014 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.
bagou91 Posté(e) le 29 août 2014 Posté(e) le 29 août 2014 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....
Remylpat Posté(e) le 29 août 2014 Posté(e) le 29 août 2014 @bagou91 peux tu partager ton spk pour DS213j je peux le tester de suite si tu veux
dardevil91 Posté(e) le 29 août 2014 Posté(e) le 29 août 2014 je suis aussi disponible de suite pour un test sur un ds 213j si il y a besoin
catimimi Posté(e) le 29 août 2014 Auteur Posté(e) le 29 août 2014 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.
bagou91 Posté(e) le 29 août 2014 Posté(e) le 29 août 2014 @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 ?
Remylpat Posté(e) le 29 août 2014 Posté(e) le 29 août 2014 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 en local depuis le syno (vis Surveillance station seul moyen de faire du 127.0.0.1)
Remylpat Posté(e) le 29 août 2014 Posté(e) le 29 août 2014 Sinon j'ai trouvé un package ici : http://forum.synology.com/enu/viewtopic.php?f=190&t=49790&start=405
catimimi Posté(e) le 29 août 2014 Auteur Posté(e) le 29 août 2014 @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.
catimimi Posté(e) le 30 août 2014 Auteur Posté(e) le 30 août 2014 Bonjour, Je vais tenter d'en faire un paquet. Je vais devoir tout recompiler. Cordialement. Michel.
catimimi Posté(e) le 30 août 2014 Auteur Posté(e) le 30 août 2014 Bonjour, Le paquet fonctionne. Je mets à jour le fichier en zone de téléchargements. Cordialement. Michel.
Remylpat Posté(e) le 5 septembre 2014 Posté(e) le 5 septembre 2014 @Bagou91 As tu reussi a faire marcher un paquet avec mjpg_streamer ?
bagou91 Posté(e) le 5 septembre 2014 Posté(e) le 5 septembre 2014 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.
Remylpat Posté(e) le 5 septembre 2014 Posté(e) le 5 septembre 2014 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 ?
catimimi Posté(e) le 5 septembre 2014 Auteur Posté(e) le 5 septembre 2014 Bonjour, Attention, on n'est plus dans le sujet Cedarview, cela risque de tromper les lecteurs. Cordialement. Michel.
bagou91 Posté(e) le 5 septembre 2014 Posté(e) le 5 septembre 2014 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.
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.