Journal Outils de manipulation des microcodes pour iSight intégrés

Posté par .
Tags : aucun
1
6
déc.
2007
Salutations,

L'arrivé des MacBook avait créé un engouement bénéfique pour le support des mac : EFI, Apple Remote, carte clavier et iSight.

Depuis quelques jour, je m'attaque au support des derniers iMac G5. Ces fameux iMac G5 iSight, qui ont tout des derniers Mac : iSight intégré, Apple Remote, Mighty Mouse, etc. Étrangement, les mactels ont éclipsé cette belle bête. Étant possesseur d'une telle machine, j'ai écrit le pilote des ventilos : windfarm-pm121¹ que j'ai soumis à linuxppc-dev. Un grand merci à Benjamin Herrenschmidt qui m'a parrainé pour l'écriture de mon premier pilote linux :)

Avec Alex Deuscher, nous avons ajouté un MacModel pour ces bestioles là. J'ai pu ainsi faire joujou avec xrandr (un 20"+23" :D) et maintenant, compiz tourne :) (Parcontre, le paquet ubuntu a mis la X600 sur liste noire car leur pilote n'est pas à jour :/). Il y a encore du boulot : suspension, télécommande infrarouge, luminosité de l'écran et webcam intégrée.

L'iSight intégré n'a rien à voir avec l'iSight Firewire. La première est une caméra UVC connecté sur un bus USB. Elle nécessite le chargement d'un firmware pour fonctionner. Ronald S. Bultje a développé un utilitaire publié sous le nom de "extract" dans le paquet "linux-uvc-0.1.0-e". On retrouve notamment un paquet "macbook-isight-firmware-loader" qui n'est en fait rien d'autre que cet utilitaire renommé.

J'ai un peut travaillé avec Laurent Pinchart, développeur de linux-uvc² pour supporter les iSight intégrée. Après avoir résolut une erreur de segmentation, Laurent pense qu'il va falloir patcher le microcode, je me suis donc rendu à l'évidence qu'il fallait retravailler aussi le fameux extract.c de Ronald. Ronald est passé à Mac OS X, j'ai donc repris le projet et j'ai produit une version 0.2.

Cette version permet d'extraire le microcode depuis un pilote compilé pour PPC. J'ai d'ailleurs séparé l'extracteur du microcode depuis le pilote et le chargeur de microcode dans la caméra. J'ai renommé tout ça et utilisé les autotools pour gérer compilation et distribution.

Au final, voici le nouveau projet iSight Firmware Tools (ou IFT pour les intimes) qui inclue ift-extract et ift-load. Vous trouverez les infos nécessaires sur le site dédié : http://bersace03.free.fr/ift :)

1. http://ozlabs.org/pipermail/linuxppc-dev/2007-December/04764(...)
2. http://linux-uvc.berlios.de/
  • # Aaaaahhh !

    Posté par . Évalué à 10.

    Aaaahh ! Bah en voilà, un type qui ne pense pas qu'à troller sur LinuxFr.
    • [^] # Re: Aaaaahhh !

      Posté par . Évalué à 1.

      Tu crois, c'est un gros troll super velu avec un méchant camouflage : il utilise un Mac avec PowerPC au lieu d'une architecture Intel et au lieu de le crier haut et fort, il raconte qu'il a écrit le pilote du ventilateur et qu'il fait tourner une interface 3D dessus !

      Du vent en 3D et hop le camouflage s'envole !

      =:-)

      Beau travail, les G5 nous faisaient tous baver !
  • # Bientôt une 0.2.1

    Posté par (page perso) . Évalué à 5.

    Bin t'as une erreur ligne 9 de ton configure.ac:
    T'as écrit CLFAGS au lieu de CFLAGS.
    De rien :-)
  • # Merci

    Posté par (page perso) . Évalué à 1.

    Merci pour ton travail, et pour le travail des dev du driver iSight ... en effet, j'ai un macbook et c'est grace à vous que je peux utiliser ma webcam.

    Pour le moment j'utilise cette version du driver avec Fedora: http://i-nz.net/projects/linux-kernel/ et ça marche ... mais seulement avec Ekiga. Gstreamer et les autres ne veulent rien savoir.

    Par hasard, est-ce que quelqu'un saurait pourquoi il n'y a qu'Ekiga qui veuille bien de l'iSight ... ?

    Pour information, voici ce que me met gstreamer:
    gst-launch-0.10 v4l2src ! ffmpegcolorspace ! ximagesink
    Setting pipeline to PAUSED ...
    ERROR: Pipeline doesn't want to pause.
    ERROR: from element /pipeline0/v4l2src0: Could not negotiate format
    Additional debug info:
    gstbasesrc.c(2293): gst_base_src_start (): /pipeline0/v4l2src0:
    Check your filtered caps, if any
    Setting pipeline to NULL ...
    FREEING pipeline ...


    Sinon, le pourquoi du G5 ignoré par l'équipe mactel, c'est parce que le G5 ce n'est pas fait par intel ... donc ce n'est pas un mactel.
    • [^] # Re: Merci

      Posté par . Évalué à 3.

      D'après ce que j'ai compris, entre l'iMac G5 revC et l'iMac Core Duo revA, il n'y a que le processeur de changé. Contrairement aux iMacs G5 revA et revB. Or, on ne s'occupe pas du support du G5 (qui fonctionne très bien depuis des lunes), mais de l'iSight, commune aux deux iMacs (G5 revC et Core Duo revA).

      Ce serait dommage que même les libristes commencent à pinailler sur Ah, mais nous c'est l'équipe Mac INTEL, nous n'avons pas à nous soucier de Mac PPC, ce n'est pas dans nos attributions., on n'est pas sortie de l'auberge administrativo-soviétique de Redmond.
    • [^] # Re: Merci

      Posté par . Évalué à 2.

      Par hasard, est-ce que quelqu'un saurait pourquoi il n'y a qu'Ekiga qui veuille bien de l'iSight ... ?

      Le drivers linux-UVC est le drivers standard webcam usb 2.0 (en gros l'équivalent de ce qu'est usb-storage pour le stokage). Or les développeurs n'ont implémenter que la couche "video for linux 2" pour ce driver. Celle-ci est très peu pris en charge par les soft qui restent sur v4l première version à quelques exceptions.

      Bref, sous Linux, il manque une lib video d'abstraction de tout ça.

      "La première sécurité est la liberté"

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.