Installer Debian 2.1 (slink) sur un IBM Thinkpad 390 (2626-2FR)

Installer Debian 2.1 (slink) sur un IBM Thinkpad 390
(2626-2FR)

écrit par Sébastien KALT
dernière mise à jour le 21 août
2000

Introduction

Beaucoup de monde parle de linux en ce moment, que ce soit dans la presse
informatique, et même dans des journaux grand public. Comme je suis plutôt
curieux par nature j'ai donc décidé de me procurer une distribution linux et
de l'installer sur mon ordinateur. Après avoir fourbi mes armes sur une RedHat
5.2 (je suis totalement novice en système linux / unix) j'ai installé Debian
2.1 pas plus tard que la semaine dernière. Tout s'est bien passé en partie
grâce au travail que j'avais précédemment réalisé pour la RedHat. Le support
APM marche, j'ai X-Windows en 800x600x24 (le maximum supporté par mon moniteur
LCD), ma connexion internet par modem fonctionne également.

Après pas mal de galère je crois que j'ai enfin le son sur mon Thinkpad !
Enfin presque, des fois ça marche, et d'autres ça ne marche pas, mais
maintenant c'est un problème induit par la mise en hibernation.

Caractéristiques de la machine

  • modèle: IBM Thinkpad 390 (2626-2FR);
  • écran: TFT 12'1 800x600x24bpp;
  • CPU: Intel Pentium Mobile 233 mmx;
  • RAM: 64 Mo SDRAM 66 MHz;
  • disque dur: IBM (DKLA-23240) 3.2 Go ATA-4, UDMA;
  • batterie: NI-MH;
  • périphériques: disquette 1.44 Mo et CDROM SANYO CRD-S372B
    internes (UltraBay FX);
  • connections: parallèle, série, IRDA, USB, PCMCIA;
  • chipset vidéo: NeoMagic NM2200 (=NMG5 =256AV) PCI avec 2.5 Mo
    VRAM;
  • chipset son: NeoMagic NMA2 (256AV);
  • haut-parleurs: Altec Lansing 0.1 watts;
  • modem: PCMCIA IBM 56 (origine PSION).

Installation de Debian

L'installation s'est déroulée sans trop de problèmes. Par défaut j'ai réglé
mon BIOS pour qu'il ne boote pas sur l'unité de CD-ROM. La première chose à
faire est donc de changer ce réglage (le réglage d'origine boote sur la
disquette, puis le CD-Rom, puis le réseau et enfin sur le disque dur). Ensuite
mettre le CD-ROM Debian dans le lecteur, et rebooter. Et si 'la Force est avec
vous' l'installation de Debian peut commencer ...

Le partitionnement d'origine du disque comprend une partition FAT16 de 2 Go
pour windows 98 et une partition FAT32 étendue de 1 Go. J'ai donc supprimé
cette seconde partition sous windows pour y installer Linux. Mon disque dur a
donc la structure suivante:

     Disk /dev/hda: 128 heads, 63 sectors, 788 cylinders
     Units = cylindres of 8064 * 512 bytes

        Device Boot    Start       End    Blocks   Id  System
     /dev/hda1   *         1       520   2096608+   6  FAT16
     /dev/hda2           772       788     68544   82  Linux swap
     /dev/hda3           521       771   1012032   83  Linux

Une partition de swap de 68 Mo pour mes 64 Mo de RAM, et le reste de la
place pour ma partition Linux. Au début je faisais une partition pour
'/' et une autre pour '/usr', mais je me suis rendu compte
que vu la place que j'avais ce n'était pas une très bonne idée: quand j'ai
voulu installer Star Office il n'avait pas assez de place dans le répertoire
temporaire pour décompresser les fichiers d'installation.

La gestion de l'énergie, et en particulier la mise en hibernation, semble
nécessiter que la partition bootable soit la partition windows 98, puisque le
fichier d'hibernation se trouve sur celle là. Peut être qu'en créant une
partition d'hibernation ce problème est résolu. Comme en fait j'utilise
windows au travail je boote par défaut ce système d'exploitation donc je ne me
suis pas vraiment penché sur le problème.

Le démarrage est assuré par lilo. Un conseil: créez toujours la disquette
de boot linux pendant l'installation ! J'ai laissé debian installer lilo pour
moi, mais ça ne marchait pas. J'ai donc personnalisé mon lilo.conf pour qu'il boote par défaut sur windows,
et seulement à la demande sur linux.

Configuration de XFree86

Contrairement à ce que je pensais (et surtout à ce que j'avais enduré sous
RedHat) la configuration de X se fit sans aucun problèmes. Debian fournit
'XFree86 Version 3.3.3.1' qui supporte la puce NeoMagic 256AV par son
serveur SVGA. Il suffit donc d'installer les paquets X avec les serveurs SVGA
et VGA16 (ça c'est pour la configuration). Ensuite il suffit, en tant que
root de lancer 'XF86Setup', dans la rubrique 'Card' de
choisir 'advanced', puis 'NM2200', et de passer comme argument supplémentaire
'hw_cursor' (non indispensable). Dans la section 'screen', vu qu'il
n'y avait aucun panneau LCD, j'ai décidé de choisir 'generic SVGA' et
je dois dire que tout marche à merveille.

Ensuite, par sécurité (normalement tous les modes non supportés sont
désactivés au lancement de X automatiquement), j'ai édité le fichier
'XF86Config' et j'ai viré tous les modes non supportés par ma carte
ou mon écran, en gros toute résolution autre que 800x600, et la profondeur de
couleur 32 bits. Et ensuite j'ai spécifié 16 bits par défaut, et une
résolution virtuelle de 1024x768.

Si ça peut vous intéresser vous trouverez mon fichier href="XF86Config">XF86Config.

Compilation du Noyau

La compilation du noyau n'a jamais posé de problèmes particulier: j'ai
recompilé 'à la façon Debian' le noyau 2.0.36 livré, ainsi que le 2.2.9, et du
2.2.12 au 2.2.17 que j'utilise actuellement. J'ai même testé le 2.4.0-TEST5 mais
la gestion d'énergie par ACPI est encore balbutiante.

Je ne vais pas m'étendre sur ce sujet, je vous conseille de consulter le site
Linux Aide, ils expliquent la
compilation du noyau, et j'ai même participé pour la page sur la compilation
'à la façon Debian'.

Je vous conseille quand même d'intégrer le support APM (menu 'general
setup
'):

  • APM support: Y
  • Ignore User Suspend: N
  • Enable PM at boot time: Y
  • Make CPU idle calls when idle: Y
  • Enable console blanking using APM: Y
  • Power off on shutdown: Y
  • ignore multiple suspend: N (à priori ne concerne que les
    Thinkpad 560)
  • ignore multiple suspend/resume cycles: N (à priori ne concerne
    que les Dell Inspirion 3200 et consorts)

Un petit conseil: n'hésitez pas à faire la disquette de boot, même si votre
configuration lilo marche aux petits oignons, on ne sait jamais.

Support du son

Tout ne marche pas encore parfaitement. Mais je peux lire un CD et utiliser
Freeamp, par le biais du serveur de son Enlightenment: esound. Par contre le
son ne marche plus lors du retour d'une hibernation. Un petit détail à régler
(si vous avez la solution n'hésitez pas à m'en faire part !!). En attendant
que le driver ALSA soit disponible,
pour le moment aucune date n'a été précisée.

Donc pour le moment cette satanée carte son se comporte comme une Yamaha
OPL3-SAx (YMF719) (dixit le noyau). Il
faut donc compiler les modules suivants dans votre noyau 2.2.x (je crois
qu'ils n'existaient pas dans les 2.0.x):

  • Menu "Sound"
    • Sound card support: M
    • OSS sound modules: M
    • MPU-401 support (not for SB16): M
    • PSS (AD1848, ADSP-2115, ESC614) support: M
    • Microsoft Sound System support: M
    • Support for Yamaha OPL3-SA2, SA3, and SAx based PnP cards: M
    • FM synthesizer (YM2812/OPL-3) support: M

  • Menu "Additional low level sound drivers"

    • Additional low level sound drivers: Y

Et voilà, maintenant il ne reste plus qu'à lancer la compilation,
installer le noyau nouvellement compilé et rebooter.

Maintenant pour charger les modules dans le noyau, il y a 2 manières:


  • soit manuellement avec un ch'ti script (c'est moins fatiguant):


$ vi son

#! /bin/sh



modprobe sound

insmod mpu401

insmod ad1848

insmod opl3sa2 mss_io=0x530 irq=5 dma=0 dma2=1 mpu_io=0x300 io=0x370

insmod opl3 io=0x388

# ---------- fin du script


Il faut être root pour que ça marche, ou mettre un 'sudo' devant chaque ligne et inclure les utilisateurs
autorisés dans /etc/sudoers. Sur la console ça doit nous donner ceci:

$ ~/son

Using /lib/modules/2.2.15/misc/mpu401.o

Using /lib/modules/2.2.15/misc/ad1848.o

Using /lib/modules/2.2.15/misc/opl3sa2.o

Using /lib/modules/2.2.15/misc/opl3.o

  • soit automatiquement par modprobe:
  • Pour cela il faut ajouter un fichier /etc/modutils/sound contenant ces lignes:


    $ vi /etc/modutils/sound
    # Configuration de la carte son NeoMagic 256av

    #



    alias char-major-14 opl3sa2

    pre-install opl3sa2 modprobe "-k" "ad1848"

    post-install opl3sa2 modprobe "-k" "opl3"



    options opl3sa2 mss_io=0x530 irq=5 dma=0 dma2=1 mpu_io=0x300 io=0x370

    options opl3 io=0x388

    # ---------- fin du fichier /etc/modutils/sound

    Puis faire un update-modules: cela mettra à jour votre fichier
    /etc/modules.conf (consulter les pages de man pour plus d'informations). Pour charger
    les modules appropriés il suffit de faire (sous root):

    $ modprobe opl3sa2

    Si l'on jette un oeil sur sur /var/log/kern.log on doit avoir ces entrées:


    May 20 22:20:45 foo kernel: ad1848/cs4248 codec driver Copyright (C) by Hannu Savolainen 1993-1996

    May 20 22:20:45 foo kernel: Found OPL3-SAx (YMF719)

    May 20 22:20:45 foo kernel: YM3812 and OPL-3 driver
    Copyright (C) by Hannu Savolainen, Rob Hooft 1993-1996


    Et il doit y avoir les modules suivant de chargés:


    $ lsmod

      Module                  Size  Used by
      opl3                   10920   0 (autoclean) (unused)
      opl3sa2                 3888   0 (unused)
      ad1848                 15856   0 [opl3sa2]
      mpu401                 18480   0 [opl3sa2]
      sound                  55512   0 [opl3 opl3sa2 ad1848 mpu401]
      soundlow                 344   0 [sound]
      soundcore               2372   7 [sound]


    Il peut être utile de prendre une précaution si vous utilisez le support PCMCIA: exclure l'IRQ et les
    plages mémoires utilisés par la puce son en ajoutant ces lignes dans votre
    /etc/pcmcia/config.opts:


    # Sound chipset

    exclude irq 5

    exclude memory 0x300-0x301, memory 0x530-0x538


    Et voilà, maintenant vous devriez pouvoir entendre du son. Je vous renvois aux Sound HOWTO

    et Sound-Playing HOWTO pour plus d'informations sur le son. J'ai expérimenté quelques problèmes
    que j'ai résolus (en partie) en changeant de Window Manager pour Enlightenment et en utilisant
    esd, 'Enlightenment sound daemon'.