Journebian · Réinstallation de Sarge

1er mai 2006

Réinstallation depuis zéro de Sarge

Nouveau disque dur silencieux

Mon disque dur Western Digital Caviar WD800JB est devenu horriblement bruyant (sifflements et vibrations), alors je me suis racheté un disque silencieux : un Seagate Barracuda 7200.9 (ST3802110A). Ils ont exactement le même nombre de blocs : 156301488, soit 80 Go (ou 74,5 Gio). Je décide cependant de réinstaller tout le système plutôt que tenter une copie. En je simplifie le partitionnement : une partition Linux de 55 Go, une partition Windows de 25 Go, et c'est tout.

Maître et esclave

En installant le Seagate comme maître et en faisant du WD l'esclave, j'ai découvert qu'avec un câble Ultra-ATA, il n'est plus nécessaire de jouer avec des jumpers : prise noir (au bout) pour le maître ; prise grise pour l'esclave, et voilà. Je ne compte plus utiliser le WD, sauf peut-être pour du backup. Je le laisse cependant branché, car la commande hdparm -y /dev/hdb permet de le mettre en veille et de retrouver le silence (enfin presque, car le bruit des ventilateurs n'est alors plus couvert). Pour retrouver le silence au démarrage, j'ai ajouté les lignes suivantes dans /etc/hdparm.conf :

/dev/hdb {
        standby
}

J'ai noté que mon BIOS était capable de lancer un système sur un disque esclave lorsqu'il ne trouve rien sur le maître. Apparemment, ça ne pose pas de problème à Windows XP. En revanche, se retrouver sur /dev/hdb fait paniquer le noyau Linux.

Procédure d'installation

J'ai procédé à une installation via Internet. Avec mon débit ADSL qui est passé de 80 ko/s à 270 ko/s, ça va assez vite. Pourvu que ça dure, car cette augmentation de débit ADSL n'a rien d'officiel. Mais il faut aussi dire que je n'installe pas beaucoup de paquets : outre la base, j'ai installé les paquets Open Office, The GIMP, VLC, NEdit, FVWM, XFree86 et quelques broutilles. En fait, j'installe les dernières versions de logiciels comme Firefox, Apache ou GCC depuis les sources ou les binaires.

Surprises d'installation

XFree86

J'ai eu du mal à trouver comme vraiment installer (avec configuration et lancement au démarrage) XFree86. Finalement, j'ai trouvé dans Aptitude la tâche d'utilisateur final en environnement bureautique pour X Window (Tasks -> End-user -> Desktop environment -> x-window-system-core). Cela dit, il me semble que pour la première fois, Debian a automatiquement configuré XFree86 d'une manière satisfaisante, dans un premier temps. Enfin presque automatiquement : j'ai rentré les propriétés exactes de l'écran et il a fallu que je vérifie que ma souris est bien sur /dev/psaux. En outre, il manque la gestion de la molette et de la touche compose. L'affichage en 1792×1344 est aussi dans un malheureux 75 Hz.

Molette de la souris

Pour la non gestion de la molette, je pensais que le problème venait d'une option insensée pour un utilisateur de Linux :
Option "Emulate3Buttons" "true"
Mais même après avoir commenté cette option, la molette ne fonctionne pas. En fait il s'agit d'un changement de comportement de Linux 2.6 avec les souris PS/2. Mon problème correspond exactement à la description donnée dans le message logitech mouseMan wheel doesn't work with 2.6.5 de LKML. La solution est de remplacer le protocole MouseManPlusPS/2 par ExplorerPS/2. Et je précise aussi que Emulate3Buttons est false, car sinon, l'émulation est lancée puis annulée, d'après le log de XFree86.

Taper des lettres accentuées

Je n'arrive pas à composer des caractères comme 'Ç' en tapant Logo-,-C mais pour le reste, ça fonctionne étonnament bien par défaut : Je peux entrer, effacer (dans les deux sens) et visualiser les caractères accentués ou pas dans la console, les terminaux X, les éditeurs, etc. Finalement j'ai retrouvé la composition et supprimé les touches mortes en changeant ces lignes de /etc/X11/XF86Config-4 :

#       Option          "XkbLayout"     "ch"
#       Option          "XkbVariant"    "fr"
        Option          "XkbLayout"     "fr_CH"
        Option          "XkbVariant"    "nodeadkeys"

Malheureusement l'option nodeadkeys ne fonctionne pas que sur l'accent «~» mais aussi sur les accents «´», «^» et «`». Heureusement, c'est un problème que j'ai déjà résolu le 15 août 2003. C'est un peu malpropre, il faut modifier le fichier /etc/X11/xkb/symbols/de_CH.

Polices de caractères

Lors de l'installation, debconf m'a envoyé un email. C'est original. Le voici :

Envelope-to: root@kameha
Delivery-date: Sun, 30 Apr 2006 23:24:33 +0200
To: root@kameha
Subject: Debconf: Configuration de x-ttcidfont-conf -- L'adresse des polices
+TrueType et CID gérées par defoma a changé
From: root <root@kameha>

L'adresse des polices TrueType et CID gérées par defoma a encore changé.
Veuillez ajouter ces entrées dans la section « Files » du fichier
/etc/X11/XF86Config-4 :

  FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/CID"
  FontPath "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"


Veuillez ajouter ces deux répertoires à l'entrée « catalogue » du fichier
/etc/X11/fs/config ou du fichier /etc/X11/fs-xtt/config ; veuiller
supprimer aussi toute référence à /usr/lib/X11/fonts/CID dans ces deux
fichiers.

--
Debconf, s'exécutant sur kameha
[ Debconf n'a pas été configuré pour afficher cette note, il vous l'a donc
envoyée par courrier électronique. ]

C'est bien joli, mais les répertoires /etc/X11/fs et /etc/X11/fs-xtt n'existent même pas ! La gestion des polices reste toujours aussi mal ficelée… Enfin, il y a un effort certain pour regrouper la gestion de toutes ces polices, comme en témoigne l'outil dfontmgr, dont j'ignore l'utilité, mais qui permet déjà de consulter des listes de polices installées. Et je peux installer de nombreuses polices, ce qui me permet d'afficher 99% de la home de Wikipédia.

Affichage

Après de nombreux essais de ModeLine et de réglages avec xvidtune, je laisse tomber le 1792×1344 car il donne toujours une image un peu corrompue. Le 1600×1200 est au moins parfaitement supporté par mon écran, sans avoir besoin de donner un ModeLine.

Linux

J'ai installé le noyau 2.6 en passant le paramètre de boot linux26 au CD d'installation. Mais mauvaise surprise, 901948 kB ought to be enough for anybody (Debian, 2006). Bon, Debian ne prétend pas plus cela que Bill, mais je me retrouve avec un noyau incapable d'utiliser toute la mémoire vive. Il faudrait que je le recompile avec le support HIGHMEM. Quoi que, après consultation de quelques articles de KernelTrap sur le partitionnement des adresses (1, 2), j'ai des doutes.

Pour faire simple et dans l'ordre, je commence par installer le paquet kernel-image-2.6-686 dont dépend kernel-image-2.6.8-3-686. Bonne intuition, il a le support HIGHMEM ; problème réglé.

Carte SCSI Tekram

Tiens, ma carte SCSI Tekram est automatiquement reconnue par le noyau 2.6. C'est bien, mais cette carte ne me sert finalement à rien du tout.

FVWM

Les réglages par défaut de FVWM… c'est aussi horrible qu'avec un autre gestionnaire de fenêtres ! Je me dis d'ailleurs que c'est peut-être pour cela qu'autant de monde s'acharne à refaire en plus mal, plus lent, plus buggué, ce que fait FVWM : ils n'ont jamais été face à un gestionnaire de fenêtre correctement réglé. C'est-à-dire un gestionaire de fenêtre qui utilise le lazy focus, les bords résistants et aimantés, les trois boutons de la souris sur les bords de fenêtre (gauche pour mettre à l'avant-plan et redimensionner, milieu pour déplacer, droite pour mettre à l'arrière-plan).

Je récupère les fichiers default-style.hook, init-restart.hook, main-menu-pre.hook, post.hook et system.fvwm2rc qui se trouvent dans /etc/X11/fvwm/. Seul menudefs.hook était présent avant la récupération. Je ne le change pas. Il me suffit de relancer FVWM pour retrouver décors de fenêtre fonctionnels et bureau virtuel avec représentation miniature.

J'ai effacé main-menu-pre.hook car il ne semblait pas utile. Mes menus sont dans ~/.fvwm/main-menu.hook.

Bash

J'avais mis une bonne partie des réglages de Bash dans /etc/bash.bashrc pour que tous les utilisateurs puissent en profiter. Mais finalement, je fais mieux de garder ce genre de configuration dans mon .bashrc, il y a un plus grand potentiel de réutilisation.

2 mai 2006

Shutdown

Ni XDM ni FVWM ne proposent un menu pour éteindre ou rebooter le PC. Je reprends donc la configuration avec sudo du 2 février 2001 et j'ajoute un choix « Reboot » et un choix « Eteindre » à FVWM.

Paramètre vga=9 du noyau

Pour passer le paramètre vga=9 au noyau, ce qui donne une console de 132×50 caractères (d'après le noyau Linux), j'édite /boot/grub/menu.lst en ajoutant vga=9 à la suite de # kopt=root=/dev/hda1 ro (oui, ça a l'apparence d'un commentaire) puis lance update-grub.

Ça donne toutefois un résultat bizarre : le noyau passe bien la console dans un mode ressemblant à du 132×50 caractères, mais ensuite un programme change la police de la console, ce qui donne 25 lignes de caractères espacés et étirés en hauteur, avec le curseur qui clignote à la hauteur d'un tiret (c'est le plus troublant). Comme le 4 juillet 2005, j'active bootlogd pour observer cela. Je pense qu'on peut soupçonner cela :
Tue May 2 17:15:01 2006: ^[]RSetting up general console font... Setting up per-VC ACM's: /dev/tty1 (iso15), /dev/tty2 (iso15), /dev/tty3 (iso15), /dev/tty4 (iso15), /dev/tty5 (iso15), /dev/tty6 (iso15), done.

Installations supplémentaires

2048×1536 pixels

J'ai remarqué dans /var/log/XFree86.0.log que l'écran donne des données pour faire un ModeLine de 2048×1536 pixels :

(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 355.0 MHz   Image Size:  392 x 294 mm
(II) MGA(0): h_active: 2048  h_sync: 2172  h_sync_end 2394 h_blank_end 2731 h_bo
rder: 0
(II) MGA(0): v_active: 1536  v_sync: 1556  v_sync_end 1559 v_blanking: 1625 v_bo
rder: 0

Il est parfaitement bien supporté ! C'est dommage qu'il soit limité à 80 Hz. Il faut aussi que j'agrandisse la taille des caractères, car un RXVT maximisé me donne 337x115 caractères, ce qui n'est guère utile hors de l'art ASCII. Le réglage est un peu compliqué car j'ai installé les paquets mrxvt, rxvt et rxvt-unicode. Or l'aternative Unicode /usr/bin/urxvt ne semble pas sensible aux ressources X comme *VT100.Font et autres que j'ai testé dans mon ~/.Xresources. Je change d'alternative et utilise /usr/bin/mrxvt-full. Pour FVWM, je mets une fonte de 14 dans /etc/X11/fvwm/system.fvwm2rc. Dans ~/.Xsession je règle XClock. NEdit et Firefox ont leurs propres préférences de fontes.

3 mai 2006

lm-sensors

Pour observer les ventilateurs et la température dans mon PC, j'installe lm-sensors, qui doit être directement supporté par le noyau 2.6 de Debian. J'installe aussi xsensors. L'installation n'est pas du tout automatisée, d'après cet article il faut même charger les modules à la main ! Optimiste, j'ai directement essayé xsensors mais il a répondu Could not initialize sensors! Is everything installed properly?. Toujours optimiste, je lance sensor-detect :

This program will help you determine which I2C/SMBus modules you need to
load to use lm_sensors most effectively. You need to have i2c and
lm_sensors installed before running this program.
Also, you need to be `root', or at least have access to the /dev/i2c-*
files, for most things.
If you have patched your kernel and have some drivers built in, you can
safely answer NO if asked to load some modules. In this case, things may
seem a bit confusing, but they will still work.

It is generally safe and recommended to accept the default answers to all
questions, unless you know what you're doing.

 We can start with probing for (PCI) I2C or SMBus adapters.
 You do not need any special privileges for this.
 Do you want to probe now? (YES/no): 
Probing for PCI bus adapters...
Use driver `i2c-i801' for device 00:1f.3: Intel 82801DB ICH4
Probe succesfully concluded.

We will now try to load each adapter module in turn.
Load `i2c-i801' (say NO if built into your kernel)? (YES/no): 
Module loaded succesfully.
If you have undetectable or unsupported adapters, you can have them
scanned by manually loading the modules before running this script.

 To continue, we need module `i2c-dev' to be loaded.
 If it is built-in into your kernel, you can safely skip this.
 i2c-dev is not loaded. Do you want to load it now? (YES/no): 
 Module loaded succesfully.

 We are now going to do the adapter probings. Some adapters may hang halfway
 through; we can't really help that. Also, some chips will be double detected;
 we choose the one with the highest confidence value in that case.
 If you found that the adapter hung after probing a certain address, you can
 specify that address to remain unprobed. That often
 includes address 0x69 (clock chip).

Next adapter: SMBus I801 adapter at e000
Do you want to scan it? (YES/no/selectively): 
Client found at address 0x08
Client found at address 0x2e
Probing for `Myson MTP008'... Failed!
Probing for `National Semiconductor LM78'... Failed!
Probing for `National Semiconductor LM78-J'... Failed!
Probing for `National Semiconductor LM79'... Failed!
Probing for `National Semiconductor LM80'... Failed!
Probing for `National Semiconductor LM85 or LM96000'... Success!
    (confidence 7, driver `lm85')
Probing for `Analog Devices ADM1027, ADT7460 or ADT7463'... Failed!
Probing for `SMSC EMC6D100, EMC6D101 or EMC6D102'... Failed!
Probing for `Analog Devices ADT7467'... Failed!
Probing for `National Semiconductor LM87'... Failed!
Probing for `National Semiconductor LM93'... Failed!
Probing for `Winbond W83781D'... Failed!
Probing for `Winbond W83782D'... Failed!
Probing for `Winbond W83791D'... Failed!
Probing for `Winbond W83792D'... Failed!
Probing for `Winbond W83791SD'... Failed!
Probing for `Winbond W83627HF'... Failed!
Probing for `Winbond W83627EHF'... Failed!
Probing for `Asus AS99127F (rev.1)'... Failed!
Probing for `Asus AS99127F (rev.2)'... Failed!
Probing for `Asus ASB100 Bach'... Failed!
Probing for `Winbond W83L785TS-S'... Failed!
Probing for `Analog Devices ADM9240'... Failed!
Probing for `Dallas Semiconductor DS1780'... Failed!
Probing for `National Semiconductor LM81'... Failed!
Probing for `Analog Devices ADM1026'... Failed!
Probing for `Analog Devices ADM1025'... Failed!
Probing for `Analog Devices ADM1024'... Failed!
Probing for `Analog Devices ADM1029'... Failed!
Probing for `Analog Devices ADM1030'... Failed!
Probing for `Analog Devices ADM1031'... Failed!
Probing for `Analog Devices ADM1022'... Failed!
Probing for `Texas Instruments THMC50'... Failed!
Probing for `Analog Devices ADM1028'... Failed!
Probing for `ITE IT8712F'... Failed!
Probing for `ITE IT8705F / SiS 950'... Failed!
Client found at address 0x44
Probing for `Maxim MAX6633/MAX6634/MAX6635'... Failed!
Client found at address 0x50
Probing for `SPD EEPROM'... Success!
    (confidence 8, driver `eeprom')
Probing for `DDC monitor'... Failed!
Probing for `Maxim MAX6900'... Failed!
Client found at address 0x51
Probing for `SPD EEPROM'... Success!
    (confidence 8, driver `eeprom')
Client found at address 0x69

Some chips are also accessible through the ISA bus. ISA probes are
typically a bit more dangerous, as we have to write to I/O ports to do
this. This is usually safe though.

Do you want to scan the ISA bus? (YES/no): 
Probing for `National Semiconductor LM78'
  Trying address 0x0290... Failed!
Probing for `National Semiconductor LM78-J'
  Trying address 0x0290... Failed!
Probing for `National Semiconductor LM79'
  Trying address 0x0290... Failed!
Probing for `Winbond W83781D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83782D'
  Trying address 0x0290... Failed!
Probing for `Winbond W83627HF'
  Trying address 0x0290... Failed!
Probing for `Winbond W83627EHF'
  Trying address 0x0290... Failed!
Probing for `Winbond W83697HF'
  Trying address 0x0290... Failed!
Probing for `Silicon Integrated Systems SIS5595'
  Trying general detect... Failed!
Probing for `VIA Technologies VT82C686 Integrated Sensors'
  Trying general detect... Failed!
Probing for `VIA Technologies VT8231 Integrated Sensors'
  Trying general detect... Failed!
Probing for `ITE IT8712F'
  Trying address 0x0290... Failed!
Probing for `ITE IT8705F / SiS 950'
  Trying address 0x0290... Failed!
Probing for `IPMI BMC KCS'
  Trying address 0x0ca0... Failed!
Probing for `IPMI BMC SMIC'
  Trying address 0x0ca8... Failed!

Some Super I/O chips may also contain sensors. Super I/O probes are
typically a bit more dangerous, as we have to write to I/O ports to do
this. This is usually safe though.

Do you want to scan for Super I/O sensors? (YES/no): 
Probing for `ITE 8702F Super IO Sensors'
  Failed! (0x1401)
Probing for `ITE 8705F Super IO Sensors'
  Failed! (0x1401)
Probing for `ITE 8712F Super IO Sensors'
  Failed! (0x1401)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87360 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87363 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87364 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87365 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87365 Super IO Voltage Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87365 Super IO Thermal Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87366 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87366 Super IO Voltage Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87366 Super IO Thermal Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87372 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87373 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `Nat. Semi. PC87591 Super IO'
  Failed! (0x14)
Probing for `Nat. Semi. PC87371 Super IO'
  Failed! (0x14)
Probing for `Nat. Semi. PC97371 Super IO'
  Failed! (0x14)
Probing for `Nat. Semi. PC8739x Super IO'
  Failed! (0x14)
Probing for `Nat. Semi. PC8741x Super IO'
  Failed! (0x14)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (0x14)
Probing for `SMSC 47M10x/13x Super IO Fan Sensors'
  Failed! (0x14)
Probing for `SMSC 47M14x Super IO Fan Sensors'
  Failed! (0x14)
Probing for `SMSC 47M15x/192 Super IO Fan Sensors'
  Failed! (0x14)
Probing for `SMSC 47S42x Super IO Fan Sensors'
  Failed! (0x14)
Probing for `SMSC 47S45x Super IO Fan Sensors'
  Failed! (0x14)
Probing for `SMSC 47M172 Super IO'
  Success... (no hardware monitoring capabilities)
Probing for `SMSC LPC47B397-NC Super IO'
  Failed! (0x14)
Probing for `VT1211 Super IO Sensors'
  Failed! (skipping family)
Probing for `Winbond W83627EHF Super IO Sensors'
  Failed! (skipping family)

Do you want to scan for secondary Super I/O sensors? (YES/no): 
Probing for `ITE 8702F Super IO Sensors'
  Failed! (skipping family)
Probing for `Nat. Semi. PC87351 Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `SMSC 47B27x Super IO Fan Sensors'
  Failed! (skipping family)
Probing for `VT1211 Super IO Sensors'
  Failed! (skipping family)
Probing for `Winbond W83627EHF Super IO Sensors'
  Failed! (skipping family)

 Now follows a summary of the probes I have just done.
 Just press ENTER to continue: 

Driver `lm85' (should be inserted):
  Detects correctly:
  * Bus `SMBus I801 adapter at e000'
    Busdriver `i2c-i801', I2C address 0x2e
    Chip `National Semiconductor LM85 or LM96000' (confidence: 7)

Driver `eeprom' (should be inserted):
  Detects correctly:
  * Bus `SMBus I801 adapter at e000'
    Busdriver `i2c-i801', I2C address 0x50
    Chip `SPD EEPROM' (confidence: 8)
  * Bus `SMBus I801 adapter at e000'
    Busdriver `i2c-i801', I2C address 0x51
    Chip `SPD EEPROM' (confidence: 8)


 I will now generate the commands needed to load the I2C modules.
 Sometimes, a chip is available both through the ISA bus and an I2C bus.
 ISA bus access is faster, but you need to load an additional driver module
 for it. If you have the choice, do you want to use the ISA bus or the
 I2C/SMBus (ISA/smbus)? 

To make the sensors modules behave correctly, add these lines to
/etc/modules:

#----cut here----
# I2C adapter drivers
i2c-i801
# I2C chip drivers
lm85
eeprom
#----cut here----

Do you want to add these lines to /etc/modules automatically? (yes/NO)yes

Il semble que tout se soit bien déroulé, mais la fenêtre de xsensors est vide et il segfaulte à la fermeture. Je lance modprobe eeprom et modprobe lm85 et cette fois xsensors donne une magnifique fenêtre :
xsensors

Dans la foulée, j'installe aussi hddtemp. Mon vieux Western Digital n'a pas de thermomètre, ma mon Seagate si. Je dois simplement remplacer /etc/hddtemp.db par http://www.guzu.net/linux/hddtemp.db.

Touches Home et End dans mrxvt

Dans la console Linux et XTerm, les touches Home et End fonctionnent correctement. Ça marche en fait partout, sauf dans mrxvt ! Décidément ces RXVT ont chacun leur petite particularité malvenue. La FAQ de MRXVT donne la réponse, il faut ajouter ces lignes dans ~/.inputrc :

"\e[1~": beginning-of-line
"\e[4~": end-of-line

Avec une commande compliquée comme mrxvt -xft -xftfn "Bitstream Vera Sans Mono" -xftnfm on peut même utiliser un police TrueType sans que l'espacement des caractères soit bizarre. Mais il faudrait que la résolution soit encore plus haute pour qu'il soit utile de se passer des caractères bitmap.

Hum, malgré le ~/.inputrc, les touches Home et End ne fonctionnent pas dans less. En outre la touche Alt Gr fonctionne avec un « Lock » (comme Caps Lock). Sans compter toutes les ressources X non prises en compte, comme les lignes de scroll à conserver. Bref, ce mrxvt est tout buggué et je retourne donc à l'excellent rxvt original.

Recompilation du noyau

Il est difficile de trouver un document clair et à jour sur les étapes à suivre pour recompiler le noyau fourni par Debian. Se posent notamment les questions suivantes :

  1. Où trouver les sources patchées par Debian pour compiler le noyau de la distribution (/boot/vmlinuz-2.6.8-3-686 dans mon cas) ?
  2. Où trouver les options de compilation utilisées par Debian ?
  3. Comment installer un noyau de même version (2.6.8) sans écraser l'ancien noyau et ses modules (qui sont dans /lib/modules/2.6.8-3-686) ?

Voici donc la procédure que j'ai suivie :

  1. j'ai installé le paquet kernel-package, comme encouragé par /usr/share/doc/debian/FAQ/ch-kernel.html (qui est partiellement obsolète) :
    apt-get install kernel-package
  2. j'ai installé les outils de compilation manquants (en l'occurrence les paquets fakeroot et libqt3-mt-dev qui a plein de dépendances), comme indiqué par /usr/share/doc/kernel-package/README.gz (qui considère les noyaux 2.2 et 2.4 comme étant récents…) :
    apt-get install fakeroot libqt3-mt-dev
  3. j'ai installé le paquet kernel-source-2.6.8, qui correspond au noyau que j'utilise actuellement :
    apt-get install kernel-source-2.6.8
  4. j'ai décompressé les sources dans un répertoire de travail :
    mkdir ~/Linux
    cd ~/Linux
    tar xjf /usr/src/kernel-source-2.6.8.tar.bz2
  5. j'ai copié le fichier de configuration Debian dans le répertoire des sources décompressées :
    cd kernel-source-2.6.8
    cp /boot/config-2.6.8-3-686 .config
  6. j'ai configuré le noyau (après avoir dû supprimer une version locale de GCC 4.1 de mon PATH car la compilation échoue avec cette version de GCC) :
    make xconfig
  7. j'ai scrupuleusement suivi la procédure de /usr/share/doc/kernel-package/README.gz :
    make-kpkg clean
  8. j'ai compilé le noyau avec --append-to-version=bla pour créer une version dont l'installation n'écrase pas le noyau 2.6.8 de Debian :
    fakeroot make-kpkg --append-to-version=bla --revision=custom.1.0 kernel_image
  9. j'ai installé le noyau :
    su -
    cd ~marc/Linux
    dpkg -i kernel-image-2.6.8bla_custom.1.0_i386.deb

Je reboote et ça fonctionne. Je remarque cependant que les deux noyaux installé ne sont pas totalement indépendants : le fichier /etc/modules est partagé, et certains modules listés dedans n'existent plus dans mon nouveau noyau. En effet, je compile le support IDE en dur pour me passer de initrd.

4 mai 2006

Configuration finale de XFree86

Finalement, j'utilise ce fichier XF86Config-4, ce qui me donne ce log. On peut noter pas mal de petits détails troublants :

5 mai 2006

Police de la console

C'est dans /etc/console-tools/config qu'est choisie cette police si haute : SCREEN_FONT=lat0-sun16. Je remplace lat0-sun16 par lat0-10.

1920×1440 pixels en 85 Hz

En divisant simplement le ModeLine 2048×1536 fourni par l'écran, j'ai obtenu un excellent ModeLine pour du 1920×1440. Pour passer de 80 Hz à 85 Hz, il a suffit de remarquer que la fréquence des pixels, 355,0 MHz en 2048×1536, est le produit du nombre horizontal de pixels visibles et invisibles par le nombre de lignes visibles et invisibles par le nombre d'images par seconde, soit 2731×1625×80 = 355030000 Hz& ≈ 355,0 MHz. Ça me donne donc les ModeLine suivants :

ModeLine "1920x1440@85"  331.4  1920 2036 2244 2560  1440 1458 1461 1523
ModeLine "2048x1536@80"  355.0  2048 2172 2394 2731  1536 1556 1559 1625

Le 331,4 a été calculé en dernier, avec 2560×1523×85 = 331404800 Hz ≈ 331,4 MHz. En plus, 1920×1440×4 = 11059200 = 10800 ko, ce qui tient 3 fois dans les 32 Mo de RAM de ma carte graphique, ce qui permet d'initialiser le DRI.

6 mai 2006

Installation d'imprimante

Il est difficile de trouver quelle est la méthode préférable pour installer l'impression sur Debian. À tout hasard j'installe la tâche foomatic-gui. Elle a toute une série de dépendances, dont CUPS. Étonnament, la partie cliente de Samba est aussi une dépendance, je dois commencer par configurer des domaines Windows alors que je veux juste installer une imprimante…

Je l'ai lu, mais je le répète : il y a pas mal de trucs sur Unix qui sont « une misère » (chacun peut comprendre ce qu'il veut). Et l'installation nécessaire pour pouvoir imprimer en est une. Cela dit, j'indique à CUPS que je ne soumettrai pas le jobs d'impression par réseau avec les protocoles « BSD » ni « LPR », mais avec IPP.

Étape 2, au feeling, je lance (sous root) foomatic-gui. Va bien, c'est bien un outil d'installation d'imprimantes. Il est cependant incapable de détecter mon imprimante pourtant en marche sur le port parallèle. J'entre donc à la main /dev/lp0 et le modèle d'imprimante (Xerox P8e). Je choisi un peu au hasard ljet4 plutôt que ljet4dith comme pilote. J'essaie d'imprimer du texte avec lpr : rien. Je reconfigure et je vois que mon /dev/lp0 a été changé en file:/dev/null ! Je corrige, j'imprime une page de test avec Foomatic : ça marche. Je vois toutefois dans les options que le format US Letter est utilisé au lieu de A4 ! Je change les options de l'imprimante, ça change rien : l'impression de test avec Foomatic reste identique ; l'impression de texte avec lpr texte.txt imprime complètement à côté de la page. Au moins l'impression avec Firefox et OpenOffice fonctionne.

Samba

L'installation de l'imprimante m'a fait installer un client Samba, mais reste à installer le serveur. Je l'installe en mode démon pour éviter des problèmes de connexion. Je crypte les mots de passe, tant pis pour les vieilles machines Windows 95.

je n'arrive pas à me connecter et je ne vois pas de fichier /etc/samba/smbpasswd. Bon, en fait, assez logiquement, il faut créer chaque utilisateur et lui donner un mot de passe : je répète donc les smbpasswd -a user. Les mots de passe sont conservés dans Reste encore à configurer /etc/samba/smb.conf pour autoriser l'écriture (writable = yes).

L'impression par Samba ne fonctionne pas : lpr: error - unable to print file: client-error-not-found. Le message d'erreur n'est pas très clair. Enfin, je vois que je peux décommenter printing = cups et printcap name = cups dans /etc/samba/smb.conf. Rien à faire, les impressions se perdent sans laisser de trace !

Finalement, malgré le fait que le premier message (client-error-not-found) n'ait jamais été répété, c'était le bon (si l'on considère que CUPS veut dire par que l'imprimante n'existe pas). J'ai changé le nom de mon imprimante : Windows envoyait les impressions à lp sur kameha, mais maintenant c'est P8e sur kameha. Aucun message d'erreur de la part de Windows, un seul, une fois (ce qui n'aide pas à faire des essais), de la part de CUPS et Samba.

8 mai 2006

Grub et Windows XP

Finalement, je n'arrivais plus à lancer Windows XP avec Grub. La solution a été de faire croire à Windows XP qu'il se trouve (encore) sur le premier disque dur en ajoutant la commande map dans l'entrée pour Windows XP de /boot/grub/menu.lst (comme décrit dans cette FAQ et le manuel de Grub) :

title           Windows XP
map             (hd1) (hd0)
root            (hd1,1)
savedefault
makeactive
chainloader     +1
12 mai 2006

Scroll dans RXVT

La configuration de scroll initiale de RXVT ne conserve que quelques dizaines de lignes. J'ai donc repris les lignes suivantes dans mon ~/.Xresources :

! Barre de défilement
XTerm*scrollBar: true
! Lignes d'historique
XTerm*saveLines: 8191

Comme on voit, RXVT récupère les ressources de XTerm. J'ai essayé de conserver 32768 lignes, mais RXVT a ignoré le paramètre. XTerm ne l'ignore pas, mais il est tellement plus lent que RXVT.

Alertes de lm-sensors

Les valeurs d'alerte par défaut de /etc/sensors.conf semblent trop basses pour mon matériel ; ma carte mère est à 39°C et 36°C sans charge. En outre le ventilateur a une vitesse variable plus souvent aux alentours de 400 tours/minute que 4000.

# Set voltage limits
   set in0_min  1.5 * 0.95
   set in0_max  1.5 * 1.05
   set in1_min  vid * 0.95
   set in1_max  vid * 1.05
   set in2_min  3.3 * 0.95
   set in2_max  3.3 * 1.05
   set in3_min  5.0 * 0.95
   set in3_max  5.0 * 1.05
   set in4_min   12 * 0.95
   set in4_max   12 * 1.05

# Set Fan limits
   set fan1_min 4000

# Set Temp Limits
   set temp1_min 10
   set temp1_max 50
   set temp2_min 10
   set temp2_max 35
   set temp3_min 10
   set temp3_max 35

Sur Windows, le programme Intel Active Monitor donne des valeurs limites beaucoup plus relâchées, qu'on peut imprimer dans un System Information Report. Je transpose ces valeurs dans /etc/sensors.conf :

# Set voltage limits
   set in0_min  0.7
   set in0_max  2.3
   set in1_min  0.725
   set in1_max  2.325
   set in2_min  2.3
   set in2_max  4.3
   set in3_min  4.0
   set in3_max  6.0
   set in4_min  10.8
   set in4_max  13.2

# Set Fan limits
   set fan1_min 0

# Set Temp Limits
   set temp1_min 1
   set temp1_max 70
   set temp2_min 1
   set temp2_max 50
   set temp3_min 1
   set temp3_max 50
17 mai 2006

CDRecord

L'installation de cdrecord n'est guère automatisée. J'ai essayé de lancer comme d'habitude cdrecord -v speed=16 dev=0,0,0 -data ubuntu-6.06-beta2-live-i386.iso mais le résultat était peu engageant :

cdrecord: No write mode specified.
cdrecord: Asuming -tao mode.
cdrecord: Future versions of cdrecord may have different drive dependent defaults.
cdrecord: Continuing in 5 seconds...
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
NOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
      and thus may have bugs that are not present in the original version.
      Please send bug reports and support requests to <cdrtools@packages.debian.org>.
      The original author should not be bothered with problems of this version.

cdrecord: Warning: Running on Linux-2.6.8bla
cdrecord: There are unsettled issues with Linux-2.5 and newer.
cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
cdrecord: Warning: Linux-2.6.8 introduced incompatible interface changes.
cdrecord: Warning: SCSI transport does no longer work for suid root programs.
cdrecord: Warning: if cdrecord fails, try to run it from a root account.
TOC Type: 1 = CD-ROM
scsidev: '0,0,0'
scsibus: 0 target: 0 lun: 0
cdrecord: No such file or directory. Cannot open '/dev/pg0'. Cannot open SCSI driver.
cdrecord: For possible targets try 'cdrecord -scanbus'.
cdrecord: For possible transport specifiers try 'cdrecord dev=help'.
cdrecord: 
cdrecord: For more information, install the cdrtools-doc
cdrecord: package and read /usr/share/doc/cdrecord/README.ATAPI.setup .

Heureusement le fichier /usr/share/doc/cdrecord/README.ATAPI.setup donnait les bons conseils. Comme j'ai maintenant le noyau Linux 2.6, il faut nommer le périphérique un peu différemment. J'ai dû rescanner le bus avec cdrecord dev=ATA: -scanbus. J'ai ajouté les deux entrées suivantes dans le fichier /etc/cdrecord/cdrecord :

CDR_DEVICE=cdrw
cdrw=           ATA:1,0,0       -1      -1      ""

Maintenant je peux graver en lançant simplement cdrecord file.iso. Voici un exemple :

cdrecord ubuntu-6.06-beta2-live-i386.iso
cdrecord: No write mode specified.
cdrecord: Asuming -tao mode.
cdrecord: Future versions of cdrecord may have different drive dependent defaults.
cdrecord: Continuing in 5 seconds...
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
NOTE: this version of cdrecord is an inofficial (modified) release of cdrecord
      and thus may have bugs that are not present in the original version.
      Please send bug reports and support requests to <cdrtools@packages.debian.org>.
      The original author should not be bothered with problems of this version.

cdrecord: Warning: Running on Linux-2.6.8bla
cdrecord: There are unsettled issues with Linux-2.5 and newer.
cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
cdrecord: Warning: Linux-2.6.8 introduced incompatible interface changes.
cdrecord: Warning: SCSI transport does no longer work for suid root programs.
cdrecord: Warning: if cdrecord fails, try to run it from a root account.
scsidev: 'ATA:1,0,0'
devname: 'ATA'
scsibus: 1 target: 0 lun: 0
Warning: Using badly designed ATAPI via /dev/hd* interface.
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
Device type    : Removable CD-ROM
Version        : 0
Response Format: 1
Vendor_info    : 'PLEXTOR '
Identifikation : 'CD-R   PX-320A  '
Revision       : 'X.05'
Device seems to be: Generic mmc2 DVD-ROM.
Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE 
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Starting to write CD/DVD at speed 20 in real TAO mode for single session.
Last chance to quit, starting real write    0 seconds. Operation starts.
Track 01: Total bytes read/written: 649527296/649527296 (317152 sectors).
11 août 2006

VLC et BadAlloc

Depuis quelques temps, à chaque fois que j'essayais de regarder un DVD avec VLC ou un autre programme de vidéo, cela s'arrêtait sur une erreur :

X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  142 (XVideo)
  Minor opcode of failed request:  19 ()
  Serial number of failed request:  74
  Current serial number in output stream:  75
    

Il semble que le problème vient du fait qu'il ne reste pas suffisament de mémoire graphique au module XVideo pour une image de la résolution d'un DVD. En effet, dans le fichier log de XFree86 on peut voir que beaucoup de mémoire est réservée à d'autres choses :

(II) MGA(0): [agp] 12288 kB allocated with handle 0x00000001

(II) MGA(0): [drm] Added 128 65536 byte DMA buffers

(II) MGA(0): [agp] agpTexture size: 2816 kb

(II) MGA(0): Memory manager initialized to (0,0) (1920,1488)
(II) MGA(0): Largest offscreen area available: 1920 x 48
(II) MGA(0): Reserved back buffer at offset 0xae8000
(II) MGA(0): Reserved depth buffer at offset 0x1574000
(II) MGA(0): Reserved 0 kb for textures at offset 0x2000000

        Setting up tile and stipple cache:
                15 128x48 slots
    

Je ne sais pas si tout est pris dans les 32 Mo de ma carte graphique, mais en tout cas 1920 x 48 ne suffit pas à afficher un DVD. Parmi les solutions que j'ai lue il y avait réduire la résolution ou désactiver DRI. Mais finalement j'ai fait plus simple : j'ai demandé à VLC d'utiliser X11 de base au lieu de XVideo.

15 novembre 2006

Redémarrage continuel du modem ADSL Zyxel P650-ME

Dès que mon modem ADSL établit la connexion ADSL, il redémarre. En insistant beaucoup, notamment en envoyant des ping pendant le démarrage, ça finit par marcher. Après recherche sur le Web, le problème vient du serveur NTP. Studerus conseille de désactiver la gestion du temps avec NTP.


© 2006 Marc Mongenet Creative Commons License
Ce document est disponible selon les termes de la Creative Commons Attribution 2.5 License.
Dernière mise à jour et validation le 31 décembre 2017.