présente...

 

LéaBook , Chapitre :
Matériel

par tous les amis de Léa

 

 

Le copyright de chaque article est détenu par son auteur.
Le copyright du livre lui-même est détenu par Léa (Association Loi 1901).
Les articles de ce livre sont diffusés selon la license GPL (GNU General Public License), sauf mention explicite dans l'article.

Copyright (c) 2003 Association Léa.
This documentation is free documentation; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
For the purpose of applying the GPL to this document, I consider "source code" to refer to the html source.


Table des matières


Installer et configurer son matériel

Cette section va vous permettre d'installer et de configurer votre matériel sous Linux.

Voir aussi les Trucs et Astuces Hardware, et la base de données de matériel/drivers de Léa

Si vous avez des questions concernant votre matériel vous pouvez poser votre question sur le forum.

Note de Jicé : j'aimerais écrire un article sur l'installation et la configuration des linmodems (modems internes PCI) sous Linux. Pour ce faire, j'ai besoin de vos retours d'expérience pour vos différents modems (Olitec, Lucent, etc.). Merci de m'envoyer votre rapport d'installation/configuration !
Vous pouvez d'ores et déjà lire les fiches des winmodems dans la driverthèque.

Voici déjà les infos pour les modems :
• basés sur les chipsets Connexant HSF (Olitec 56Kv2, V92...),
• basés sur les chipsets PCTel, Via, Asus, CM8x, SIS, Intel i810 (Kortex PCI 56000...),
• 3COM PCI 56K.
• Lucent
D'autres sites :
• Infos sur les winmodems (compatibilité Linux)
• linmodems.org

De plus, de nouveaux drivers apparaissent pour les modems USB ADSL :
• Alcatel Speedtouch USB
• ECI Hi-Focus ADSL USB
• Sagem 800 USB

Un article sur la Carte PCI ADSL Conexant.

Haut


3DfX: installation

par Serge & Jean-Christophe

Comment faire fonctionner une carte de chez 3DfX.


Heureux possesseurs de cartes 3DfX, vous allez pouvoir faire fonctionner votre carte sous Linux !!!
(D'ailleurs, ce furent longtemps les seules cartes 3D complètement supportées ! même la Voodoo Rush !)

Mauvaises nouvelles pour les fans de 3Dfx : 3Dfx ayant été racheté par NVidia (le créateur de la TNT et des GE Force), c'est la fin de 3Dfx. Cause immédiate de ce rachat pour nous : de nombreux liens dans cette page risquent de ne plus fonctionner...

    Vous aurez besoin de :

Nouveau : avec XFree 4.0.2, tout devient plus simple (voir chez Xfree, rubriques 3Dfx et Alliance) :

Normalement vous ne devriez donc pas avoir besoin d'aller plus loin dans la lecture de cet article, néanmoins, je le laisse ici pour référence. Attention, les liens vers les sites et les drivers peuvent être maintenant erronés.


Pour installer votre carte, allez sur le site de Linux 3DfX ou 3DfX gamers pour les drivers nécessaires (choisissez suivant votre carte, voodoo 1, 2, banshee, 3...) ; les liens pour les fichiers à télécharger sont à la fin de ce document.

    Remarque : Un nouveau serveur X vient de sortir chez 3dfx pour les Voodoo 3 et Voodoo Banshee (nommé DRI), qui implémente Glide version 3 et permet d'afficher en mode fenêtré. Comme peu d'applications sont compatibles à l'heure actuelle avec ce serveur X (voir la description sur linux.3dfx.com), nous détaillons l'installation de l'ancienne version.

Serveur X, /dev/3dfx et Glide

Si vous n'avez rien compris, le site Linux 3dfx ou encore 3DfX gamers explique également comment installer tout ça (drivers et device).

Librairies Mesa

Mesa est une librairie donnant à Linux l'API OPEN GL, c'est une implémentation libre d'OPEN GL. Disons que OPEN GL est à Linux ce que Direct 3D est à Windows.

Récupérez Mesalib et Mesadémo sur le site de Mesa .
Le but du jeu est de recompiler ces librairies avec le support 3Dfx (Glide) pour faire marcher notre carte (prenez les .tar.gz).

Attention, votre distribution peut avoir déjà installé les librairies Mesa non optimisées 3Dfx. Dans ce cas, il faut au préalable les désinstaller. Par exemple, recherchez le/les packages mesa par :
rpm -qa | grep mesa
(mesa et/ou mesa-dev), puis désinstallez-les par :
rpm -e --nodeps le_package

Donc une fois les sources dé-zippées/détarées :

gzip -cd MesaLib-3.0.tar.Z | tar xfv -
ou
tar zxvf MesaLib-3.0.tar.gz
de même pour Mesadémo, puis allez dans le répertoire de Mesa (Mesa3.0) et lancez tout simplement
make linux-glide
afin de tout compiler.

La compilation devrait passer sans erreur. Si vous avez des erreurs du style "machin.h : no such file or directory", c'est que les fichiers provenant du SDK Glide ne sont pas trouvés. Deux solutions : copiez ces fichiers dans un répertoire où le PATH pointe (dans /usr/include par exemple) ou insérez à votre variable PATH le chemin ou les includes du SDK se situe (/usr/include/glide si mes souvenirs sont bons) par export PATH=$PATH:/usr/include/glide (sh, bash) ou setenv PATH $PATH:/usr/include/glide (csh, tcsh).
Normalement, si vous avez installé le rpm du SDK, tout doit bien se passer.

Une fois la compilation passée vous devez avoir un répertoire /lib dans le répertoire Mesa3.0.
Allez dans ce répertoire, vous devez avoir alors des choses du style :

libMesaGL.so.3.x     libMesaGL.so.3      libMesagl.so
libMesaGLU.so.3.x    libMesaGLU.so.3     libMesaGLU.so
libglut.so.3.x       libglut.so.3        libglut.so

Il manque des liens par défaut que certaines applications risquent de chercher, ajoutez donc ces liens comme suit :
ln -s libMesaGL.so.3.x libGL.so.3
ln -s libMesaGL.so.3.x libGL.so
ln -s libMesaGLU.so.3.x libGLU.so.3
ln -s libMesaGLU.so.3.x libGLU.so
(Remplacez le x par la bonne valeur, bien sûr).

Puis, toujours dans ce répertoire, faites :

cp * /usr/X11R6/lib
ldconfig
Enfin, vérifiez que vous n'avez pas d'ancienne version de Mesa non optimisée Glide qui traîne :
ldconfig -v
Regardez dans la liste qui va s'afficher s'il se trouve encore des librairies "Mesa", si oui, supprimez ces fichiers, puis relancez la même commande.

Normalement, le module Device 3Dfx devrait se charger automatiquement lorsqu'on a besoin de lui. Cependant, si ce n'est pas le cas chez vous, vous pouvez l'automatiser : pour cela dans /etc/rc.d/rc.local (ce fichier existe normalement dans toutes les distributions) ajoutez simplement "modprobe 3dfx" à la fin du fichier.  Le chargement automatique du module 3dfx se fait grâce à la ligne "alias char-major-107 3dfx" présente dans /etc/conf.modules (voir plus haut).

Tout devrait marcher maintenant. Pour le test on va charger le module 3dfx à la main (à moins que vous ayez déjà rebooté) par modprobe 3dfx. Allez dans le répertoire /demos sous le répertoire Mesa3.0, lancer la démo glu (me rappelle plus du nom, demoglu je crois, quelque chose de ce genre) sous X, en ouvrant un terminal X (oublier pas le ./ avant le nom du programme de la démo) et vous devez alors voir apparaitre une belle image 3d en plein écran qui utilise la 3dfx.

Remarque 1 : pour la Banshee et la Voodoo 3, il est nécessaire de positionner la variable d'environnement MESA_GLX_FX à la valeur fullscreen.

bash : export MESA_GLX_FX=fullscreen
tcsh : setenv MESA_GLX_FX fullscreen
Remarque 2 :
Votre distribution ou sa mise à jour, par exemple vers la Mandrake 6.1, peut installer des librairies Mesa non optimisées Glide. Vos programmes vont alors utiliser ces librairies, présentes dans /usr/X11R6/lib, au lieu des vôtres, optimisées Glide, et l'affichage ne sera plus accéléré, mais fenêtré. Bref, ça rame !!!
La solution consiste à désinstaller les packages mesa et mesa dev (par rpm -e package), de lancer ldconfig (par ldconfig -v,  et verifier qu'il n'y a plus de lib MesaGL), puis copier les librairies compilées pour Glide dans /usr/X11R6/lib, et lancer ldconfig de nouveau.
Programmes testés avec brio (qui c'est çui-là ?) : Astuce n°1 : (si vous étes riches avec plein d'écrans) Connectez votre carte vga sur un écran directement sans passer par la 3dfx et branchez la sortie de votre 3dfx sur un autre écran. Ca permet d'avoir tout affichage en 3d sur un écran séparer et de continuer de travailler sur un autre écran : Astuce n°2 : en fait l'affichage 3D semble être planté souvent parce que la fenêtre qui sous X a permis de lancer l'application 3D a perdu le focus (p.ex. la souris a bougé et n'est plus sur la fenêtre). Dépannage : Voilà, bonne 3D !

Download

Pour les downloads, allez plutôt voir sur linux.3dfx.com afin d'obtenir les dernières versions.

(from 3Dfx gamers)
Indispensable pour toutes les cartes :
Device3Dfx-2.2-3.src.rpm (26KB)

Voodoo 3Dfx
Glide_VG-2.46-1.i386.glibc.rpm (251KB)

Glide_VG-2.46-1.i386.rpm (224KB)

Glide_VG-2.46-3.i386.glibc2.1.1.rpm (247KB)

Voodoo Rush
Glide_VR-2.46-3.i386.glibc.rpm (475KB)

Glide_VR-2.46-3.i386.rpm (238KB)

Glide_VR-2.46-4.i386.glibc2.1.1.rpm (261KB)

XFree86-Rush-SVGA-3.3.2-1.i386.rpm (1717KB)

XFree86_Rush-libs-3.3.2-1.i386.rpm (781KB)

Voodoo 3Dfx II
Glide_V2-2.53-1.i386.glibc.rpm (511KB)

Glide_V2-2.53-1.i386.rpm (482KB)

Glide_V2-2.53-2.i386.glibc2.1.1.rpm (279KB)

Voodoo Banshee et Voodoo 3
Glide_V3-2.60-7.i386.glibc20.rpm (230KB)

Glide_V3-2.60-8.i386.rpm (424KB)

XFree86_3DFX-rushlib-3.3.3-5.i386.rpm (11KB)

XFree86_3DFX-SVGA-3.3.3-5.i386.rpm (1213KB)

XFree86_3DFX-XF86Setup-3.3.3-5.i386.rpm (181KB)

Mesa, à installer pour toutes les cartes (librairie 3D)
(from Mesa3d.org)
MesaLib-3.0.tar.gz (1,2 MB)

MesaDemos-3.0.tar.gz (0,7 MB)

Haut


3Dfx: accélération 3D sous Xfree 4

par Serge

Attention : cet article ne concerne que les cartes Voodoo 3 ou Banshee.
Pour la Voodoo 5, je n'ai pas testé, mais cela doit aussi pouvoir s'appliquer en adaptant un peu.


Une autre rubrique sur le site vous explique comment utiliser l'accélération 3D de tous modèles de cartes 3Dfx pour les serveur X de version 3.3.x.

Depuis peu, la version 4 de Xfree est sortie. Il y a eu de grand changements dans les supports des cartes et la méthode précédente ne fonctionne plus pour utiliser l'accélération 3D avec Xfree4.

Ainsi, si vous avez une carte 3Dfx autre que Banshee ou Voodoo 3, restez sous X version 3.3.x, car sous la version 4 vous ne pourrez plus utiliser l'accélération 3D. Seuls les possesseurs de cartes Voodoo 3 et Banshee peuvent utiliser leur carte 3Dfx sous Xfree 4 de façon optimale.

Note : Vous pouvez quand même utiliser Xfree 4 avec les Voodoo 1, 2 et Rush mais comme une simple carte 2D sans utiliser les fonctions 3D. Les cartes 3Dfx 1 et 2 peuvent êtres utilisées en 2D, vous avez bien lu ! (Mais avec des limitations : 640x480 maxi, 2D non accélérée, avec une Voodoo 1 par exemple.)

Installer Xfree 4 de base

Avant toute chose, installez Xfree 4 : reportez-vous à la rubrique du site qui explique comment l'installer de plusieurs façons.

Testez que tout marche bien au niveau 2D (pas la 3D bien sûr car on l'a pas encore installée !), que vos applications fonctionnent parfaitement, ainsi que les fontes, les diverses résolutions, etc...

Une fois Xfree4 opérationnel, copiez le fichier /etc/X11/XF86Config dans un endroit sûr (dans le /root ou tout autre répertoire que /etc/X11).

On va maintenant passer à la prise en charge de l'accélération 3D. Il est important pour le moment que le serveur 2D marche très bien.

Récupérer les packages pour la prise en charge 3D et installation

Allez sur le site linux.3dfx.com , suivre les liens "Open source" , "drivers" , Voodoo3/Banshee X Server with Mesa-based OpenGL API Support.
(pour la Voodoo 5, regardez dans ...)
Récupérez les packages suivants :
tdfx_dri-4.0.00-1.i386.rpm
tdfx_drm-1.0-1.src.rpm
Glide_V3-DRI-3.10-6.i386.rpm
Installez en premier le package Glide 3x par la commande:
rpm -Uvh Glide_V3-DRI-3.10-6.i386.rpm
Note : Si votre distribution n'est pas basée sur les rpm, récupérez le gestionnaire de rpm et forcez l'install par "rpm -i --nodeps Glide_V3-DRI-3.10-6.i386.rpm". Pour la Slackware 7, le gestionnaire rpm est déjà dans la distribution, il suffit d'initialiser la base rpm par "rpm --initdb" puis de forcer l'installation du package).

Installez alors le serveur Xfree4 DRI :

rpm -Uvh tdfx_dri-4.0.00-1.i386.rpm
En fait là, on installe un serveur Xfree 4 optimisé et qui contient les modules pour les cartes 3Dfx banshee/voodoo3. Votre XF86Config vas être écrasé par un XF86Config de base, qui a tous les coups ne correspond pas à votre config (résolution par défaut, fontes, souris, clavier, ...). On va le laisser comme ça pour le moment.

Recompilez alors le device pour la 3Dfx:

rpm --rebuild tdfx_drm-1.0-1.src.rpm
Puis installez le:
rpm -Uvh /usr/src/redhat/RPMS/i386/tdfx_drm-1.0-1.i386.rpm
Ne vous affolez pas si vous avez des erreurs de dépendances de modules, ou de modules non résolus, c'est pas grave. Pour la Slackware, j'ai eu des petits problèmes pour recompiler ce driver. Si vous avez les mêmes problèmes, contactez moi (st@lea-linux.org).

Configuration de l'ensemble

Bon ok, on vas maintenant passer au plus dur, la configuration du tout. Premièrement il faut vérifier que le module tdfx est chargé avant de lancer le serveur X. Faite un "insmod tdfx.o". Je crois bien que les rpm insèrent cette ligne dans un script de démarrage. Si toutefois vous vous apercevez qu'après un reboot ce module n'est pas chargé (on peut voir les modules chargés en mémoire par la commande lsmod) , insérez la ligne "insmod tdfx.o" dans /etc/rc.d/rc.local.

Bon maintenant on va configurer le XF86Config. Pour cela heureusement on a gardé l'ancien :) . Vous allez copier les sections tels que les fontes, la souris, le clavier de l'ancien XF86Config (celui que vous avez sauvegardé dans un répertoire au début de l'install, vous vous souvenez, quand même ;) dans le nouveau (qui se trouve dans /etc/X11) en écrasant les entrées bien sûr. Ne modifiez PAS les sections modules et autre ! Vérifiez quand même dans les sections screen que les résolutions correspondent à des résolutions que votre écran supporte (virez par exemple le 1280x1024 si c'est trop pour votre matériel).

Si les fréquences ne sont pas bonnes, que votre écran n'arrive pas à suivre (on dirait une émission de canal + cryptée sur le moniteur), contactez-moi sur la liste ou le forum pour qu'on ajuste vos fréquences. Gardez bien de coté l'ancien XF86Config pour qu'on puisse vous aider !

Bon alors on croise les doigts et on lance X.

Si X se lance bien on vérifie que la 3D est bien prise en compte en testant Quake III :
linuxquake3 +set r_glDriver /usr/X11R6/lib/libGL.so +set r_fullscreen 0

Si Quake démarre, c'est bon la 3D fonctionne !

Cette rubrique n'est pas totalement finie, j'attends vos impressions et vos résultats d'installations, les problèmes rencontrés ainsi que les solutions seront inclus dans cette rubrique au fur et à mesure, donc n'hésitez pas à me mailer pour compléter cet article : st@lea-linux.org, ou bien postez vos expériences sur le forum.

Haut


Les cartes NVidia TNT

par Fred complété par serge

NVidia vient de sortir un driver (dont la première version violait la license GPL) ; l'installation de ce driver est moins facile qu'il n'y paraît.
Ce driver suppporte les TNT, TNT2, Geforce, Quadro.


Nous allons expliquer dans cette rubrique comment installer les drivers de chez NVidia afin de disposer de l'accélération 3D des cartes TNT sous Linux.
Prérequis :
Vous devez tout d'abord installer XFree86 4.0 - voyez pour cela la rubrique XFree4.0.
Vous devez vous connecter en root, et être en runlevel 3 (par exemple, tapez "init 3" dans une console).

Téléchargement des drivers


Ensuite téléchargez les drivers de chez NVidia. Je vous conseille (c'est la seule procédure que je décrirai) de télécharger les sources sur leur site ftp. Ne pas oublier de télécharger la FAQ. Ne pas oublier de la lire. (Je déconne, la lecture de ce document devrait suffire, mais on ne sait jamais).

Dans la version précédente de cette documentation, je faisais état de problème avec le driver AGP de chez NVidia : le problème est réglé avec la version 0.9.4. Le problème était dû à des bios boggués (comme par hasard : le mien !). Cette nouvelle version semble fonctionner sans trop de problème (si quelqu'un veut que je teste Quake, il n'a qu'à me l'envoyer - par la poste ! ;-)) .
 
 


Patcher votre kernel pour l'AGP

ATTENTION: ce patch est à appliquer QUE si la version des drivers Nvidia que vous possédez est inférieure à la version 0.9.6. A partir de la version 0.9.6 N'APPLIQUER SURTOUT PAS CE PATCH, passez au chapitre suivant!

Il est necessaire pour certaines cartes méres de patcher votre kernel pour la prise en compte de l'AGP et utiliser le driver de nvidia. De plus, même si pour certaine carte mére il n'est pas nécessaire de patcher le kernel pour pouvoir utiliser les drivers nvidia, je vous le conseille fortement pour profiter pleinement des accélérations 3D.
Je suppose que vous avez un kernel 2.2.16 (dernier en date), d'ailleur je ne peux que vous le conseiller pour prendre en compte correctement l'AGP et les driver nvidia. Si vous ne l'avez pas, récupérez le sur ww.kernel.org.
Récupérez le patch ici (récupérez la version pour les noyaux 2.2.16 ou 2.3.x si vous avez un noyau 2.3.x).
Pour patcher votre kernel, faire alors:

cd /usr/src/linux
cat /chemin_ou_se_trouve_le_patch/agpgart-2.2.16-patch | patch -p1

Une fois votre kernel patché, reconfigurez le (make config ou make menuconfig ou make xconfig) , vérifiez dans la rubrique code maturity que vous avez activez le development code/drivers , puis dans la rubrique "character device" passez en module(M) le support agp, si une liste de chipset apparait, selectionnez tous les chipset (VIA, Intel, etc...) pour avoir le support de n'importe quel chipset (et du votre donc).
Bon le probléme c'est qu'il vas falloir maitenant recompilez et installez le nouveau noyau ainsi que les modules (voir la rubrique kernel pour plus d'aide).
Une fois le noyau compilé et que vous avez demarrez sur ce nouveau noyau (indispensable car le patch modifie les zones mémoires pour prendre en compte l'agp), on vas créer le device pour l'agp:

mknod /dev/agpgart c 10 175

chargez le module agpgart en mémoire (modprobe agpgart). Il se charge sans probléme normalement.
Si c'est bon, ajoutez dans un script de démarrage la chargement de ce module, par exemple vous ajoutez dans /etc/rc.d/rc.local la ligne:

/sbin/modprobe agpgart

Voila l'agp est pris en compte par votre kernel!

Installation du driver de chez NVidia

Je vais expliquer la démarche en supposant que vous installez les drivers 0.9.4 deniére version en date de cocument:
Vous devez avoir téléchargé :
NVIDIA_GLX-0.9-4.tar.gz
NVIDIA_kernel-0.9-4.tar.gz
décompressez les :
# tar xzf NVIDIA_kernel-0.9-4.tar.gz
# tar xzf NVIDIA_GLX-0.9-4.tar.gz

Installation du module nvidia pour le kernel

Placez vous dans le répertoire : NVIDIA_kernel-0.9-4. Compilez le module.

Note :  pour mener à bien cette compilation, vous devez avoir installé les sources du noyau de Linux et configuré ceux-ci comme décris plus haut..

Un simple make dans le répertoire NVidia_kernel-0.9-4 va modifier le fichier /etc/conf.modules pour que le modules soit chargé automatiquement, créer dans /dev les noeuds de périphériques correspondant à votre carte et installer les dits modules dans le bon répertoire (ie: /lib/modules/<kernel-version>/video).
Toutefois, il est necessaire d'ajouter les options de chargement du module NVdriver pour éviter des pantages suivant le chipset de votre carte mére.
Déchargez de la mémoire le module NVdriver que le make à chargé automatiquement par:

rmmod NVdriver

Editez le fichier /etc/modules.conf (ou conf.modules suivant les distributions) et ajoutez en dessous de alias char-major-195 NVdriver la ligne suivante:
ATTENTION:
cette ligne est à appliquer QUE si la version des drivers Nvidia que vous possédez est inférieure à la version 0.9.6. A partir de la version 0.9.6 N'APPLIQUER PAS CES CHANGEMENTS!

options NVdriver NVreg_UseKernelAGP=1 NVreg_ReqAGPSBA=1 NVreg_ReqAGPFW=1

Remarque: si vous avez un chipset VIA Apollo Pro133A, validez dans votre BIOS la gestion 4x AGP et ajoutez dans la ligne décrite au-dessus NVreg_EnableVia4x=1

Bon testez que le module se charge sans erreur par un

modprobe NVdriver

Installation du serveur X

L'installation du driver en elle-même est simple, mais il ne faut pas que le nouveau driver entre en conflit avec l'ancien. Pour cela il nous faut effacer ce qui pourrait entrer en conflit en prenant soin de sauvegarder ceux-ci pour revenir au départ en cas de problème.
[root@becane home]# mkdir nv-bak ; cd nv-bak
[root@becane nv-bak]# mv /usr/X11R6/lib/libGL.* .
[root@becane nv-bak]# mv /usr/X11R6/lib/modules/extensions/libGLcore.a .
[root@becane nv-bak]# mv /usr/X11R6/lib/modules/extensions/libglx.a .
Pour être sur d'avoir fait correctement le ménage faite un :
find /usr/X11R6/lib -name '*GL.*'
find /usr/X11R6/lib -name '*GLcore.*'
find /usr/X11R6/lib -name '*glx*'
Si l'un de ces find vous renvoie quelque chose, celui-ci va, n'en doutons pas, créer des problèmes, alors : déplacez le dit quelque chose vers nv-bak. Puis placez-vous dans NVIDIA_GLX-0.9-4 et installez le driver par :
[root@becane NVIDIA_GLX-0.9-4]# make
Enfin éditer /etc/X11/XF86Config et modifiez la ligne :
Driver      "nv"
et remplacez là par (le symbole # sert à commenter une ligne pour la rendre inactive sans pour autant la supprimer pour permettre un retour en arrière facile) :
#Driver      "nv"
Driver      "nvidia"
et dans la section : modules faites en sorte que l'on puisse voir :
Load         "glx"
plutôt que :
#Load        "glx"
Et puis lancez votre serveur X par startx ou init 5 pour relancer [kgx]dm. Et c'est tout.

Pour voir comment cela accélere, vous pouvez utiliser xracer (chez moi ça marche) ou l'économiseur xscreensaver (les economiseurs 3D) par exemple en tapant morph3d. Attention ils ne fonctionnent pas en tant qu'économiseur écran (une - au moins - fonction OpenGL semble ne pas être encore implémentée !), par contre en tant que démo tout va bien. Mais des programmes plus lourds devraient pouvoir en profiter (genre Quake). Je n'ai eu aucun problème avec l'analiseur de spectre OpenGL de XMMS.


Chasse aux troubles (Trouble Shooting).

Rien ne fonctionne, je veux revenir à mon ancien driver

Normalement cela ne devrait pas arriver, mais bon, effacez dans /usr/lib tous les libGL.* et libGLcore.* et dans /usr/X11R6/lib/modules/extensions tous les libglx.* et recopiez les originaux depuis nv-bak, enlevez vos modifications dans /etc/X11/XF86Config. Redémarrez votre serveur X.

<programme> ne semble pas utiliser l'accélération 3D

NVidia nous prévient que certains programmes peuvent ne pas profiter de l'accélération 3D bien qu'étant basés sur MesaGL : ceux dont la librairie Mesa est liée statiquement avec l'exécutable (cela signifie que le programme inclut sa propre librairie OpenGL et n'utilise donc pas celle que vous venez d'installer). Dans ce cas, pas de problème, comme nous sommes dans le monde radieux de l'open source : recompilez depuis les sources et tout (ou presque) se passera bien.

libMesaGL.so not found

Un autre problème peut se poser : les programmes compilés pour MesaGL (et liés avec libMesaGL/libMesaGLU). Pour ceux-là la solution est simple, créez des liens :
# ln -s /usr/lib/libGL.so.xxx.xxx /usr/lib/libMesaGL.so
# ln -s /usr/X11R6/lib/libGLU.so.xxx.xxx /usr/X11R6/lib/libMesaGLU.so
# ldconfig
Note : C'est bien deux répertoires distincts : /usr/lib et /usr/X11R6/lib - NVidia installe ses drivers dans /usr/lib alors que XFree86 installe ses librairies dans /usr/X11R6/lib. Ceci devrait régler certains problèmes.

Quand je lance X j'ai l'écran qui devient noir et la machine est plantée

Probléme lié à la gestion de l'AGP. Pour cela, editez le fichier /etc/modules.conf et modifiez  les options NVreg_UseKernelAGP=1 NVreg_ReqAGPSBA=1 NVreg_ReqAGPFW=1 en changeant les 1 par des 0.
ATTENTION: ceci n'est en fait valable que pour les drivers versions 0.9.5 et inférieur!

Quand je passe de X à un terminal par CTRL ALT Fx : ça plante.

C'est un bug des drivers, on ne peux rien faire pour vous. Attendez une nouvelle version des drivers chez nvidia. Evitez de passez sur un autre terminal, préférez ouvrir un xterm.

Quake III démarre mais lorsque je joins une partie Quake se termine avec des erreurs GLX.

Essayez de mettre à jour les librairie GLX en les récupérant sur http://utah-glx.sourceforge.net/ (je n'ai pas testé personellement mais il parrait que ça marche).

Haut


Carte graphique i810 et Linux.

par Martial Daumas

Ce document décrit comment utiliser et configurer la carte graphique i810 efficacement sur les différentes versions de Linux.


Présentation.

Le problème :

Supportée depuis quelques temps directement par le noyau de Linux, la carte graphique Intel i810 peut parfois poser des problèmes avec certaines distributions, avec certains noyaux ou drivers ou dans des configurations matérielles spécifiques. Cette carte existe en différentes versions et modèles, mais la démarche est normalement la même à chaque fois.
 

Exemples de problèmes :

Ceci est juste pour information, toutefois voici certains cas où j'ai rencontré des désagréments plus ou moins sévères (PC: Celeron 500Mhz):

SuSE Linux 6.4 : Problèmes fréquents avec XF86Setup (plantage de la machine), problème de disparition du device /dev/agpgart (bus AGP) lors des recompilations du noyaux dû à un noyau (trop?) lourdement patché par SuSE. Leur outil de configuration SAX plantait aussi souvent. Leur driver GLX semble défectueux.

SuSE Linux 7.0 : Problème encore et toujours avec la 3D, ainsi que des plantages de la machines avec SAX2 et XFree 4.

Mandrake7.1 : Supportait bien cette carte, mais les outils de configurations 'maison' avaient tendance à brider sans raison les possibilités de la carte (profondeur de couleur, résolution etc...)
 

Première solution

Après une compilation d'un noyau 2.2.16+ (ou avant avec des patch il me semble), il se peut que le système refuse de passer en mode graphique, avec des messages du style :
/dev/agpgart(i810) not found ....
En fait, cela ne m'est arrivé que sur des SuSE... Toujours est il qu'il faut faire un petit tour (toujours recommandable) par /usr/src/linux/Documentation/devices.txt, on y trouve ceci :
10 char Non-serial mice, misc features
...
...
   175 = /dev/agpgart   AGP Graphics Address Remapping Table
Ce qui signifie en clair que le 'device' agpart (bus AGP) a un Major de 10, type caractère avec un Minor de 175. le premier définit un type et une famille, et le deuxième est un identifiant spécifique au matériel.

Nous allons donc créer ce 'device' par ces commandes:

(martial@lfs:martial)$ su
Password:******
(root@lfs:martial)# cd /dev
(root@lfs:dev)# mknode /dev/agpgart c 10 175
Le 'c' précise qu'il s'agit d'un character device (et non pas block); on vérifie la création par:
(root@lfs:dev)# ls -l agpgart
crw-------    1 root     root      10, 175 Aug  6  2000 agpgart
En cas de besoin, modifiez les permissions, mais normalement ça passe très bien ainsi. Nous venons de 'créer' la prise en charge par Linux du bus AGP (rappelez vous, tout est fichier), mais cela ne suffit pas si nous n'avons pas un 'device' spécifique pour notre carte i810, Ce device n'était malheureusement pas documenté dans le noyau 2.2.x (toujours pas en fait), mais une brève recherche sur internet nous apprend ce que l'on veut :
crw-------    1 root     root      10, 240 Aug  8  2000 agpgarti810
Il faut donc refaire la manip précédente:
(root@lfs:dev)# mknode /dev/agpgarti810 c 10 240
(root@lfs:dev)# ls -l agpgarti810
crw-------    1 root     root      10, 240 Aug  8  2000 agpgarti810
Là, on est bon !

Bien configurer son noyau.

Les manips précédentes sont utiles si vous aviez perdu les 'devices' corrects, mais ils ne seront utiles que dans le cas ou votre noyau a bien le support du bus AGP, sinon ces devices sont aussi inutiles que /dev/mouse quand on n'a aucun driver souris (en statique ou module).
Pour que l'AGP avec la i810 marche, il nous faut sélectionner quelques options lors de la configuration d'un noyau, ce sont les mêmes avec les noyaux 2.2.x et 2.4.x.
(root@lfs:root)# cd /usr/src/linux&& make menuconfig
ou
(root@lfs:root)# cd /usr/src/linux&& make xconfig
Tout d'abord vérifiez que vous avez ceci :
Code maturity level options  --->
 [*] Prompt for development and/or incomplete code/drivers
 (pour éviter d'avoir des options inaccessibles sur un noyau un peu ancien)

  Processor type and features  --->
         (Pentium-Pro/Celeron/Pentium-II)  Processor family
         < > Toshiba Laptop support
         < > /dev/cpu/microcode - Intel IA32 CPU microcode support
         < > /dev/cpu/*/msr - Model-specific register support
         < > /dev/cpu/*/cpuid - CPU information support
         (off) High Memory Support
         [ ] Math emulation
         [*] MTRR (Memory Type Range Register) support
         [ ] Symmetric multi-processing support
         [ ] APIC and IO-APIC support on uniprocessors
Mettez le processeur qui vous correspond au lieu du i386 par défaut, ça ira (un peu) plus vite. Les cartes mères i810 ont le mttr normalement, sinon ça ne pose pas de problèmes, alors autant le mettre.
Character devices  --->
         <M> /dev/agpgart (AGP Support)
         [ ]   Intel 440LX/BX/GX and I815/I840/I850 support
         [*]   Intel I810/I815 (on-board) support
         [ ]   VIA chipset support
         [ ]   AMD Irongate support
         [ ]   Generic SiS support
         [ ]   ALI chipset support
L'option Intel n'est pas disponible en module, il faudra donc générer un nouveau noyau, et pas seulement compiler les modules. Nous passons donc à la compilation par :
(root@lfs:martial)# cp -R /lib/modules/2.4.5 /lib/modules/2.4.5.bak
(root@lfs:martial)# make bzImage
(root@lfs:martial)# make modules
(root@lfs:martial)# rm -R /lib/modules/2.4.5
(root@lfs:martial)# make modules_install
(root@lfs:martial)# mv /boot/vmlinuz /boot/vmlinuz.old
(root@lfs:martial)# cp arch/i386/boot/bzImage /boot/vmlinuz
En oubliant pas de mettre à jour LILO avec ce nouveau noyau :
(root@lfs:martial)# /sbin/lilo -v
Puis de mettre à jour les dépendances des modules du noyau par un :
(root@lfs:martial)# depmod -a

Utilisation du DRI.

Le DRI est une fonctionnalité de Xfree 4.x qui permet d'utiliser l'accélération matérielle de certaines cartes, dont la i810 sous X. La i810 n'est pas une carte 3D géniale, raison de plus de la booster un peu.

Pour information, je viens de réussir à utiliser cette fonction pour la première fois en utilisant une version de Linux faite 'maison' (cf. LFS). J'avais essayé avec des SuSE, Mandrake, RedHat etc... et toutes avaient plus ou moins ce qu'il fallait en théorie pour que ça marche, mais je n'ai jamais réussi. C'est sans doute possible... en tout cas si certains de vos RPMS semblent poser trop de problèmes, penser à essayer de les compiler vous-même.
(NDJC : si vous avez réussi à installer sur une de ces distributions, merci de nous transmettre votre méthode :-)

En tout cas, voici ce qu'il vous faut en plus dans le noyau :

[*] Direct Rendering Manager (XFree86 DRI support)
        < >   3dfx Banshee/Voodoo3+
        < >   3dlabs GMX 2000
        < >   ATI Rage 128
        < >   ATI Radeon
        <*>   Intel I810
        < >   Matrox g200/g400
C'est dans les noyaux 2.4.x, mais certaines distributions proposent des noyaux 2.2.x améliorés : à consommer avec la plus grande des modérations (NDLR : malheureusement on n'a pas le choix).
 

Configuration de X

Ensuite, il faut configurer votre /etc/X11/XF86Config. Plutôt qu'un long discours, je sort le mien, mais à titre d'exemple uniquement, ça ne passera sans doute pas tel quel chez vous :
###### /etc/X11/XF86Congig #########
Section "Files"
  FontPath   "/usr/X11R6/lib/X11/fonts/misc:unscaled"
  FontPath   "/usr/X11R6/lib/X11/fonts/local"
  FontPath   "/usr/X11R6/lib/X11/fonts/misc:unscaled"
 ..... et bla et bla ....

  ModulePath "/usr/X11R6/lib/modules"
  # ca c important, ca doit pointer
  # sur l'endroit (variable) ou vous avez les modules
  #(dri, glx, freetype etc..) de X.

  RgbPath "/usr/X11R6/lib/X11/rgb" #idem
EndSection

Section "ServerFlags"
  Option   "AllowMouseOpenFail"
EndSection

Section "Module"
  Load   "dbe" # le double buffer extension, parait que ca sert....
  Load   "type1"
  Load   "speedo"
  Load   "extmod"
  Load   "freetype" # si vous voulez les police .TTF
  Load  "glx" # important pour l'accel 3D
  Load  "dri" # imprtant aussi
EndSection

Section "InputDevice"
  Driver   "keyboard"

.... ! depend de votre matériel ! ..............

  UseModes   "Modes[0]"
EndSection


Section "Modes"
  Identifier  "Modes[0]"
  Modeline  "1024x768" 96.16 1024 1064 1200 1328 768 783 794 813
EndSection


Section "Screen"
  DefaultDepth 16
  SubSection "Display"
    Depth 16
    Modes   "1024x768"
  EndSubSection
  SubSection "Display"
    Depth 24
    Modes   "1024x768"
  EndSubSection
  SubSection "Display"
    Depth 8
    Modes   "1280x1024"
  EndSubSection
  Device   "Device[0]"
  Identifier   "Screen[0]"
  Monitor   "Monitor[0]"
EndSection


Section "Device"
  BoardName   "i810"  # cette section est assez importante
  BusID   "0:1:0" # ceci dépend du matériel : 
  # X -scanpci 
  # en mode console pour trouver le bon ID 
  Driver   "i810"
  VideoRam       8192   # la i810 se sert de la RAM générale, vous pouvez
  # en allouez plus si vous voulez
  Identifier   "Device[0]"
  VendorName   "Intel"
EndSection


Section "ServerLayout"
  Identifier   "Layout[all]"
  InputDevice "Keyboard[0]"  "CoreKeyboard"
  InputDevice "Mouse[1]"  "CorePointer"
  Option  "Xinerama"  "off"
  Screen "Screen[0]"
EndSection

Section "DRI"
  Group   "video"  # pensez à créer le groupe video en tant que root
  Mode    0666     # normalemnt ca soit etre 0660, mais heuuuuhh.....
EndSection

#######fin de /etc/X11/XF86Config ##########
N'oubliez pas que le DRI est supposé tourner en 16bits, ca passe aussi en 24bits, mais beaucoup moins bien.

Pour essayer le résultat, tester un des Xscreensaver (comme atlantis) ou un jeu en 3D (comme Xracer), si tout c'est bien passé ca doit aller très vite (au moins un quadruplement de vitesse chez moi).

Pensez aussi s'il n'existe pas à créer le device dri dans /dev :

(root@lfs:dev)# ls -l dri
total 0
crw-rw-rw-    1 root     root      10,  63 Jul 19 21:27 card0
donc un :
bash-2.05# mknod /dev/dri c 10 63
fera l'affaire.

Conseils généraux.

Dans tout les cas, faites le maximum pour opérer sur un système sain, c'est-à-dire installez les bons paquetages, au besoin obtenez les mises à jours et/ou patches sur le site de votre distribution.

Utilisez une version stable de gcc, la version 3 est buggée (celle installée par RH7.1 ; NDLR : ce n'est pas la version 3 officielle..., mais une version 3 spéciale RedHat) (j'ai utilisé gcc version 2.95.2.1, impeccable).

Lisez bien la doc de Xfree et du noyau, il y a pleins de bons conseils importants dedans. Veillez à bien avoir les libs requises comme MESA, libGL, libGLUT, glx et c. Cela dépend malheureusement de votre distribution et peut s'avérer extrêmement compliqué. En installant tout à partir des sources, je n'ai eu aucun problème particulier.

Il vous faut dans tout les cas un serveur X prenant en charge la carte i810, pas de soucis pour les noyaux récents. Au besoin, mettez à jour, ou utilisez certains patches disponibles pour les vieux noyaux.

Soyez prudents lorsque vous touchez au noyau et/ou à X, faites des copies de sauvegardes, et gardez toujours un moyen de booter sur l'ancienne configuration.

...Et lisez le LEA-BOOK !

Haut


Installation du lecteur de DVD : Xine

par Fred et Jicé

Lire des DVD vidéo avec Xine, avec et sans carte de décompresion MPEG-2 (dxr3 et Hollywood+).


Introduction

La lecture de DVD video sous Linux a longtemps été un véritable défi. La cause en était la volonté des majors et autres multi-nationales de verrouiller le marché du DVD (zones, cryptage des DVD, etc.). Grâce au travail acharné de plusieurs équipes, ce temps est aujourd'hui révolu, et après avoir lu ces quelques lignes, et épongé un peu de sueur, vous pourrez utiliser sous Linux vos DVD video de façon optimale.

Nous allons présenter dans cet article l'installation de Xine, un lecteur video performant pour Linux. A cause de problèmes légaux, Xine ne sait pas tel quel lire les DVD cryptés ou bloqués. Heureusement, une autre équipe développe en parallèle un plugin pour Xine (xine_d4d) permettant de les lire sans aucun problème. Nous verrons comment installer xine_d4d pour lire les DVD cryptés.
La structure modulaire de Xine permet aussi à un autre groupe de développer un plugin (xine-dvdnav) afin d'utiliser les menus des DVD comme sur une platine de salon.

Nous verrons enfin comment tirer parti des cartes de décompression MPEG-2 basées sur le chipset em8300, dont les cartes Creative Labs dxr3 et Sigma Design Hollywood+ (et d'autres cartes sans marque et moins chères ;).

Enfin, nous verrons qu'un autre problème se pose qui, lui, n'est pas lié au lecteur de DVD : rendre automatique l'installation de tous les drivers au boot de Linux.

Les utilisateurs avancés (ou pressés ;) pourrons se rendre directement au résumé qui regroupe en quelques lignes les étapes à franchir afin d'installer Xine avec et sans carte de décompression.

Pour commencer, il faut que votre noyau soit compilé avec le support du système de fichier UDF (CONFIG_UDF_FS = Y ou M), car la plupart des DVD utilisent ce système de fichier. C'est le cas des distributions récentes. Nous supposerons également dans la suite que vous avez un noyau de la série 2.4.


Si vous avez une Mandrake

Dans ce cas, lisez plutôt : xine pour mandrake.

Préparatifs

1. /dev/dvd

Etablissez un lien entre votre lecteur (chez moi /dev/hdb, car j'ai un lecteur de DVD atapi (IDE), mais ce pourrait être /dev/scd0 si vous avez un lecteur SCSI) et /dev/dvd :
[user@localhost ~]$ ln -s /dev/hdb /dev/dvd
Vous devez aussi donner les droits en lecture/écriture sur ce périphérique a vos utilisateurs de xine : reportez vous à cet article.

2. /usr/local

Nous allons installer Xine (ainsi que les programmes pour piloter la carte em8300) dans le répertoire /usr/local.

Le répertoire /usr/local/bin doit donc être dans votre chemin de recherche (PATH) et de plus,  /usr/local/lib doit se trouver dans les librairies chargées par défaut.

Ajoutez la ligne :

export PATH=$PATH:/usr/local/bin
dans ~/.bashrc et (passez en root) la ligne :
/usr/local/lib
dans /etc/ld.so.conf, puis tapez : /sbin/ldconfig (afin de faire prendre en compte les librairies de /usr/local/lib au système).


Installation d'une carte de décompression MPEG-2

Si vous n'avez pas de telle carte, passez directement au chapitre suivant pour installer Xine.

"Bon, c'est bien joli tout cela, mais la lecture de dvd sur mon PII 350 est saccadée et c'est pour cela que j'ai acheté une carte dxr3 !"

Et bien, c'est pour cela qu'une équipe de joyeux lurons a développé un driver pour votre carte accélératrice ! (enfin, la leur je pense...) Ce driver fonctionne avec toutes les cartes basées sur la puce em8300 (Creative Labs dxr3, Sigma Design Hollywood+, etc). Il est utilisable par Xine, et depuis la version 0.9.0 du 3/12/2001, par MPlayer.

L'installation et la configuration de ce driver est assez difficile, mais cela vaut le coup...

Il faut savoir que ce driver est développé sans l'aide des constructeurs de la puce em8300 ! Il est entièrement reverse-engineeré (admirez le franglais), c'est à dire que les développeurs ont observé le comportement du driver et de la carte sous Windows et en ont déduit comment programmer le driver pour Linux. C'est un travail long et difficile (mais que je (Jice) trouve très amusant ;)

Voyons comment j'ai installé cette carte chez moi. Avant toute chose, il faut que votre noyau soit compilé avec le support I2C (CONFIG_I2C = Y ou M) et I2C bit-banging interfaces (CONFIG_I2C_ALGOBIT = Y ou M), ce qui est le cas des noyaux pour les distributions récentes (Mandrake 8, etc.)

Important : sachez que par défaut le driver active la sortie télé de la carte MPEG-2 ; pour afficher la video sur le moniteur (on parle alors de mode "overlay"), il faut suivre ces recommandations.
 

Création des périphériques em8300

Créons les périphériques à travers lesquels nous accéderons à la carte :
$ su
Password: xxxxxxxxxx
# mknod /dev/em8300 c 121 0
# mknod /dev/em8300_mv c 121 1
# mknod /dev/em8300_ma c 121 2
# mknod /dev/em8300_sp c 121 3
# chmod g+rw /dev/em8300*
# exit
Pour que l'utilisateur courant puisse utiliser la carte de décompression
Et pour que tout le monde (et pas seulement root) puisse se servir de la carte de décompression (et donc de xine pour dxr3) éditez /etc/security/console.perms et ajoutez-y :
<em8300>=/dev/em8300*
<console>  0600 <em8300>     0600 root.audio
relancez le serveur X en tapant CTRL+ALT+BACKSPACE.
Et voilà ! Tout le monde peut utiliser votre carte de décompression.
 

Récupération des sources et installation de la librairie dxr3, et du "patch" pour Xine

Il vous faut le package des drivers em8300 (http://dxr3.sourceforge.net). Prenez la dernière version sur http://sourceforge.net/project/showfiles.php?group_id=5165 : ce ne sera pas pire ! A la rédaction de cet article les drivers sont en version 0.9.0 ; ils ne contiennent plus de patch pour Xine car celui-ci est intégré à Xine depuis xine-5.0.

Remarque : pour que les étapes de compilation passent chez moi, j'ai dû copier le fichier em8300-0.9.0/include/linux/em8300.h vers /usr/src/linux-2.4.8/include/linux/em8300.h

Passons à l'installation :

$ tar xzf em8300-0.9.0.tar.gz
$ cd em8300-0.9.0
$ ./configure --prefix=/usr/local
$ make
$ su
Password: xxxxxxxx
# make install
# exit
Et c'est tout ? Hé bien oui, sauf si vous aviez installé Xine auparavant : il faut le recompiler (seulement la partie xine-lib) : il va détecter la librairie dxr3 tout seul et se compiler avec le plugin dxr3. Placez-vous dans le répertoire de Xine :
$ cd xine-lib-0.9.7
$ rm -f config.cache
$ make clean (si vous avez un message d'erreur ici, ce n'est pas grave : continuez)
$ ./configure --prefix=/usr/local
$ make
$ su
Password: xxxxxxx
# make install
# exit
Et voilà !

Chargement des modules

Et c'est tout ?  Non ! Maintenant il faut charger les modules (=drivers). Heureusement deux scripts se chargent de cela pour nous : ldm pour le chargement et rmm pour le déchargement. Mais avant de les charger, il faut les compiler (avant toute chose, les sources de votre noyau doivent être installées et configurées, sinon vous aurez un message d'erreur). Placez-vous dans le répertoire em8300-0.9.0/modules :
$ cd em8300-0.9.0
$ cd modules
$ ./make
$ su
Password: xxxxxxxx
$ ./make install
$ exit
Ensuite on charge les modules (pour l'instant, ce n'est qu'un test) :
$ cd em8300-0.9.0/modules
$ su
Password: xxxxxxxxx
# ./ldm
(vérifions que l'installation est correcte : les lignes suivantes doivent ressembler à ça)
# lsmod | grep em8300
em8300                 45456   0 (unused)
soundcore               4208   6 [em8300 sb_lib sound]
i2c-algo-bit            7328   3 [em8300]
# exit

Récupération et installation du microcode

Pour que la carte de décompression fonctionne, il faut programmer son processeur em8300. Cela se fait en chargeant dedans un programme nommé le "microcode" (programme en langage machine correspondant au processeur em8300 de la carte).

Pour récupérer ce programme, montez la disquette ou le CD sur laquelle se trouvent les drivers Windows (ou téléchargez la dernière version des drivers) et trouvez le fichier qui s'appelle rmquasar.vx_ (si vous avez une carte Hollywood+) ou enc2dev.vx_  (si vous avez une carte dxr3). Ces fichiers sont peut-être dans un zip ou un autre type de fichier : à vous de le trouver ; avec ma carte Hollywood+ le fichier est à la racine de la disquette.

Il faut décompresser ce fichier :

$ cp /mnt/floppy/rmquasar.vx_ .
$ em8300-0.9.0/scripts/msexpand.pl rmquasar.vx_
Input file appears to be Microsoft Compress format, proceeding
Output filename = rmquasar.vxd
Original file size: 307668 bytes
Compression ratio: 45.3%
puis récupérer le microcode :
$ em8300-0.9.0/scripts/microcode_extract.pl rmquasar.vxd
Found microcode block (length=26282), saving to microcode0.bin
Found microcode block (length=26026), saving to microcode1.bin
Found microcode block (length=26222), saving to microcode2.bin
Note : il peut y avoir 2 ou 3 microcodes, selon votre carte et/ou la version des drivers. C'est normal.

Ensuite il faut charger le microcode dans la carte, et pour ce :

$ su
Password: xxxxxxxx
# em8300-0.9.0/scripts/microcode_upload.pl microcode0.bin
Microcode uploaded to /dev/em8300
# exit
Note (1) : à ce moment le "vga passthrough" (le câble qui relie votre carte vidéo à la carte MPEG-2) peut cesser de fonctionner (ce n'est pas le cas chez moi... : ce problème semble ne plus exister (?)). Si cela vous arrive, il n'y a pas encore d'autre solution que de rebrancher votre moniteur directement sur la carte video plutôt que sur la carte de décompression.

C'est parfait. Le premier problème est qu'il y a (comme vous l'avez peut-être remarqué) plusieurs microcodes, alors lequel choisir ? Réponse : en essayant ! Les développeurs n'ont pas encore trouvé lequel choisir. Ce sera à vous de le faire. Chez moi tous les microcode semblent fonctionner de la même manière (en fait, après de multiple expérience, il semble que seul l'un d'eux permette de faire fonctionner correctement le mode 'overlay' : affichage à l'écran plutot que sur la télé), mais ce ne sera peut-être pas le cas chez vous.
Note de Jice : chez moi, le microcode permettant de faire fonctionner correctement l'overlay est microcode2.bin.

Voilà comment faire pour choisir un bon microcode :

  1. tapez : em8300-0.9.0/scripts/microcode_upload.pl microcodeX.binX est le numéro du microcode que vous voulez tester.
  2. lancez xine (en tant que root) :
    # xine
    (ceci pour un affichage sur une télé. Pour un affichage sur le moniteur, lisez d'abord le paragraphe sur l'overlay.)
  3. jouez un dvd, si vous obtenez un signal video (même de couleur complétement décalées dans le vert) c'est bon, vous avez un microcode qui fonctionne, sinon, quittez xine, déchargez puis rechargez les modules :
    # cd em8300-0.9.0/modules
    # ./rmm
    # ./ldm
    et recommencez avec un autre microcode.
  4. si ça ne marche toujours pas : vous êtes maudit, il va falloir vous mettre à l'anglais et lire le howto : http://dxr3.sourceforge.net/howto.html ou alors acheter un lecteur dvd de salon, voire même utiliser Windows (mais vous n'arriverez sûrement pas à cette extrémité ;-)

Choisir les paramètres du noyau

A ce point, vous avez identifié un microcode qui fonctionne, mais les couleurs ne sont probablement pas les bonnes : c'est parce que nous n'avons pas passé les bons paramètres aux modules que nous avons chargés.
Note de Jice : si vous utilisez uniquement l'overlay, les modules fonctionnent sans aucun paramètre, et avec les bonnes couleurs. Vous pouvez donc sauter cette étape si vous ne désirez pas utiliser la sortie télé de votre carte MPEG-2.

Editez d'abord ~/.xine/config et modifier les lignes:

dxr3_tvmode:default
video_driver_name:Xv
Pour qu'elles deviennent :
dxr3_tvmode:pal ou ntsc ou pal60 (ou overlay, voir plus loin)
video_driver_name:dxr3
Si ces lignes n'existent pas : ajoutez-les !

Puis, éditez le fichier em8300-0.9.0/modules/ldm :

#!/bin/sh
modprobe i2c-algo-bit
insmod eeprom.o
insmod adv717x.o pixelport_16bit=1 pixelport_other_pal=0
insmod bt865.o
insmod em8300.o dicom_fix=0 dicom_control=0 dicom_other_pal=0
(ça c'est celui qui marche chez moi) Pour trouver les paramêtres qui vont bien, il va vous falloir une série et './rmm', './ldm'. Voici par quoi remplacer les lignes en gras pour que les couleurs soient bonnes :
adv717x.0 pixelport_16bit=1 pixelport_other_pal=1
em8300.0  dicom_fix=1 dicom_control=1 dicom_other_pal=1
 ou
adv717x.0 pixelport_16bit=0 pixelport_other_pal=0
em8300.0  dicom_fix=1 dicom_control=1 dicom_other_pal=0
 ou
adv717x.0 pixelport_16bit=0 pixelport_other_pal=1
em8300.0  dicom_fix=1 dicom_control=1 dicom_other_pal=1
 ou
adv717x.0 pixelport_16bit=1 pixelport_other_pal=0
em8300.0  dicom_fix=0 dicom_control=0 dicom_other_pal=0
Voilà comment procéder : C'est très fastidieux, mais au bout d'un moment, on finit par y arriver !

Automatiser le chargement des modules

Ca y est vous avez trouver les bons paramètres pour charger les modules ?

Nous allons automatiser leur chargement au démarrage de la machine. Créez le fichier /etc/rc.d/init.d/em8300 (l'emplacement correspond à une Mandrake/RedHat) :
 

#!/bin/sh
# (c) Frédéric Bonnaud
# em8300 :   This shell script launches the dxr3 driver on your system.
#

case $1 in
  start)
    /usr/local/bin/ldm
    /usr/local/bin/microcode_upload.pl /usr/local/etc/microcodexxx.bin
    # pensez à copiez le microcode dans /usr/local/etc !
    ;;
  stop)
    /usr/local/bin/rmm
    ;;
  status)
    if lsmod | grep em8300 2>&1 > /dev/null ; then
      echo "Le driver EM8300 (décompression MPEG-2) est chargé."
    else
      echo "Le driver EM8300 (décompression MPEG-2) n'est pas chargé."
    fi
    ;;
  reload)
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "Usage: $(basename $0) start|stop|restart|status"
    exit 0
esac

exit 0

Copiez ldm, rmm et microcode_upload.pl vers /usr/local/bin et remplacez modprobe xxxxx.o par modprobe xxxxx et ajoutez PATH=$PATH:/sbin à chacun de ces fichiers (ldm et rmm). Ils doivent ressembler à (avec vos paramètres) :
 

#!/bin/sh
# ldm

PATH=$PATH:/sbin:/usr/sbin

modprobe i2c-algo-bit

insmod eeprom
insmod adv717x pixelport_16bit=1 pixelport_other_pal=0 swap_redblue_pal=0
insmod bt865
insmod em8300 dicom_fix=0 dicom_control=0 dicom_other_pal=0

et :

 
#!/bin/sh
# rmm

PATH=$PATH:/sbin:/usr/sbin

fuser -k /dev/em8300
fuser -k /dev/em8300_mv
fuser -k /dev/em8300_ma
rmmod eeprom
rmmod em8300
rmmod adv717x
rmmod bt865

puis, tapez :
# chkconfig --add em8300
Si vous n'avez pas chkconfig, ajoutez des liens S* vers le script dans les répertoires correspondant aux runlevels 3 et 5 (en général /etc/rc.d/rc.3 et rc.5), et des liens K* dans les runlevels 0 et 6 si votre système est "sysV compliant" ;)

Bref, si vous n'avez pas ces répertoires, débrouillez vous simplement pour que /usr/local/bin/ldm soit lancé au démarrage de votre machine et éventuellement /usr/local/bin/rmm quand vous éteignez votre machine.

Utilitaires

Losque vous avez installé les drivers em8300, un programme (dhc) a été installé dans /usr/local/bin, ce programme permet N'hésitez pas à l'utiliser : il est très pratique et simplissime d'emploi.

Un autre programme a été installé : dxr3view. Il permet d'utiliser, tester et régler l'overlay de la carte (i.e. affichage sur le moniteur).
Normalement l'affichage se fait correctement dans la fenêtre dxr3view.
Lorsque la souris est sur cette fenêtre, un appui sur la touche 't' affiche un menu (mémorisez bien cette touche) qui vous permet de passer en plein écran. Mais surtout ne le faites pas avant d'avoir lu la suite : pour repassez en mode 'fenêtré' il faut appuyer sur 't' , puis 'flêche bas', puis 'entrée'.
Mémorisez bien cette séquence de touche avant d'essayer : sinon, vous n'avez plus d'écran : il faudra débrancher le cable 'VGA PASSTHROUGH' !
 

Utilisation de l'overlay (affichage sur le moniteur) avec le driver em8300

Par défaut, le driver dxr3 (nom du driver em8300 de Xine) affiche la video sur la sortie télé de la carte MPEG-2. Si vous désirez afficher la video sur votre moniteur, il faut activer le mode nommé "overlay".

Depuis la version 0.8.1 des drivers em8300, ce mode overlay fonctionne assez correctement, mis à part un bug de xine dans l'initialisation de l'overlay ; nous allons voir ci-dessous un truc pour contourner ce bug.
Comment ça marche ? C'est relativement simple.

  1. Pour la première utilisation (et à chaque changement de résolution/profondeur de couleur), il faut lancer "autocal" qui a été installé dans /usr/local/bin par Xine.
  2. Modifiez ~/.xine/config, pour que les lignes suivantes contiennent :
    1. video.driver:dxr3
    2. dxr3.videoout_mode:overlay
  3. Lancez dxr3view qui est dans /usr/local/bin,
  4. puis xine comme d'habitude (la première fois, par "xine -V dxr3")
  5. Enfin, lancez un film : pour que l'affichage se fasse dans la fenêtre de Xine, minimisez celles de dxr3view, puis déplacez un peu la fenêtre de Xine : cela va lui faire "attraper" l'overlay.
  6. c fini :)
Tous les plugins fonctionnent bien avec l'overlay, même dvdnav (navigation dans les menus des DVD), sauf que l'affichage des menus est un peu décalé, rien de grave en somme.

Voilà, bon film !


Installation de Xine

L'installation est somme toute triviale : on récupère sur :  http://xine.sourceforge.net les packages xine-lib et xine-ui.

Note (1) : à l'heure ou j'écris ces lignes (17/12/2001) la version 0.9.7 de xine est sortie ; Xine supporte directement les cartes à base de em8300 (style : dxr3 ou Hollywood+) à partir de la version 0.5.3. Il n'y a plus besoin de patcher Xine.

On compile les sources, et on installe Xine dans /usr/local :

[user@localhost ~]$ tar xzf xine-lib-0.9.7.tar.gz
[user@localhost ~]$ cd xine-lib-9.7
[user@localhost xine-lib-0.9.7]$ ./configure --prefix=/usr/local
[user@localhost xine-lib-0.9.7]$ make
[user@localhost xine-lib-0.9.7]$ su
Password:xxxxxxxx
[root@localhost xine-lib-0.9.7]# make install
[root@localhost xine-lib-0.9.7]# exit
[user@localhost xine-lib-0.9.7]$ cd ..
[user@localhost ~]$ tar xzf xine-ui-0.9.7.tar.gz
[user@localhost xine-ui-0.9.7]$ ./configure --prefix=/usr/local
[user@localhost xine-ui-0.9.7]$ make
[user@localhost xine-ui-0.9.7]$ su
Password:xxxxxxxx
[root@localhost xine-ui-0.9.7]# make install
[root@localhost xine-ui-0.9.7]# exit
Et voilà ! Xine est compilé et installé ! Les fichiers de Xine sont dans /usr/local/bin pour les exécutables, /usr/local/lib pour les librairies, et /usr/local/lib/xine pour les plugins de Xine.

Nous allons maintenant le tester. Munissez-vous d'un DVD non crypté et mettez le dans votre lecteur de DVD.
Lancez xine :

[user@localhost ~]$ xine
si a ce moment vous vous faites abreuver d'injures du type :
audio_out_oss: realtime check: *FAILED* :-(((((
audio_oss_out: Audio driver realtime sync disabled...
audio_oss_out: ...Will use video master clock for soft-sync instead
audio_oss_out: ...There may be audio/video synchronization issues

input_dvd: unable to open raw dvd drive (/dev/rdvd): Permission denied

ce n'est pas grave (moquez-vous en). Par contre si vous avez :
bash: xine: command not found
ou :
input plugin found : /usr/local/lib/xine/plugins/input_file.so(input_file.so)
input plugin found : /usr/local/lib/xine/plugins/input_net.so(input_net.so)
xine.c(736): /usr/local/lib/xine/plugins/input_dvd.so doesn't seem to be installed (libcss.so.0: cannot load shared object file: No such file or directory)
C'est que /usr/local/bin n'est pas dans votre chemin de recherche (PATH) et/ou que /usr/local/lib n'est pas dans les librairies chargées par défaut.
Relisez les préparatifs, ou tapez :
LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/xine
pour lancer xine.

Pour spécifier le driver video, vous pouvez lancer xine avec l'option -V (ex : xine -V dxr3), pour l'audio avec -A (ex : xine -A oss). Xine se "souvient" ensuite du driver video ou audio que vous avez choisi (il modifie son fichier de configuraiton ~/.xine/config).

Une sortie du type :

[jice@taz jice]$ xine
This is xine (X11 gui) - a free video player v0.9.7
(c) 2000, 2001 by G. Bartsch and the xine project team.
Généré avec la bibliothèque xine 0.9.7 [sam 15 déc 2001 21:56:43]-[gcc version 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk)]-[Linux 2.4.8-26mdk i586].
Version de la bibliothèque de xine trouvée : 0.9.7 (0.9.7).
Display is not using Xinerama.
xres 1024 yres 768 depth 16
dxr3_vo: setting aspect ratio to full
dxr3_vo: setting up overlay mode
dxr3_vo: setting tv_mode to PAL 50Hz
load_plugins: video output plugin dxr3 successfully loaded.
audio_oss_out: Opening audio device...
audio_oss_out: realtime check: *FAILED*
audio_oss_out: Audio driver realtime sync disabled...
audio_oss_out: ...will use system real-time clock for soft-sync instead
audio_oss_out: ...there may be audio/video synchronization issues
audio_oss_out : supported modes are mono stereo
load_plugins: audio output plugin oss successfully loaded.
xine_init entered
xine: using MMX optimized memcpy()
load_plugins: input plugin found : CDA
load_plugins: input plugin found : DVD
load_plugins: input plugin found : stdin_fifo
load_plugins: input plugin found : TCP
load_plugins: input plugin found : file
load_plugins: input plugin found : RTP
load_plugins: input plugin found : VCD
load_plugins: input plugin found : HTTP
load_plugins: demux plugin found : MPEG_TS
load_plugins: demux plugin found : QUICKTIME
load_plugins: demux plugin found : MPEG
load_plugins: demux plugin found : ASF
load_plugins: demux plugin found : AVI
load_plugins: demux plugin found : CDA
load_plugins: demux plugin found : MPEG_ELEM
load_plugins: demux plugin found : MPEG_PES
load_plugins: demux plugin found : OGG
load_plugins: demux plugin found : MPGAUDIO
load_plugins: demux plugin found : MPEG_BLOCK
video decoder plugin found : vfw (win32) video decoder
audio decoder plugin found : vfw (win32) audio decoder
audio decoder plugin found : a/52dec
audio decoder plugin found : dts
audio decoder plugin found : mad
spu decoder plugin found : spudec
spu decoder plugin found : dxr3-spudec
video decoder plugin found : dxr3-mpeg2
video decoder plugin found : mpeg2dec
audio decoder plugin found : lpcm
video decoder plugin found : videofill
video decoder plugin found : ffmpeg video decoder
spu decoder plugin found : sputext
audio decoder plugin found : vorbis
xine_init returning
doit être considérée comme sans erreurs ! D'ailleurs, si vous voyez cela dans votre terminal, c'est que deux fenêtres viennent de s'ouvrir : une première, nommée xine video output et l'autre représentant un lecteur de DVD. Insérez un DVD video (non crypté) dans votre lecteur, puis cliquez sur le le bouton [dvd], dans la fenêtre du lecteur de DVD ; vous devez voir apparaître :
dvd://VIDEO_TS.VOB
ou quelque chose de ce genre.

C'est parfait : ça veut dire que Xine a bien reconnu que vous aviez un DVD dans votre lecteur et qu'il veut bien le jouer. Appuyez sur le bouton "play" (la petite flèche ;-). Et hop, miracle, ça marche. Appuyez sur le bouton juste à gauche de la croix (en haut à droite) et hop, vous passez en plein écran. Un clic droit sur la fenêtre de vidualisation et le lecteur de dvd disparaît, vous laissant en plein écran. Un autre clic droit et le lecteur réapparaît. C'est simplissime. Pour choisir la bande son et/ou les sous-titres, il faut cliquer sur les flèches : celles de "SUB" pour les sous-titres (off par défaut) et celles de "AUD" pour la bande son.

Et si ça ne marche pas ?
Et si vous refaisiez tout par le menu ?
 

Installons le plugin xine_d4d

Le problème des DVD c'est que la plupart sont encryptés (via CSS), sous prétexte d'en empêcher la copie. Cela est faux : rien ne vous empêche de copier tel quel un DVD crypté, le décryptage s'effectuant lors de la lecture pour les DVD (c'est un peu comme si vous enregistriez une K7 vidéo de Canal+ en crypté et que vous décryptiez lors de la lecture). Ceci dit, vu me prix d'un DVD-RAM, vous feriez mieux d'achetez le DVD original !
En fait, le cryptage permet aux multinationales de verrouiller le marché, et - accessoirement - de toucher des royalties sur tout lecteur de DVD (de salon, ou tout logiciel permettant de les lire).
(C'était la séquence "politique" de cet article :-)

Dans les faits, le cryptage empêche la lecture des DVD video par notre OS favori. Chaque problème a sa solution : pour nous c'est xine_d4d et son plugin (basé sur DeCSS, le décrypteur de DVD le plus contesté de la planète).

Téléchargez le package xine_d4d_plugin-0.3.0.tar.gz (ou une version plus récente) sur le site de captain css.
Note : (21/12/2001) ce site est tombé. Cherchez "captain_css " sur google et vous devriez trouver sans problème.

Procédons à l'installation :

$ tar xzf xine_d4d_plugin-0.3.0.tar.gz
$ cd xine_d4d_plugin-0.3.0
$ ./configure
$ make
$ su
Password:xxxxxxx
# make install
# exit
That's all folks. Relancez Xine : maintenant il lit les dvd cryptés, mais pour cela il faut cliquer sur [d4d] au lieu de [dvd] dans la fenêtre de Xine (le mieux est de toujours cliquer sur [d4d], puisque ce plugin lit aussi les DVD non cryptés).
Et voilà !
 

Installons le plugin xine-dvdnav

Lire des DVD, c'est bien. Mais utiliser les parties interactives des DVD (menus, etc.), c'est bien mieux ! C'est ce que propose ce plugin.

Tout d'abord, il faut installer la librairie libdvdread dont on trouve la dernière version sur http://www.dtek.chalmers.se/groups/dvd/downloads.shtml (ce lien est parfois indisponible, réessayez plus tard) :

$ tar xzf libdvdread-0.9.2.tar.gz
$ cd libdvdread-0.9.2
$ ./configure --prefix=/usr/
$ make
$ su -c
Password:xxxxxxxx
# make install
# ldconfig
# exit
Ensuite, récupérez le plugin xine-dvdnav sur : http://dvd.sourceforge.net/xine-dvdnav.shtml.

Remarquez que ce plugin lit aussi les DVD cryptés (mais il semble moins stable que xine_d4d). Actuellement le support des menus fonctionne assez bien, malgré des décalages en plein écran avec la carte de décompression em8300.

J'utilise actuellement la version 0.9.5.beta (en général la version de ce plugin correspond à la version de Xine) trouvée sur http://sourceforge.net/project/showfiles.php?group_id=31346&release_id=52555.
Récupérez le package, puis décompressez-le et installez-le comme d'habitude :

$ tar zxf xine-dvdnav-0.9.5.beta.tar.gz
$ cd xine-dvdnav-0.9.5.beta
$ ./configure
$ make
$ su -c
Password:xxxxxxxx
# make install
# exit
Vous pouvez également essayer la version CVS (i.e. la toute dernière version, telle que les développeurs l'ont chez eux).
La version que j'ai testée est la version CVS du 10/09/2001. Pour cela, il faut que les outils CVS soient installés sur votre machine (sur une Mandrake 8 Freq 2, le paquetage s'appelle : cvs-1.11-5mdk.i586.rpm). On récupère le plugin par :
cvs -d:pserver:anonymous@cvs.dvd.sourceforge.net:/cvsroot/dvd login
password:<ENTREE>
cvs -z3 -d:pserver:anonymous@cvs.dvd.sourceforge.net:/cvsroot/dvd co xine-dvdnav
Puis on l'installe par :
cd xine-dvdnav
./cvscompile.sh
make
su -c "make install"
On accède au menu des DVD en cliquant sur [NAV] dans la barre de boutons de Xine (attention, si vous avez cliqué sur  [dvd] ou [d4d] avant, vous ne verrez rien changer : il faut vider la liste de lecture (playing-list) de xine en cliquant sur l'icone qui ne ressemble à "rien" (la première icône à droite des icones des plugins comme [dvd]) puis sur l'icone 'poubelle' dans la boîte de dialogue "Playlist editor" qui s'ouvre.


Résumé

Résumé des étapes pour les utilisateurs avancés... et les autres ;)

Prérequis

  1. créer le lien /dev/dvd
  2. ajouter /usr/local/bin au PATH et /usr/local/lib à ld.so.conf

Carte de décompression

  1. Si vous avez une telle carte, récupérez et installez (./configure, make et make install) le package suivant :
    em8300 (http://dxr3.sourceforge.net)
  2. Sinon, passez cette étape.

Xine

  1. récupérez et installez (./configure, make et make install) les packages suivants :
    1. xine-lib (http://xine.sourceforge.net)
    2. xine-ui (http://xine.sourceforge.net)
    3. xine_d4d (http://www.geocities.com/captain_css/) (21/12/2001: lien mort, chezchez le plugin sur google...)
    4. xine-dvdnav (http://dvd.sourceforge.net/xine-dvdnav.shtml)
  2. Si vous utilisez une carte de décompression
    1. Si vous souhaitez afficher la video sur le moniteur
      1. lancez /usr/local/bin/autocal pour calibrer votre ordinateur / moniteur pour xine (une seule fois, la première fois que vous utilisez Xine),
      2. lancez xine (au moins la première fois) avec "xine -V dxr3 &",
      3. lancez dxr3view,
      4. lancez la lecture d'un film,
      5. minimisez les fenêtres de dxr3view,
      6. déplacez un peu la fenêtre de visualisation de Xine
    2. Si vous affichez la video sur une télé
      1. connectez la télé ;)
      2. si vous avez une télé PAL/SECAM, configurez Xine pour qu'il affiche en PAL (modifiez la ligne dxr3.preferred_tvmode:PAL dans ~/.xine/config)
      3. lancez la lecture du film !
  3. si vous n'avez pas de carte de décompression, il suffit de lancer "xine" et de jouer le film !

Chasse aux problèmes

(ou trouble shooting)

Je placerai ici les réponses aux problèmes les plus courants. Envoyez-nous vos questions, et si elles sont pertinentes, elles trouveront leur place ici.

Pas de son

Si vous n'entendez pas le DVD qui est en train de se jouer, peut-être n'utilisez-vous pas le bon plugin de sortie audio ?
Essayez de lancer Xine avec l'option -A, par exemple :
xine -A oss
xine -A esd
xine -A alsa
etc. (voir xine -h pour les options disponibles chez vous)

Pas d'image

Si vous n'avez pas d'image mais que vous avez le son, cela signifie que par défaut le plugin de sortie video de Xine est mauvais. Cela peut s'arranger. Demandez à Xine de vous afficher la liste des plugins video qu'il supporte :

# xine --help | grep -A 2 -- "--video-driver"
  -V, --video-driver     Sélection du pilote video par nom. Pilotes disponibles :
         aadxr3 dxr3 xv SyncFB xshm none sdl vidix fb

Essayez alors de lancer Xine en changeant de plugin video, par exemple :

# xine -V xshm

Essayez les tous un par un pour en trouver un qui fonctionne. A priori, les meilleurs plugins sont : dxr3 (mais il faut une carte de décompression), vidix, xv, puis les autres. Essayez les dans cet ordre.

Si vous n'avez toujours pas d'image sur votre moniteur avec une carte de décompression em8300, lisez bien le paragraphe "utilisation de l'overlay".
 

Haut


Installation de Xine pour une Mandrake

par David2

Cet article est une installation de Xine dans le cas particulier d'une Mandrake 8.0 ou 8.1.

Pour la Mandrake 8.2, utilisez simplement les packages du Penguin Liberation Front, en suivant les instructions de leur page.
Il faut de plus créer le lien suivant : ln -s /usr/lib/libdvdcss.so.1 /usr/lib/libdvdcss.so.0


Cet article est un complément de l'article général sur l'installation de Xine.

Voici d'abord une adresse où trouver les rpm pour les version 0.9.x

http://cambuca.ldhs.cetuc.puc-rio.br/~jcm/skyblade/

Télécharger les rpm

libdvdcss-0.0.3.ogle3-1.i686.rpm
libdvdread-0.9.2-1.i686.rpm
w32codec-0.50-1.i386.rpm
xine-dvdnav-0.9.8.beta2-8.i686.rpm
xine-lib-0.9.8-0.i686.rpm
xine-lib-aa-0.9.8-0.i686.rpm
xine-lib-alsa05-0.9.8-0.i686.rpm
xine-lib-alsa09-0.9.8-1.i686.rpm
xine-lib-arts-0.9.8-0.i686.rpm
xine-lib-d4d-0.9.8-0.i686.rpm
xine-lib-docs-0.9.8-0.i686.rpm
xine-lib-esd-0.9.8-0.i686.rpm
xine-lib-oggvorbis-0.9.8-0.i686.rpm
xine-lib-oss-0.9.8-0.i686.rpm
xine-lib-w32dll-0.9.8-0.i686.rpm
xine-lib-xv-0.9.8-0.i686.rpm
xine-ui-0.9.8-0.i686.rpm
xine-ui-aa-0.9.8-0.i686.rpm

Il y en a quelques-un en trop ;-) mais j'essaie de faire simple (ndlr: Les versions peuvent changer, surtout celles de xine, utilisez la dernière version).

Installation

Il faut ensuite installer les rpm dans cet ordre

rpm -Uvh libdvdcss-0.0.3.ogle3-1.i686.rpm
rpm -Uvh libdvdread-0.9.2-1.i686.rpm
rpm -Uvh w32codec-0.50-1.i386.rpm
rpm -Uvh xine-lib-0.9.8-0.i686.rpm
rpm -Uvh xine-ui-0.9.8-0.i686.rpm

Un et un seul de cela en fonction de ton système de son

rpm -Uvh xine-lib-oss-0.9.8-0.i686.rpm
rpm -Uvh xine-lib-alsa09-0.9.8-1.i686.rpm
rpm -Uvh xine-lib-alsa05-0.9.8-0.i686.rpm
rpm -Uvh xine-lib-arts-0.9.8-0.i686.rpm

En général, c'est Oss ou Alsa, si vous ne savez vraiment pas, prenez Oss ...

Puis

rpm -Uvh xine-dvdnav-0.9.8.beta2-8.i686.rpm
rpm -Uvh xine-lib-aa-0.9.8-0.i686.rpm
rpm -Uvh xine-lib-d4d-0.9.8-0.i686.rpm
rpm -Uvh xine-lib-docs-0.9.8-0.i686.rpm
rpm -Uvh xine-lib-oggvorbis-0.9.8-0.i686.rpm
rpm -Uvh xine-lib-w32dll-0.9.8-0.i686.rpm
rpm -Uvh xine-lib-xv-0.9.8-0.i686.rpm
rpm -Uvh xine-ui-aa-0.9.8-0.i686.rpm

Les very important paquets sont dvdnav, d4d pour les dvd cryptés. Oggvorbis peut ne pas s'installer ce n'est pas grave sauf si vos divx utilisent ogg (ce qui est rare ).

Si vous avez une mandrake 8.1 alors pour xine-lib-xv , il faut, en root , taper :

> ld --whole-archive -shared -o /usr/X11R6/lib/libXv.so.1 /usr/X11R6/lib/libXv.a > rpm -Uvh xine-lib-xv-*.rpm --nodeps > ldconfig Pour créer un fichier "libXv.a" nécessaire à ce rpm (ce problème sera peut-être corrigé par de futurs versions de ce rpm).

Utilisation

Pour utiliser Xine, pour un DVD (si la configuration est correcte) appuyez sur le bouton DVD, si il est crypté D4D et si vous voulez les menus NAV. Si votre dvd ne fonctionne pas essayez les trois options. Attention, Xine possède une Playliste, si vous faite le bouton DVD puis D4D, le D4D est deuxième dans la liste!

Pour les Divx, utilisez la fonction Playlist pour aller chercher votre fichier. Vous pouvez aussi lancer le Divx en utilisant ce qu'il appelle une MRL (man xine) ou avec directement le nom du fichier :

# xine /mnt/windows/Divx/mon_divx.avi

Pour les questions, voici la FAQ en français de xine :

http://xine.sourceforge.net/xine_frame.php?page=FAQ_fr

Pour les dvd, vérifiez votre lien /dev/dvd. Si il n'existe pas vous pouvez faire un lien de votre device DVD vers /dev/dvd avec la commande ln -s /dev/hdx /dev/dvd en remplaçant le x évidement.

Bon courage

Haut


Le Plug and play

par Serge

parfois appelé le Plug and Pray.


Avertissement :
On nous demande souvent à quel type de matériel s'applique cette rubrique. Pour faire court, disons que PnP = cartes ISA seulement. Pour faire long, lisez le paragraphe ci dessous !
Les cartes PCI, AGP, etc.. ne posent AUCUN probléme de configuration, elles sont toujours détectées suivant les spécifications des bus où elles se trouvent, et n'ont pas besoin d'utilitaire spécial de configuration quelque soit l'OS. On ne parle donc pas de PnP (ou alors c'est un abus de langage) pour des cartes PCI ou AGP. Le plug and play se fait ici au niveau du matériel qui gère seul l'allocation des ressources (IRQ, etc.).
Par contre les carte ISA ont des problèmes de configuration (non automatique pour la détection de conflits, etc...), donc on a inventé un "protocole" de configuration/détection conflit : le PnP. Donc le PnP en tant que tel ne s'appliquent qu'aux cartes ISA (quelque soit l'OS).
PS: ll y a une "extension" du PnP pour des périphériques tels que l'écran, les périphs sur port parallèle, etc. mais ce n'est pas du PnP à proprement parler, ca ne permet pas de configurer le périph (de toute facon y'a rien a configurer, c'est le port où se trouve ce périph qu'il faut configurer et non pas le périph lui même) mais juste de le détecter (le périph envoie une séquence lors de l'initialisation du port disant "coucou je suis là, et je m'appelle machin truc").
Voila donc PnP = cartes ISA SEULEMENT.

    Sous Linux le plug and play n'est pas aussi simple que sous Windows (quoi que des fois....), il arrive assez souvent que nos cartes plug and play refusent de marcher sous Linux. Il existe en fait deux méthodes pour bien configurer son Linux pour faire fonctionner de telles cartes.

La première consiste à dévalider dans le BIOS de notre carte mère l'option PNP OS, et de configurer alors Linux comme si toute nos cartes n'étaient pas PNP. C'est la méthode la plus simple mais on perd alors la fonctionnalité du PNP sous linux, ce qui est un peu frustrant.

La deuxième méthode consiste à utiliser le PNP sous Linux ; c'est cette méthode que je vais vous expliquer.
Tout d'abord il faut valider le PNP dans le bios, donc validez cette fois-ci le PNP OS dans le bios.
De plus, le PnP fonctionne avec les modules des cartes : enlevez de votre kernel toute la configuration qui se reporte aux cartes (si par exemple votre carte son est PnP et que dans votre noyau vous avez répondu "yes" pour configurer votre carte son et passé les paramètres de votre carte : irq, etc. vous enlevez tout), mais par contre vous compilez votre noyau avec les modules de vos cartes PnP.

Si on reprend l'exemple d'une carte son, au moment du CONFIG SOUND vous répondez M pour module et non pas Y ! En fait je vous explique, le chargement du PnP dans Linux se fait APRES le chargement du noyau, donc si vous configurez vos cartes dans le noyau, celui ci va les initialiser (sans y arriver en plus) et lorsque le PnP va tenter de les initialiser lui aussi, ça ne passera plus. Donc pour toutes les cartes PnP répondez par M dans la config du noyau.

Une fois ce travail exécuté, si vous avez une partition Windows 95 ou 98 sur votre machine, bootez dessus et notez la configuration de toutes vos cartes PNP (plage mémoire, irq, dma), puis rebootez sous linux. Il va déjà falloir vérifier que vous avez bien les isapnptools sur votre machine, pour cela lancez la commande pnpdump>/etc/isapnp.conf. Si ça marche, c'est que vous avez bien les isapnptools et que votre noyau supporte le PnP. Autrement il va falloir que vous téléchargiez les isapnptools et valider le PnP dans votre kernel. Si vous avez le message d'erreur "trying port adress ..." puis "no board found" c'est que votre carte mère n'est pas PnP ; il vous faut alors configurer vos cartes à la main comme si elles n'étaient pas PnP.

Une fois le programme lancé, celui-ci a créé en fait le fichier /etc/isapnp.conf. Ce fichier créé, éditez le, à l'aide de vi par exemple. La structure d'un tel fichier peut paraître barbare mais en fait elle est très simple.

Tout d'abord ajoutez la ligne (VERIFYLD NO) dans le début du fichier : certaines cartes (dont par exemple la Sound Blaster AWE64) n'aiment pas du tout. Regardez alors les lignes. La plupart sont en commentaire (le # devant), et vous allez voir des IRQ, DMA , ADRESS dans ces lignes. Le plus important est de regarder les lignes non commentées (qui ne comportent pas de # au début) et vérifier bien que les paramètres sont bons par rapport à ceux qui étaient dans Windows. Si c'est bon on touche à rien, si c'est pas bon on commente la ligne et on recherche celle qui contient les bons paramètres irq, dma et adresse. Si vous ne la trouvez pas (très rare), remplacez alors dans la ligne qui ne contient pas le # les mauvais paramètres par les bons.

Une fois cette vérification faite, regardez à chaque fin de configuration de chaque carte (avant de passer dans un LD différent) que vous avez bien une ligne qui contient : (ACT Y), et qui n'est pas commentée (qui ne contient pas # au début donc). Une fois tout ça réalisé, tapez sous la console :

isapnp /etc/isapnp.conf
Regardez alors que vous n'avez pas de message d'erreur. Si un message d'erreur IORESCHECK s'affiche, notez par rapport a quel périphérique ce message apparaît, retournez dans le fichier isapnp.conf et effacez pour ce périphérique (IORESCHECK ..), et ça devrait passer sans problèmes (j'ai galêré 3 nuits pour comprendre que ma carte n'était pas en conflit, que c'etait en fait le contrôle de conflits d'adresses qui ne marchait pas tout simplement).

Si ça marche, alors vous avez gagné ! Chargez les modules de vos cartes (modprobe module) pour rendre celles-ci opérationnelles.

On va un peu automatiser tout ca maintenant, pour cela activez l'autoload des modules dans le kernel, enable loadable module support Y, et Kernel daemon support Y.

Après, éditez le fichier /etc/conf.modules (s'il n'existe pas ça va le créer) et ajoutez les lignes pour vos modules de cette façon :

alias  periph  nom_du_module
C'est à dire prenons l'exemple pour une carte son Sound Blaster et une carte réseau compatible NE2000, le périphérique son s'apelle sound et la carte réseau s'apelle eth0 (vous n'avez pas le choix), le module Sound Blaster s'apelle sb et le module NE2000 s'apelle ne, ca nous donne alors:
alias  sb      sound
alias  eth0    ne
Un petit récapitulatif des périphériques sous Linux (les plus courants) en sachant que vous pouvez mettre tous les modules (même des périphériques non PnP) pour qu'ils se chargent au démarrage. Attention certains ont besoin d'option(s), je ferai une petite rubrique spéciale pour les modules plus tard :
 
son sound
carte réseau 1, 2, etc... eth0, eth1, ...
carte scsi scsi_hostadapter
port paralléle parport_lowlevel 

Pour les options, moi par exemple pour ma carte ethernet j'ai du repasser l'adresse et l'irq de ma carte, ceci se fait de cette façon toujours dans le fichier conf.modules :

options  nom_modules  les_options
exemple :
options  ne  io=0x240  irq=12
(pour une carte réseau a l'adresse 240 et irq 12)
Attention l'adresse est en hexadécimal, donc de type 0xXXX, ne pas oublier le 0x qui n'apparait pas dans Windows.

Haut


Installation d'une carte tuner TV

par Jean-Christophe, MàJ par Serge (son)

Où vous allez constater que vous n'aviez encore rien vu à la télé !


Pré requis : Le document concerne l'installation d'une carte à base de chipset BookTree BT8xx, mais peut-être adapté à d'autres périphériques supportés par video4linux: adaptez simplement les paragraphes concernant les drivers. (Pour les cartes ATI, il ne s'agit pas encore de drivers, mais le travail pour incorporer le code au noyau progresse.)

Le son :

Suivant votre carte TV :

Drivers et Devices

Drivers

Si vous êtes chanceux, votre distribution contient déjà les modules tout prêts (exemple : Mandrake).

Vérifiez si le répertoire /lib/modules/2.x.y/misc contient les fichiers bttv.o, i2c.o, tuner.o, videodev.o.

Si oui, c'est cool pour vous, vous pouvez sauter le paragraphe concernant l'installation des drivers (mais pas leur configuration) !
Sinon, let's go !!!

Devices

Si vous êtes encore plus chanceux, vous avez des fichiers /dev/video, /dev/video0 etc.

Dans ce cas, vous avez vraiment beaucoup de chance, vous pouvez aussi sauter le paragraphe suivant !

Installation des devices

Nous allons nous placer dans le cas le plus simple, celui où vous n'avez qu'une seule carte TV.

Pour créer le périphérique /dev/video, tapez :
mknod /dev/video0 c 81 0
ln -s /dev/video0 /dev/video

C'est tout ! :)

Remarque 1 :
Si vous avez plusieurs cartes TV (on ne sait jamais !), il suffit de définir d'autres périphériques, avec le major 81 et en incrémentant le minor.

[root@taz /]$ ls -l /dev/video*
lrwxrwxrwx   1 root     sys             6 Aug  2 21:37 /dev/video -> video0
crw-------   1 root     sys       81,   0 Aug  2 21:37 /dev/video0
crw-------   1 root     sys       81,   1 Aug  2 21:37 /dev/video1
crw-------   1 root     sys       81,   2 Aug  2 21:37 /dev/video2
crw-------   1 root     sys       81,   3 Aug  2 21:37 /dev/video3
crw-------   1 root     sys       81,   4 Aug  2 21:37 /dev/video4
Remarque 2 :
dans les sources de video4linux ou de kwintv, vous trouvez un script MAKEDEV. Lancez-le par un ./MAKEDEV et il vous créera tous les périphériques nécessaires (et plus encore !)

Installation des drivers (modules)

Ah ! Si vous lisez ceci c'est que votre distribution ne contient pas les modules tout prêts ? Pas de chance, mais rassurez-vous ce n'est pas si compliqué. Ne vous sauvez pas si je vous parle de "compilation du noyau" !!!

En effet, il faut compiler les modules nécessaires à video4linux.

En tant que root, placez vous dans le répertoire /usr/scr/linux-2.x.y (vous devez avoir préalablement installé le package des sources de votre noyau, trouvé sur le CD de votre distribution sous le nom kernel-xxxxx.rpm.

Sous X, tapez  make xconfig / Sous une console, tapez make menuconfig.

Choisir M (module) dans le menu "Video For Linux" et M pour l'option "BT848 Video for Linux".

Localisation des drivers dans menuconfig (noyau 2.4.20 avec patch bttv récent) :

Multimedia devices -> Video For Linux <M>
Video For Linux ---> V4L information in proc filesystem [*]
BT848 Video For Linux <M>

Et il faut penser à avoir dans Character devices -> I2C support --->
<M> I2C Support
<M> I2C bit-banging interfaces
<M> I2C device interface

Tapez  make modules ; make modules_install.

Une fois les modules installés, pour vérifier leur bon chargement, taper :

insmod -f i2c verbose=1 scan=1 i2c_debug=0
insmod -f tuner debug=0 type=3
insmod -f videodev
insmod -f bttv radio=1 card=1 vidmem=0xdc0
lsmod

Configuration des modules

Pour charger automatiquement ces modules lorsqu'on en a besoin, ajoutez dans /etc/conf.modules ou /etc/modules.conf (pour les distributions récentes c'est forcément ce fichier là), les lignes suivantes, en adaptant les valeurs à votre configuration :
alias char-major-81 bttv
pre-install bttv modprobe -k tuner
options i2c    verbose=1 scan=1 i2c_debug=0
options bttv   radio=1 card=1 vidmem=0xdc0
options tuner  debug=0 type=3

Autre exemple, pour une Debian (/etc/modules):

i2c-core i2c_debug=1
 i2c_algo-bit i2c_debug=1
 tuner debug=1 type=33
 videodev
 bttv radio=1 card=39 pll=1 fieldnr=1
Description des paramètres des modules : ATTENTION :
Sur certaines cartes BTTV, il y a des blocages au bout d'environ 5 minutes.
Une solution qui semble fonctionner, si votre carte n'est pas une triton, est d'essayer l'option :
options bttv ... triton1=1
(ajoutez triton1=1 en bout de la ligne correspondante dans /etc/conf.modules).

Si vous avez déjà installé les devices, vous pouvez enfin passer à la suite !

Problème du son (MàJ par Serge)

Bon si vous avez appliqué tout ce qu'il y a au dessus et que vous n'entendez rien, c'est que votre carte TV comprend un chip spécial pour le son qu'il faut activer. Le problème c'est que suivant votre carte, il va falloir activer le bon module pour gérer ce chipset spécifique.

1er cas: vous avez de la chance

Bon si vous avez de la chance, le chip son est un msp3400. C'est le cas le plus simple, il suffit de compiler ce module qui est compris dans les noyaux récent (a partir du 2.2.14 si je ne me trompe pas). Donc, on configure le noyeau (voir la rubrique kernel), on active le support des drivers en développement (Y à la première question), et dans la rub "Lowlevel additional sound support" vous activez en module le msp3400. Puis un make modules ; make modules_install (pas la peine de recompiler tout le kernel à moins que vous n'aviez auparavant pas activé du tout de support son ou que votre support son était en natif et pas en module).

Pour tester, modifiez votre /etc/conf.modules avec cette ligne :

pre-install bttv modprobe -k tuner; modprobe -k msp3400

2éme cas: Moins de chance

Bon si vous avez moins de chance, le module pour activer le son de votre carte TV n'est pas inclus dans le kernel, il va falloir que vous récupériez les sources de bttv et les recompiler pour avoir ces modules sons (make ; make install ; depmod -a). Une fois les modules recompilés, suivez les indications ci-dessus pour la configuration vidéo.

Je vous donne quand même ici toutes les options des modules qui complétent la rubrique ci-dessus (il y a quelques changement, surtout des supports ajoutés):

option card=n:

0: Auto-Detect
1: Miro
2: Hauppauge (old bt848 boards)
3: STB
4: Intel
5: Diamond
6: AVerMedia
7: MATRIX Vision MV-Delta
8: FlyVideo
9: TurboTV
10: Hauppauge (new bt878 boards)
11: MIRO PCTV pro
12: Terratec/Vobis TV-Boostar
13: Newer Hauppauge WinCam (bt878)
14: MAXI TV Video PCI2
15: Terratec TerraTV+
16: Aimslab VHX
17: PXC200
18: AVermedia98
19: FlyVideo98 (newer FlyVideo cards)
20: Zoltrix TV-Max
21: iProTV
22: ADS Technologies Channel Surfer TV
23: Pixelview PlayTV (bt878)
24: Leadtek WinView 601
25: AVEC Intercapture
26: LifeView FlyKit w/o Tuner
27: Intel Create and Share PCI
option tuner type=n
0: Temic PAL tuner
1: Philips PAL_I tuner
2: Philips NTSC tuner
3: Philips SECAM tuner
4: no tuner
5: Philips PAL tuner
6: Temic NTSC tuner
7: Temic PAL tuner
8: Alps TSBH1 NTSC tuner
9: Alps TSBE1 PAL tuner
Et voici les modules sons (à charger suivant la carte, regardez si vous avez un chip sur votre carte avec un nom ressemblant a ceux énoncés ici, ou essayez les un après les autres jusqu'à avoir du son) :
msp3400 (la plupart des cartes stéréo bttv)
tea6300 (STB TV/FM, autres cartes stéréo, très répandu aussi)
tda8425 (inclus dans le bttv.c avant, si votre son marchait avant mais plus maitenant, chargez ce module)
tda9855 (chipset tda9855 stéréo decoder)
dpl3518 (chipset pro logic, pour les cartes dolby pro logic)
Voila j'espère que cela vous aidera, beaucoup de personnes m'ont contacté pour des problèmes de son avec les nouvelles cartes tuner TV.

Télécommande infrarouge

L'auriez-vous cru ? Vous allez pouvoir utiliser une télécommande à infrarouge afin de piloter votre télé ! Original non ? :)

LIRC

Ce logiciel (Linux Infrared Remote Control) permet d'utiliser les télécommandes à infrarouge du marché (celle de votre télé, etc.), pour peu que vous construisiez un récepteur adapté.
Voir le site de LIRC.

La télécommande Miromedia Remote (qui se vendait avec la Miro PCTV il y a deux ans) n'est pas supportée ; un de mes projets actuels est de faire un driver afin de pouvoir l'utiliser avec son récepteur qui se branche en gigogne sur la souris série. Une piste est aussi le support des dongles pour IrDA dans le noyau. Contactez-moi pour me dire : 1) si cela existe déjà 2) si vous êtes intéressés !
Rubrique en cours de réalisation

Les logiciels

Il existe de nombreux logiciels permettant de tirer parti de la carte télé. Nous ne présenterons ici que ceux permettant simplement de regarder la télé, pour ceux qui permettent plus de choses, il y a d'autres adresses intéressantes, mais je ne sais pas où les trouver...

Chaque environnement dispose en général de son logiciel ;  voici une sélection de logiciels parmi l'existant.

Réglages fins

Virer l'économiseur d'écran

C'est pénible que l'économiseur d'écran se mette en route le samedi soir pendant le film, non ? Pour cela, rien de tel qu'un petit script
#!/bin/sh
xset s off
kwintv      #(mettez ici votre logiciel préféré)
xset s on
qui supprime l'économiseur d'écran le temps où la télé fonctionne.

Afficher la télé en plein écran avec la résolution maximale

Quelle est la résolution maximale que peut avoir une image télé ? 768x576 !
Vous avez sans doute été confronté au dilemme : soit j'affiche en plein écran, alors je perds en résolution (640x480), soit je me mets en 800x600 et j'ai des bords noirs. Comment profiter de toute la surface de votre moniteur 12 pouces et conserver la meilleure résolution possible de l'image télé ?

Facile : en configurant XFree pour qu'il affiche dans la résolution maxi de la télé : 768x576.

Et oui, les résolutions standard 640x480, 800x600, 1024x768, etc. ne sont pas les seules que vous pouvez obtenir de votre matériel, et Linux avec XFree86 est suffisamment flexible pour vous permettre de définir vos propre résolutions !!!

Assez causé, comment qu'on fait ?

Il suffit de bidouiller le fichier /etc/X11/XF86Config, et créer un Mode 768x576 :

1. Dans la section "Monitor", ajouter une ligne comme celle-ci :
# 768x576 @ 100 Hz
ModeLine "768x576" 63.07 768 800 960 1024 576 578 590 616 #100Hz

Attention, cette ligne dépend de votre matériel, et ne fonctionnera sûrement pas chez vous. Ne m'envoyez pas de mail après avoir copié cette ligne si vous n'arrivez pas à afficher dans cette résolution !
Allez plutôt voir le Colas XFree Modeline Generator, qui est une page excellente vous permettant de calculer les valeurs de votre ligne Mode. Munissez-vous de la doc. de votre moniteur (fréquences) et de votre carte vidéo ! Si vous ne connaissez pas les fréquences que votre matériel peut gérer, essayez avec des valeurs pas trop élevées (moins de 75Hz). Attention, si vous avez un vieux moniteur à fréquences fixes, vous risquez de le griller s'il n'accepte pas la fréquence que vous lui demandez (les nouveaux moniteurs acceptent toutes les fréquences dans une place, les vieux n'acceptaient que des valeurs discrètes) ! En cas de problème, c'est pas ma faute !!!

2. Dans la section "Screen", ajoutez aussi dans la sous-section "Display", la valeur "768x576" à la liste des modes, comme ci-dessous :
Modes  "1024x768" "800x600" "768x576" "640x480"

Vous allez sûrement devoir tester plusieurs réglages, car le nouveau mode risque d'être rejeté. Pour ce faire, démarrez en runlevel 3 (en root, tapez init 3, ou bien lors du boot, à l'invite LILO, tapez linux 3, ou bien dém*** vous :).

Modifiez votre /etc/X11/XF86Config, et lancez "startx >un.txt 2>deux.txt" puis quittez X. Examinez ensuite les deux fichiers un.txt et deux.txt afin de voir si votre mode a été rejeté ou non. S'il a été rejeté, recommencez avec une nouvelle ligne.
Si c'est bon, vous pouvez passer dans cette résolution, soit à la main (Ctrl Alt + / Ctrl Alt -), soit automatiquement si votre programme de télé le permet (ex : kwintv).
 

The end

Voilà... bonne télé !

Ressources :
La page d'E. Michon sur l'installation d'une carte télé sous Linux (lien mort), une bonne vieille référence,
La page de kwintv, de xawtv,
freetv (lien mort ?), à but purement éducatif :-)

Haut


Le son

Par Serge

Le chant des pingouins!


Ce document traite des problèmes de son sous Linux. Il existe deux séries de drivers différents pour Linux :

1. OSS

Par défaut le support du son dans le kernel de Linux est OSS. L'installation de celui-ci n'est pas très compliquée. Sous les distributions comme la RedHat ou la Mandrake la détection des cartes est automatique la plupart du temps. Le kernel est correctement configuré et tous les modules de cartes son sont déjà compilés. Il suffit juste alors pour activer la carte de passer par leurs utilitaires de configuration (sndconfig, ou autre), ou d'ajouter les entrées manuellement dans /etc/modules.conf (parfois conf.modules selon l'âge de la distribution).On va passer tout ça en revue, ainsi que les options du kernel ; si un jour vous recompilez votre kernel, ce serait dommage de perdre le son.

Tout d'abord si votre carte est Plug'n Play, veuillez lire la rubrique PnP . Je suppose donc que votre carte PnP est configurée. De même je suppose que vous connaissez votre carte ou le chipset de votre carte son. Si elle est PnP la rubrique PnP vous indique comment la faire reconnaître sans problème.

Configuration du kernel.

Vérifiez que le kernel est compilé avec comme options :
 
loadable module support YES
Kernel module support YES
config sound M (module)

et tous les supports de votre carte en M (par exemple config sounblaster M, config awe M pour les Sound Blaster AWE).
On passe le support en module pour ne pas trop charger le kernel, de plus si on s'est trompé de module ou autre, on n'a que les modules à recompiler et pas le kernel en entier qui est beaucoup plus long à compiler et moins souple.

Une fois votre kernel compilé (make dep, make clean, make zlilo ou bzImage et config de lilo) ainsi que les modules (make modules, make modules_install en ayant renommé le répertoire /lib/modules/verson_kernel en /lib/modules/version_kernel-old par exemple avant le make modules_install ) (voir rubrique noyau ) on édite le fichier /etc/conf.modules.

Configuration /etc/modules.conf (ou conf.modules suivant votre distribution).

C'est ce fichier qui vas permettre de charger les modules de votre carte son. La syntaxe est assez simple:

alias sound nom_module  (par exemple nom_module=sb pour une soundblaster)

options sound io=0xADR irq=IRQ DMA0=dma8bits DMA1=dma16bits  (avec ADR l'adresse de la carte, 220 par exp. et IRQ l'irq bien sûr, et les des DMA 8 et 16 bits)

Comme je ne connais pas les toutes cartes son et les modules par coeur, veuillez vous référer aussi au HOWTO sur le son, et les MINI-HOWTO pour les cartes son spécifiques pour des modules complémentaires (midi, wavetable etc...). Avec ce que je vous donne vous avez déjà le support PCM (son numérique pour lire les WAV, MP3 par exemple). Vous trouverez alors les options que l'on peut passer a chaque module et leur significations. Je vous rapelle que les liens des HOWTO traduits en français sont sur ce site.

On va le tester, pour cela on va charger le module à la main:

modprobe sound

Ça devrait se charger sans problème ; si y'en a un, vérifiez votre /etc/conf.modules, peut-être que vous avez fourni de mauvaises options ou un mauvais module pour votre carte son (attention aux cartes son soi-disant compatibles SB, style à base de chipset crystal, charger le module pour crystal et non pas le SB).

Une fois le module chargé, on va tester le son, lancez alors une appli qui joue du son style mpg123 pour les mp3, workbone pour lire les cd ou tout autre appli sous X

Attention: n'utilisez pas une appli Gnome (Gnome utilise un mixer de son particulier, ESD ), utilisez plutôt KDE ou tout autre WM pour les tests, vous utiliserez Gnome à la fin). S'il n'y a pas de son qui sort mais que vous n'avez aucune erreur, regardez aussi avec un mixer sous un WM que les volumes sonores ne sont pas à zéro aussi, et que votre lecteur CD est bien relié à la carte son.

Si ça passe vous avez gagné ! Votre carte son marche.

Mais bon le truc frustrant c'est que vous avez une carte full duplex par exemple et bien OSS par défaut ne prend pas en charge le full duplex ! Quoi ce super OS ne prend pas en charge le full duplex ??? Si, rassurez-vous :) Deux solutions là, soit passez à la version commerciale de OSS, pour 20-30 on a la version qui fait tout. A bon faut payer sous linux ! Heureusement y'a une autre solution: le support ALSA !!!

2. ALSA

Qu'est-ce donc? Non je vous entends rire ce n'est pas la préparation pour les flans :)
C'est un nouveau support de son pour Linux, full duplex, gratuit, opensource, et qui supporte de plus en plus de cartes son. Le developpement de ce projet est extrêmement actif, on a à peu près une mise à jour toutes les deux semaines avec presque à chaque fois des supports pour de nouvelles cartes son. De plus il a l'excellente idée d'être 100% compatible avec les applications qui utilisent OSS. Bref je vous encourage vivement d'installer les drivers ALSA.

Le seul "hic" est que les ditributions ne l'utilisent pas, ou si l'on trouve des fois les drivers ALSA déjà compilés dans une distribution la plupart du temps il n'y a aucun outils pour configurer le tout, aucune explication etc. Bon j'avoue la configuration est de plus pas une chose très très facile à faire pour un débutant. Mais avec ce document j'espère que vous allez vous en sortir.

Compilation des drivers ALSA

Bon tout d'abord allez sur leur site ( www.alsa-project.org ) et récupérez alsa-drivers, alsa-lib et alsa-utils (tous dans la même version bien sûr, à l'heure où j'écris cette page c'est 0.5.9c mais à la vitesse ou ça va, ça change quasiment toute les deux semaines !).

Bon dans un répertoire de votre choix et sous root on dézippe/détarre tout ça :

tar zxvf nom_du_tar.bz2

Bon avant de continuer on va enlever toutes les entrées correspondantes au son dans /etc/modules.conf (si vous ne savez pas quelles lignes enlever, envoyez dans la liste de diffusion ou le forum votre /etc/modules.conf et on vous aidera.

Une fois cela fait, vous allez dans le répertoire des sources alsa-drivers, puis :

./configure options
make
make install

La plupart du temps un simple ./configure sans option suffit. Mais si vous vous apercevez qu'il vous manque le support midi ou autre, vous pouvez toujours forcer les options avec:
 

--with-isapnp=yes SI votre carte son est une carte ISA PnP (SBawe64, etc...)
--with-sequencer=yes Activer le support midi (surtout pour les cartes dites "WAVETABLE")
--with-oss=no Désactiver le support OSS (vivement déconseillé, 90% des applications utilisent un support OSS)
--with-debug=full Information de déboguage (si vous avez des bugs et que vous voulez les repporter à l'équipe de développement ALSA ou si vous êtes développeur)
--with-debug=detect
Pour activer le déboguage pour la détections des cartes son. Même remarque qu'au dessus si votre carte n'est pas detectée.

Une fois les drivers compilés, lancez le script ./snddevices pour créer les entrées nécessaires dans /dev .

Puis compilez  les libs, puis les utils (dans cet ordre autrement ça ne passera pas, par ./configure, make, make install).

Configuration des modules ALSA.

Bon on entre dans la partie "mains dans la cambouis" d'ALSA. Bon si vous suivez bien mes instructions vous allez vous en sortir. Tout d'abord il faut absolument que vous sachiez quelle est votre carte son précisément. Une référence "compatible sound blaster" ne suffit pas, il existe plus de 10 chipset "compatibles sound blaster" qui pour ALSA sont 10 cartes différentes avec des modules différents. En fait alsa dispose d'un module par chipset. Donc renseignez vous sur votre carte son (notice, site web du constructeur, etc...).

Bon une fois que vous savez qu'elle est votre carte son, trouvez son entrée dans ce tableau et notez le nom du module correspondant :

Carte son Module
ESS Audiodrive ES-1688, ES-688 snd-card-es1688
ESS Audiodrive ES-18xx snd-card-es18xx
Gravis UltraSound Classic  snd-card-gusclassic
Gravis UltraSound Extreme  snd-card-gusextreme
Gravis UltraSound MAX  snd-card-gusmax
Gravis UltraSound PnP, Dynasonic 3-D/Pro, STB Sound Rage 32 et toutes cartes son avec le chipset AMD InterWave  snd-card-interwave
UltraSound 32-Pro et toutes cartes son avec le chipset AMD Interwave AVEC le controle des basses et aigues. snd-card-interwave-stb
Véritable sound blaster créative 1.0 , 2.0 et Pro. snd-card-sb8
Véritable SoundBlaster 16  snd-card-sb16
SoundBlaster AWE 32 (PnP), SoundBlaster AWE 64 PnP (Ne pas confondre avec les PCI-64!!) snd-card-sbawe
Yamaha OPL3-SA2/SA3  snd-card-opl3sa2
OAK Mozart cards snd-card-mozart
Carte son avec chipset OPTi 82c92x ou Analog Devices AD1848  snd-card-opti92x-ad1848
Carte son avec chipset OPTi 82c92x ouCrystal CS4231  snd-card-opti92x-cs4231
Carte son avec chipset OPTi 82c93x  snd-card-opti93x
S3 SonicVibes PCI  snd-card-sonicvibes
Ensoniq AudioPCI ES1370 PCI , SoundBlaster PCI 64, SoundBlaster PCI 128  snd-card-ens1370
Ensoniq AudioPCI ES1371, SoundBlaster PCI 64, SoundBlaster PCI 128, SoundBlaster Vibra PCI  snd-card-ens1371
Carte son avec chipset AD1848/AD1847/CS4248  snd-card-ad1848
Carte son avec chipset Aztech System AZT2320  snd-card-azt2320
Carte son avec chipset CS4231 snd-card-cs4231
Carte son avec chipset CS4232/CS4232A  snd-card-cs4232
Carte son avec chipset CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239 snd-card-cs4236
Carte son PCI avec chipset CS4610/CS4612/CS4614/CS4615/CS4280 snd-card-cs461x
Prise en charge du port midi UART16550A snd-card-serial
Trident 4DWave DX/NX , Best Union Miss Melody 4DWave PCI ,HIS 4DWave PCI, Warpspeed ONSpeed 4DWave PCI, AzTech PCI 64-Q3D, Addonics SV 750, CHIC True Sound 4Dwave, Shark Predator4D-PCI, Jaton SonicWave 4D snd-card-trident
ForteMedia FM801 PCI snd-card-fm801
Carte son PNP avec chipset ESS ES968  snd-card-es968
Carte son avec chipset Avance Logic ALS100/ALS120  snd-card-als100
Carte son avec chipset ESS Solo-1 (ES1938,ES1946)  snd-card-es1938
Carte son avec chipset ESS Maestro-1/2/2E (ES1968/ES1978) snd-card-es1968
Carte son avec chipset C-Media CMI8330  snd-card-cmi8330
Sound Blaster Live!, Sound Blaster PCI 512 snd-card-emu10k1
MidiMan M Audio Delta 1010, MidiMan M Audio Delta DiO 2496 ,MidiMan M Audio Delta 66 ,MidiMan M Audio Delta 44 snd-card-ice1712
Carte son avec chipset Analog Devices AD1816A/AD1815  snd-card-ad1816a
Carte son intégré sur les cartes méres avec chipset Intel i810/810E, i815, i820, i830, i840, MX440 snd-card-intel8x0
Carte son intégré sur les cartes méres avec chipset VIA 82C686A  snd-card-via686a
Carte son PCI avec chipset C-Media CMI8338 / 8738  snd-card-cmipci
Carte son Yamaha avec chipset YMF72x, YMF74x & YMF75x snd-card-ymfpci

Bon maintenant on édite le fichier /etc/modules.conf (ou conf.modules) et on ajoute les entrées suivantes (j'ajoute aussi les explications pour ceux que ça interesse) :
alias char-major-116 snd

Ceci permet de prendre en charge ALSA par kerneld (charge automatiquement les modules son dès qu'il y a une requête système sur les devices son) :
alias char-major-14 soundcore

Ajoute le support OSS (pris en charge par kerneld là aussi) alias snd-card-0 nom_module

Vous placez ici le module de votre carte son suivant le tableau ci-dessus, à la place de nom_module.

alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

Ajoute l'émulation OSS

options snd snd_major=116 snd_cards_limit=1 options nom_module snd_index=0 snd_id="0"

Et là on passe les options des drivers ALSA. Pour les options de nom_module si votre carte est une carte ISA il est souvent nécessaire de passer l'adresse mémoire, l'irq, DMA, etc... Pour cela les options se passent par:
options nom_module snd_index=0 snd_id="0" snd_port=plage_adresse snd_irq=irq snd_dma1=dma_8bits snd_dma2=dma_16bits

Vous remplacez tout ce qui est italique par les bonnes valeurs bien sûr, attention à la plage adresse, bien la mettre au format 0x???.

Cas de plusieurs cartes son

Si vous avez plusieurs cartes son, il suffit d'ajouter tout d'abord de modifier les options snd en modifiant le card_limit avec le nombre de cartes son que vous avez, par exemple pour 2 cartes son:
options snd snd_major=116 snd_cards_limit=2

Puis vous ajoutez les alias snd-card en incrémentant les valeurs de snd-card :
alias snd-card-0 nom_module_carte1alias snd-card-1 nom_module_carte2

Vous ajoutez les alias OSS pour chaque carte son:
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
alias sound-slot-1 snd-card-1
alias sound-service-1-0 snd-mixer-oss
alias sound-service-1-1 snd-seq-oss
alias sound-service-1-3 snd-pcm-oss
alias sound-service-1-8 snd-seq-oss
alias sound-service-1-12 snd-pcm-oss

Et vous passez les options pour les modules de chaque carte son:

options nom_module_carte1 snd_index=0 snd_id="0" snd_port= plage_adresse snd_irq=irq snd_dma1=dma_8bits snd_dma2=dma_16bits

options nom_module_carte2 snd_index=1 snd_id="1" snd_port= plage_adresse snd_irq=irq snd_dma1=dma_8bits snd_dma2=dma_16bits

3. un petit mot sur les démons de son

Gnome et KDE utilisent chacun un démon de son, malheureusement différent : c'est ESD pour Gnome et ARTS pour KDE. Qu'est-ce que c'est ? C'est est un programme qui s'intercale entre le support son (OSS ou ALSA) et les applications, et qui permet par exemple à plusieurs applis de jouer du son simultanément (on peut ainsi jouer un mp3 et entendre les sons système de son environnement en même temps, tout en recevant les notifications sonores de licq).

ESD

Pour ceux qui aiment bien Gnome et qui l'utilisent, je vous signale que celui-ci utilise par défaut ESD comme mixer sonore, donc il faut l'activer avant tout !
Cochez la case sous la configuration de Gnome d'activer toujours les sons systèmes, il lancera alors ESD dès son démarrage. Attention : certaines applis ne savent pas utiliser ESD pour le son, donc ne vous étonnez pas de ne plus avoir de son sous certaines applications après avoir lancé ESD, d'autres demandent d'être recompilées pour utiliser ESD, pour d'autres comme XMMS un plugin suffit. ESD est nécessaire aussi pour Enlightenment (c'est dailleurs pour cela qu'il est nécessaire pour Gnome vu que E est souvent le WM de gnome). ESD tourne sans problème à partir du moment où votre carte son marche au départ. Lancez ESD sous un terminal/console et vous entendrez un " tu lu lu " indiquant que ESD est lancé et fonctionne. Il tourne alors en arrière plan comme daemon.

ARTS

ARTS est le démon de son de KDE. Selon votre distribution, il sera activé par défaut ou non. Pour l'activer ou le désactiver, lancez le panneau de configuration de KDE, dans la rubrique son vous trouverez une case à cocher pour activer arts au démarrage de KDE. En cliquant sur [OK] ou [Appliquer], le démon sera démarré automatiquement.
De la même façon que pour esd, il faut généralement un plugin pour utiliser arts, par exemple avec xmms ou xine. Certains programmes (comme licq par exemple) peuvent utiliser un simple script soundwrap qui jouera le son via arts si celui-ci est présent, ou directement via les drivers son sinon. Si votre programme permet de configurer l'utilitaire qui joue les sons, vous pourrez l'utiliser ainsi à travers arts.

Enfin, pour certains programmes ne supportant pas arts (ou esd d'ailleurs) il sera nécessaire d'arrêter le démon afin qu'ils puissent faire du bruit !

Haut


Installer une carte Sound Blaster Audigy avec un kernel 2.4.x

Sylvain Borde

En Attendant l'emu10K2...

Ce document a pour but d'expliquer comment installer une carte SoundBlaster Audigy sur un système linux doté d'un kernel 2.4.x. C'est exactement ce que j'ai fait avec un kernel 2.4.4 et cela semble fonctionner parfaitement sur mon système. Il n'existe pas aujourd'hui de driver propre à l'Audigy, l'emu10K2 est en cours de développement, mais des drivers emu10k1 modifiés permettent de bénéficier d'une partie des fonctionnalités de la carte, c'est de ceux-ci dont il est question ici.

Ces notes sont destinées à un utilisateur sachant compiler le kernel.

Attention : En ce qui concerne l'installation du port de jeu de l'Audigy, je ne suis pas certain que cela fonctionne avec un kernel différent du 2.4.4.
 

1 - Les sources qu'il vous faut

1.1 - Kernel 2.4.4

Tout d'abord vous devez avoir installé les sources du kernel 2.4.4.Attention : Les sources doivent se trouver dans le répertoire /usr/src/linux/ pour l'installation des drivers de la carte son, si ce n'est pas le cas créez un lien symbolique en tant que super-utilisateur de cette manière :
# ln -s /la/ou/se/trouvent/les/sources /usr/src/linux

1.2 - emu10k1

Ensuite procurez vous les sources des derniers drivers emu10k1 pour Audigy sur le site :http://sourceforge.net/projects/emu10k1.
A ce jour, j'utilise les sources nommées: "audigy-driver-2002-02-14.tar.gz", que vous pouvez également trouver ici.

2 - Faire fonctionner le port de jeu

Pour ceux qui ne veulent faire fonctionner que le son, cette étape ne leur est pas utile.En ce qui concerne l'installation du port de jeu de l'Audigy, je ne suis pas sûr que cela fonctionne avec un kernel différent du 2.4.4, cela reste à tester. De plus, à partir du kernel 2.4.18, le port de jeu de l'Audigy est supporté sans avoir à modifier le module de gestion du port comme nous allons le faire.Le fichier se trouve dans le répertoire /usr/src/linux/drivers/char/joystick/, ouvrez avec votre éditeur favoris le fichier "ns558.c". Vous devez trouver les lignes suivantes :#ifdef CONFIG_PCI
static struct pci_device_id ns558_pci_tbl[] __devinitdata = {
{ 0x1102, 0x7002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB Live! gameport */
{ 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, /* ESS Solo 1 */
{ 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, /* S3 SonicVibes */
{ 0, }
}; 
Ajouter une ligne pour l'audigy gameport comme cela :#ifdef CONFIG_PCI
static struct pci_device_id ns558_pci_tbl[] __devinitdata = {
{ 0x1102, 0x7002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB Live! gameport */
{ 0x1102, 0x7003, PCI_ANY_ID, PCI_ANY_ID }, /* Audigy! Gameport */
{ 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, /* ESS Solo 1 */
{ 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4 }, /* S3 SonicVibes */
{ 0, }
}; 
Sauvegardez le fichier "ns558.c" ainsi modifié. Vous pouvez maintenant compiler votre kernel.

3 - La compilation du kernel

Vous devez compiler votre kernel avec les options suivantes :

3.1 - Pour le son :

Dans "Loadable modules support" mettre "y" pour "Enable loadable module support"Dans "Processor type and features" mettre "n" pour "Symmetric multi-processing support"Dans "Sound" mettre "m" à "Sound card support" et à "Creative SbLive! (EMU10K1)"

3.2 - Pour le port de jeu :

(seulement si vous avez modifié ns558.c)Dans "Character devices", sous "Joystick", mettre "y" à "joystick support" et "m" à "ns558 gameports"Pensez à votre joystick, si par exemple vous avez un sidewinder, mettez "m" à "Microsoft Sidewinder digital joysticks and gamepads"Maintenant c'est l'heure de la compilation alors je vais vous laisser aux joies du "make bzImage" et autres "make modules" (voir l'article sur le kernel). Avant la compilation, pensez à sauvegarder votre ancien noyau et ses modules, juste au cas où...
 

4 - L'installation des drivers

Bon, si tout s'est bien passé jusqu'ici, ça y est presque.

4.1 - Installation à partir des sources

Décompressez les sources, dans mon cas la commande sera :
# tar xvfz audigy-driver-2002-02-14.tar.gz
Allez dans le repertoire des sources des drivers Audigy, celui-ci est normalement nommé ./emu10k1-audigy/. Tapez les commandes suivantes :
# make -f Makefile
# make install
# make tools
# make install-tools

4.2 - Modification de "modules.conf"

Maintenant il ne reste qu'à modifier le fichier "modules.conf", il se trouve généralement dans le répertoire /etc/.
4.2.1 - Si vous voulez uniquement le son éditez "modules.conf" et ajoutez y ces lignes à la fin :
alias sound on
alias midi on

alias char-major-14 emu10k1
4.2.2 - Si vous voulez activer le port de jeu muni un joystick vous ajouterez plutôt :
alias sound on
alias midi on

alias char-major-14 emu10k1
post-install emu10k1 modprobe "-k" char-major-13

alias char-major-13 ns558
pre-install ns558 modprobe "-k" joydev
post-install ns558 modprobe "-k" Xjoystick
Xjoystick doit-être le nom du module correspondant à votre joystick. Ainsi pour un sidewinder la dernière ligne sera :
post-install ns558 modprobe "-k" sidewinder
Cette écriture dans "modules.conf " permet d'activer la prise en charge du joystick en même temps que celle du son, ainsi dès que la carte est utilisées le port de jeu est activé.
 

5 C'est la fin...

Voilà, c'est fini maintenant on reboute avec le nouveau noyau et ça devrait fonctionner.Pour plus d'infos sur le contrôle de la carte pensez à lire la documentation fournie avec les drivers téléchargés. Il y a un fichier "README.FRANCAIS" dans le répertoire ./emu10K1-Audigy/docs/.

Haut


Installation d'un scanner SCSI
grâce à SANE

par Fred et Christian Vivet.

Comme moi, vous laissiez Win$$$ encombrer votre disque pour pouvoir scanner de belles photos...
Et bien ça ne sert à rien, Linux fait aussi bien et cela sans enrichir l'homme le plus riche du monde.


Les informations contenues dans cette page ne sont aucunement garanties. Je les ai mises à la disposition du plus grand nombre pour rendre service, pas pour lire des reproches. Néanmoins, j'apprécierai grandement toutes les critiques constructives, en particulier, celles liées à mon orthographe déplorable, à ma syntaxe difficile à suivre et aux erreurs qui se sont certainement glissées subrepticement au sein de ce texte. Si vous voyez quelque chose à ajouter, je vous serais reconnaissant de bien vouloir me mailer les modifications que vous apportez à ce document. En plein accord avec l'esprit de liberté qui préside aux développements de linux, faites ce que vous voulez de ce texte, sauf prétendre que c'est vous qui l'avez écrit.

Ce document concerne l'installation d'un scanner et plus spécifiquement d'y-celui que j'ai chez moi : le Snapscan 310 SCSI. En fait, je pense que la procédure est globalement la même quelque soit le scanner, excepté l'application du patch spécifique au Snapscan (évidemment ;-). Ce document est écrit sous la forme d'une seule page, il est, de cette façon, plus facile de le télécharger.

Remarque :

Les scanners USB commencent à être supportés également par Linux. Voir la rubrique correspondante.

Pour installer un scanner SCSI sous Linux vous aurez besoin de :

Note : l'ensemble de la procédure d'installation décrite se déroule avec les droits de root donc faites attention à ce que vous taperez. Certaines parties de la procédure ne nécessitent pas réellement ces droits, mais ce sera plus simple pour moi de décrire l'ensemble de la procédure avec ces droits-ci. Si le coeur vous en dit essayez vous-même de vous passer de ces droits, linux vous préviendra quand vous essayerez de les outrepasser.


Récupérer les sources du noyau

Pour les novices

Votre distribution vous fournit forcément les sources du noyau. Pour les besoins de l'explication j'utiliserai dans ce document l'exemple de la Mandrake 6.0 ou plus (fonctionne sur une Mandrake 8.0).

1. Il faut monter le CD de votre distribution.

[root@becane home]# mount /mnt/cdrom
Vous pouvez/devez vous passez de cette étape si vous utilisez supermount. 2. Il faut installer les sources du noyau.

Avec la Mandrake 6.0 les sources du noyau portent le joli nom de : kernel-source-2.2.9-19mdk.i586.rpm.  Pour les installer, tapez :

[root@becane home]# rpm -i /mnt/cdrom/Mandrake/RPMS/kernel-source-*.rpm
Si vous n'avez pas la Mandrake 6.0, mais une autre distribution basée sur le système de package RPM la procédure est identique. Il faut seulement changer le chemin d'accès aux packages et le nom du package (ce sera toujours quelque chose du type kernel-source*, kernel-src*).

Pour les plus expérimentés :

Récupérez les derniers sources du noyau sur ftp://ftp.fr.kernel.org/pub/linux/kernel/v2.4. Ainsi, si des problèmes ont été réglés par les développeurs du noyau, vous bénéficierez de ces améliorations.

Vous les décompressez dans le répertoire /usr/src :

[root@becane root]# cd /usr/src
[root@becane src]# tar xzvf /ou/trouver/les/sources/kernel-xxx.tar.gz


Récupérer les sources de SANE

Je ne décrirai rien de particulier, les sources de SANE sont disponibles sur le site de SANE. La version des librairies SANE que j'ai utilisées est la 1.0.5 ; chez moi elles fonctionnent correctement avec la Mandrake 8.0. Décompressez les sources :

[root@becane root]# cd /usr/src
[root@becane src]# tar xzvf /ou/trouver/les/sources/sane-backends-1.0.5.tar.gz
[root@becane src]# tar xzvf /ou/trouver/les/sources/sane-frontends-1.0.5.tar.gz

Récupérer les sources du patch pour les Snapscan

Les sources du patch sont disponibles, sur le site du rédacteur du "backend" du Snapscan

Plusieurs conseils :

  1. Si vous n'avez pas de Snapscan : Ne télécharger aucun des ces patchs : ces patchs sont d'après le rédacteur en beta.
  2. Si vous avez un Snapscan : Télécharger l'un de ces patchs !
Bon maintenant vous avez le patch, décomprimez le :

[root@becane root]# cd /usr/src/sane-backends-1.0.5/backend
[root@becane backend]# tar xzvf /la/ou/est/snapscan-<version>.tar.gz

C'est bon tout est prêt ! On va maintenant configurer votre carte SCSI, passez ce qui suit si votre carte SCSI est correctement configurée avec le support des périphériques génériques (c'est certainement déjà le cas si vous avez un graveur de CD SCSI correctement configuré).


Installation du noyau avec support des modules et du SCSI

Vérifions que le noyau que vous utilisez ne contient pas déjà tout ce qu'il faut  :

[root@becane home]# ls /lib/modules/`uname -r`/scsi
53c7,8xx.o    aha1542.o   eata_pio.o   initio.o     qlogicfas.o   sym53c8xx.o AM53C974.o    aha1740.o   fdomain.o    ips.o        qlogicfc.o    t128.o BusLogic.o    aic7xxx.o   g_NCR5380.o  megaraid.o   qlogicisp.o   tmscsim.o NCR53c406a.o  atp870u.o   gdth.o       ncr53c8xx.o  scsi_debug.o  u14-34f.o a100u2w.o     dtc.o       ide-scsi.o   pas16.o      seagate.o     ultrastor.o advansys.o    eata.o      imm.o        ppa.o        sg.o          wd7000.o aha152x.o     eata_dma.o  in2000.o     psi240i.o    sym53c416.o

Si le module sg.o existe, après avoir trouvé dans /usr/doc/HOWTO/BootPrompt-HOWTO le nom du module que vous devez charger pour votre carte SCSI, vous pouvez passer à la section suivante.

Sinon faites ce qui suit :
Pensez à lire la rubrique noyau.

A partir de maintenant vous devrez tout savoir sur votre carte SCSI : son nom, le numéro de l'interruption (IRQ) ainsi que  la plage d'adresse (IO) qu'utilise votre carte SCSI. Toutes ces informations peuvent être obtenues :

Pour certaines cartes, l'interruption et l'adresse sont détectées automatiquement ; si vous avez l'une d'entre elles, vous n'avez pas besoin de vous en soucier ; vous pouvez voir si c'est le cas dans /usr/doc/HOWTO/BootPrompt-HOWTO.

  1. On va compiler tout ce qui nous intéresse sous forme de modules. Pour cela, on se place dans le répertoire contenant les sources du noyau /usr/src/linux :
    [root@becane root]# cd /usr/src/linux
  2. On configure le noyau :
    [root@becane linux]# make xconfig
    a partir de là, nous utilisons un programme de configuration qui est plus "convivial" que la ligne de commande mais peut-être quand même un peu abscons. Je vais donc décrire tout ce qui concerne le SCSI car moi aussi j'ai galéré quand j'ai compilé pour la première fois un noyau Linux, mais pour ce qui concerne le reste de votre configuration je vous renvoie à la rubrique noyau. Si vous avez déjà compilé votre noyau pour une autre raison, vous n'avez qu'à modifier votre configuration que sur ce qui suit.
  3. Activez le support des modules dans la rubrique :  <Loadable module support>,  vous activez (vous cochez les <y>) :
  4. Dans la rubrique SCSI support, vous activez en tant que modules (les <m> doivent être cochés) :
  5. Dans la rubrique SCSI low-level driver vous activez le module correspondant à votre carte en cochant le <m>  (LISEZ l'aide disponible par le bouton <Help> afin de voir de quel module vous avez besoin), et vous désactivez tous les autres modules en cochant les <n>.

    Notez le nom du module correspondant à votre carte SCSI (dans la rubrique <Help> en face de chaque module, le nom est indiqué par :
        The module will be called : XXXXXXXX.o
    seul le XXXXXXXX nous intéresse, il sera désigné à partir de maintenant par VOTRE-MODULE).

    ATTENTION : les cartes AVa 1505 XXX sont reconnues par linux comme étant des cartes AHA152x (nom du module aha152x) ! Certaines sont Plug&Play et paradoxalement plus compliquées à paramétrer avec Linux (cf : plug&play).

  6. Vous configurez le reste de votre noyau et de vos périphériques (cf : rubrique noyau).
  7. Il est conseillé de sauver votre configuration dans un fichier en cliquant avant sur <Store Configuration to File>  (un bon endroit est /root/kernel-config).
  8. Vous sauvez votre configuration de noyau en cliquant sur <Save And Exit>.
  9. Vous compilez et installez le noyau et les modules :
     Pour faire un peu de ménage :
        [root@becane linux]# make clean

    Pour que linux y retrouve ses petits :
        [root@becane linux]# make dep

     Pour créer votre noyau :
        [root@becane linux]# make zImage

    Pour créer vos modules :
        [root@becane linux]# make modules

     Pour installer votre noyau (attention cela modifie votre répertoire /boot et  lance lilo):
        [root@becane linux]# make install

    Pour installer vos modules dans le répertoires ad hoc :
        [root@becane linux]# make modules_install

  10. A partir de maintenant vos modules sont prêts ! Mais non fonctionnels, il faut rebooter votre nouveau noyau et recenser les modules (c'est automatique) :

    [root@becane linux]# reboot

Bon, effectivement il faut rebooter une fois, mais c'est tout, après ce ne sera plus la peine (sauf si vous ajoutez un nouveau périphérique...).

Tout ceci est inutile si vous utilisez la Mandrake ou la RedHat (et certainement la plupart des distributions) car les distributions modernes disposent déjà de tous les modules précompilés. Mais je vous conseille de compiler votre noyau au moins une fois en n'activant que ce que vous utilisez (mais tout ce que vous utilisez : n'oubliez pas les modules ppp - il m'est arrivé de galérer plusieurs heures pour me reconnecter à Internet parce que j'avais oublié ce $*?! de module - , les modules de gestions de l'imprimantes, etc...), de cette façon votre noyau sera adapté à votre configuration et pas à toutes les configurations possibles (ce dont vous devez vous moquez comme de mon premier win$$$).


Configuration des modules et des devices

Les modules

Maintenant, il vous faut configurer les modules ! Donc, éditez le fichier /etc/conf.modules, ce fichier dit au chargeur de modules de quelle manière doivent être chargés ces modules ; pour gérer votre carte SCSI, il doit contenir (au moins) les lignes suivantes :

alias scsi_hostadapter VOTRE-MODULE
options VOTRE-MODULE VOTRE-MODULE=VOTRE-IO,VOTRE-IRQ

ATTENTION : je ne bégaie pas !  VOTRE-MODULE est répété deux fois ! Le premier indique à quel module ce qui suit s'adresse, le second indique quel paramètre passer au noyau lors du chargement de ce module.

Le VOTRE-MODULES est le nom du module que vous avec compilé (le XXXXXXXX que je vous ai dit plus haut de noter). Pour ce qui concerne les options, je n'ai indiqué que celles des cartes compatible aha152x (c'est celle que j'utilise...).

Pour plus d'information sur les options des modules voir les HOWTO qui leur sont consacrés (par exemple : dans /usr/doc/HOWTO/BootPrompt-HOWTO, cherchez VOTRE-MODULE et lisez bien ce qui est écrit, normalement ce sont des options à passer au noyau quand le driver correspondant n'est pas compilé comme un module, mais il se trouve que ce sont les mêmes que celles à passer à modprobe. Pour certaines cartes il n'y a pas d'option : tant mieux c'est que le driver détecte tout tout seul, dans ce cas, seule la ligne "alias" est nécessaire). Pour ma carte AVA 1505 qui utilise l'interruption 9 et l'adresse 0x340 (ou 340h d'après Win$$$), j'ai inséré les lignes :

alias scsi_hostadapter aha152x options aha152x aha152x=0x340,9

Maintenant si tout a bien fonctionné vous devez pouvoir charger le module de votre carte SCSI, allumez votre scanner et tapez :

[root@becane linux]# modprobe VOTRE-MODULE

Si vous n'avez pas de message d'erreur, c'est que vous êtes sur la bonne voie, une petite vérification supplémentaire, pour voir ce que Linux trouve sur votre chaine SCS, tapez :

[root@becane linux] cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 01 Lun: 00
  Vendor: RICOH    Model: MP6200S          Rev: 2.20
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 04 Lun: 00
  Vendor: AGFA     Model: SNAPSCAN 310     Rev: 1.20
  Type:   Scanner                          ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 05 Lun: 00
  Vendor: IOMEGA   Model: ZIP 100          Rev: J.02
  Type:   Direct-Access                    ANSI SCSI revision: 02

Là, j'ai mis ce que donne le scanne de ma chaine SCSI. La partie intéressante est celle qui indique que Linux a trouvé un scanner. Que d'efforts pour si peu de chose ! Mais maintenant que tout fonctionne, vous n'aurez plus jamais (à voir...) à tapez ce genre de commandes. C'est tout l'intéret de modifier le fichier /etc/conf.modules : il indique au chargeur de modules les paramètres à passer à ceux-ci.

Remarque : dans les informations qui sont retournées par cat /proc/scsi/scsi :

Les devices

L'accès à votre scanner se fera par l'intermédiaire de périphériques, aussi appelés devices (les "fichiers" spéciaux contenus dans /dev comme par exemple /dev/hda1 qui permet d'acceder à la partition numéro 1 du dique maitre sur la première nape IDE), mais pour cela il faut qu'ils existent ;-). Normalement, ce doit être déjà le cas, mais vérifions que vous disposez bien de ces devices : les fichiers /dev/sg* :

[root@becane /dev]# ls /dev/sg* -l
crw-------   1 root     sys       21,   0 May  5  1998 /dev/sga
crw-------   1 fred     sys       21,   1 May  5  1998 /dev/sgb
crw-------   1 root     sys       21,   2 May  5  1998 /dev/sgc
crw-------   1 root     sys       21,   3 May  5  1998 /dev/sgd
crw-------   1 root     sys       21,   4 May  5  1998 /dev/sge
crw-------   1 root     sys       21,   5 May  5  1998 /dev/sgf
crw-------   1 root     sys       21,   6 May  5  1998 /dev/sgg
crw-------   1 root     sys       21,   7 May  5  1998 /dev/sgh

Si ces devices n'exitent pas il faut les créer !

[root@becane dev]# mknod /dev/sga c 21 0
[root@becane dev]# mknod /dev/sgb c 21 1
[root@becane dev]# mknod /dev/sgc c 21 2
[root@becane dev]# mknod /dev/sgd c 21 3
[root@becane dev]# mknod /dev/sge c 21 4
[root@becane dev]# mknod /dev/sgf c 21 5
[root@becane dev]# mknod /dev/sgg c 21 6
[root@becane dev]# mknod /dev/sgh c 21 7

Bon , ça devrait suffire. Evidemment, votre distribution devrait déjà avoir créé tous ces périphériques (en cas de problème : changez de distribution, c'est pour ça qu'il y en à plusieurs ! ;-)

Remarque :  pour ceux que ça intéresse :

mknod /dev/sga c 21 0
crée un fichier spécial (un device) appelé sga dans le répertoire /dev (normalement tous les périphériques sont créé dans ce répertoire) dont l'accès se fera en mode caractère (c'est le parmètre c) dont le numéro de majeur (qui indique de quel type de périphérique il s'agit : ici un périphérique scsi dont l'accès par linux ne se fera pas au travers d'un drivers spécifique) est 21 et le numéro de mineur (qui indique de quel périphérique de ce type il s'agit) est 0.

Installation des librairies SANE

Si vous n'avez jamais compilé un programme sous Linux, ne vous effrayez pas, vous allez voir que dans le monde GNU/autoconf tout est simple :

Rendez vous directement dans le répertoire où vous avez mis SANE et ne touchez pas 20.000 francs (pas encore) :

[root@becane root]# cd /la/ou/vous/avez/mis/sane-backends-1.0.5/

Compilez et installez SANE dans le répertoire /usr/local  (note : si gimp 1.1.x est installé, le programme configure croit qu'il s'agit de gimp 1.0.x et essaie de compiler sane avec le support de gimp : ce qui ne marche pas, le mode de fonctionnement de gimp avec les plugins ayant changé entre ces deux versions, il faut donc,  le temps de la compilation, déplacer le répertoire /usr/include/libgimp, merci à Yves Chaufour) :

[root@becane sane-backends-1.0.5]#./configure --prefix=/usr/local ; make ; make install
[root@becane root]# cd /la/ou/vous/avez/mis/sane-frontends-1.0.5/
[root@becane sane-frontends-1.0.5]#./configure --prefix=/usr/local ; make ; make install

Trouvez où est connecté votre scanner :

[root@becane sane-backends-1.0.5]# tools/sane-find-scanner
find-scanner: found scanner "AGFA SNAPSCAN 310 1.20" at device /dev/XXXXX

Pour permettre à SANE de trouver tout de suite votre scanner, créez un lien vers ce périphérique :

[root@becane sane-backends-1.0.5]# ln -sf /dev/XXXXX /dev/scanner

C'est fait !


Configuration des librairies SANE

Normalement, SANE doit maintenant fonctionner sans configuration particulière. Pour le vérifier, il suffit de lui demander d'afficher la liste des scanners qu'il trouve sur votre chaîne SCSI :

[root@becane home]# scanimage -L
device `snapscan:/dev/scanner' is a AGFA SNAPSCAN 310 flatbed scanner

Si SANE trouve plusieurs fois votre scanner sur plusieurs périphériques différents, ce n'est pas que Linux dispose de la faculté de multiplier les scanners comme d'autre multiplient les pains : c'est qu'il existe plusieurs périphériques qui ont le même numéro de mineur et de majeur, ou que plusieurs liens ont été créés vers le même périphérique. De toute façon ça n'empêchera pas SANE de fonctionner correctement. Au pire il vous demandera quel scanner vous voulez utiliser.

Remarque : les fichiers de configuration de SANE se trouvent (si vous avez suivi la procédure proposée) en /usr/local/etc/sane.d. Le fichier essentiel est /usr/local/etc/sane.d/dll.conf qui indique à SANE quels sont les scanners à rechercher. Vous pouvez commenter les scanners que vous savez ne pas avoir. Suivant le nom de votre scanner un autre fichier est important : /usr/local/etc/sane.d/VOTRE-SCANNER.conf : il indique à SANE où est potentiellement connecté votre scanner. Il est déconseillé (sauf si vous aimez vous em..d.r) d'enlever l'entrée : /dev/scanner car elle permet de changer rapidement de scanner actif (au cas ou vous en ayez plusieurs) en modifiant seulement le lien /dev/scanner, par contre vous pouvez enlever toutes les autres (si vous avez créé le lien /dev/scanner).


Utilisation de SANE

L'utilisation de SANE est très simple. La distribution standard de SANE comporte deux programmes permettant d'utiliser votre scanner : scanimage et son homologue sous X : xscanimage. Pour ce qui est de scanimage, je vous renvoie à la man page scanimage (1).
Pour utiliser xscanimage tapez :

[root@becane root]# xscanimage

Une fenêtre apparaît, vous permettant de saisir ou de choisir le fichier de sortie. Le réglage des paramètres est suffisamment simple pour que l'on ne s'y attarde pas. Sachez que les paramètres disponibles dépendent de votre scanner. Vous pouvez choisir la partie de l'image à scanner grace à la fenêtre de prévisualisation.
On peut configurer xscanimage en tant que plugin pour Gimp (pour cela il faut que, avant la compilation de SANE, vous ayez installé les fichiers d'include de gimp dans /usr/include (ou tout autre répertoire qui sera accessible par votre compilateur sans directive particuliére, en effet il y a un bug dans le programme de configuration de sane qui lui empêche - sur ma machine - de trouver ces includes s'ils sont ailleurs, avec la vérité par exmple), ce qui n'est pas automatique. Pour rémédier à cela, faites :

[root@becane home]# rpm -i gimp-devel.xxx.rpm

Puis, il suffit de créer un lien entre xscanimage et le répertoire de plugins de gimp :

[root@becane root]# ln -s `which xscanimage` ~/.gimp/plug-ins

Et c'est tout, vous relancez gimp et un menu proposant d'acquérir une image apparaît dans Xtns ! En fait ce lien n'est pas celui qu'il faudrait créer si vous voulez que tous les utilisateurs puissent utiliser votre scanner :

[root@becane root]# ln -s `which xscanimage` /usr/share/gimp/plug-ins

ou quelque chose d'approchant serait mieux venu.

Il existe d'autres programmes pouvant utiliser SANE. Je n'en connais que deux : xsane et ksane.

J'ai testé xsane. Personnellement, je continue à utiliser xscanimage pour les scannes simples et xsane pour le reste. Mais bon, tout cela reste affaire de goût, donc ne vous privez pas d'essayer les deux. Les plus de xsane :

Quant à ksane je ne l'ai pas utilisé et je ne sais donc pas ce qu'il vaut. Le développement de ce programme semble être au point mort.


Configuration en réseau

Nous devons cette partie à : Christian Vivet .

Sur le poste serveur nommé : serveur

  1. il faut configurer le fichier /usr/local/etc/sane.d/saned.conf et y ajouter le nom du client qui va utiliser le scanner en accès distant exemple de fichier saned.conf :
    # saned.conf
    #
    client1
  2. il faut ajouter une ligne dans le fichier /etc/inetd.conf pour démarrer le daemon saned :
    sane stream tcp nowait root /usr/local/sbin/saned saned
  3. il faut ajouter une ligne dans le fichier /etc/services en fin de fichier :
    sane 6566/tcp # SANE en reseau serveur

Sur le poste client nommé : client1

  1. il faut configurer le fichier /usr/local/etc/sane.d/net.conf et ajouter le nom de la machine serveur du scanner : serveur.
    Exemple de fichier net.conf :
    # net.conf
    #
    serveur
  2. il faut ajouter une ligne dans le fichier /etc/services du client (client1 dans l'exemple) :
    sane 6566/tcp # SANE en reseau client

Et bien sur installer sane , xsane sur la machine serveur et sur la machine cliente puis les relancer. Voilà, ce n'est pas très compliqué à mettre en oeuvre et cela marche parfaitement.


Les mots de la fin :

Maintenant, quelques trucs :

1. Utilisation depuis un autre compte que celui de root

Si vous voulez scanner depuis un autre compte que root, vous devez autoriser l'accès en lecture/écriture au périphérique /dev/sgXXX correspondant à votre scanner :

[root@becane root]# chmod a+rw /dev/sgXXX

pour que tout le monde puisse utiliser votre scanner, ou :

[root@becane root]# chown monuser:mongroup /dev/sgXXX

pour que seul monuser puisse utiliser votre scanner.

Enfin, pour ceux d'entre vous qui utilisent PAM (par exemple si vous utilisez la RedHat ou la Mandrake ou d'autres ?)  vous pouvez aussi configurer le gestionnaire de sécurité PAM en modifiant le fichier /etc/security/console.perms afin de donner le périphérique /dev/sgXXX à l'utilisateur connecté à la console (vous par exemple). Il suffit pour cela, si votre scanner est connecté au périphérique /dev/sgb de rajouter à /etc/security/console.perms les lignes :

<scanner>=/dev/sgb
<console> 0600 <scanner> 0600 root

Ce qui suit <scanner>= est une expression régulière : vous pouvez mettre /dev/sg[ab] pour autorisé les accès à /dev/sga et /dev/sgb si vous avez plusieurs scanner. Mais faites attention : les /dev/sg* sont aussi les périphériques SCSI dans leur ensemble, donc si vous avez un disque SCSI ou un graveur SCSI l'un des /dev/sg* est celui-ci, vous devez absolument éviter de donner ce périphérique à l'utilisateur qui dispose de la console. Sinon vous aurez a un gros trou dans le sécurité de votre système. (Pour plus de renseignements concernant ceci : voir la manpage console.perms) Ce paragraphe est en version alpha (je ne  suis pas absolument sûr que les /dev/sg* soient effectivement tous les périphériques de votre chaîne SCSI, mais dans le doute ne t'abstiens pas ! Surtout que ça ne coute pas cher de faire attention à la sécurité dans ce cas précis. Si quelqu'un en sait plus : qu'il m'écrive, ça m'intéresse.).

2. Quand allumer votre scanner ?

Lorque vous le souhaitez, pourvu que vous respectiez la règle suivante : le module correspondant à la carte SCSI sur laquelle est branché votre scanner, ne doit pas être chargé à ce moment là. Pour le vérifier, tapez :

[root@becane usr]# lsmod | grep VOTRE-MODULE

Si cette commande renvoie quelque chose, c'est que votre module est chargé : pour utilisez votre scanner, vous DEVEZ le décharger. Pour cela deux méthodes existent. La méthode Win$$$ : on  allume le scanner puis on reboote. La méthode Linux est moins bourrin : vous déchargez juste tous les modules qui utilisent votre carte scsi : sd_mod.o, sg.o et sr_mod.o :

[root@becane usr]# rmmod sr_mod
[root@becane usr]# rmmod sd_mod
[root@becane usr]# rmmod sg
[root@becane usr]# rmmod VOTRE-MODULE

Si vous obtenez un message d'erreur, c'est que soit ce module n'est pas chargé, soit l'un des modules est utilisé par un processus en cours de fonctionnement. Trouvez lequel, tuez-le, recommencez. Puis vous pouvez lancer xscanimage comme d'habitude. Il devrait trouver votre scanner (les modules nécessaires se chargeront alors automatiquement).

3. Le fichier dll.conf

Le fichier /usr/local/etc/sane.d/dll.conf sert à dire à SANE quels sont les scanners dont il doit vérifier la présence dans votre chaîne SCSI. Vous pouvez commenter toutes les lignes qui ne correspondent pas à votre scanner (en les commençant par #).

Dans ce fichier, on trouve deux lignes qui ne correspondent pas réellement à des scanners :  net et pnm.


Quelques ressources concernant les scanners (mailez-moi pour que je rajoute vos liens) :

Haut


Installation d'un scanner USB

par Eric Bénard

Si même l'USB est supporté par Linux que reste-t-il aux autres ?



Cette page est en grande partie inspirée de celle de Miguel qui m'a aidé a configurer SANE : http://www.rootsistemas.net/agujeroweb/scnrusb.html (en espagnol)

Les scanner USB commencent a être supportés par Linux. Un driver existe au sein des noyaux de développement de la série 2.3.x. Plus généralement de nombreux drivers pour divers périphériques USB ont été ajoutés à ce noyau. Il est toutefois possible d'utiliser la majorité de ces drivers grâce à l'adaptation des sources de l'USB du 2.4 vers le 2.2. Il est aussi possible d'utiliser directement un noyau de développement (j'utilise le 2.3.99-pre5 sans trop de pb sur plateforme i386), mais ces noyaux étant en développement, cela peut présenter des risques d'instabilité.

Dans un premier temps je vais expliquer comment compiler un noyau avec les nouveaux drivers USB. Puis on parlera de la configuration de SANE pour qu'il supporte le SnapScan.

Remarque :
Pour les scanners SCSI, voir la rubrique correspondante.

Compilation du noyau 2.2.15 avec les drivers USB du 2.3.x

Note : à partir du noyau 2.2.19 et 2.4 (i.e. toute distribution récente), cette étape n'est plus nécessaire. Vous pouvez passer directement à la suite.

Configuration du device usbscanner

Cette étape n'est pas nécessaire si vous utilisez devfs (par exemple sur une mandrake 8.2 ou 9.0).

Créez le noeud de périphérique correspondant au scanner USB par :

# mknod /dev/usbscanner c 180 48
# chmod a+rw /dev/usbscanner
# chmod 666 /dev/usbscanner
# ln -s /dev/usbscanner /dev/scanner

Chargement des drivers

valable uniquement si vous les avez compilés en modules

Ajouter cette ligne au fichier /etc/conf.modules : "options scanner vendo=0x06bd product=0x2061 (ou 0x0001 selon votre scanner, cette valeur pouvant être déterminée après avoir chargé les modules usbcore et usb-(u/o)hci, en regardant dans le log (commande dmesg) où vous devez trouver quelque chose comme çà : "Manufacturer: AGFA Product: SNAPSCAN 1212U ....  Vendor:Product = 06bd:0001 )"

# modprobe usbcore
# modprobe usb-xxxx (où xxx est uhci ou ohci selon votre carte mère)
# modprobe scanner

Etape optionnelle : mais utile au diagnostic

Il vaut mieux que /proc/bus/usb contiennent les informations sur vos périphériques usb. Pour cela, il faut sur une distribution ancienne (sur les récentes, cela est fait automatiquement au démarrage) :

# mount -t usbdevfs /proc/bus/usb /proc/bus/usb

Ou pour le monter automatiquement : ajouter "none /proc/bus/usb usbdevfs defaults 0 0" au fichier /etc/fstab.
Ainsi, vous pourrez vérifier la présence des drivers et les périhpériques détéctés en faisant :

# cat /proc/bus/usb/devices
# cat /proc/bus/usb/drivers

Configuration et installation de SANE (et de XSANE)

Récupérer les sources de SANE et de XSANE là : SANE, XSANE

Récupérer le patch pour le SnapScan USB là : sane-1.0.1-usb.diff (évidemment ne récupérez ce fichier que si vous utilisez une snapscan)

Décompresser SANE, le patcher et le compiler :

# tar xvzf sane-1.0.1.tar.gz
# patch -p0 < sane-1.0.1-usb.diff
# cd sane-1.0.1
# ./configure
# make
# make install

Décompresser XSANE, et le compiler :

# tar xvzf xsane-0.58.tar.gz
# cd xsane-0.58
# ./configure
# make
# make install

SANE et XSANE sont maintenant installés dans /usr/local

Configuration de SANE :

Editer les fichiers suivants dans /usr/local/etc/sane.d afin qu'ils ressemblent à çà :

Remarque :

D'autres infos sur SANE dans la rubrique scanner SCSI.

Chargement du firmware du scanner

Ceci n'est applicable qu'au SnapScan USB, mais une étape similaire doit sans doute être nécessaire aux autres scanner USB : si vous le savez, mailez nous, merci.

Récupérer les fichiers suivants : agfafirm (ou ici) et SnapScan-1212U_2.bin (ou ici)

Charger le firmware dans le scanner :

# chmod 755 agfafirm
# ./agfafirm /dev/usbscanner SnapScan-1212U_2.bin

Ca y est vous pouvez scanner !

Lancer xscanimage :

# xscanimage &

Pour utiliser xscanimage en module de gimp :

# cd /usr/lib/gimp/1.x/plug-ins (où x depend de la version de gimp installée)
# ln -s /usr/local/bin/xscanimage xscanimage
xscanimage sera lors accessible dans le menu Xtns>Acquire Image .

Liens utiles

Haut


Installation d'un scanner parallèle grâce à SANE

par Pierre Fritsch, fpb4 chez libertysurf point fr.


Introduction

Ce document a pour but de décrire l'installation d'un scanner sur port parallèle au sein d'un système GNU/Linux. Pour cela nous allons utiliser SANE (Scanner Access Now Easy), dernière version à ce jour 1.0.5. Pour cet exemple, il s'agit d'un MUSTEK ScanExpress 6000P. Un scanner déjà ancien mais qui me donne toute satisfaction. D'autant plus que l'on me l'a donné ;-)

Pré-requis

  1. Un systeme GNU/Linux fonctionnel,
  2. Un scanner supporté par SANE,
  3. les librairies sane-backends (les pilotes),
  4. les programmes sane-frontends (les interfaces). A signaler que sane-frontends n'est pas obligatoire si vous envisagez d'utiliser une autre interface comme xsane (http://www.xsane.org) ou quiteinsane (http://sourceforge.net/projects/quiteinsane), d'un autre côté, ils sont trés léger et permettent de tester rapidement l'installation de SANE.

Installation

Si vous disposez d'une distribution récente il y a de fortes chances pour que SANE soit disponible sur les cds de votre distribution. Dans ce cas utilisez votre méthode habituelle pour l'installation.

Exemple pour un systeme basé sur RPM :

rpm -ivh sane-backends-1.0.5.rpm
rpm -ivh sane-frontends-1.0.5.rpm
Exemple pour une slackware :
installpkg sane.tgz
Si vous préférez installer à partir des sources copiez celles-ci dans le répertoire de votre choix, /opt par exemple :
cp sane-backends-1.0.5.tar.gz /opt/sane-backends-1.0.5.tar.gz
cp sane-frontends-1.0.5.tar.gz /opt/sane-frontends-1.0.5.tar.gz
passez dans le repertoire /opt
cd /opt
décompressez-les :
tar zxpvf sane-backends-1.0.5.tar.gz
tar zxpvf sane-frontends-1.0.5.tar.gz
passez dans le répertoire sane-backends-1.0.5 nouvellement créé :
cd sane-backends-1.0.5
compilez de la manière habituelle :
./configure ; make ; make install
effectuez la même opération pour sane-frontends :
cd /opt/sane-frontends-1.0.5 ; ./configure ; make ; make install

Configuration

Suivant votre distribution, les fichiers de configuration ne se trouvent pas au même endroit.
Il s'agit du fichier dll.conf ainsi que du fichier propre a votre scanner : mustek_pp.conf pour notre exemple.
Ils se trouvent à l'intérieur du dossier sane.d

Pour une Mandrake 8 avec installation des rpm Mandrake :

/etc/sane.d
Pour une slackware 8 avec installation par installpkg :
/etc/sane/sane.d
Pour une installation a partir des sources :
/usr/local/etc/sane.d
A l'intérieur du répertoire sane.d supprimez toutes les entrées ne correspondant pas à votre scanner. Ne laissez que dll.conf et l'entrée liée à votre matériel, mustek_pp.conf dans notre cas.

Éditez le fichier dll.conf et commentez (mettez le symbole # devant une ligne, pour qu'elle ne soit pas prise en compte) ou supprimez toutes les entrées ne correspondant pas à votre matériel. Dans mon exemple il a fallu que je décommente la ligne mustek_pp qui correspond à mon scanner.

Voici pour l'exemple mon fichier dll.conf :

# enable the next line if you want to allow access through the network:
#net
mustek_pp
Éditez le fichier correspondant à votre scanner : mustek_pp.conf dans notre cas. Dans la section DEVICES, précisez sur quel port est connecté votre scanner, soit : Attention : pour une carte mère avec un seul port parallèle, lp0 correspond à 0x378. Décommentez les entrées correspondant au modèle exact de votre scanner.

Commentez toutes les autres sauf : option io-mode alt_lock, option niceload, option buffer 122400

Voici mon fichier mustek_pp.conf :

# For documentation see sane-mustek_pp(5)

# GLOBAL #

# option io-mode [mode] must come before all port< definitions, or it won't
# have the effect you'd expect

# enable this option, if you think your scanner supports the UNI protocol
# note however that this might disable the better EPP protocol
#option io-mode try_mode_uni

# choose between two different ways to lock to port option io-mode alt_lock

# set the maximal height (in lines) of a strip scanned (default: no limit)
#option strip-height 0

# wait n msecs for bank to change (default: 700 msecs)
# if this value is to low, stripes my appear in the scanned image
#option wait-bank 700

# size (in bytes) of scan buffer (default: 1 megabyte)
#option buffer 1048576

# try to avoid to heavy load. Note that this reduces scan speed
option niceload

# Define the time the lamp has to be on before scan starts (default 5 secs)
#option wait-lamp 5

# DEVICES #

# specify the port your scanner is connected to. Possible are 0x378 (lp1)
# 0x278 (lp2) and 0x3bc (lp0)
port 0x378

# the following options are local to this scanner

# WELL KNOWN OPTIONS #

# most scanners only need 200 - 250 msecs to change bank -> try it out

Mustek ScanExpress 6000 P
name SE-6000P
vendor Mustek
option wait-lamp 15

# Mustek ScanExpress 600 SEP
# name SE-600SEP
# vendor Mustek
# option wait-lamp 15

# Mustek ScanMagic 4800 P
# name SM-4800P
# vendor Mustek
# option wait-lamp 15

# Mustek 600 III EP Plus
# name 600IIIEPP
# vendor Mustek
# option wait-lamp 15
# some models only need 5 secs...

# Mustek ScanMagic/Express 1200 ED Plus (this scanner isn't yet supported!!!)
# name SM-1200EDP
# name SE-1200EDP
# vendor Mustek
# this scanner has an optical resolution of 600 dpi
# option use600
# this scanner *must* use option niceload
# option niceload

# Fidelity Imaging Solutions Inc. Gallery 4800
# name Gallery-4800
# vendor Fidelity-Imaging-Solutions

# Viviscan Compact II
# name Compact-II
# vendor Viviscan

# Medion MD9848 (aka Aldi-Scanner)
# name MD9848
# vendor Medion
# option wait-bank 250

# scan maximal 16 lines for one sane_read() call
#option strip-height 16

# we just need 16 lines * 3 (rgb) colors * 300 dpi * 8.5 inch bytes
option buffer 122400

# Enable this option, if you want user authentification *and* if it's
# enabled at compile time
#option auth
# use this option to define the maximal black value for lineart scans
#option bw 127

Utilisation

Apres avoir enregistré vos modifications vous pouvez (si vous avez installé sane-frontend) lancer /usr/local/bin/xscanimage. Si tout s'est bien passé vous devez voir apparaître l'interface de gestion de votre scanner.

Vous avez la possibilité de lancer xscanimage comme un plugin de Gimp. Pour cela il suffit de creer un lien symbolique de /usr/local/bin/xscanimage vers le repertoire plug-ins de gimp dans votre repertoire personnel exemple pour l'utilisateur pedro :

ln -s /usr/local/bin/xscanimage /home/pedro/.gimp-1.2/plug-ins
Remarques :

Ce document n'est écrit que dans un but indicatif. Ce qui fonctionne chez moi peut ne pas fonctionner chez vous. Lisez les pages man de sane. Allez sur le site de sane : http://www.mostang.com/sane pour en savoir plus sur le matériel supporté et quel type de backend utiliser pour votre propre matériel.

A mon avis xsane (http://www.xsane.org) est plus complet que xscanimage notamment avec le support de la photocopie et la gestion fax. Mais bien sûr cela n'engage que moi.

Merci de me faire part de vos commentaires ou suggestions.
 

Additif

A la suite de plusieurs courriers reçus depuis la parution de cet article, il apparait que plusieurs problemes se posent encore.

1 . Il faut etre root pour pouvoir utiliser le scanner.

Le principe est simple : utiliser la couche réseau de SANE.

Solution pour Slackware (via inetd)

Ceci doit être compatible (ou presque) avec toute distribution utilisant inetd comme super-daemon.

éditer /usr/local/etc/sane.d/saned.conf et s'assurer que localhost est décommenté

éditer /usr/local/etc/sane.d/net.conf  et s'assurer de la même chose

rajouter dans /etc/services " sane 6566/tcp "

rajouter dans /etc/inetd.conf  "sane stream tcp nowait root /usr/local/sbin/saned saned "

Voilà ! Maintenant en tant que "user" le scanner apparait comme [net:localhost:mustek_pp:SE-6000P]

Solution pour Mandrake

Pour l'instant je n'en ai pas : Je sais que le principe est le même sauf que la Mandrake utilise xinetd au lieu de inetd mais je n'ai pas encore compris la procedure
Avis aux amateurs!!!!!!!

(Fred):: Je n'ai pas essayé, mais je pense qu'il faut :
créer /etc/xinetd.d/sane tel que :

service sane
{
        disable = yes
        port    = 6566
        socket_type     = stream
        wait    = no
        only_from = localhost
        server  = /usr/local/sbin/saned
        # ce qui suit, doit peut-être être changé.
        user = root
        log_on_failure  += USERID
}

Voilà ! Maintenant en tant que "user" le scanner doit apparaitre comme [net:localhost:mustek_pp:SE-6000P]

2 . Nico m'a fait part d'un probleme sur sa Debian.

Il faut selon lui creer un lien symbolique sur /dev/lp0  (ln -s /dev/lp0 /dev/scanner).
A essayer !

Je voudrais  remercier tous ceux qui m'ont ecrit pour me faire part de leurs remarques et de leurs encouragements et par la meme occasion m'excuser de parfois avoir ete
un peu long a repondre mais n'etant pas informaticien de profession je ne peux y consacrer que mon temps libre.

Haut


Installer une imprimante locale !

par Serge et Fred

Les pingouins savent écrire ! et même en réseau !


Introduction

Il  n'existe, bien évidemment, pas qu'une seule méthode pour installer une imprimante. On peut utiliser les filtres 'apsfilter'. Mais, les plus chanceux d'entre nous utilisent une distribution Mandrake et disposent en standard de l'utilitaire de configuration : 'DrakConf'.

Avec apsfilter

On va donc voir ici comment installer une imprimante très rapidement et très facilement grâce à un utilitaire qui fait presque tout le travail : apsfilter.
Récupérez tout d'abord ce programme (en source) sur le site de freshmeat.

Compiler les sources

Bon, une fois les sources tarball (c'est à dire tar.gz) récupérées, on fait un :
tar zxvf apsfilter-xxxx.tar.gz
Les sources vont s'extraire dans un répertoire apsfilter-xxx

Allez dans le répertoire et faites un:
./SETUP

Vous allez rentrer alors dans un menu en mode texte ou il suffit de remplir tout simplement les sections (elle est pas belle la vie ?)

Détails des sections

On arrive donc sur un message, validez par [Entrée] jusqu'à arriver a APS FILTER SETUP.

Commencez par taper [D] pour voir les imprimantes supportées par défaut par gs (ghostscript), regardez la liste pour voir si votre imprimante y est, notez le nom qui lui est associé (par exemple bjc600). Si votre imprimante n'y est pas, regardez si une compatible existe en revenant au menu général puis tapez cette fois-ci [R].

Revenez à l'ecran principal et tapez [1], puis suivez les menus suivant la marque/modèle de votre imprimante, ou si elle n'apparait pas, choissisez une imprimante compatible.
Confirmez votre choix par [y].

Tapez alors [2], choisissez votre type d'imprimante (série ou parallèle) puis le port (/dev/lp0 pour l'équivalent du LPT1 de DOS).

Tapez alors [3] : on va choisir une résolution pour le test, choisissez "petit" pour pas attendre trop longtemps, voir si ca marche et ne pas avoir un truc sur 10 feuilles non plus. Si ça marche pas revenez en arrière et choisissez une autre imprimante en 1. 150 DPI est un bon choix.

Tapez [4], choisissez monochrome pour une imprimante noir et blanc ou 24bpp pour une couleur assez moderne, en dessous pour les vieilles couleurs jets d'encre (style bjc200).

Tapez [5] et choisissez A4 (papier standard d'imprimante en France).

Tapez [T] pour tester la config. Si tout se passe bien alors votre imprimante devrait sortir une tête de lion. Autrement revenez à la première étape et reconfigurez le tout. Si au lieu d'une image vous avez des caractères incompréhensibles, c'est à l'étape 1 que vous vous êtes trompé. Autrement si rien n'apparait, vérifiez que vous n'avez pas choisi un mauvais port à l'étape 2.

Bon, le test est OK, on passe à l'étape [C]. Si l'on vous demande d'ajouter ou d'écraser la config, si c'est votre seule imprimante, vous écrasez, et si vous configurez une autre imprimante, vous ajoutez.

Ca va compiler, créer le /etc/printcap, etc... Puis validez par [Entrée] plusieurs fois. Voilà, votre imprimante est configurée !!!

Test sous X

Allez sous X, lancez par exemple kedit sous KDE, tapez une phrase puis imprimez (fichier -> imprimer). Ca devrait passer sans aucun problème. Si cela ne fonctionne pas, vérifiez bien qu'un process lpd existe (ps -aux lpd | grep ldp), autrement essayez de le lancer à la main (lpd &). Si lpd ne se trouve pas sur votre machine, installez-le (voir les packages sur le cd de votre distrib, ca doit y être obligatoirement).

Voilà, votre imprimante fonctionne !!!

Dépendances

Pour que tout cela fonctionne, vous devez avoir sur votre système :

Avec DrakConf

Installation

Normalement, l'installation de ce programme a eu lieu en même temps que le reste de votre distribution. Mais, si ce n'est pas le cas, voilà la marche à suivre, il faut installer les rpms suivants : Par la ligne de commande suivante :
rpm -i /mnt/cdrom/Mandrake/RPMS/package-versionmdk.i386.rpm
Tous ces paquetages sont présents sur le CD de votre distribution.

Configuration d'une imprimante locale

C'est bien évidement le cas de figure le plus simple. Pour cela, vous lancez Drakconf :
[root@localhost home]# DrakConf
Une jolie (c'est une affaire de goût) fenêtre s'ouvre, vous cliquez sur :
Configuration des imprimantes
Une nouvelle fenêtre s'ouvre : elle s'appelle 'configuration d'une imprimante locale'. On vous demande le nom de la file : mettez ce que vous souhaitez, mais sachez que si la file s'appelle lp, alors ce sera votre imprimante par défaut. Vous pouvez aussi préciser des alias pour cette file par exemple en mettant :
lp|DeskJet|DeskJet Couleur
Dans ce cas , vous pourrez imprimer sur la file par défaut : lp, sur la file DeskJet qui lui est équivalente, tout comme "DeskJet Couleur" (notez la présence de " pour entrer un nom composé de plusieurs mots). Ensuite on vous demande lerépertoire de spool : c'est le nom du répertoire dans lequel devrons être stockées les informations concernant cette file, ainsi que les fichiers temporaires générés par la commande lpr quand on lui demandera d'imprimer. vous pouvez changer ce répertoire, mais l'emplacement proposé par défaut est bon. Validez votre choix par OK.

Ensuite on vous demande de Choisir le type de connexion de l'imprimante : choisissez Imprimante locale. Normalement DrakConf trouve tout seul le port sur lequel est branché votre imprimante : /dev/lp0. Si ce n'est pas le cas, vous pouvez essayer de choisir vous même (/dev/lp0 pour LPT1: (sous windows), /dev/lp1 pour LPT2:, et /dev/lp2 pour LPT3: (très rare)), mais en général cela indique que votre port d'impression n'est pas reconnu : c'est qu'il n'est pas standard, lisez le Printing-HOWTO.
Donc, normalement vous pouvez valider par OK.

Maintenant, il faut préciser le nom de votre imprimante : si votre imprimante est présente dans la liste, choisissez là, si elle n'est pas dans la liste, choisissez un modèle compatible (par exemple : la HP LaserJet 1100 n'est pas dans la liste, mais c'est une imprimante qui utilise le langage PCL5, comme la LaserJet 4 qui est dans la liste : c'est celle là qu'il faut choisir). Si votre imprimante est compatible avec plusieurs modèles, je vous conseille d'essayer tous les drivers pour pouvoir choisir le bon driver.

Ensuite on vous demande de choisir les options de l'imprimante (par exemple la taille du papier) ; choisissez celui que vous utililisez, nous verrons plus loin comment modifier la taille du papier avant une impression. Validez les options que vous souhaitez utiliser.

Enfin on vous demande d'imprimer une page de test (votre imprimante doit être branchée ;). Essayez toutes les pages proposées. Normalemant, ça doit marcher, si ce n'est pas le cas :

Recommencez les étapes, jusqu'à ce que tout fonctionne.

Configuration d'une imprimante réseau

La marche à suivre est exactement la même, sauf que lorsque l'on vous demande de choisir le type de connection, choisissez cette fois : 'imprimante Unix distante'.
Ensuite on vous demande le 'nom du serveur', entrez le nom de la machine qui jouera le rôle du serveur d'impression (ou une adresse IP si vous préférez). Dans la case 'nom de la file d'impression', tapez le nom de la file d'impression (dans la majorité des cas lp sera très bien). Le reste est identique.

Un conseil toutefois : lorqu'on imprime sur une imprimante distante, il faut en avoir le droit, ce qui n'est en général pas le cas par défaut. Vous devez pour cela ajouter (ou créer si ce fichier n'existe pas) le nom de la machine qui souhaite imprimer (le client) dans le fichier /etc/hosts.lpd de la machine qui gérera vraiment l'impression (le serveur).

Trucs et astuces

Pour vérifier que le driver fonctinne, essayez d'imprimer une page postscript :
lpr [-P <nom de la file>] fichier.ps
Vous n'êtes pas obligé de préciser le nom de la file d'impression ("lpr fichier.ps" suffit), mais cela vous permet de tester une file d'impression en particulier.
En fait, c'est la méthode à utiliser pour imprimer sur une file particulière un fichier particulier. Les filtres rhs-printfilters reconnaissent un grand nombre de types de fichier : depuis le postscript jusqu'au gif en passant par l'html.

La taille du papier est précisée dans le fichier postscript.cfg du répertoire de spool ( c'est à dire : /var/spool/lpd/file). C'est le paramètre PAPERSIZE, vous pouvez préciser (extrait de la manpage de gs) :

 PAPERSIZE    X pouces   Y pouces   X cm      Y cm
 -----------------------------------------------------
 a0           33.0556    46.7778    83.9611   118.816
 a1           23.3889    33.0556    59.4078   83.9611
 a2           16.5278    23.3889    41.9806   59.4078
 a3           11.6944    16.5278    29.7039   41.9806
 a4           8.26389    11.6944    20.9903   29.7039
 a5           5.84722    8.26389    14.8519   20.9903
 a6           4.125      5.84722    10.4775   14.8519
 a7           2.91667    4.125      7.40833   10.4775
 a8           2.05556    2.91667    5.22111   7.40833
 a9           1.45833    2.05556    3.70417   5.22111
 a10          1.02778    1.45833    2.61056   3.70417
 b0           39.3889    55.6667    100.048   141.393
 b1           27.8333    39.3889    70.6967   100.048
 b2           19.6944    27.8333    50.0239   70.6967
 b3           13.9167    19.6944    35.3483   50.0239
 b4           9.84722    13.9167    25.0119   35.3483
 b5           6.95833    9.84722    17.6742   25.0119
 archA        9          12         22.86     30.48
 archB        12         18         30.48     45.72
 archC        18         24         45.72     60.96
 archD        24         36         60.96     91.44
 archE        36         48         91.44     121.92
 flsa         8.5        13         21.59     33.02
 flse         8.5        13         21.59     33.02
 halfletter   5.5        8.5        13.97     21.59
 note         7.5        10         19.05     25.4
 letter       8.5        11         21.59     27.94
 legal        8.5        14         21.59     35.56
 11x17        11         17         27.94     43.18
 ledger       17         11         43.18     27.94

Pour changer le format de l'impression il suffit donc de modifier avant l'impression la valeur de cette variable.

Haut


Drivers HPIJS pour Hp deskjet

BRARD Emmanuel

Installer son imprimante HP Deskjet 6xx/9xx/x


Introduction

Vous avez une imprimante HP Deskjet de série 8xx, 9xx ou supérieure (série 3xx supportée) ?
Alors vous allez pouvoir tirer partie de toutes* les fonctions de cette imprimante, entre autres et surtout de la technologie Photoret {2-3}.

Notez toutefois que la Mandrake 8.1 devrait intégrer directement ces drivers.

Pré-requis

Attention: ce drivers ne marche que pour les imprimantes des séries 6xx,8xx,9xx et supérieures (la série 3xx est supportée).

Vous aurez besoin de :

Tout ceci est normalement disponible sur le cd de votre distribution.
Je vous conseille aussi d'installer ghostscript-png et jpg pour pouvoir imprimer des images sans soft particulier avec les commandes classiques.

Il vous faut maintenant le support HP de Ghostcript que vous pourrez trouver sur http://hpinkjet.sourceforge.net.

Téléchargez :

Vous devez posséder un installeur de spooler, genre printtool, ou printerdrake (éventuellement voir sur http://freshmeat.net), ainsi que les packages suivants (à cause des problèmes de dépendances) :

Normalement tout ceci est disponible sur le cd de votre distribution (peut-être des problèmes avec la Mandrake 8.x ?)

Mise au Point

Installation

Voila avec tout ça, ça devrait marcher ;)

Il suffit donc d' installer les packages que vous n' avez pas encore, et d' installer ceux de Hp avec la commande rpm -Uvh xxx.rpm --force. Normalement aucun problèmes .... nan ils viennent après :
Rpm nous prévient (ou pas) que la base printerdb n'a pas pu être mise à jour.

Nous allons donc le faire nous-même :
Localisez votre fichier printerdb, normalement dans :

/usr/lib/rhs/rhs-printfilters/
Ensuite il suffit de copier les entrées qui nous intéressent du fichier :
/usr/doc/hpijs-0.97/printerdb_append
Copiez dans /usr/lib/rhs/rhs-printfilters/printerdb la ou les entrées de votre ou vos imprimantes.

EX:

StartEntry: HPDeskJet9xx
GSDriver: DJ9xx
Description: {HP - developed DeskJet 900C series}
About: { \
This driver was developed by Hewlett-Packard Co. for deskjet \
930/932C, 950/952C, 970C, photosmart 1000/1100 printers. \
Duplex printing is not supported. \
Different print modes can be specified with the Extra GS option "-dPr
intMode=n". \
Where n equals one of the following values: 0=grayscale, 1=normal (de
fault), or 2=photo. \
Resolution setting 600x600 is available for photo mode only. \
}
Resolution: {300} {300} {}
Resolution: {600} {600} {}
EndEntry
Pour une imprimante de la série 9xx comme ma 930c ;)

Ensuite il n'y a plus qu'à ajouter un spooler pour celle-ci avec le programme de votre choix, genre printtool (non testé) ou printerdrake (parfait).
Notez que pour une imprimante usb, le port est /dev/usb/lp0

Et voilà, comme ça vous allez pouvoir imprimer avec une bonne qualité directement sous Linux avec le spooler lpd, donc pour imprimer comme d'habitude :

lpr (-P imprimante) monfichier.*

(ce qui est entre parenthèses étant optionnel.)

Conclusion

Malheureusement certaines "qualités" de certaines imprimantes de sont pas encore supportées : "Duplex printing is not supported", pour les séries 9xx, mais en allant régulièrement sur http://hpinkjet.sourceforge.net, vous verrez les dernières améliorations.

Je rappelle aussi que quelques imprimantes Epson et Canon peuvent elle aussi être optimisées avec les outils xw_tools ; bien qu'ils permettent parfois une impression jusqu'à 1440 dpi rien n'est assuré pour les imprimantes de la gamme HP, c'est pourquoi il vaut mieux utiliser les drivers de HP.
Remarque : bien que ceux-ci soient sous une license Open-source, il est vrai qu'ils ne sont pas libres, du moins pas sous les termes de la license GPL/LGP.

Liens xw_tools :

Note : la compilation des drivers HP ne marche pas sous RootLinux 1.2 chez moi.

(c) 2001 BRARD Emmanuel, emman@agat.net
Ce document est sous license GNU FDL .

Haut


Connecter un lecteur Flash USB

par Laurent DUBETTIER-GRENIER et Maston28

Connecter un lecteur flash USB (palmkey, diskonkey...) ou une clé usb sous Linux, mais aussi certains appareils photos numériques...


Introduction

Les lecteurs Flash USB deviennent de plus en plus populaires : facile à utiliser et disposant d'une grande capacité de stockage, il remplaceront avantageusement une pile de disquette... Les lecteurs les plus récents sont conformes à la norme USB 2.0 (jusqu'à 40 fois plus rapide que USB 1.1 pour le taux de transfert) et disposent de capacités de stockage allant jusqu'à 512 Mo, mais les prix sont alors très élevés... Personnellement, j'utilise un Palm Key de 64 Mo en norme USB 1.1, produit par Allwell... Cet article a pour objectif d'expliquer la configuration permettant d'accéder à ce lecteur sous Linux. Je suppose que cela sera aussi utile aux possesseurs de lecteurs Flash USB de marques différentes ainsi qu'aux possesseurs d'appareils photos numériques comme le Sony Cyber-shot DSC P71.

Cet article n'est que la traduction incomplète de l'excellent article de Matt Butcher, visible à cette adresse. Dans cet article en anglais, il décrit, en plus de la partie traduite ci-dessous, le moyen de créer un système de fichier crypté sur un lecteur Flash USB.

Pour profiter de cet article, vous devez disposer :

Procédure simplifiée

Dernière minute (Mandrake 9.0) :

Avec la dernière distribution de Mandrakesoft, Linux Mandrake 9.0 (noyau 2.4.19-16mdk), c'est extrêmement simple ! Il suffit de connecter le lecteur Flash USB, et de le monter en tapant :

$ mount /mnt/removable

Pour accéder aux fichiers :

$ cd /mnt/removable

Avant de le déconnecter, il ne faut pas oublier de le démonter :

$ umount /mnt/removable

Nota (voir la procédure détaillée ci-dessous pour plus d'information) :
Sur cette distribution linux, le fichier /etc/fstab contient la ligne suivante :

/dev/sda1 /mnt/removable auto user,iocharset=iso8859-15,kudzu,codepage=850,noauto,umask=0,exec 0 0

Les modules chargés par défaut (visibles en tapant lsmod) sont usbcore et usb-uhci. Il n'y a pas usb-storage, mais cela fonctionne quand même...

Si vous n'avez pas Mandrake Linux 9.0 :

(ou plus précisement le dernier noyau...)

En considérant que le lecteur Flash USB est le premier périphérique de stockage SCSI (je suppose ici que vous n'avez pas d'autres périphériques SCSI ou USB), il suffit de suivre les instructions suivantes :

$ mkdir /mnt/pk
$ mount -t msdos /dev/sda1 /mnt/pk
$ cd /mnt/pk

Le lecteur Flash USB, livré avec un système de fichier DOS, est alors lisible et inscriptible. Avant de le déconnecter, ne pas oublier de le démonter :

$ umount /mnt/pk

Procédure détaillée

Ce paragraphe décrit la configuration pas à pas d'un lecteur Flash USB. Cela permet, en cas de problème d'accès à votre lecteur Flash USB, de cerner plus précisement d'où vient le problème.

Préparer USB

Avant de brancher votre lecteur Flash USB, vous devez vous assurer que votre système possède le module noyau USB. Nous avons besoin de usb-uhci (ou usb-ohci) et du module de stockage usb-storagechargé. Utiliser lsmod pour vérifier qu'ils sont bien présents. Sinon, utiliser modprobe :

$ modprobe usb-uhci usb-storage

Nota : le driver usb-uhci est le driver pour un type de pont USB. Si cela ne fonctionne pas, c'est que vous avez un pont OHCI. Dans ce cas, il faut faire "modprobe usb-ohci".

En tapant de nouveau lsmod, vous devriez alors voir apparaître le noyau usb, les drivers usb-uhci ou usb-ohci, et usb-storage, entre autres.

Préparer le périphérique

Dès que les modules sont chargés, vous pouvez connecter le lecteur Flash USB. Attendre quelques secondes et changer de répertoire vers /proc/bus/usb. /proc/bus/usb est le répertoire regroupant les informations sur les périphériques usb. Le répertoire devrait contenir un fichier devices, un fichier drivers, et un répertoire pour le hub USB.

Le fichier drivers contient une liste des périphériques USB disponibles. Il devrait contenir une entrée vers usb-storage, le module que nous avons inséré auparavant. Le fichier le plus important est le fichier devices : il liste tous les périphériques usb connectés au système.

Nota : On obtient la même information, dans un format plus lisible, en tapant directement l'instruction "usbview" depuis un serveur X (interface graphique).

Vous devriez avoir une entrée pour votre Lecteur Flash USB dans une des lignes commençant par "T:". Sur mon système :

T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=3 Spd=12 MxCh=0

La plupart des périphériques contiennent des informations en clair (une chaîne de caratère) les décrivant. Elles sont présentes dans les lignes commençant par "S:". Quelques lecteurs Flash USB ne contiennent aucune information (mon palm key est dans ce cas...). L'information relative à la version de vos périphériques est présente après "P:". Pour mon palm key :

P: Vendor=0c76 ProdID=0003 Rev=1.0

Dès que vous avez une entrée dans ce fichier pour votre lecteur Flash USB, vous pouvez continuer. Si il n'y a pas d'entrée, contrôler la connection physique de votre périphérique et assurez-vous que les modules nécessaires sont bien chargés dans le noyau.

Le driver usb-storage

Le travail du driver usb-storage est de lier les périphériques de stockage de masse USB à des périphériques SCSI. Ceci autorise les périphériques USB à être traités comme des périphériques de stockage amovibles. Si tout c'est bien passé, le Lecteur Flash USB doit être assigné à un périphérique SCSI. Dans /proc/scsi, vous devez voir un répertoire nommé usb-storage-0 ou similaire. Le numéro à la fin peut être différent, il dépend du nombre de périphériques de stockage USB présents sur votre système. Le fichier /proc/scsi/scsi contient des détails sur les périphériques sont répertoriés comme périphériques SCSI.

Attached devices :
Host: scsi0 channel: 00 Id: 00 Lun: 00
Vendor: USB Flash    Model: Disk
Type: Direct-Access   ANSI SCSI revision: 02

Si vous n'avez pas d'autres périphériques SCSI, la seule entrée de ce fichier est votre lecteur Flash USB.

Note : en l'absence d'identification du vendeur sur le périphérique lui-même (et aussi dans le fichier /proc/bus/usb/devices), le périphérique est juste déclaré comme générique.

La première ligne host informe sur la localisation du périphérique. Si c'est le premier périphérique SCSI, il sera déclaré comme /dev/sda1.

Monter le périphérique

À ce moment, nous avons identifié quel périphérique SCSI est lié au lecteur Flash USB. Il ne reste plus qu'à le monter :

$ mkdir /mnt/pk
$ mount  -t msdos /dev/sda1 /mnt/pk

On peut alors aller sur /mnt/pk et écrire ou lire le lecteur Flash USB. Quand une action d'écriture arrive sur le périphérique, la led rouge doit clignoter. Comme les données sont stockées dans une zone tampon avant d'être écrites, ne paniquez pas si la led ne clignote pas à chaque fois que vous évcrivez sur le lecteur Flash USB.

Attention : n'oubliez pas de démonter le système de fichiers avant de débrancher le lecteur Flash USB. Vous pouvez ajouter une entrée dans /etc/fstab pour faciliter le montage et le démontage du périphérique :

/dev/sda1 /mnt/pk msdos user,noauto 0 0

Avec l'entrée dans /etc/fstab, monter et démonter le périphérique est alors plus simple. L'indicateur "user" autorise une personne autre que root à monter et démonter le lecteur Flash USB.

$ mount /mnt/pk
$ umount /mnt/pk

Remplacer le systeme de fichiers DOS

Si vous n'êtes pas intéressé par partager vos données avec un système MS-DOS ou Windows, vous pouvez formater votre lecteur Flash USB avec un système de fichiers Linux. ReiserFS est journalisé et doit pouvoir être le système de fichiers de votre lecteur Flash USB. Les lignes suivantes décrivent l'installation d'un système de fichier extended2-fs.

Attention : avant d'écrire un nouveau système de fichiers sur votre lecteur Flash USB, vous devez démonter le lecteur.

Attention : les données présentes sur le lecteur Flash USB seront perdues.

Exemple :

$ umount /dev/sda1
$ mke2fs /dev/sda1

Ensuite, il faut changer la ligne de /etc/fstab pour que le système de fichiers soit ext2 au lieu de msdos.

Application aux disque-durs externes USB

par Maston28

Si vous Possédez un disque dur externe en usb, alors cette partie va vous intéresser ! Vous pouvez en effet utiliser un disque-dur externe sous linux en reprenant ce principe (qui s'applique aussi aux lecteurs ZIP). Sachez tout d'abord que pour un gros disque dur, il vaut mieux avoir compilé son noyau avec l'option USB Mass Storage. Vous devez tout d'abord charger les modules requis :

insmod usbcore
insmod uhci-usb
insmod usb-storage

Il faut ensuite monter les périphériques USB dans /proc/bus/usb :

mount -t usbdevfs none /proc/bus/usb

Nous allons maintenant monter le disque dur:

mkdir /mnt/externe && mount -t vfat /dev/sda /mnt/externe

Attention :Je suppose ici que votre disque dur est formaté en FAT32 (par défaut à l'achat...)

Attention :si le disque dur est partitionné, remplacez sda par sdax

Haut


Configuration des Senseurs de la carte mère.

par Fred

Votre carte mère dispose peut-être de senseurs permettant de savoir, à tout moment, la température des différents éléments de celle-ci, ainsi que diverses informations intéressantes pour la bonne marche de votre PC, en particulier si vous comptez l'overclocker.


Ce qu'il nous faut

Pour pouvoir connaître l'état des différents senseurs de votre carte mère, il faut que nous installions deux (au moins) paquetages : i2c-2.6.3.tar.gz et lm_sensors-2.6.3.tar.gz que l'on peut trouver sur le site de l'auteur de ces paquetages.
Evidemment, lecteur quand tu liras ces lignes, les numéros des paquetages auront peut-être changé : prend la dernière version !

Installation

La documentation de ces deux paquetages préconise trois types d'installation (au moment ou j'écris ces lignes), mais je ne vais m'intéresser qu'à une seule méthode : celle qui consiste à patcher (je ne vois de mot français, y a-t-il un académicien dans la salle ?) le noyau de Linux. L'opération se déroule sans douleur (évidemment, si vous n'avez jamais recompilé votre noyau, allez voir la documentation sur ce site).

Remarque : chaque commande qui suit est sur une seule ligne, bien sûr !

La première chose à faire est de décompresser ces deux paquetages :

[user@localhost user]$ tar xzf i2c-2.6.3.tar.gz
[user@localhost user]$ tar xzf lm_sensors-2.6.3.tar.gz
Ensuite, il faut créer les patches. Pour que cela fonctionne, il faut, au préalable, avoir installé les sources du noyau dans /usr/src/linux (c'est l'emplacement par défaut de la plupart des distributions ; les paquetages nécessaires sont disponibles sur le CD de votre distribution).
Nous créons les patches par :
[user@localhost user]$ cd /home/user/i2c-2.6.3
[user@localhost i2c-2.6.3]$ mkpatch/mkpatch.pl . /usr/src/linux > i2c-patch
Puis, on patche le noyau :
[user@localhost user]$ cd /usr/src/linux
[user@localhost linux]$ su
Password : ********
[root@localhost linux]# patch -p1 -E < /home/user/i2c-2.6.3/i2c-patch
...
...
(Attention: ces commandes sont sur une seule ligne !) Voilà pour le patch i2c. Puis le patch lm_sensors :
[user@localhost user]$ cd /home/user/lm_sensors-2.6.3
[user@localhost lm_sensors-2.6.3]$ mkpatch/mkpatch.pl . /usr/src/linux > lm-patch
Enfin, il faut patcher le noyau :
[root@localhost linux]# patch -p1 -E < /home/user/lm_sensors-2.6.3/lm-patch
...
...
Normalement, tout ce passe bien et nos sources du noyau sont bien patchées !

Compilation des modules et du noyau

La compilation se déroule de manière standard pour les sources du noyau : on lance un make xconfig pour configurer les sources.
En plus des supports habituels pour votre configuration (voir la documentation du site), il faut que vous activiez (en modules c'est mieux...) tout dans : Character Devices/I2C support/ (en fait, seuls I2C support, I2C bit-banging interfaces, I2C PCF 8584 interfaces et Pseudo ISA adapter nous seront utiles). Il faut aussi que vous activiez tout dans : Character Devices/Hardware sensors support/.

Puis vous compilez votre noyau comme d'habitude :

make dep ; make bzImage ; make modules ; make modules_install
Vous l'installez, vous relancer lilo et vous rebootez !

Compilation des librairies et des utilitaires

Cette phase est essentielle : elle permet la détection automatique de vos senseurs etc...
Pour cela vous devez compilez les librairies libsensors.*. Placez vous dans le répertoire contenant les sources de lm_sensors :
$ cd /home/usr/lm_sensors-2.6.3
Et éditez le fichier nommé Makefile (c'est lui qui gére la compilation de lm_sensors), vous devez trouver les lignes noires et les remplacer par les lignes rouges :
COMPILE_KERNEL := 1
COMPILE_KERNEL := 0

I2C_HEADERS=/usr/local/include
I2C_HEADERS=$(LINUX_HEADERS)

PREFIX := /usr/local
PREFIX := /où/vous/voulez
# attention : les executables seront installés dans $PREFIX/bin etc...

En fait, il suffit souvant de commenter la ligne noire (en mettant un # devant) et de décommenter la ligne rouge (en enlevant le # devant).

Maintenant on peut compilez le tout par make. Un certain nombre de fichiers ne sont pas trouvé : ce n'est pas grave. On installe le tout par : make install.

Un dernière étape avant la détection : la création des périphériques. Celle-ci se fait très simplement par le script : mkdev.sh. Il faut être root pour pouvoir le lancer :

$ su
Password : ********
# /home/user/lm_sensors-2.6.3/prog/mkdev/mkdev.sh
Voilà, il ne reste plus qu'à détecter vos senseurs.

Détection des senseurs

Là, c'est très simple : il suffit de lancer le script sensors-detect qui se trouve dans /home/user/lm_sensors-2.6.3/prog/detect, lancez-le et validez toutes les questions (les choix par défaut sont tous bons, mais vous pouvez lire ce qu'on vous demande pour affiner votre configuration). A la fin du script vous devez voir apparaître quelque chose comme :
WARNING! If you have some things built into your kernel, the
below list will contain too many modules. Skip the appropriate ones!
To load everything that is needed, add this to some /etc/rc* file:

#----cut here----
# I2C adapter drivers
modprobe i2c-piix4
modprobe i2c-isa
# I2C chip drivers
modprobe eeprom
modprobe w83781d      # w83781d est le nom du chip !
#----cut here----

To make the sensors modules behave correctly, add these lines to either
/etc/modules.conf or /etc/conf.modules:

#----cut here----
# I2C module options
alias char-major-89 i2c-dev
#----cut here----

La première série de lignes en rouge (entre les cut here) doit être insérée dans votre fichier /etc/rc.d/rc.local : ce sont ces lignes qui vont charger au démarrage les modules permettant la lecture des senseurs (Attention : prenez les lignes correspondant à votre configuration, celles qui sont présentées ici sont les miennes !).

La seconde série doit être insérée dans le fichier /etc/conf.modules : elles servent au chargement automatique des modules qui peuvent être chargé automatiquement.

Voilà c'est tout.

Utilisation

L'installation de lm_sensors-2.5.1 crée un petit script de lecture des senseurs : sensors, lorqu'on le lance on obtient :
[user@localhost user]# sensors
w83781d-i2c-1-2d
Adapter: SMBus PIIX4 adapter at 5000
Algorithm: Non-I2C SMBus adapter
VCore 1:   +1.98 V  (min =  +1.80 V, max =  +2.20 V)
VCore 2:   +2.00 V  (min =  +1.80 V, max =  +2.20 V)
+3.3V:     +3.36 V  (min =  +2.97 V, max =  +3.63 V)
+5V:       +5.07 V  (min =  +4.50 V, max =  +5.48 V)
+12V:     +11.86 V  (min = +10.79 V, max = +13.11 V)
-12V:     -12.38 V  (min = -10.78 V, max = -13.18 V)
-5V:       -5.12 V  (min =  -4.50 V, max =  -5.48 V)
CPU Fan:  4891 RPM  (min = 3000 RPM, div = 2)
CPU temp: +39.0 C   (limit = +60.0 C, hysteresis = +50.0 C)
vid:      +2.00 V
alarms:   Chassis intrusion detection                 ALARM
beep_enable:
          Sound alarm disabled
Ou en tout cas quelque chose d'approchant. Certaines information peuvent vous sembler absurdes (par exemple des températures négatives etc...), elles correspondent en général à des senseurs non branchés ou non existants. Il peut être intéressant de désactiver ces senseurs (du moins leur lecture), cela se fait en éditant le fichier /etc/sensors.conf. Mais avant de pouvoir l'identifier il faut connaitre le nom de la puce qui gère les senseurs : le chip. Pour l'identifier, c'est simple, vous faites :
[user@gros home]# cat /proc/sys/dev/sensors/chips
256 w83781d-isa-0290
257 w83781d-i2c-1-2d
258 eeprom-i2c-1-50
Les noms des puces présentes sur ma carte mère sont en gras, en rouge c'est le protocole utilisé pour lire le contenu de ces puces.

Dans le fichiers /etc/sensors.conf, vous devez vous placer après une ligne commançant par :

chip "lm78-*" "lm78-j-*" "lm79-*" "w83781d-*" "sis5595-*"
(Comme vous pouvez le constater, plusieurs puces ont la même configuration : ici lm78, lm79, w83781d, sis5595, mais ce qui doit vous intéresser dans ce fichier c'est votre puce !, le reste vous pouvez l'effacer). Vous avez donc repéré votre puce dans /etc/sensors.conf. Vous devez trouver à la suite de cette ligne (chip  quelque chose) :
label in0 "VCore 1"
label in1 "VCore 2"
label in2 "+3.3V"
label in3 "+5V"
label in4 "+12V"
label in5 "-12V"
label in6 "-5V"

label fan1 "CPU Fan"
ignore fan2
ignore fan3

ignore temp1
label temp2 "CPU temp"
ignore temp3

Les lignes commençant par label donnent un nom (celui que vous verrez dans la sortie de sensors) à un senseur : mettez ce qui vous plaît. Les lignes commençant par ignore signalent à sensors que ce senseur ne doit pas être lu : les senseurs qui retournent des informations erronées ou qui ne vous intéressent pas peuvent être ignorés avec profit.

Voilà, maintenant vous pouvez surveiller votre PC dans les moindres recoins !

Haut


Installer une WebCam USB

par Fred et Dimitri

Un certain nombre de WebCams sont maintenant supportées par Linux, voyons comment en faire fonctionner une.


Dans ce document, je vais expliquer comment installer une WebCam sous Linux, mais je ne parlerais que de celle ayant un driver en GPL.
Il existe plusieurs types de WebCam supportées par Linux avec des pilotes GPL : Dans la suite, la partie concernant les logiciels est commune à toutes les webcams, mais pour l'installation des drivers, je ne vais parler que des WebCams utilisant ov511 car les deux WebCams que j'ai testées (une Trust Sp@ce cam 300 USB et une Creative Video Blaster Webcam 3 USB) utilisent ce driver.
Pierre-Yves me signale que la procedure d'installation est presque identique pour les WebCams utilisant le driver CPiA (lui il a une Mustek Vcam-300 USB) : il suffit de changer (presque partout cela suffit) : ov511 par cpia.


Prérequis : Vous devez avoir installé un noyau supportant l'USB (c'est le cas du noyau des Mandrake 7.2, SuSE 7.0, RedHat 7.0 et sans doute de toutes les dernières versions des grandes distributions) :

Installation et configuration du noyau

Si vous utilisez une distribution récente tout est déjà configuré correctement dans votre noyau, vous pouvez passer à la suite. Sinon nous allons devoir recompiler le noyau.

Pour cela, voyez cet article. Le mieux est d'utiliser un noyau 2.4.2 (dernière version à la date de rédaction de cet article) : il contient forcement les dernières versions des drivers mais vous pouvez toujours télécharger celles-ci sur les sites : OV511 : http://alpha.dyndns.org/ov511 ou CPiA : http://webcam.sourceforge.net. Pour compiler les drivers, vous devez, dans la rubrique USB Support activer en tant que modules les options suivantes (au moins) :

  1. USB support : ça coule de source.
  2. Preliminary USB device filesystem : ça ne coute rien et ça pourra vous servir (à reconnaitre un périphérique, et c.).
  3. L'un des drivers suivant : UHCI (Intel PIIX4, VIA, ...) (module : uhci.o) ou UHCI Alternate Driver (JE) (module : uhci.o) ou OHCI (Compaq, iMac, OPTi, SiS, ALi) (module : ohci.o) : suivant votre carte mère (regardez l'aide), c'est le driver des ports USB de votre ordinateur (si vous devez charger un driver uhci, préférez UHCI Alternate Driver (JE) sauf s'il plante votre ordinateur : il est parait-il plus performant).
et soit :

Enfin vous compilez et installez ce nouveau noyau. Un petit reboot et tout ce passera bien.

Installation et configuration des drivers

Si l'USB, n'est pas pris en charge par votre distribution il faut maintenant charger le driver USB de votre carte mère, c'est soit : ohci soit : uhci. Tapez :
modprobe usbcore (sans doute inutile)
modprobe ohci
ou modprobe uhci (inutile si votre ditribution supporte l'USB)
modprobe videodev
(sans doute inutile)
modprobe ov511
ou modprobe cpia

Pour automatiser ce chargement au démarage de votre machine, il y a deux solutions envisageables :

A ce stade votre WebCam est prise en charge par le noyau, mais il reste à se procurer de quoi visualiser les videos en provenance de celle-ci.

Note(1) : Pour les WebCams OV511, vérifiez que votre WebCam est correctement détectée, tapez :

[root@duron]# tail -n 5 /var/log/messages
Mar 8 13:55:50 duron kernel: usb.c: registered new driver ov511
Mar 8 13:55:50 duron kernel: ov511.c: USB OV511+ camera found
Mar 8 13:55:50 duron kernel: ov511.c: camera: Creative Labs WebCam 3
Mar 8 13:55:50 duron kernel: ov511.c: Sensor is an OV7620
Mar 8 13:55:50 duron kernel: ov511.c: ov511 driver version 1.34 registered
Si vous voyez une ligne du type de celle en gras c'est que votre WebCam est reconnue, sinon c'est que quelque chose manque ou que votre WebCam n'est pas supportée par ce module (essayez l'autre, vérifiez dans les listes de matériels supportés).

Note(2) : Pour les WebCams OV511, si vous avez plusieurs WebCams OV511, il en faut préciser le nombre sur la ligne de commande, si vous avez 2 WebCams :
[root@duron]# modprobe ov511 cams=2
La première WebCam détectée sera /dev/video0 la seconde /dev/video1 et c.

Note(3) : Il est possible (non testé) de charger en meme temps un driver ov511, cpia et bttv chacun des périphériques détectés sera accessible via un /dev/videoxx

W3Cam

W3Cam est un programme qui permet de diffuser à la demande les images sur votre serveur WEB (vous devez avoir installé Apache (par exemple) pour pouvoir l'utiliser). Mais le paquetage W3Cam permet aussi de tester rapidement sa WebCam car il contient le programme (fonctionnant en ligne de commande) : vidcat qui lui ne nécessite pas d'installer Apache.

Compilation et installation

Comme toujours on peut récupérer un paquetage précompilé pour sa distribution, mais je préfère compiler moi même ce type de programme : je n'expliquerais pas comment faire, mais vous pouvez le faire en allant sur rpmfind.net par exemple. Nous allons récupérer les sources là : http://www.hdk-berlin.de/~rasca/w3cam/

Puis on décompresse le tout et on compile :
tar xzf w3cam-0.6.6.tar.gz
cd w3cam
./configure
make
make install

Maintenant tout est installé dans /usr/local/bin et /usr/local/cgi-bin, n'oubliez pas d'ajouter /usr/local/bin à votre PATH.

Faisons un petit test :
vidcat -d /dev/video0 -s 320x240 -f jpeg > ~/essai.jpeg

Essayer de regarder le fichier ~/essai.jpeg. S'il est un peut sombre, c'est que les réglages automatiques n'ont pas pu se faire à la première prise de vue, essayez d'en faire d'autre : l'image s'éclaircie petit à petit. Ça y est votre WebCaebc fonctionne sous Linux !

Votre tête sur le Web !

Vous avez acheté une webcam, ce n'est certainement pas pour prendre des photos... Une première solution : mettez votre tête animée sur le Web. Pour cela vous devez avoir installé Apache sur votre machine. Puis copiez le contenu de /usr/local/cgi-bin vers le répertoire des cgi d'apache (sur la Mandrake 7.2 c'est /var/www/cgi-bin, sur la 7.0 c'est /home/httpd/cgi-bin) :
cp -R /usr/local/cgi-bin/* /var/www/cgi-bin

Puis, éditez le fichier : /var/www/cgi-bin/w3cam.cgi.scf. Ci-après vous trouverez le mien :

# SCFF/sh
# Ce fichier doit se trouver dans le même répertoire
# que w3cam.cgi
# Décommentez et renseignez les
# lignes suivantes si vous souhaitez
# modifier les couleurs de fond et
# celles d'avant plan
# background=#ffffff
# foreground=#000000

# Ce paramètre existe mais je
# ne sait pas à quoi il sert
# source_url="http://home.pages.de/~rasca/w3cam/"

# Si vous souhaitez utiliser une feuille de style
# décomentez la ligne suivantes
# stylesheet="/~rasca/w3cam/w3cam.css"

# mettre protected à 1 permet d'éviter
# de prendre en compte les champs du formulaire

protected=0

# mettez ici votre périphérique video

device = "/dev/video"

# taille d'image en provenance de la WebCam (ou la carte TV)

width=320
height=240

# pour avoir de jpeg en couleurs (0 : noir et blanc) color=1
# temps à attendre entre deux images

refresh="0.1"

# norm, 0=PAL, 1=NTSC, 2=SECAM
# utile uniquement avec une carte TV #norm="0"
# input, 0=TV, 1=Composite1, 2=Composite2, 3=S-Video

input="1" # avec une WebCam (évite les bouton unutiles avec une WebCam)

# format, 1=PPM, 2=JPEG, 3=PNG

format="2"

# qualité des jpeg : 1-100

quality="50"

# mode, 0=plain, 1=gui (pour avoir un control sur w3cam)

mode="1"

# attendre 0,5 secondes avant de commencer la capture
# (ie : 500000 microsecondes)
# usleep="500000"
# fréquence du tunner en 1/16 MHz
# uniquement pour les carte TV
# freq="9076"
# liste des fréquences
# freqlist="878;9076;9844;9460"
# Pour mettre l'heures sur les images de votre WebCam
# les mots clefs ne sont utilisables que dans ce fichier
# vous devez renseigner les champ "font" et "timestamp"
#
# font = /usr/local/X11/lib/ttfonts/arial.ttf
# font_size = 12
#
# Pour la chaine de format de l'heure voir la manpage : strftime(3)
# timestamp = "Berlin, %H:%M %d.%m.%Y"
# timestamp_border = 2
#
# blend value: 1 .. 100
# timestamp_blend = 60
# alignment: 0 = upper left corner, 1 = upper right corner,
# 2 = lower left corner, 3 = lower right corner
# timestamp_align = 1


Puis lancez votre navigateur web préféré (je crois que cela ne fonctionne pas avec MS IE mais je n'ai pas pu essayer...) et tapez l'url suivante : http://localhost/cgi-bin/w3cam.cgi : ça y est ça bouge !

Pour acceder à votre webcam depuis le net il suffit, dans l'adresse ci-dessus, de remplacer localhost par votre ip (que l'on peut obtenir en faisant ifconfig ppp0 si l'on est connecté via pppd) et c'est tout. Note : Si l'image que vous voyez semble provenir de Canal+ sans décodeur, c'est souvant que vous demandez une capture dans une résolution qui n'est pas supportée soit par le driver soit par la WebCam.

Motion

partie écrite par : Dimitri CLATOT <dclatot@free.fr>.

Vous suspectez des fantômes de venir hanter votre maison en votre absence sans jamais les avoir vus et bien voici ce qu'il vous faut. Motion permet de détecter les mouvements faits devant votre webcam et de les enregistrer. Plus d'infos http://motion.technolust.cx/tech/

Compilation et installation

L'auteur propose le rpm compilé ou les sources que l'on peut trouver ici: http://motion.technolust.cx/download/. Voici comment installer les sources :
$ tar zxvf motion-2.X.X.tar.gz
$ cd motion-2.X.X
$ ./configure (ajoutez ici : --prefix=/usr si vous voulez l'installer dans /usr et pas /usr/local comme c'est le cas par défaut)
$ make
$ su
Password: xxxxxxx
# make install 

Big Brother is watching You

motion s'installe par défaut dans /usr/local/bin

Pour tester le fonctionnement avec votre webcam, lancer:
[dimitri@micro quickcam]$/usr/local/bin/motion
Motion crée à partir du répertoire où vous avez lancé l'exécutable (ici quickcam), une arborescence avec l'année, le mois, le jour, l'heure et la minute de l'enregistrement. A l'intérieur du dernier sous-répertoire on trouve les images jpeg datées avec en encadré les changements détectés. Exemples sur le site de Motion.
[dimitri@micro quickcam]$ ls -a 2001/05/26/09/57/
./ ../ 36-00.jpg 36-01.jpg 36-02.jpg
Maintenant que vous avez vu que tout fonctionne, vous allez pouvoir le paramétrer plus finement. Pour cela, vous avez 2 possibilités, par la ligne de commande (man motion) ou par un fichier de configuration 'motion.conf' à placer dans le même répertoire à partir duquel vous exécutez motion.

Exemple: Exécute motion sous forme de démon avec des images en ppm
[dimitri@micro quickcam]$ motion -D -p
Vous trouverez un exemple de fichier de configuration dans le répertoire /usr/local/examples/motion-2.X.X .

Motion offre beaucoup de possibilités de configuration, comme stocker les évènements dans une base MySQL, vous envoyer des mails ou SMS pour vous prévenir, ou faire une vidéo des images capturées.

D'autres programmes

Ici, je vais mettre une liste de programmes qui peuvent utiliser votre WebCam.

Haut


Installation d'une carte Olitec PCI 128 RNIS

par Didier NOACK, màj par Serge (mise en page)

Installation pour une mandrake 7.1 (à vous d'adapter suivant votre distribution).


Pré-requis

Vérifier que la carte RNIS est bien installée :

Lancer la console et tapez cat /proc/pci

Vous devez trouver une entrée correspondant à

Network controller : PLX Unknown device?
Vendor id=10b5. Device id=1187
....../......

Vérifier ou installer les packages RNIS et le nécessaire pour compiler le noyau :
Avec votre utilitaire de gestion de packages RPM, installez :

Ayant personnellement été confronté à certaines surprises (désagréables) lors de mon installation, je vous joins les fichiers de la Mandrake 7.0 car ceux de la version 7.1 posent apparemment un problème. (isdn4k-utils et isdn4net )

Bien entendu, si vous travaillez déjà avec la Mandrake 7.1, ces fichiers existent. Par conséquent installez les miens par dessus et n'oubliez pas de cocher la case « remplace les fichiers » dans Drakconf. Rien de plus pénible, après recompilation (eh oui, il va falloir y passer) de s'apercevoir qu'à cause de ce genre de « détail » cela ne fonctionne pas et qu'il faut recommencer.

Configurer le noyau et compiler le tout

La configuration qui suit revient à indiquer au système les drivers qui devront être installés lors de la compilation du noyau.

Avant de rentrer dans la configuration du noyau au sens propre, allons modifier le fichier gazel.c qui se trouve dans le répertoire /usr/src/linux/drivers/isdn/hisax :

Au début du fichier, vous allez trouver la ligne:
#DEFINE GAZEL_R753 0x1152

Remplacez 1152 par 1187, sauvegardez et c'est tout.

Dans la console tapez make xconfig (dans /usr/src/linux)
Il faut maintenant parcourir les options concernant ISDN et renseigner les points suivants :
ISDN Support : m
Support synchronous PPP : y
Use VJ-compression with synchronous PPP : y
Support generic MP (RFC 1717) : y
Hisax Siemens chipset driver support : m
Hisax support for EURO/DSS1 : y
Hisax support for Gazel cards : y

Quittez en sauvegardant les modifications.

Compiler maintenant le noyau avec les modules , dans la console tapez :
make clean
make dep
make bzImage
make modules
mv /lib/modules/2.2.15-4mdk /lib/modules/2.2.15-4mdk-old
(à remplacer avec votre version)
make modules_install
cd /boot
cp module-info-2.2.15-4mdk module-info-2.2.15-4mdk-old
(mettre votre version la aussi, si vous obtenez un message du genre le fichier est introuvable,c'est pas grave)
mv System.map-2.2.15-4mdk System.map-2.2.15-4mdk-old
cp /usr/src/linux/System.map ./System.map-2.2.15-4mdk
mv vmlinuz-2.2.15-4mdk vmlinuz-2.2.15-4mdk-old
cp /usr/src/linux/arch/i386/boot/bzImage ./vmlinuz-2.2.15-4mdk

Modifier le fichier de démarrage, pour cela editez avec un éditeur graphique ou dans une console le fichier lilo.conf qui se trouve dans le répertoire /etc/. Rajoutez une entrée correspondant à l'ancien noyau (au cas où):
image=/boot/vmlinuz-2.2.15-4mdk-old
label=linux-old
root=/dev/hdax (où x est la partition où se trouve linux)
read-only

Pour installer ces modifications, tapez lilo dans une console. Vous ne devez pas avoir de message d'erreur sinon, veuillez rééditer le fichier lilo.conf avant de redémarrer.

Vous pouvez et devez maintenant redémarrer votre machine. Bientôt la fin :

Copiez maintenant le fichier olitec.init.o dans le répertoire /lib/modules/2.2.15-4mdk/misc/
Copiez ensuite le fichier isdn4linux dans le répertoire /etc/rc.d/init.d/ , et enfin copiez le fichier Olitec dans /etc/isdn/profile/card/

Juste un petit truc : modifiez le fichier isdn dans le répertoire /etc/sysconfig/

A la ligne I4L_CARD= »mycard » remplacez mycard par Olitec

Paramettrer le démarrage 

Dans une console tapez :
cd /etc
chkconfig --del isdn4linux
chkconfig --add isdn4linux
chkconfig --list isdn4linux

Vérifiez la présence du fichier ifcfg-ippp0 dans /etc/sysconfig/network-scripts/

Editez le fichier network dans /etc/sysconfig/ en supprimant les entrées GATEWAY et GATEWAYDEV (si elles existent)
Rajoutez à la fin GATEWAYDEV=ippp0

Editez le fichier isdn.conf dans /etc/isdn/ en mettant COUNTRYCODE=33 AREACODE=2 (pour la normandie) (3 pour l'est, etc?)

Editez le fichier ippp.default dans /etc/isdn/profile/ en remplaçant selon vos coordonnées (numéro de téléphone ?)

Editez le fichier ippp.map dans /etc/isdn/profile/
Mettre le nom de votre fournisseur d'accès internet sur la ligne Ippp0= ''libertysurf '', vous devrez alors créer le fichier libertysurf dans le répertoire /etc/isdn/profile/link/ en recopiant le fichier myisp sur le fichier libertysurf.

Editez maintenant ce fichier :
I4LPROFILENAME=''libertysurf''
I4L_USERNAME=''identifiant_internet''(le nom donné par votre FAI)
I4L_SYSNAME=''libertysurf''
I4L_LOCALMSN=''0388112233'' (votre numéro)
I4L_REMOTE_OUT=''0860445566'' (le numéro du FAI)

Editez les fichiers pap-secrets chap-secrets dans le répertoire /etc/ppp/. Il faut mettre la même chose dans l'un et l'autre, insérez votre ligne :
Sous client mettre l'identifiant du FAI (le même que I4L_USERNAME ci dessus)
Sous server la même chose que I4L_SYSNAME ci-dessus
Sous secret mettre le mot de passe du FAI

Tapez maintenant dans une console :
cd /etc
route

(Ici vous ne devez pas avoir d'entrée comme 0.0.0.0 ou default. Si vous en avez une, tapez alors : route del default

Lancez l'interface ISDN en tapant toujours sous la console :
/etc/rc.d/init.d/isdn4linux start
Par la suite elle sera lancée automatiquement.

A partir de maintenant, pour se connecter, 2 possiblités :

  1. La plus simple et la plus rationnelle :

    Vous utilisez le programme « kisdn » que dans un accès de générosité je vous joins (ma bonté me perdra).
    ATTENTION : Ce programme est une version téléchargée et NON ENREGISTREE, Je suggère vivement à chacun qui l'utilisera de s'enregistrer sur le site www.millenium.de. Cet excellent programme gagne à être connu et permet bien d'autres choses que la simple connection à internet.Par l'activation de la fonction « dial on demand » de kisdn, la connection se fera automatiquement lors du lancement de votre browser ou de votre mail client.

  2. La méthode des puristes et des accros de la console et ligne de commande :

    Pour activer ippp0 :dans la console tapez :
    cd /etc
    ifup ippp0

    Pour vérifier que l'interface est bien lancée, tapez: ifconfig
    Ifup ippp0 est à retaper chaque fois après relance du système.

    Pour la numérotation, utilisez dans une console dans le répertoire /etc :
    isdnctrl dial ippp0
    Et pour raccrocher :
    isdnctrl hangup ippp0

Haut


Alcatel Speedtouch ADSL USB: installation façon libre :)

Par Serge Tchesmeli, mis à jour par Jice

Installation sous Linux du modem ADSL Alcatel Speedtouch USB



Introduction:

Cet article décrit l'installation des drivers Opensource du modem ADSL Alcatel Speedtouch USB.

Dans un autre article ainsi qu'un témoignage présents sur Léa, on décrit comment installer et configurer ce même modem, mais la méthode est assez compliquée (il faut patcher le kernel, le recompiler, compiler plusieurs applications externes sont nécessaires, et configurer le tout est complexe) ; de plus le résultat est médiocre (plantage systématique lors d'un reboot), et surtout cette méthode est basée sur les drivers propriétaires livrés par Alcatel qui ne sont pas libres du tout, pas stables et peu souvent mis à jour.

Mais Benoît Papillault a eu la bonne d'idée d'écrire des drivers LIBRES, et qui sont de plus stables et très faciles à installer. Un grand merci à lui !

Si vous utilisez une Mandrake 8.1 ou 8.2, cet article ne vous concerne pas a priori. Cette distribution fournit en effet les drivers de B. Papillault et vous propose de les configurer soit lors de son installation soit après celle-ci. Dans ce dernier cas il vous suffit d'utiliser le Mandrake Control Center (DrakConf), d'aller à Réseau et Internet / Connexion, de clicker sur le bouton Configurer (en bas à droite) puis de suivre les instructions à l'écran ! La seule autre chose que vous ayez à faire est de copier ensuite le fichier mgmt.o dans le répertoire /usr/share/speedtouch (si vous ne savez pas comment récupérer ce fichier, consultez alors cet article).
Cependant un bug affecte la MDK 8.2 : l'installation des drivers ne fonctionne pas lors de l'installation de la distribution. Il faut juste s'assurer que les fichiers de config sont bons (voir ci-dessous), et si tel est le cas, tout baigne, même si le message lors du boot dit [FAILED] lors de l'établissement de la connexion.

Voici une méthode alternative pour une installation rapide sur une Mandrake 8.x.
 

Pré-requis et détection du modem:

Support USB

Si vous utilisez d'autres périphériques USB, vous pouvez passer ce paragraphe. Vérifiez juste que le modem est détecté.

Dans un premier temps, nous allons configurer notre système pour accepter le modem USB et le faire détecter.
Remarque : de nombreuses distributions installent aujourd'hui l'USB en standard (par exemple la Mandrake 8).

On suppose que vous avez un noyau récent (en fait à partir du 2.2.18), compilé avec le support USB correspondant au chipset de votre carte mère, gérant l'USB soit en natif, soit en module.

Si vous ne savez pas quel chipset vous avez, assurez vous juste que votre noyau est compilé avec ces options :

Support for USB (CONFIG_USB) [M]
Preliminary USB device filesystem (CONFIG_USB_DEVICEFS) [Y]
UHCI (Intel PIIX4, VIA, ...) support (CONFIG_USB_UHCI) [M]
UHCI Alternate Driver (JE) support (CONFIG_USB_UHCI_ALT) [M]
OHCI (Compaq, iMacs, OPTi, SiS, ALi, ...) support (CONFIG_USB_OHCI) [M]
La plupart du temps, si votre carte mère est récente, c'est le module usb-uhci qu'il faut charger (chipset Intel ou via, les plus répandus).
Dans le cas d'une carte USB additionnelle, ou sur un Apple (iMac, iBook...), il se peut que ça soit le module usb-ohci. Vérifiez de toute façon sur la notice de votre carte mère ou de votre carte additionnelle le type de port USB que vous avez ; dans le doute prenez tous les modules UHCI et OHCI.

Si le module correspondant à votre type de port USB n'est pas chargé (cela se vérifie avec la commande lsmod), chargez-le.

Vérifiez que votre modem est bien détecté. Pour cela faites un:

# mount -t usbdevfs none /proc/bus/usb
Si ça vous dit que le système de fichier est déjà monté, ça n'est pas grave.
Tapez alors :
# cat /proc/bus/usb/devices
Et vous devriez voir apparaître alors des messages du style :
...
S: Manufacturer=ALCATEL
S: Product=Speed Touch USB
S: SerialNumber=0090D013AAB8
C:* #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbdevfs
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl= 50ms
I: If#= 1 Alt= 0 #EPs= 0 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbdevfs
I: If#= 1 Alt= 1 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=usbdevfs
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=07(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
...
Ok notre modem est bien détecté.

En cas de problèmes, débranchez le modem (au niveau USB), puis rebranchez-le. Déjà, si les deux LEDs vertes s'allument, c'est qu'il est normalement détecté.
Par contre s'il ne s'allume pas du tout (aucune LED) ou s'il y a juste la LED rouge c'est qu'il y a un problème, vérifiez que le module USB est bien chargé, et que vous avez bien chargé celui correspondant à votre matériel (OHCI ou UHCI).

Support PPP

Il va vous falloir aussi le support PPP dans votre kernel. La plupart du temps la aussi, dans les distributions récentes, ce support est déjà présent. Sachez que si vous utilisez auparavant une connexion par modem RTC (modem traditionnel sur la ligne téléphonique) c'est que vous avez déjà le support PPP. Dans ce cas, vous pouvez passer ce paragraphe.

Pour vérifier quand même au cas où, tapez dans une console :

# pppd
Si vous voyez des caractères bizarres s'afficher (du style %:/lm....) c'est bon : vous avez le support ppp. Appuyer sur CTRL-C pour stopper pppd.

Par contre si vous avez un message du type :

pppd: This system lacks kernel support for PPP. This could be because the PPP kernel module could not be loaded, or because PPP was not included in the kernel configuration.
c'est que vous n'avez pas le support PPP dans votre kernel. Dans ce cas, compilez votre kernel avec ces options :
PPP (point-to-point protocol) support (CONFIG_PPP) [M]
PPP support for sync tty ports (CONFIG_PPP_SYNC_TTY) [M]
Dernière vérification à faire, vérifiez que votre kernel possède bien le support HDLC (là aussi c'est normalement le cas pour les distributions récentes) en essayant de charger le module :
# modprobe n_hdlc
Si le support n'est pas présent, recompilez votre kernel avec les options suivantes :
Character devices --->
[*] Non-standard serial port support
HDLC line discipline support
[*] Unix98 PTY support
Enfin, automatisons le chargement des modules, et définissons les alias des modules en ajoutant dans le fichier /etc/modules.conf :
alias char-major-108 ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-13 n_hdlc
alias tty-ldisc-14 ppp_synctty
Et tant qu'on y est, ajoutons aussi les lignes suivantes dans ce fichier (ce sont les protocoles de compression) :
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
Voilà, passons maintenant à l'installation des drivers.
 

Installation des drivers

Drivers

Il va falloir récupérer les drivers, pour cela allez sur : http://benoit.papillault.free.fr/speedtouch/user.php3

Récupérez la dernière version ! Puis détarrez / dézippez-la (tar zxvf speedtouch-VERSION.tar.gz), placez-vous dans le répertoire ainsi obtenu et compilez le tout :

$ ./configure
$ make
$ su
Password:
# make install
# exit
(En étant root pour pouvoir installer bien sûr).

Firmware

Il va nous falloir aussi un des fichiers des drivers officiels d'Alcatel (il s'agit en fait du FIRMWARE qui est le programme chargé dans le microprocesseur du modem lui-même), seule partie des drivers que Benoît n'a pas pu écrire, car ils sont le secret d'Alcaltel, et réécrire un firmware ne sert à rien.
Pour cela, allez sur cette page, et récupérez les drivers pour Linux.

Détarrez / dézippez-le (tar zxvf nom_du_truc.tar.gz), NE L'INSTALLEZ PAS, récupérez juste le fichier mgmt.o et copiez le dans /usr/local/share/speedtouch/ (ce répertoire a été créé par l'installation des drivers). Vous pouvez effacer le reste.

Remarque : si vous utilisez Windows, vous pouvez aussi copier le fichier alcaudsl.sys que l'on trouve dans c:\windows ou un sous-répertoire, vers /usr/local/share/speedtouch/mgmt.o

Bon maintenant configurons la connexion elle-même.
 

Configuration de la connexion

Pour cette partie, vous allez avoir besoin des paramètres de configuration de votre connexion que votre fournisseur d'accès vous a fournis. Allez dans le répertoire /etc/ppp/peers (créez-le s'il n'existe pas), et créez un fichier /etc/ppp/peers/adsl comprenant :
noauth
noipdefault
pty "/usr/local/bin/pppoa2 -vpi VPI -vci VCI"
sync
noaccomp
nopcomp
noccp
novj
holdoff 4
maxfail 25
persist
usepeerdns
user "votre login"
defaultroute
debug
kdebug 1
Avec comme valeurs :
- VPI : 8
- VCI : 35

ATTENTION : Ces valeur VPI / VCI sont valables pour la France, ils se sont sûrement pas bons si vous habitez un pays francophone ou étranger, DOM, TOM, etc... Pour trouver votre VPI / VCI, sous Windows, vous devez avoir une petite icone verte représentant votre modem USB à gauche de l'horloge, double cliquez dessus, puis cliquez sur la flèche verte intitulé MORE (ou plus d'info...), les paramètres de connections apparaissent alors. sur l'onglet "Connexion", notez les valeurs VPI et VCI. Mettez alors ces mêmes valeurs dans le fichiers /etc/ppp/peers/adsl décrit ci dessus.
Si vous n'utilisez pas Windows, les valeurs suivantes pourront peut-être vous aider :

Hollande : 8.48
France : 8.35 (ou 8.67)
Belgique : 8.35
Italie : 8.35
Grande Bretagne : 0.38
Pour la valeur de "votre login" mettez le user COMPLET sans oublier le @FAI souvent obligatoire.
Par exemple dans mon cas, une connexion Wanadoo (fti = France Telecom Interactive), mon login est de la forme :
user "fti/gf3yud@fti"

Note : pouréviter de commettre des erreurs, vous pouvez utiliser de préférence comme base le fichier adsl.ppp-peersample fournit avec le driver.

Créez maintenant un fichier /etc/ppp/chap-secrets (ou ajoutez dans celui existant) avec dedans :
# Secrets for authentication using CHAP
# client       server  secret          IP addresses
"votre_login"  "*"     "mot_de_passe"  "*"
ainsi qu'un fichier /etc/ppp/pap-secrets :
# Secrets for authentication using PAP
# client       server  secret          IP addresses
"votre_login"  "*"     "mot_de_passe"  "*"
Là aussi le login doit être complet.

Voilà tout est prêt pour tester !

Remarques :

Testez le tout !

Pour cette partie, allez chercher votre gri-gri favori, votre trèfle à 4 feuilles et, très important, déposez 3 gousses d'ail sur le moniteur de votre PC (si y'en a un qui le fait qu'il m'envoie une photo SVP ;).

Lancez alors les commandes suivantes :

# /usr/local/bin/modem_run -f /usr/local/share/speedtouch/mgmt.o -m
Attendez un petit moment, que la LED verte de droite ne clignote plus. S'il vous avez un message d'insulte et que la LED de droite passe a l'orange, retapez la commande (il arrive que le modem ne s'initialise pas bien la première fois). Si la LED de droite est verte et ne clignote plus, lancez alors cette commande :
# pppd call adsl
Si vous avez un message avec des adresses IPs, c'est bon : ça marche !!! (Note de Jice : chez moi il n'y a aucun message : pppd call adsl rend la main tout de suite, il établit la connexion en arrière plan, et cela fonctionne.) ;)
Essayez alors de surfer sur la vague du web !

Pour automatiser la connexion dès le démarrage, vous pouvez placer ces 2 commandes dans un script de démarrage, ou voyez ce que vous pouvez faire avec le script /usr/local/share/speedtouch/adsl.sh

Remarque : si vous avez des problèmes de résolution DNS, renommer le fichier /etc/resolv.conf en resolv.conf.backup par exemple, et tapez la commande:

# ln -s /etc/ppp/resolv.conf /etc/resolv.conf
Essayez de nouveau (mais normalement les DNS sont récupérés automatiquement à la connexion, c'est l'option usepeerdns vue plus haut).

Et voilà ! Bon surf à haut débit avec votre manchot favori !

Haut


Installation d'un modem Sagem F@st 800

Par Alexis ROBERT

L'installation d'un modem Sagem F@st 800 est longue et fastidieuse si on utilise les drivers officiels qui sont, de plus, horriblement difficiles à installer et qui de plus, posent de graves ennuis (déconnexions intempestives, mauvais débit).

On va donc utiliser une modification des drivers officiels. On doit sa création à Christian Casteyde, qui a d'ailleurs retransmis son développement à une autre équipe.

Vous devrez avoir installé les sources du kernel sinon rien ne compilera ni ne marchera.

Téléchargement du driver

Comme vous aurez l'habitude avec Linux, le driver modifié du Sagem F@st 800 est gratuit et sous license GPL. Il vous suffira d'aller sur http://fast800.tuxfamily.org/pub/article.php3?id_article=12.

Installation du driver

  1. Allumez votre bécane (pour ceux qui l'auraient oublié ;-)
  2. Placez-vous dans un terminal ou en console (vous savez le truc à fond noir et avec du texte blanc)
  3. Mettez-vous en root (l'administrateur), si vous ne l'êtes pas déjà, tapez su suivi de la touche Entrée
  4. Branchez votre modem ADSL (si vous l'avez pas fait avant, aucune importance)
  5. Tapez cette commande : lsmod suivie de Entrée vous devrez voir (avec beaucoup d'autres choses) usb-uhci .... et usbcore .... sinon veuillez vous reporter au chapitre 4 de ce document.
  6. Copiez le fichier récupéré dans le répertoire /usr/local/src
    cp eagle1.0.3.tar.gz /usr/local/src
  7. Allez dans ce répertoire pour le décompresser et désarchiver :
    cd /usr/local/src
    tar xfz eagle1.0.3.tar.gz
    cd eagle1.0.3
  8. Nous allons ensuite compiler et installer le driver :
    make clean
    make
    make install
  9. Après avoir tapé make install (commandes précédentes), il vous demandera d'entrer votre nom d'utilisateur et votre mot de passe ADSL.
  10. Quand c'est fini, rédémarrez votre ordinateur et laissez branché votre modem ADSL
  11. Reconnectez-vous en root dans un terminal ou une console puis tapez : startadsl ; sleep 10 ; ifconfig et vous devrez voir normalement :

    eth1 Lien encap:Ethernet HWaddr 00:60:4C:0D:1D:FB
    inet adr:192.168.60.30 Bcast:192.168.60.255 Masque:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:1558 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1398 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 lg file transmission:100
    RX bytes:412574 (402.9 Kb) TX bytes:229703 (224.3 Kb)

    ppp0 Lien encap:Protocole Point-à-Point
    inet adr:81.66.235.67 P-t-P:192.168.254.254 Masque:255.255.255.255
    UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
    RX packets:1398 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1221 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 lg file transmission:3
    RX bytes:380117 (371.2 Kb) TX bytes:196758 (192.1 Kb)

    Note : ifconfig est la commande qui donne des informations sur les interfaces réseau installées (carte ethernet, modems, etc.)
  12. Frappez maintenant ping free.fr -c 5 et normalement vous devrez avoir ça :

    PING www.free.fr (213.228.0.42) from x.x.x.x : 56(84) bytes of data.
    64 bytes from www1.free.fr (213.228.0.42): icmp_seq=1 ttl=253 time=59.1ms
    64 bytes from www1.free.fr (213.228.0.42): icmp_seq=2 ttl=253 time=59.1ms
    64 bytes from www1.free.fr (213.228.0.42): icmp_seq=3 ttl=253 time=59.1ms
    64 bytes from www1.free.fr (213.228.0.42): icmp_seq=4 ttl=253 time=59.1ms
    64 bytes from www1.free.fr (213.228.0.42): icmp_seq=5 ttl=253 time=59.1ms

    La connexion marche !!!

En cas de non ping

Si ça ne pingue pas, exécutez les commandes suivantes :

[root@localhost root]# stopadsl;sleep 1;startmire;sleep 5;stopadsl;startadsl;sleep 5;route
Table de routage IP du noyau

Si la ligne ci-dessus se bloque plusieurs secondes, faites [Ctrl]+C

[root@localhost root]# stopadsl;sleep 1;startmire;sleep 5;stopadsl;startadsl;sleep 5;route
Table de routage IP du noyau

[Ctrl]+C
[root@localhost root]# stopadsl;sleep 1;startmire;sleep 5;stopadsl;startadsl;sleep 5;route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.254.254 * 255.255.255.0 UH 0 0 0 ppp0
192.168.60.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.254.254 0.0.0.0 UG 0 0 0 ppp0

Si le texte ci-dessus est apparu sans délai, la connexion fonctionne probablement!

[root@localhost root]# ping www.free.fr -c 5
PING www.free.fr (213.228.0.42) from x.x.x.x : 56(84) bytes of data.
64 bytes from www1.free.fr (213.228.0.42): icmp_seq=1 ttl=253 time=59.1ms
64 bytes from www1.free.fr (213.228.0.42): icmp_seq=2 ttl=253 time=59.1ms
64 bytes from www1.free.fr (213.228.0.42): icmp_seq=3 ttl=253 time=59.1ms
64 bytes from www1.free.fr (213.228.0.42): icmp_seq=4 ttl=253 time=59.1ms
64 bytes from www1.free.fr (213.228.0.42): icmp_seq=5 ttl=253 time=59.1ms

Le ping indique que ça fonctionne !

Il se peut que vous ayez à réaliser cette procédure plusieurs fois pour que la connexion fonctionne.

lsmod n'affiche pas ce qu'il faut

Si lsmod n'affiche pas

usb-uhci 21676 0 (unused)
usbcore 58304 1 [usb-uhci]

parmi d'autres messages, réaliser ces opérations :

  1. Modifier /etc/modules pour y mettre :

    # module USB1
    usb-ohci
    # module USB2
    ehci-hcd

  2. Complétez le fichier /etc/fstab en ajoutant la ligne ci-dessous :

    usbdevfs /proc/bus/usb usbdevfs defaults 0 0

Dégroupage Free

Si vous êtes chez Free et que vous allez être dégroupés, vous devrez reconfigurer votre Sagem.
Seulement, comme vous vous en doutez, sur la page de configuration Sagem Dégroupé, ils ne parlent pas de Linux.
La solution était sur le forum d'Eagle-Usb. Je vous la met ici :

  1. Modifiez le fichier /etc/analog/adiusbadsl.conf :

    Remplacez VCI=00000023 par VCI=00000024
    Remplacez Encapsulation=00000006 par Encapsulation=00000004

  2. Lancer un client DHCP sur l'interface ethernet virtuelle (celle du modem).

    La commande peut-être :
    pump $(adictrl -i)
    ou bien alors :
    dhcpcd $(adictrl -i)

Pour la mandrake 9 faites ceci en root (dans une console) pour installer dhcpcd :

urpmi dhcpd


Vous n'aurez plus besoin de startadsl et stopadsl. Votre commande de connexion sera donc soit pump $(adictrl -i) , dhcpcd $(adictrl -i) . Cela dépend de votre distribution.

Mandrake 9.1

Si vous avez une Mandrake 9.1, l'installation peut-être faite par un assistant. Faites le si vous êtes débutants (sinon, vous trouverez des drivers plus récents) où si vous n'êtes pas chez Free (à cause du dégroupage).
Allez simplement dans le Panneau de Configuration Mandrake, choisissez Réseaux & Internet, puis l'outil de configuration réseau. Cliquez sur Suivant, dans la liste ne laissez coché que Connexion via ADSL. Suivez ensuite l'assistant.

Remerciements

Je voudrais surtout remercier Olivier Borowski qui a fait un article pour l'installation du Sagem sur une Mandrake (je me suis grandement appuyé dessus d'ailleurs), le site Eagle-Usb et surtout Christian Casteyde qui a eu le courage de modifier les drivers (je ne suis pas programmeur C mais je pense que ça doit être assez difficile). Je voudrais aussi remercier Nemo, Sleeper et Louis CARNAPETTE qui ont participé au sujet du Dégroupage Free sur le forum de Eagle-Usb.

Haut


Le modem BEWAN ADSL PCIst

par neosadik

Cette page est consacrée uniquement à la configuration de ce modem sous Debian. Si vous possédez une autre distribution je vous conseille de vous rendre à cette adresse ou celle-ci dont je remercie d'ailleurs le webmaster puisque c'est grâce à ses indications que j'ai pu faire cette doc et installer mon modem :)


Une version plus récente de cette article.

Avertissement

Ce document est en cours de conception. Toutes vos remarques sont les bienvenues.

Copyright

Ce document est distribué sous les contraintes de la FDL (Free Document Licence).

Introduction

Chers utilisateurs de Debian, tout d'abord bravo pour l'acquisition de ce modem, il est très stable et très performant. Or il faut savoir que le ppp de debian ne supporte pas le pppoatm et c'est malheuresement ce qu'utilise notre modem...Heureusement, notre distribution supporte les plugins et c'est grâce à celui-ci que l'on va faire marcher ce modem. Nous installerons le kernel à la main et non par package.

Notre installation va donc se dérouler en 3 étapes: La compilation du noyau, la compilation des modules de la carte et l'installation du plugin.

Le kernel

Afin que votre modem soit reconnu par votre machine vous devez ajouter quelques modules dans votre kernel.

Vous allez donc vous logger en tant que root (par la commande "su")

Ensuite taper la commande "cd /usr/src/linux" (qui est le répertoire des sources de votre noyau, commande à modifier si la configuration de votre noyau se trouve autre part). Puis tapez "make menuconfig". Vous êtes maintenant dans la configuration de votre kernel...
Entrez d'abord dans le menu "Code maturity level options" puis activez "Prompt for development and/or incomplete code/drivers" grâce à la touche espace.

Entrez ensuite dans le menu "Networking Options" puis cherchez la ligne "Asynchronous Transfer Mode (ATM) (EXPERIMENTAL)" et activez la (espace). Retournez ensuite au menu principal et choisissez le menu "Network device support" et activez les modules suivants :
PPP (point-to-point protocol) support
PPP support for async serial ports
PPP support for sync tty ports
PPP Deflate compression
PPP BSD-Compress compression
PPP over ATM (EXPERIMENTAL)
Ensuite revenez au menu principal, faites Exit et sauvegardez la configuration du kernel. Après vous devez recompiler votre kernel, ce qui se fait en 6 commandes successives :
make dep
make clean
make bzImage
make modules
make modules_install
make install
Si tout s'est correctement déroulé (aucun erreur), redémarrez l'ordinateur par la commande "reboot"

Bravo, vous avez franchi la première étape !

Driver périphérique ATM

Un certain nombre de drivers de périphériques ATM commencent à être intégrés aux noyaux linux. Dans le cas de la carte BeWAN ADSL PCI ST, trop récente, le driver est fourni par le constructeur sous forme de fichiers sources.

Vous allez donc dans un premier temps téléchargez ce fichier source : unicorn-0.2.0.tar.gz

Ensuite il va falloir le dézipper par la commande :
tar xzvf unicorn-0.2.0.tar.gz

Cela va vous créer 2 répertoires "unicorn_atm" et "unicorn_bus". Allez dans chacun des dossiers et tapez "make install"

Le plugin pppd

Voilà votre modem "fonctionne" or il faut maintenant le configurer afin qu'il se connecte à votre provider l'ADSL.
Tout d'abord vous allez télécharger une version de pppd modifié, avec le plugin ATM : ppp_2.4.0-3_i386.deb (bouton droit et enregister sous...)

Ensuite installez le par la commande :
dpkg -i ppp_2.4.0-3_i386.deb (commande root)

Voilà votre plugin est installé il ne vous manque plus qu'à le configurer.Pour cela il ne vous reste plus qu'à configurer PPPD en adaptant les fichiers :

[ /etc/ppp/pap-secrets ]

# Secrets for authentication using PAP
# client server secret IP addresses
"fti/gya8c84@fti" * "e3ga4az"

[ /etc/ppp/chap-secrets ]

# Secrets for authentication using CHAP
# client server secret IP addresses
fti/gya8c84@fti" * "e3ga4az"

[ /etc/ppp/options ]

lock
ipparam ppp0
noipdefault
noauth
default-asyncmap
defaultroute
hide-password
noaccomp
noccp
nobsdcomp
nodeflate
nopcomp
novj novjccomp
lcp-echo-interval 20
lcp-echo-failure 3
sync
maxfail 0
persist
plugin /usr/lib/pppd/plugins/pppoatm.so 8.35
à vos besoins (n'hésitez pas à supprimer les autres informations car elles sont complètement inutiles). Dans ce dernier fichier, vous devrez adapter le paramètre [8.35 == VPI.VCI] qui en France, prend la valeur 8.35 pour les offres à base de Netissimo. L'identifiant de connexion "fti/gya8c84@fti" et son mot de passe, présent dans ces fichiers exemples sont fantaisistes et devront être remplacés.

Ensuite redemmarrez une dernière fois l'ordinateur. Voila tout est configuré il ne vous reste plus qu'à vous connecter par la commande suivante :
pppd user fti/gya8c84@fti

Remarques

Pour couper la connexion il suffit de tuer PPPD par la commande "killall pppd". Le fonctionnement est donc d'une simplicité étonnante.

La reconnection est automatique apres les 24h.

Faites un tour dans dselect afin de holder ce ppp sinon il sera effacé au prochain upgrade :( Je suis sous le noyau 2.4.18 et je ne certifie en aucun cas qu'il marche sous les noyaux 2.2.x présents sur les cds Debian. Verifier si de nouvelles version du pppd debian existent sur ce lien

Haut


Modem ECI-ADSL USB

(c) 2002 Boris Lesner (talanthyr chez tuxfamily org)

Le modem ECI-ADSL USB fonctionne aussi sous Linux !

Le driver dont nous allons parler ici supporte en fait les modems basés sur le chipset Globespan (voir la liste des modems supportés).

Vous trouverez sur Léa un script pour faciler la configuration de ce modem, mais la lecture de cet article reste la seule solution de régler tous les problèmes que vous risquez de rencontrez.

1. Le Kernel

Cette partie peut être sauté si vous utilisez une distribution récente car dans ce cas, tous les modules nécessaires sont déjà compilé et installé, passez directement .

Il est nécessaire de compiler un certain nombre de modules.

Par commodité je ne m'étendrais pas sur la compilation du kernel et des modules car il existe de tres bons guides la dessus et chacun a une technique plus ou moins particulière et différente selons les distributions. Personnellement le compile "a la main" sous Debian et je n'ai aucune idée de la technique a utiliser sous Mandrake par exemple ...

1.1.Le support de PPP

Dans la section Network device support activez les modules :

1.2. Le support de l'USB

Dans la section USB support activez les modules : Nota bene : un seul sera utile mais dans un souci de compatibilité avec les différentes matériels existant je préfère activer tous les modules.

Cochez aussi : Preliminary USB device filesystem (non disponible en module).

1.3. Le support du port

Dans le section Character devices cochez :

Compilez ensuite votre kernel et les modules comme vous en avez l'habitude, rebootez et voila :)

2. Le driver

2.1. Téléchargez le driver

Téléchargez le driver sur http://eciadsl.flashtux.org/, page téléchargement.

2.2. Décompressez les sources

Décompressez les sources du driver et compilez le :
tar xvzf eciadsl-usermode_XXX.tgz
cd eciadsl-usermode_XXX
make
make install

2.3. Ajoutez vos login et pass

Ajoutez vos login et pass de votre fournisseur d'accès :
echo "* user * pass" >> /etc/ppp/chap-secrets
echo "* user * pass" >> /etc/ppp/pap-secrets
Remplacez user et pass par les identifiants de connection fournis par votre FAI (par exemple : fti/t3zabdwcy@fti * aemp3sti pour wanadoo)

Ici aussi dans un souci de compatibilité avec les différents FAI j'indique les identifiants de connection pour les méthodes pap et chap (si vous ne savez pas quelle methode utilise votre FAI mettez les deux pour plus de tranquilité)

Nota Bene : Pour cette opération il est aussi possible d'utiliser l'utilitaire eciconf.sh fourni avec le driver.

3. Lancer sa connection

En tant que root lancez la commande :
startmodem
Normalement vous devriez voir "Connect Modem OK"

Si ca n'est pas le cas lisez ce qui suit :

4. Ca ne marche pas :

(Pas de panique tout n'est pas perdu :)

4.1. La connection se bloque au bloc 259

C'est un cas fréquent dans certaines régions : la manoeuvre est simple, il faut remplacer eci_wan3.bin par un autre .bin (par exemple eci_wan3.dmt.bin) :
cd /etc/eciadsl
mv eci_wan3.dmt.bin eci_wan3.bin
startmodem
Normalement tout devrait rentrer dans l'ordre.
Plus d'infos sur ce problème dans ce truc et astuce.

4.2. Innapropriate IOCTL for device

Startmodem se déroule correctement mais j'ai des messages d'erreur : "Innapropriate IOCTL for device"

En général ca n'arrive pas la première fois : la solution est simple :

cd /???/eciadsl-usermode_XXX/
make install
Repétez l'étape 4.1 si néceassaire.

4.3. Unable to identificate ourselves to peer

Startmodem se déroule correctement mais il me dit : "Unable to identificate ourselves to peer"

La non plus pas de panique il arrive parfois que le FAI ne suive pas
Tapez tout simplement:
pppd call adsl updetach

5. Astuces

5.1. Reconnection automatique :

En root tapez :
echo "persist" >> /etc/ppp/peers/adsl
Relancez la connection en stoppant pppd et en le relancant en suivant la méthode 4.3.

6. Licence

Ce guide est totalement libre et redistribuable selon les terme de la FDL consulter www.gnu.org pour tous les détails

Pour toutes questions, idées, astuces, conseils et même critiques mailez moi.

Haut


Comment installer un modem cable en USB

par Mathieu

Afin d'éviter de chercher des heures vainement sur internet...


Intro

Pourquoi ?

Cette petite doc a pour but de vous aiguiller dans la mise en place d'un modem USB pour le câble, et dans le meilleur des cas de vous permettre de le faire vraiment fonctionner !

Pour qui ?

Cette doc s'adresse notamment aux personnes abonnées chez Noos qui ont le modem Motorola SB4100. En effet, celui-ci fonctionne ou en Ethernet, ce qui n'est pas difficile à mettre en place, ou en USB, ce qui est un peu moins évident.

Prérequis

Je supposerai que vous avez un noyau suffisamment récent, et le paquet contenant dhcp installé sur votre machine, quelle que soit votre distribution.
D'autre part, je pars du principe que vous avez un minimum de patience et d'habitude de mettre les mains dans le cambouis, même si la manipulation n'est pas forcément très compliquée.

Le module CDCEther.o

Ce module est la clé de l'installation du modem en USB. Assurez vous que vous l'avez, le cas échéant recompilez les modules du noyau en cochant 'm' dans la case correspondante à ce module.

Vous la trouverez dans le menu de configuration du noyau :
USB Support -> USB Communication Class Ethernet device support (en bas de la liste)

Oui, je sais, il s'agit d'un module expérimental, mais il fonctionne déjà très bien pour le Motorola tout du moins, et je n'ai jamais eu aucune coupure de connexion ou quoi que ce soit d'autre de désagréable à déplorer.

Vous devez donc charger ce module au moyen de la commande suivante (en root) :
modprobe CDCEther

Connecter au réseau

Avant toute chose, il est nécessaire de stopper le service réseau. Pour ce faire, taper la commande suivante :
/etc/init.d/networking stop

Configurer l'interface

Maintenant il faut configurer les interfaces réseau. Il faut savoir que le module CDCEther crée une interface supplémentaire. Si vous aviez déjà une carte réseau en eth0, CDCEther créera eth1, si vous n'en aviez pas eth0, etc. Cette interface fonctionne par la suite exactement comme s'il s'agissait d'une carte réseau classique ISA ou PCI.

Selon votre configuration choisissez le chiffre derrière eth qui correspond.

Pour configurer votre interface, vous devez éditer (en root) le fichier /etc/network/interfaces
Vous devez y trouver au moins l'interface lo (loopback) définie, et eth0 si vous avez déjà une carte réseau.

Ajoutez en fin de fichier les lignes suivantes :
auto ethX
iface ethX inet dhcp

(Où 'X' est le chiffre correspondant à l'interface ajoutée par CDCEther).

Si vous utilisiez auparavant votre carte réseau avec le modem, la recherche d'IP par DHCP sur cette interface sera à coup sûr infructueuse puisque la carte ne sera plus reliée ! Pour éviter d'attendre pour rien, remplacez 'dhcp' par 'static' et configurez éventuellement votre interface pour un réseau local en écrivant ceci :
iface eth0 inet static
address 192.168.0.36
network 192.168.0.0
netmask 255.255.255.0

Redémarrer le service

Il ne reste plus qu'à tester. Reliez donc votre modem sur une prise USB (et éventuellement débranchez le de la carte réseau par superstition :). Pour le Motorola et pour le réseau Noos, il est INDISPENSABLE de débrancher l'alimentation du modem et de la rebrancher. Me demandez pas pourquoi, la seule chose que je sais c'est que le modem possède 1 adresse MAC pour l'USB. Lorsque le modem est relié à la carte réseau, il utilise l'adresse MAC de la carte réseau, mais quand il est branché par la prise USB il utilise la sienne (et pas la sienne dans les 2 cas). Ce débranchement est aussi valable si vous changez de carte réseau.

Relancez le service réseau en tapant la commande suivante (en root) :
/etc/init.d/networking start

Normalement si tout va bien vous devez obtenir quelque chose du genre :

Setting up IP spoofing protection: rp_filter.
Configuring network interfaces... Internet Software Consortium DHCP Client 2.0pl5
Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
All rights reserved.

Please contribute if you find this software useful.
For info, please visit http://www.isc.org/dhcp-contrib.html

Listening on LPF/ethX/xx:xx:xx:xx:xx:xx
Sending on LPF/ethX/xx:xx:xx:xx:xx:xx
Sending on Socket/fallback/fallback-net
DHCPREQUEST on ethX to 255.255.255.255 port 67
DHCPACK from xxx.xxx.xxx.xxx
bound to xxx.xxx.xxx.xxx -- renewal in 6381 seconds.
done.

Il ne reste plus qu'à lancer un navigateur et à tester !

Automatiser le chargement du module

Si par chance vous avez réussi à faire fonctionner le modem en USB, afin que le module se charge tout seul au démarrage il suffit d'éditer le fichier suivant (en root) : /etc/modules.conf.
Ajoutez la ligne suivante : alias ethX CDCEther (Où 'X' est le chiffre correspondant à l'interface ajoutée par CDCEther)

Au secours, j'ai des problèmes

Je n'ai installé ce modem que sur une Debian, et je ne connais pas par coeur les différences avec les autres distributions. Il est plus que probable que certains fichiers, ne soient pas exactement à l'endroit que j'ai spécifié dans la doc, ou que la commande pour relancer le réseau ne soit pas exactement la même, etc.

Je n'ai par exemple pas utilisé linuxconf pour configurer le modem alors que ca devrait être techniquement possible.

Cette doc n'a pas pour prétention d'être générique, et peut être modifiée avec les remarques que vous pourrez me faire. Donc n'hésitez pas, mailez moi

Remarques

J'ai reçu quelques mails d'utilisateurs d'autres distributions notamment Red Hat. Il semblerait pour cette distribution que lorsque le package dhcp est installé, il suffirait d'un : dhcpcd ethX
La méthode d'automatisation du chargement du module reste la même.

Haut


Carte radio sous linux

BRARD Emmanuel

Installer une carte radio

Introduction

Les cartes radio sont maintenant chose courante, il est donc normal que linux les supporte ;)
Ne possédant qu'une carte radio Guillemot FM, je ne pourrai donner les options du module que pour celle-ci.
L'installation devrait marcher pour toutes les distributions, mais surtout pour tous les kernels depuis le 2.0.36.

Pré-requis

Il vous faudra le module "radio-gemtek", qui se trouve dans le répertoire /lib/module/x.x.x/misc pour un kernel 2.2.x et dans /lib/modules/2.4.5-5mdk/kernel/drivers/media/radio/ pour un 2.4.
Celui-ci est compressé en gzip, il ne faut surtout pas le décompresser.

Mise au Point

Ces cartes radio sont basées sur un tuner simple et un convertisseur Gemtek.
D'où le nom du module :)
Son adresse (sur bus ISA) est pour toutes les cartes la même (gemtek seulement) : io=0x34C, à moins d'avoir des jumpers qui peuvent la changer (pas sur les Guillemot FM xx et 2000).

Installation

Connectez vous en root (su), puis tout simplement, tapez :
modprobe radio-gemtek io=0x34C
Remarques :
- modprobe ou insmod
- remplacez radio-gemtek par le nom du module de votre carte :

Créer un lien /dev/radio vers /dev/radio0 :
# ln -s /dev/radio0 /dev/radio

Voila, votre carte est installée.

Vous pouvez placer cette commande dans /etc/rc.d/rc.local, ou plus simplement ajouter le nom du module et son option dans /etc/modules.conf

Toujours pas de son ? Normal, il nous faut une application capable de commander la carte.

Allez faire un tour sur Frehmeat.net, et cherchez radiotrack-2.0, et/ou gtuner.
Le premier est en console, le second graphique (GTK+) .

On va créer le fichier /etc/radio.conf pour le premier : (créez ce fichier en y mettant des stations personnalisées bien sûr)

station Funradio 93.40
station NRJ 100.4
stattion forum 89.70

# et toutes les stations que vous voulez

port 0x34c # mettez l'option du module sous cette forme

Voilà, maintenant avec cette commande "radio" vous pouvez sélectionner la fréquence à écouter :
[emman@localhost emman]$ radio on
[emman@localhost emman]$ radio Funradio
[emman@localhost emman]$ radio 93.4

Gtuner est en Gtk+ et super facile à utiliser, toutefois il vous faudra Gnome et les headers du panel.

(c) 2001 BRARD Emmanuel, emman chez agat.net
Ce document est sous license GNU FDL.

Haut


Tablette Wacom Graphire USB

par Raymond Ostertag, le 17 décembre 2001

Pour devenir le roi du dessin sous Gimp ;)

Préambule

Ce document décrit l'installation d'une tablette WACOM Graphire USB sur une distribution Linux Mandrake 8.10.

Pour faire fonctionner cette tablette, il faut mettre en place un module pour le noyau et un module pour le serveur graphique XFree.

La différence avec les documents déjà existants se situe au niveau des compilations des modules du noyau et de XFree qui ne sont volontairement pas décrites ici dans le souci de simplifier cette installation.

Vous allez avoir besoin de télécharger et récupérer des informations sur le web. Allez sur le site de Frédéric Lepied et téléchargez le module wacom_drv.o.gz compilé pour XFree 4.1 qui, à ce jour, est en version alpha 25. Travaillez en tant que root sauf pour la partie configuration de Gimp que vous ferez comme utilisateur lambda.

USB

En principe Linux Mandrake a détecté et configuré votre USB. Vous devriez pouvoir le vérifier avec le petit programme usbview (fourni avec les cédéroms). Si ça ne fonctionne pas, vérifiez que l'USB est bien activé dans le BIOS.

Modules du noyau

Commencez par lister les modules installés, dans une console tapez lsmod. Comparez la liste obtenue avec celle-ci : et pour chaque module manquant tapez modprobe nom_du_module. Vérifiez votre travail avec lsmod.

Configuration de XFree

D'abord décompressez le module téléchargé par gzip -d wacom_drv.o.gz puis copiez le résultat dans /usr/X11R6/lib/modules/input/. Pour configurer efficacement XFree il faut mieux commencer par repérer son fichier de log. Allez dans /var/log et éditez un fichier du style XFree86.log. Si vous en avez plusieurs, éditez le plus récent celui qui correspond à votre session en cours. Dans ce fichier vous trouverez le nom du fichier de conguration courant, en principe Using config file: "/etc/X11/XF86Config-4". Notez aussi toute erreur (EE) pour ne pas mélanger par la suite les problèmes liés à la tablette aux autres problèmes. Faites une copie de sauvegarde du fichier de configuration puis éditez l'original.

Ajoutez les sections suivantes à votre fichier de configuration :
--------------------------------------------
...
Section "Module"
   ...
   Load "wacom"
   ...
EndSection
...
--------------------------------------------
...
#
# Input devices
#

# Tablette Graphire USB

Section "InputDevice"
   Identifier "stylus"
   Driver "wacom"
   Option "Device" "/dev/input/event0"
   Option "Mode" "Absolute"
   Option "Type" "stylus"
   Option "USB" "on"
   Option "AlwaysCore" "on"
EndSection

Section "InputDevice"
   Identifier "eraser"
   Driver "wacom"
   Option "Device" "/dev/input/event0"
   Option "Mode" "Absolute"
   Option "Type" "eraser"
   Option "USB" "on"
   Option "AlwaysCore" "on"
EndSection

Section "InputDevice"
   Identifier "cursor"
   Driver "wacom"
   Option "Device" "/dev/input/event0"
   Option "Mode" "Absolute"
   Option "Type" "cursor"
   Option "USB" "on"
   Option "AlwaysCore" "on"
EndSection
...
--------------------------------------------
...
Section "ServerLayout"
...
# ajouté pour la tablette graphire USB

   InputDevice "stylus" ""
   InputDevice "eraser" ""
   InputDevice "cursor" "Alwayscore"

EndSection
--------------------------------------------
Redémarrez le serveur graphique (déloggez vous et faites Menu >Redémarrer le serveur X ALT-X) puis éditez le fichier de log. S'il y a des erreurs c'est le moment de faire fonctionner votre cervelle et de trouver pourquoi ;-)

Nota :
Le module wacom_drv.o contient trois pilotes : stylus (stylo), eraser (gomme) et cursor (souris). Avec cette configuration vous pouvez utiliser les trois. L'option alwayscore dans la section ServerLayout est importante car : avec alwayscore vous pouvez utiliser votre outil en permanence et avec un champ vide "" vous ne pourrez l'utiliser qu'avec des applications comme Gimp. C'est votre choix de mettre alwayscore ou non. La configuration de XFree peut être affinée par la suite. Reportez-vous à l'excellent Wacom Tablet HOWTO (en anglais) pour en connaître plus sur les différentes options.

Configuration de Gimp

Maintenant que votre tablette est fonctionnelle, lancez Gimp et appellez le dialogue Périphériques d'entrée... dans Ficher >Dialogues. Vous devriez voir un menu déroulant avec les champs cursor, stylus et eraser et un autre menu déroulant avec désactiver, fenêtre et écran. Le mode écran correspond à un outil géré par XFree et utilisable sur tout l'écran. Le mode fenêtre correspond à un outil géré par Gimp et utilisable seulement dans les fenêtres Gimp. Malheureusement le mode fenêtre plante lamentablement Gimp chez moi donc utilisez le mode écran. Une autre fenêtre Etat des périphériques... vous permet de contrôler ce que vous faites outil par outil.

Nota :
j'ai eu un bug après être passé de désactiver à écran et ma souris ne pouvait plus être active dans Gimp. Après reboot le comportement est redevenu normal.

Références

Wacom XInput driver for XFree86 par Frédéric Lepied
http://people.mandrakesoft.com/~flepied/projects/wacom/
Les derniers modules et un forum pour poser toutes les questions que vous souhaitez.

Wacom Tablet HOWTO par Stefan Runkel
http://www.linuxdoc.org/HOWTO/Wacom-Tablet-HOWTO.html
En anglais : tout sur la configuration des tablettes en général.

Wacom Graphire USB Mini-HOWTO par Arnaud Claden
http://www.linuxdoc.org/HOWTO/mini/Wacom-USB-mini-HOWTO.html
En anglais : complément du précédent pour les tablettes USB.

Configurer sa tablette graphire de Wacom en version USB sous XFree 4.0.x par Vincent Le Prince
http://www.linuxgraphic.org/configurer/articles/graphireusb/index.html
La même chose que ce document mais avec les étapes de compilation en plus. Notez les différences de nommage des modules et pilotes entre la version compilée et les sources.

Configuring Wacom USB tablets under Linux par Laurent Hofer alias Ayoros
http://gug.sunsite.dk/tutorials/ayoros1/
En anglais : la même chose que ce document mais avec les étapes de compilation en plus.

Haut


Tablette graphique Acecat Flair

par Serge Carrère , le 3 Octobre 2002

Comment utiliser sa tablette Acecad sous Linux


Tout d'abord

Je précise que les indications données fonctionnent sur des distributions Mandrake 9.0 et précédentes depuis la version 7.0 et je pense qu'elles doivent donner des résultats identiques sur les autres distributions.

Cette tablette graphique se branche à votre ordinateur sur une prise série (/dev/ttySx ou COM sous DOS/Windows) ET sur la prise PS/2 de la souris (il faut ensuite installer la souris sur la tablette).
nb : même non déclarée dans Linux, la tablette n'empêche pas l'utilisation de la souris.

Une fois branchée, déclarons-la à l'ordinateur, pour cela il faut modifier le fichier : /etc/X11/XF86Config ou /etc/X11/XF86Config -4

Les distributions récentes de XFree86 ont incorporé le driver "acecad" dans leur modules.
On trouvera dans : /usr/X11R6/lib/modules le module "xf86AceCad.so "
ainsi que le driver "acecad_drv.o" dans : /usr/X11R6/lib/modules/input/

Configuration du serveur X

Pour un serveur XFree 3.x

dans le fichier "/etc/X11/XF86Config", il faut ajouter dans la section :

# ******************
# Pointer section
# ******************
Section "Module"
   xxxxxxx
   Load "xf86AceCad.so"
   xxxxxxxxxxxx
EndSection

pour que le module "acecad" soit chargé.

Ensuite en toute fin du fichier aprés la section "Screen Section" il faut créer une section "XInput" comme ceci :

# ******************
# XInput Section
# ******************
Section "XInput"
  Subsection "AceCad"
    Port "/dev/ttyS1" # (ici mettre le bon n° du port série utilisé par la tablette)
    DeviceName "acecad"
    Mode Absolute
    Cursor Stylus
    Alwayscore
  EndSubSection
EndSection

Pour un serveur XFree 4.x

la section "XInput" devient obsolète... dans le fichier "/etc/X11/XF86Config-4", il rajouter dans la section "Input devices" les lignes suivantes :

# ******************
# Input devices
# ******************
# Tablette Acecat Flair
Section "InputDevice"
  Identifier "stylus"
  Driver "acecad"
  Option "Device" "/dev/ttyS1" #(ici mettre le bon port série utilisé par votre tablette Acecad)
  Option "Mode" "Absolute"
  Option "Type" "stylus"
  Option "Type" "cursor"
  Option "Alwayscore" "on"
EndSection

Dans la -Section "Module" de "Pointer Section" rajouter les lignes suivantes :

# This load the tablet module (ici vous mettez ce que vous voulez)
  Load "acecad"

Et pour utiliser la tablette tout le temps, comme une souris, rajouter en fin de fichier dans la section "ServerLayout"

Section "ServerLayout"
  Identifier "layout1"
  Screen "screen1"
  InputDevice "Mouse1" "CorePointer"
  InputDevice "stylus" "Alwayscore"
  InputDevice "Keyboard1" "CoreKeyboard"
EndSection

Voilà, je me suis inspiré pour la fin du fichier XF86Config-4 de l'article de Raymond Ostertag sur la tablette Wacom Graphire .

Une fois le serveur X redémarré, la tablette fonctionnera, sans la "subtilité" des pressions du stylet, mais le bouton sur le manche du stylet fonctionne bien comme le "clic-droit" de la souris.

Dans Gimp, la tablette sera reconnue dans la section :
Fichier -> Dialogues -> Périphériques d'entrée.
Dans la fenêtre "Périphérique" elle apparaitra sous le nom donné dans le fichier "XF86Config" (dans mes exemples, soit "acecad" soit "stylus").
Les modes "écran" et fenêtre" marchent tous les deux. La seule "différence" est que dans le mode "fenêtre" le pointeur est décalé par rapport à la pointe du stylet. Dans le mode "écran", le pointeur est réellement à la pointe du stylet.

Bon amusement, Serge Carrère.

Haut


Souris Logitech Cordless MouseMan Optical et Cordless Keyboard

Pierrick Berger

Comment configurer une souris à quatre boutons et une roulette : la Logitech Cordless MouseMan Optical ainsi que le clavier sans fil, et sans leds !



Ayant eu pour Noël un pack Logitech clavier et souris optique sans fil (vous savez l'ensemble noir...), j'ai voulu utiliser le quatrième bouton de la souris, le bouton qui se situe vers le pouce. Mais il ne marchait pas !

Je vous propose donc une solution pour faire fonctionner ce quatrième bouton !!

Pour le clavier, il n'y a rien de particulier à configurer. Il est reconnu dès l'installation.
Malheureusement, chez Logitech on a pensé que les leds étaient superflues !!! Lourde erreur !
Je vous donnerai de quoi voir si CAPS-LOCK est activé ou pas, pareil pour NUM-LOCK et ARRET-DEFIL.
 

Pré-Requis

Ce dont vous avez besoin :

Configuration de la Souris

Voilà, ayant une Mandrake 8.1, et ayant opté pour XFree 4.1.0 pour ma Geforce2 MX, je n'ai pu tester qu'avec XFree 4.1.0.
Ce qui veut dire que la partie Configuration pour XFree 3.x est une extrapolation de mes connaissances. Elle demande donc à être testée.

Configuration pour XFree 4.x

Pour XFree 4.x (méthode testée et fonctionnelle), voilà ce qu'il faut faire :
Editer le /etc/X11/XF86Config-4 zt modifier la section "InputDevice" pour avoir quelque chose du style :
 
Section "InputDevice"
    Identifier  "Mouse1"
    Driver      "mouse"
    Option "Protocol"    "MouseManPlusPS/2"
    Option "Device"      "/dev/mouse"
    Option "Buttons" "6"
    Option  "ZAxisMapping" "5 6"
# ChordMiddle is an option for some 3-button Logitech mice
#    Option "ChordMiddle"
EndSection

Malheureusement, cette manipulation crée une inversion de boutons ; alors pour retrouver nos 4 boutons et notre roulette au bon endroit, on va créer le fichier suivant :
/etc/X11/xinit.d/mouse-correct ayant pour contenu ceci :
 

#!/bin/sh

# Logitech MouseMan+ has 4 buttons and a wheel.  The following example makes
# the wheel movement available as the button 5 and 6.
#
#       Section "InputDevice"
#          Identifier     "MouseMan+"
#          Driver         "mouse"
#          Option         "Protocol"     "MouseManPlusPS/2"
#          Option         "Device"       "/dev/psaux"
#          Option         "Buttons" "6"
#          Option         "ZAxisMapping" "5 6"
#       EndSection
#
# You can change button number assignment using the xmodmap command AFTER you
# start the X server with the above configuration.  You may not like to use
# the wheel as the button 2 and rather want the side button (button 4) act like
# the button 2.  You may also want to map the wheel movement to the button 4 and
# This can be done by the following command:
#
#      xmodmap -e "pointer = 1 6 3 2 4 5"
#
# Donc en gros, la souris Cordless MouseMan+ Optical à 4 boutons et une roulette
# que l'on aura configurée comme indiqué dans la Section "InputDevice".
# Mais le problème est que les boutons n'agissent pas comme on le pensait !!
# La roulette joue le rôle du bouton 2, le bouton du coté gauche (bouton 4) joue
# le rôle du bouton 2 ! Ben, comme on ne veut pas çà, on fait :

xmodmap -e "pointer = 1 6 3 2 4 5"

Vous remarquerez le passage en anglais ! Ce texte est directement tiré de la doc de XFree 4.
Il faut aussi donner les droits d'exécution à ce fichier, sinon, il ne va rien se passer !!!
Pour celà, faire :
chmod +x /etc/X11/xinit.d/mouse-correct
Et voilà, c'est fini pour la souris !! Il ne reste plus qu'a redémarrer le serveur X, et à s'amuser avec son nouveau bouton.
Ce bouton prendra l'ancienne fonction du "coller" qu'avait le bouton de la roulette.

Questions :

Configuration pour XFree 3.x

Pour XFree 3.x, je ne peux rien affirmer, mais je pense que l'on peut faire les mêmes modif., en changant juste la syntaxe des modifs pour XF86Config.
Fichier à éditer : /etc/X11/XF86Config
 
Section "Pointer"
    Protocol    "MouseManPlusPS/2"
    Device      "/dev/psaux"
    ZAxisMapping 5 6
    Buttons   6
# ChordMiddle is an option for some 3-button Logitech mice
#    ChordMiddle
EndSection

Il faudra aussi créer le fichier /etc/X11/xinit.d/mouse-correct (voir ci-dessus).
Voilà, reste plus qu'a redémarrer le serveur X...

Merci de me faire parvenir vos remarques sur cette partie !
 

Configuration du clavier

Ben, pour la configuration du clavier, rien à faire si ce n'est de le brancher !
En fait il est reconnu dès l'installation, comme tout clavier.
Seul hic, comme il n'y a pas de led sur le clavier, on ne sait pas si CAPS-LOCK est activé, ce qui est très embêtant pour les mots de passe par exemple !
Alors, grâce à Antoine Jacoutot qui m'a envoyé un rpm du nom de "keyboard-led_applet-0.9-1.i386.rpm", j'ai pu avoir des icônes quasiment identiques à ceux sous windows avec les pilotes de Logitech, mais sous Gnome, car c'est une applet du panel de Gnome !

Récupération du packetage :
ftp://rpmfind.net/linux/contrib/lib c6/i386/keyboard-led_applet-0.9-1.i386.rpm

Installation :
en étant root : rpm -ivh keyboard-led_applet-0.9-1.i386.rpm

Manal m'a aussi donné quelques autres liens :

Sinon, pour la roulette du clavier, elle me fait monter ou descendre le curseur d'une ligne. Par contre j'ai beau chercher, je ne trouve pas où la configurer !
Enfin, comme toujours, les touches multimédias du clavier sont inutilisables avec Linux. Dommage.
 

Je reste ouvert à toutes corrections et suggestions de votre part !

Cet article a été réalisé sur la base d'une distribution Mandrake 8.1 (XFree 4.1.0, kernel-2-4.28mdk, Gnome 1.4)

Document réalisé par Pierrick Berger, le 11 Janvier 2002

Haut


Olympus Camedia C220

Rédaction anglaise : Peter Jodda Traduction française : Daniel Cartron

Comment appliquer une rustine à votre module USB-storage pour pouvoir utiliser un Camedia C220 Olympus avec Linux


Utilisation du Camedia C220 avec Linux

Le dernier appareil numérique que j'ai acheté est l'Olympus Camedia C220. Il pose quelqques problèmes lors de l'utilisation sous Linux. Je décris ici une solution possible.

Thomas M. de Berlin a écrit : Bei meiner Olympus D-100 (manchmal auch "C-1" oder "c-you" gennant) funktionierte es auch wie beschrieben. Pour les non-germanophones : Cette rustine devrait marcher également pour l' Olympus D-100 appelé aussi C-1.

J'ai aussi entendu dire que le C220 semble vendu dans d'autres pays sous le nom de D520.

L'appareil possède une connexion USB et devrait donc fonctionner comme un periphérique de stockage USB. Donc vous branchez le cable USB d'un côté sur l'ordinateur et de l'autre sur l'appareil et.... BOOM . Au bout de 5 secondes la machine plante. Vous n'avez plus qu'à appuyer sur le bouton reset. Des types futés ont analysé le problème et constaté que l'appareil n'envoie pas de chaîne d'identification USBS, mais une chaîne USBU. Ce USBU perturbe le module USB-storage du noyau, et l'ordinateur plante.

Si l'appareil est votre seul périphérique USB-storage, alors il y a un moyen facile de le faire fonctionner : faire en sorte que le module réagisse à la chaîne USBU au lieu de USBS. Alors vous aures accès à votre  appareil mais à aucun autre périphérique USB-storage.

Voici comment faire : une solution propre consiste à changer la chaîne dans les sources du module, et le recompiler. Mais vous avez besoin des sources, et des fichiers d'en-tête. Vous devez savoir quel fichier modifier. Et vous devez savoir compiler et installer les sources du noyau. Si vous n'êtes pas expérimentés vous risquez de passer un week-end là-dessus.

Il y a mieux à faire pendant un week-end. Voici donc une méthode plus pragmatique (et brutale) : appliquer une rustine au module existant. Ok, il faut aussi compiler, mais il y a juste 30 lignes.

ATTENTION
Faites ce qui suit à vos risques. ça a marché sur ma machine, mais ça pourrait ne pas marcher sur la vôtre. Faites une sauvegarde de vos données avant tout!

étape 1 - Téléchargement de la rustine

Téléchargez ce petit programme

#include "stdio.h"

// buffer, must be large enough
#define BUFFER_SIZE 0x100000
char buffer[BUFFER_SIZE];


int main(int argc , char *argv[])
{
int i;
int i_Read ;
int i_Written ;
FILE *in,*out;

in = fopen("usb-storage.o","rb");
i_Read = fread(buffer,1,BUFFER_SIZE,in);
fclose(in);

fprintf(stderr,"Read %d Bytes\n",i_Read);

for(i=0; i< (i_Read -3); i++)
{
if(
buffer[i ] == 'U'
&& buffer[i+1] == 'S'
&& buffer[i+2] == 'B'
&& buffer[i+3] == 'S'
)
{
fprintf(stderr,"found at %d\n",i);
buffer[i+3] = 'U';
}
}

out = fopen("usb-storagex.o","wb");
i_Written = fwrite(buffer,1,i_Read,out);
fclose(out);

fprintf(stderr,"Wrote %d Bytes\n",i_Written);

}

Compilez-le en tapant

étape 2 - Détermination de la localisation des modules

Tapez :

insmod usb-storage


et l'ancien module est chargé, ce qui a pour effet secondaire d'afficher la localisation des modules. Sur ma machine cela donne :

/lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/usb-storage.o


donc la localisation est :

/lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/

Copiez le programme  usbp dans ce répertoire et allez-y :

cp usbp /lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/
cd /lib/modules/2.4.18-64GB-SMP/kernel/drivers/usb/storage/

étape 3 - Appliquer la rustine au module

Lancez le programme en tapant :

usbp

Le programme crée une copie modifiée de l'original. Un affichage typique donne :

Read 61670 Bytes
found at 7775
found at 26381
Wrote 61670 Bytes

à cet instant précis le système utilise encore l'ancien module. Renommez l'ancien module et le module modifié de façon à ce que le système utilise celui qui vous intéresse. Tapez :

rmmod usb-storage
mv usb-storage.o usb-storage-original.o
mv sub-storagex.o usb-storage.o

Vous avez sauvegardé le module original et activé le nouveau. Si Windows est installé sur votre machine vous devez redémarrer celle-ci.

étape 4 - Utilisation de l'appareil

Maintenant connectez l'appareil à votre ordinateur avec votre cable  USB. Dans la console vous verrez apparaître un message comme celui-ci :

Jul 14 12:31:03 hawaii kernel: usb.c: USB device 2 (vend/prod 0x7b4/0x102) is not claimed by any active driver.
Jul 14 12:31:04 hawaii kernel: usb-uhci.c: interrupt, status 3, frame# 107
Jul 14 12:31:04 hawaii kernel: Vendor: OLYMPUS Model: C2Z,D520Z,C220Z Rev: 1054
Jul 14 12:31:04 hawaii kernel: Type: Direct-Access ANSI SCSI revision: 02
Jul 14 12:31:04 hawaii kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Jul 14 12:31:04 hawaii kernel: SCSI device sda: 256000 512-byte hdwr sectors (131 MB)
Jul 14 12:31:04 hawaii kernel: sda: Write Protect is off

Vous devez ensuite monter le périphérique pour avoir accès aux photos. J'ai créé un répertoire /olympus :

mkdir /olympus


puis j'ai monté l'appareil avec :

mount /dev/sda1 /olympus

Allez ensuite dans le répertoire :

cd /olympus


puis entrez le chemin spécifique de l'Olympus :

cd dcim/100olymp


et vous êtes dans le répertoire contenant les images. Vous pouvez les regarder, les copier, faire tout ce que vous voulez avec.

Quand vous avez fini quittez le répertoire et démontez l'appareil :

cd ; umount /olympus

Si ça ne marche pas

Ce que j'ai écrit est la façon dont je l'ai fait et comment ça a marché sur ma machine. Comme vous devez effectuer tout ceci en tant que root il est possible que vous ayez endomagé votre système. Sur d'autres  systèmes ces étapes pourraient ne pas fonctionner. Si ça ne fonctionne pas je ne peux pas vous aider, parce que je ne connais pas votre système, ou ce qui pourait être différent dessus. Donc tout ce que vous faites est à vos propres risques!

J'ai constaté autre chose: le module USB-storage et la connexion ADSL avec pppoe ne fonctionnent pas simultanément sur mon système. Je peux soit aller sur internet, soit accéder à mon appareil, mais pas les deux en même temps.

Haut


Faire fonctionner son Sony Clié sous Linux avec jpilot

par cesar

Acceder a la memory stick et installer des logiciels sur son Clié sous Linux en utilisant jpilot

Introduction

Cet article s'adresse à tous ceux qui ont un Clié et qui n'arrive pas à le faire fonctionner sous leur système préféré : Linux.

Utilisant tout d'abord vmware pour synchroniser mon PDA, j'en ai eu marre de lancer la machine virtuelle et voir Windows à chaque fois que je voulais mettre a jour mes adresses ou installer un logiciel.
J'ai donc décidé d'installer ce qu'il faut sur mon système, je vous expose ici la marche a suivre pour faire fonctionner votre synchronisation.

Ce dont vous avez besoin

Matériel testé

Cet article a été ecrit après des tests avec un Sony Clié SJ-33, Memory Stick 128 Mo, Compaq Presario PIII 800/256, RedHat 7.3 avec kernel 2.4.21, jpilot 0.99.5 et pilot-link 0.11.7.

La recompilation du noyau (si besoin)

Les details de cette étape ne seront pas donnés ici tant il y a de pages à ce sujet. Je vais juste vous donner quelques modules à ne pas oublier:

En fait, si vous avez un noyau d'une distribution récente, (RedHat 9, Mandrake 9...) vous ne devriez pas avoir à recompiler le noyau.

Installation et configuration des programmes

pilot-link

Installez pilot-link grâce à un package de votre distribution ou compilez-le. Moi je l'ai compilé.

Une fois installé lancez un: pilot-xfer --version dans une console et vous devriez obtenir un output du style:

.--------------------------------------------.
| (c) Copyright 1996-2003, pilot-link team |
| Join the pilot-link lists to help out. |
`--------------------------------------------'
This is pilot-xfer, from pilot-link version 0.11.7

Build target..: i686-pc-linux-gnu
Build date....: Jun 17 2003 22:34:07

pilot-link 0.11.7 is covered under the GPL/LGPL
See the file COPYING under docs for more info.

Please use -h for more detailed options.

A partir d'ici vous pouvez déjà installer des programmes sur votre Clié

C'est en ligne de commande et ça se fait par la commande shell :

pilot-xfer -i fichier.prc

Par default pilot-link va "écouter" sur le port /dev/pilot si celui-ci est mal/pas configuré cela ne fonctionnera pas.
L'option -p (pout port) de pilot-link permet de spécifier sur quel port est branché le Clié.
Nous verrons cela dans les préférences de j-pilot puisque notre but est d'avoir une interface graphique.
Pour plus d'infos: man pilot-link ou man pilot-xfer

J-pilot

De même que pour pilot-link, installez à base de package ou compilez le programme.

Il faut savoir que J-pilot n'est qu'un "frontend" de pilot-link, donc pilot-link DOIT être installé et fonctionner correctement pour que J-Pilot fonctionne correctement.

Une fois installé, ce qui ne devrait pas poser trop de problèmes, il faut le configurer.

Lancez jpilot, pour cela : pressez [Ctrl]-E pour lancer le panel de préférences, et allez sur le 2ème onglet (Settings) dans la zone Serial port vous pouvez choisir le port sur lequel les échanges avec le Clié devront s'effectuer (option -p de pilot-xfer).

Pour moi il s'agit de /dev/usb/ttyUSB0, il faut faire des essais. Cependant on peut se faire une idée en faisant un: modprobe visor, brancher le Clié et visualiser la sortie de /var/log/messages (tail -f /var/log/messages) lorsque on test un HotSync sur le Clié.

Moi j'obtiens:

Jul 10 14:06:31 cesar kernel: usbserial.c: Handspring Visor / Treo / Palm 4.0 / Clié 4.x converter now attached to ttyUSB0 (or usb/tts/0 for devfs)

J'ai donc choisi le port ttyUSB0 dans la zone de port.

Pour installer des logiciels sur votre Clié préféré, c'est facile :

Lancez jpilot, pressez [Ctrl]-I et choisissez les fichiers prc ou pdb à installer. Ensuite il suffit de cliquer sur le bouton [Sync], la petite console en bas de la fenêtre principale (en fait c'est la sortie - output - de pilot-link) va vous demander de presser le bouton HotSync sur le Clié et le transfert va s'effectuer

Il est à noter que Jpilot propose de nombreuses autres options, notamment la gestion de plugins. Lisez la documentation et apprenez à l'utiliser!

Accéder à la Memory Stick

Normalement, ce ne devrait être qu'une formalité, puisque l'on a configuré le noyau dans la premiere partie.
Si tout s'est bien passé jusqu'à présent, il ne devrait pas y avoir de problème.

Començons par passer 'root' et créer le répertoire adéquate.

su
password:*******
mkdir /mnt/clie

Sur le Clié, lancez l'utilitaire MS Import
Attendez que le Clié annonce: "Connected to PC" ou "Connecté au PC" pour les systemes français, puis faire:

mount -t vfat /dev/sda1 /mnt/clie

Note: Normalement ce devrait être /dev/sda1 si vous n'avez pas de périphérique SCSI sinon, essayez sdb1, sdc1...

Votre Memory Stick est désormais accessible dans le répertoire /mnt/clie, vous pouvez naviguer dedans, écrire dessus (en root), lire..., comme un disque dur classique.

Conclusion

Voilà, j'espère que cet article vous aura été utile, en effet il est toujours frustrant de devoir lancer vmware pour synchroniser son Clié ou Palm (ce qui marche très bien, soit dit en passant).
Il est vraiment navrant qu'une compagnie comme Sony (de même pour Palm) ne pense pas à la communauté Linux.

Si vous avez des questions ou des difficultés, écrivez-moi.

Haut


Fin du chapitre