Pilote de noyau Linux pour la capture vidéo


0

J'ai cette chose EasyCap capture vidéo avec une puce USBTV007 et je voudrais vraiment le faire fonctionner sur mon petit ordinateur portable Linux Mint 17 afin que je puisse capturer de la vidéo pour mes affaires de RC.

Mais je ne sais pas quoi faire avec ce pilote de noyau Linux. Je ne sais même pas comment obtenir ces fichiers, je suppose que c'est quelque chose comme git. http://linuxtv.org/wiki/index.php/Easycap#USBTV007_EasyCAP

Je cherche une explication conviviale pour les débutants sur ce qu'il faut faire avec ceci: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/media/usb/usbtv

Réponses:


0

Sur le marché actuel, différents modèles identiques de périphérique de capture vidéo Easy Cap avec une puce USBTV007 à l'intérieur sont disponibles avec différents identifiants de fournisseur / produit marqués à l'intérieur d'un identifiant de périphérique USB. Ainsi, avant de compiler un autre pilote utilisant des modules «usbtv» intégrés, le paquet d’image linux est livré par défaut. Émettre la commande ci-dessous sur un terminal

>sudo lsusb

Vous obtiendrez probablement quelque chose comme:

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d71:3002 USB TV 

Recherchez l'ID 1d71: 3002 quelque part dans la sortie de la commande lsusb. Si cela vous convient, votre système peut avoir un pilote pour votre périphérique. Sinon, ne soyez pas sans espoir. Permet de voir quel identifiant unique vous avez?

ID eb1a:2861 eMPIA Technology, Inc.
ID 1c88:0007 Somagic, Inc. 
ID 1c88:003c Somagic, Inc. 
ID 1c88:003f Somagic, Inc.

L'un des quatre correspondances ci-dessus aura un autre pilote différent déjà disponible par défaut avec la version de votre noyau. Veuillez lire attentivement la page Linux TV que vous mentionnez.

J'avais l'habitude d'avoir un appareil très rare et nouvellement publié (en ce qui concerne mes connaissances du marché)

ID 1d71:3002 USB TV 

Ce qu'il fallait, c'était ajouter une seule ligne sur le fichier source du pilote usbtv et nommer usbtv-core.c et le recompiler à la volée. Pour ce faire, vous devez disposer du code source usbtv avec divers composants du projet v4l linux. Je vous recommanderais de télécharger et d'utiliser le code source complet du noyau, mais uniquement la recompilation du code source du module après l'ajout d'une seule ligne pour l'ajout de votre ID de périphérique sur la base du pilote. Je donne ci-dessous la commande étape par étape. J'ignore la description des étapes pour une finition rapide. Faites-moi savoir si cela vous donne du mal à comprendre. Je vais éditer pour ajouter des détails plus tard.

Installez tous les fichiers d’utilitaires, d’applications et de bibliothèques pour le processus de compilation du noyau Linux. Peu de colis sont

make, gcc, autoconf, binutils, build-essential, libncurses-dev ainsi que le fichier d'en-têtes de votre noyau.

Après avoir installé tous les paquetages necessasry, essayez:

>cd /usr/src/linux-source-X.XX.X
>sudo cp /usr/src/linux-headers-`uname -r`/Module.symvers .
>sudo make -C  /usr/src/linux-headers-`uname -r`/ oldconfig
>sudo cp /boot/config-X.xx.x-xx-YYYY .config
>sudo make -C  /usr/src/linux-headers-`uname -r`/ prepare

Si les étapes ci-dessus sont terminées sans erreur, félicitation. Les moments difficiles sont finis. Passons maintenant au fichier source usbtv de:

cd /usr/src/linux-source-X.XX.X/drivers/media/usb/usbtv/

Vous y trouverez le nom du fichier: Kconfig Makefile usbtv-audio.c usbtv-core.c usbtv.h usbtv-video.c

Ouvrez le fichier usbtv-core.c pour modification avec votre éditeur de texte préféré et modifiez le code avec:

static struct usb_device_id usbtv_id_table[] = {
{ USB_DEVICE(0x1b71, 0x3002) },
{}

};

Avec code montrant ci-dessous.

static struct usb_device_id usbtv_id_table[] = {
{ USB_DEVICE(0x1b71, 0x3002) },
{ USB_DEVICE(0x1f71, 0x3301) },
{}

};

Avec la ligne 0x1f71 comme identifiant de fournisseur et 0x3301 comme identifiant de produit, vous demandez à votre pilote de charger dès que possible tout périphérique dont l'étiquette d'identification est insérée sur le port USB. Essayez de modifier un autre ID de produit / fournisseur si vous êtes certain de la puce UTV007 définie sur votre appareil. Le point consiste à faire concorder votre propre ID produit / fournisseur avec les pilotes. Maintenant, essayez de compiler les modules en:

>sudo make -C /usr/src/linux-headers-`uname -r`/ M=$PWD prepare modules install 
>sudo depmod -a

Si ce point se termine sans erreur, déchargez / rechargez le module usbtv avec la commande

>sudo rmmod usbtv && sudo modprobe usbtv

tout en connectant votre appareil sur le port USB, essayez de surveiller l’activité UDEV avec la commande

 > udevadm monitor 

Afficher le disque / dev / vedio0 juste après l’insertion de votre appareil sera couronné de succès. Si ce n'est pas le cas, laissez-nous savoir pour une discussion plus approfondie.

Source supplémentaire:

https://linuxtv.org/wiki/index.php/Gadmei_USB_TVBox_UTV382_(id_0x1f71:0x3301) https://askubuntu.com/questions/168279/how-do-i-build-a-sing-in-tre-tree-kernel- module https://askubuntu.com/questions/17944/what-is-the-minimum-requirement-to-compile-kernel-modules

Pour signer votre module modifié avec un certificat auto-signé:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-signing-kernel-modules-for-secure-boot.html


-1

Copier et coller ceci:

p=`pwd`
git clone https://github.com/simon3z/usbtv.git
cd usbtv/
cd /usr/src/linux-headers-`uname -r`
make  SUBDIRS=/root/usbtv  modules
cd /usr/src/linux-headers-`uname -r`
cd /lib/modules/`uname -r`/kernel/drivers/media/usb/usbtv/
cp $p/usbtv/usbtv.ko .
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.