Comment "compiler un noyau" pour intégrer le module raw1394

Avant de faire quoi que ce soit, marque ce que te demande mattotop (qui doit avoir une idée derrière la tête…).

La paravirtualisation, c’est un truc qu’il fallait désactiver dans le noyau 2.6.21 pour utiliser les pilotes proprios nVidia. Je t’ai juste donné un lien vers ce tuto, c’est juste pour comprendre le “mécanisme” de recompilation d’un noyau.

Pour faire simple, le noyau Linux, c’est ce qui sert à faire le lien entre le système d’exploitation (Debian) et ta machine. Il contient tous les pilotes dont tu as besoin.
Dans ton cas, Kino a besoin du module raw1394 (un module est un “driver” ou “pilote” dans le langage Windows).
Seulement, le noyau dont tu dispose (2.6.22) n’intègre plus par défaut ce module. Si tu as vraiment besoin de raw1394, 3 solutions :

  • La première, la plus simple et moins prise de tête est d’installer le noyau 2.6.18 de Etch car ce noyau contient par défaut le module raw1394. Ce n’est pas parce que tu bootes sur le noyau de Etch que tu seras sur Etch. Tu tourneras juste sur un noyau 2.6.18 qui contient les modules dont tu as besoin, ni plus, ni moins. Le noyau, pour “simplifier”, c’est un gros pack de drivers.

  • La deuxième solution est de recompiler ton noyau, si tu regardes les différents tutos de recompilation, il y a une étape où tu fais

Tu arrives en faisant ça au menu de configuration du noyau. C’est là que tu décides des modules à intégrer (ou pas) à ton noyau. Si tu veux intégrer le module raw1394 à ta liste de modules disponible c’est dans Device Drivers --> IEEE 1394 (firewire support) --> et là tu actives Raw IEEE1394 I/O support.
Après avoir fait ça, tu quittes le menu de configuration, il te demande si tu veux sauvegarder les changements, tu dis oui.
Il n’y a plus qu’à compiler. Tu auras à la fin de la compilation un fichier *.deb qui t’installera ton nouveau noyau avec le fameux raw1394. Une fois installé, il n’y a plus qu’à redémarrer, tu choisis dans le menu de démarrage ton nouveau noyau et c’est bon.
Cette solution a l’avantage de t’en apprendre un peu plus sur ton système, car les options sont nombreuses dans le noyau :exclamation: :exclamation:

  • La 3e solution est de trouver le moyen de forcer kino à utiliser un autre module que raw1394, mais là… mystère et boule de gomme…

Pour avoir le firewire (1394) avec kino quand on branche le camescope, il y a un problème de droits avec les paramétrages par défaut : de mémoire (donc à vérifier) il faut que l’user fasse parti du groupe disk.
Ce problème de droit peut se vérifier en lançant kino en root : si kino ne peut faire d’acquisition, c’est un vrai problème avec le firewire.

kino utilise la librairie libraw1394, celle ci a été patché dans sid pour pouvoir utiliser la nouvelle pile (interface en gros) firewire. DOnc essaye en chargeant les modules firewire-ohci firewire-sbp2 puis en cherchant /dev/fw… et là tu essayes kino. Si ça ne marche pas, tu es bon pour la recompilation.

Yeaah Merci de vos réponses
Voici la résultat de ifconfig :

En fait je pense que je vais me lancer dans la compilation, comme ça au moins je saurais comment faire :wink: Mais la --> Devoirs, je reprends demain :slightly_smiling:

Je crois que ton eth1 est la matérialisation de ton camescope, ou du hub firewire auquel tu le connectes, et je crois que c’est un moyen d’accèder au contenu de ton camescope.
Regarde ce tuto ou un gars fait tourner son camescope comme une webcam avec gnomemeeting:
roozeec.over-blog.com/article-160838-6.html
C’est pas vraiment ce que tu cherches, mais je pense qu’il y a à chercher de ce coté là.
Sinon, tu devrais suivre les conseils de fran.b et essayer de faire fonctionner ton matos avec la nouvelle pile tout de suite plutot que d’essayer de faire marcher l’ancienne (bientôt obsolète).

Et sinon, si ton camescope est détecté autrement qu’avec raw1394, gscanbus devrait te le faire apparaitre.

Mon intervension précédente était précipitée.
J’ai vérifié sur une sid et une lenny :

  • je n’ai pas de firewire (kino + camescope) avec un kernel 2.6.22 mais je l’ai avec un 2.6.21
  • pour scanbus avec le 2.6.22-2 de la lenny -> [quote] sudo gscanbus
    couldn’t get handle: No such file or directory
    This probably means that you don’t have raw1394 support in the kernel or that you haven’t loaded the raw1394 module.
    [/quote]
    Je vais devoir suivre ce fil ou attendre que tout rentre dans l’ordre ou utiliser le 2.6.21 kivabien.

Bon j’ai commencé par ceci
dell:/home/bogo# modprobe firewire-sbp2
dell:/home/bogo# modprobe firewire-ohci

Mais aucun répertoire /dev/fw… J’ai bien un répertoire fd, mais il ne contient que 2 ou 3 fichiers. Je me suis dit qu’il fallait que je cherche un peu, alors jai quand même lu la doc sur cette nouvelle pile. Apparemment, elle nécessite de libraries, alors j’ai essayé de les installer : apt-get install libraw1394 libdc1394 libavformat. Resultat --> packets not found! Je voudrais bien essayer de les installer comme décrit dans la doc (c’est ce que j’ai mis dessous) mais je préfère vous demander si il me suffit de faire un bête copier coller de ces commandes que je ne comprends pas du tout.

[quote]libraw1394

$ git clone people.redhat.com/krh/libraw1394.git
$ cd libraw1394/
$ git merge origin/juju
$ autoreconf -fi
$ ./configure --with-juju-dir=/usr/src/linux/include

libdc1394

$ svn co libdc1394.svn.sourceforge.net/svnroot/libdc1394
$ cd libdc1394/trunk/libdc1394/
$ autoreconf -fi
$ ./configure --with-juju-dir=/usr/src/linux/include

FFmpeg: libavformat
Alas the dv1394 module of FFmpeg’s libavformat has not been ported to firewire-core yet. This particularly affects players like MPlayer and Xine. [/quote]

Sinon j’ai aussi voulu recompiler le noyau pour voir. Mais voila, ça bloque dès le début. Alors uis-je très très con, ou n’ai-je pas de chance? (non finalement ne répondez pas a cette question ^^)

[quote]dell:/usr/src# ln -s linux-source-2.6.22 linux
ln: création d’un lien symbolique linux' verslinux-source-2.6.22’: Le fichier existe.
dell:/usr/src# cp /boot/config-uname -r /usr/src/linux/.config
cp: ne peut créer le fichier régulier `/usr/src/linux/.config’: Aucun fichier ou répertoire de ce type
[/quote]

bon, pour les libs, il faut que tu apprennes à chercher dans apt:

roc@roc:/usr/src/linux-source-2.6.22$ aptitude search 1394 i libavc1394-0 - control IEEE 1394 audio/video devices p libavc1394-dev - control IEEE 1394 audio/video devices (development files) i A libdc1394-13 - high level programming interface for IEEE1394 digital camera p libdc1394-13-dev - high level programming interface for IEEE1394 digital camera p libdc1394-20 - high level programming interface for IEEE1394 digital camera p libdc1394-20-dev - high level programming interface for IEEE1394 digital camera v libdc1394-dev - p libdc1394-examples - high level programming interface for IEEE1394 digital camera i libraw1394-8 - library for direct access to IEEE 1394 bus (aka FireWire) i libraw1394-dev - library for direct access to IEEE 1394 bus - development files p libraw1394-doc - Reference manual and documentation about libraw1394Tu as même la doc en paquet séparé. :laughing:

Pour le noyau va voir comment on fait sous debian ici: ashgenesis.debian-fr.net/tutorial/kernel/

Salut merci de ta réponse. C’est vrai que j’y ai pas pensé. Chez moi pour chercher j’utilise apt-cache search, mais il m’en trouve un peu moins. c’est normal?
Sinon tout était déjà installé…
Je suis retourné sur la doc que vous m’aviez fournit, j’ai édité /etc/modprobe.d/blacklist et j’y ai ajouté ceci [code]#blacklist firewire-ohci
#blacklist firewire-sbp2

blacklist ohci1394
blacklist sbp2
blacklist dv1394
blacklist raw1394
blacklist video1394[/code]

Mais mon modprobe firewire-sbp2 modprobe firewire-ohci ne me crée aucun répertoire /etc/fw*
La solution est peut-être la dedans,[quote]Out of the box, udevd and udev scripts automatically create and remove

* /dev/fw* devices exposed by firewire-core (for use by libraries like libraw1394 and libdc1394, provided the libraries are updated),
* /dev/{sd,sg,sr,st}* devices exposed by SCSI command set drivers (sd_mod, sg, sr_mod, st) with firewire-sbp2 underneath.[/quote] mais mon anglais est approximatif. Je lis "hors de la boite, udevd et les scripts udev vont automatiquement créer et supprimer [...]" Au final ces répertoires ils sont censés être là ou pas? Je comprends vraiment plus rien à ce que je fais et ça marche toujours pas. Si ça continue je vais aller me le faire sous Windows ce film moi :'(

les répertoires sont là si les modules détectent quelquechose, je crois. Comme les sdx n’existent que quand la partition existe.
Que dit gscanbus, maintenant ?
sinon, rmmod les modules, fais un tail -qf /var/log/syslog, et reinsmod les, pour voir les messages qu’ils produisent.

je remonte cd topic car il m’a bien aidé pour capturer la video de mon camescope avec dvgrag avec ma debian lenny et un noyau 2.6.22

Soit vous recompilez le noyau avec les bons modules soit vous utilisez ce que j’ai fait avec wiki.linux1394.org/JujuMigration (merci à vous d’avoir mis le lien dans ce topic)

j’utilise le module firewire_ohci et lorsque je branche ma camera alors ce créer /dev/fw1 (on changera les droits après)

[quote]$ git clone git://people.freedesktop.org/~krh/libraw1394
$ cd libraw1394/
$ git merge origin/juju
$ autoreconf -fi
$ ./configure --with-juju-dir=/usr/src/linux/include
$ make

make install

$ cd …
$ wget prdownloads.sourceforge.net/kino … 3.1.tar.gz
$ tar zxvf dvgrab-3.1.tar.gz
$ cd dvgrab-3.1/
$ ./configure
$ make

make install[/quote]

normalement on peut capturer la video en root (éventuellement rebooter)

pour avoir le droit de capturer sans passer par root je rajoute dans le fichier /etc/udev/udev.rules [quote]KERNEL==“fw*”, OWNER=“root” GROUP=“disk” MODE=“0660”
[/quote] puis # adduser monuser disk
Sans doute est il mieux de créer un groupe firewire.
On se relogue et normalement il n’y a pas de problème pour capturer la video.

Je peux enfin utiliser kino que je trouve simple à utiliser.
Merci à vous

[quote=“bogo”]Mais mon modprobe firewire-sbp2 modprobe firewire-ohci ne me crée aucun répertoire /etc/fw*
La solution est peut-être la dedans[/quote]
ce n’est pas /etc/fw mais /dev/fw*

/etc/ c’est pour les fichiers de configurations

Deux remarques:

  • udev.rules est un fichier standard du paquet udev, il vaut mieux ne pas y toucher pour le cas ou il serait mis à jour dans une nouvelle version d’udev. Il vaut mieux créer un fichier /etc/udev/rules.d/099_perso.rules et y mettre ta config perso.
  • les dispositifs /dev/raw1394 appartient au groupe disk, et dv1394 comme video1394 au groupe video, tu devrais respecter ça avec tes fw. Les droits sur ce type de device sont par ailleurs 0664 plutot que 0660.