Journebian · Configuration de Woody

4 août 2002

Avertissement erroné d'Apsfilter

À chaque impression, Apsfilter ajoute dans le fichier de log /var/spool/lpd/lp/log une ligne d'avertissement indiquant qu'il ne connaît pas l'option yok-yok. Effectivement, c'est le nom de la machine.

Le fonctionnement de tout cela est pour le moins tordu. Nous avons :

  1. lpd lit dans /etc/printcap qu'il existe un filtre (if=) /etc/apsfilter/basedir/bin/apsfilter.
  2. Lors d'une impression, lpd appelle le filtre avec la commande filtre [-c] -wwidth -llength -iindent -n login -h host acct-file.
  3. Mais Apsfilter ne se contente pas de ses paramètres. Il a besoin d'une variable d'environnement $CONTROL (qui serait fournie par LPRng) sans quoi il lit le fichier "$SPOOLDIR/$control_file" dont le nom est donné par le contenu du fichier "$SPOOLDIR/lock".
  4. Apsfilter interprête ensuite les lignes du fichier de contrôle "$SPOOLDIR/$control_file" ainsi :
    case "$line" in
        C*) CLASS="$value" ;;
        H*) HOST="$value"  ;;
        J*) JOB="$value"   ;;
        N*) FNAME="$value" ;;
        P*) USER="$value"  ;;
    esac
    
    

    Selon man lpd, la ligne commençant par C contient Classification. String to be used for the classification line on the burst page.

  5. Et voici un fichier de contrôle "$SPOOLDIR/$control_file" généré par mon système :
    cat /var/spool/lpd/lp/cfA012yok-yok 
    Hyok-yok
    Proot
    Jprintcap
    Cyok-yok
    Lroot
    fdfA012yok-yok
    UdfA012yok-yok
    N/etc/printcap
    
    
  6. Après avoir assigné à $CLASS ce qui suit la ligne commençant par C, Apsfilter essaie de reconnaître dedans diverses options d'impression comme ascii ou tray2. À défaut, il ignore tout ce qui correspond à [A-Z], mais yok-yok ne correspondant à rien, d'où la ligne d'avertissement.

Troublé par ce comportement erroné, je pose la question à linux-leman@alphanet.ch avant de soumettre un éventuel bug.

sources.list

Avant de poursuivre, je mets à jour mon /etc/apt/sources.list afin d'avoir un système à jour. Désormais j'ai les sources suivantes :

# CD `woody'
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-7 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-6 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-5 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-4 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-3 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-2 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-1 (20020718)]/ unstable contrib main non-US/contrib non-US/main

# Security `woody' conseillée par www.debian.ch
deb http://security.debian.org/ woody/updates main contrib non-free
# non-US `woody' conseillée par www.debian.ch
deb http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free
# Swiss mirror for Debian `woody' conseillée par www.debian.ch
deb http://sunsite.cnlab-switch.ch/ftp/mirror/debian/ woody main non-free contrib

Et il y a déjà pas mal à mettre à jour :

The following packages will be upgraded
  glibc-doc libc6 libc6-dev libpng2 libpng3 libssl0.9.6 libssl09 locales mpack xsnow 
10 packages upgraded, 0 newly installed, 0 to remove and 0  not upgraded.
Need to get 13.0MB of archives. After unpacking 60.4kB will be freed.

5 août 2002

Ménage

Afin de libérer un peu /usr et éviter des mises à jour aussi grosses qu'inutiles par modem, je fais encore un peu de place en supprimant les paquets bsdgames, koules, procmail, autoclass, diploma, enlightenment, enlightenment-data, fftw-dev, sgml-tools, linuxdoc-tool, nethack, nethack-x11, rcs, tk8.2-dev, tcl8.2-dev, wzip, xevil et xscavenger. Encore un rmdir /etc/nethack et c'est bon. Je laisse à tout hasard /etc/enlightenment/menus/ quoique son utilité est douteuse.

Un peu déçu de constater que je n'ai gagné que quelques pourcents sur /usr. Mais je ferai de la place en installant le noyau 2.2.20 et virant les sources du 2.2.19 de /usr/local/src.

6 août 2002

Ménage des noyaux

Il est temps de supprimer mon noyau 2.2.18pre21-fastboot ; le 2.2.19 est tout à fait stable et je vais essayer le 2.2.20 qui vient avec Woody. J'ai déjà décompressé les sources du 2.2.20 dans mon compte, elles me prennent 94940 kilo-octets !

Aptitude a très bien nettoyé le noyau 2.2.18pre21-fastboot, ses modules, sa documentation. En revanche il a laissé le lien /vmlinuz.old sur rien du tout. J'ai lancé LILO en prenant garde de commenter le label LinuxOLD.

Noyau 2.2.20

Avant d'essayer un noyau 2.4, je tente le dernier noyau 2.2 en date car il est assez récent. D'abord j'installe fakeroot pour pouvoir suivre fidèlement la documentation Debian. Ensuite :

  1. cp /usr/local/src/Linux/kernel-source-2.2.19/.config . car je n'ai rien changé dans mon PC ;
  2. make oldconfig, très pratique, 2 petites questions et tout le reste a l'air bien récupéré ;
  3. make-kpkg clean
  4. fakeroot make-kpkg --revision=marc.1.0 kernel_image produit ../kernel-image-2.2.20_marc.1.0_i386.deb ;
  5. en tant que root, dpkg -i kernel-image-2.2.20_marc.1.0_i386.deb ;
  6. enfin lilo -v après avoir spécifié les deux labels :
    image=/vmlinuz
            label=Linux
            read-only
            append="advansys="
    #       restricted
            alias=1
    
    

    et

    image=/vmlinuz.old
            label=LinuxOLD
            read-only
            append="advansys="
    #       restricted
            alias=2
    
    

    Et maintenant, le moment de vérité… Parfait, comme le montre dmesg >dmesg_2.2.20.txt.

CD audio

Le lecteur CD de ma PlayStation rend lentement l'âme depuis des années. Mais je n'ai encore jamais essayé de lire un CD audio sur mon lecteur de CD-ROM. Je ne sais même pas quelle application utiliser. À tout hasard, j'installe cdcd et libcdaudio0.

Je lance cdcd, il me demande si /dev/cdrom correspond bien à mon CD-ROM, puis si je suis connecté à un réseau (no). Malheureusement je n'ai pas le droit d'accéder au lecteur de CD en tant que marc. En tant que root cependant, c'est bon.

Pour laisser une fois pour toute chacun(e) accéder aux CD je pourrais me contenter d'un chmod o+rw /dev/scd0. Mais je vais suivre la méthode orthodoxe et mettre les utilisateurs concernés dans le groupe cdrom.

8 août 2002

De la place sur /usr

J'ai un répertoire /usr/local/src/Linux qui contient les .deb des noyaux que j'ai produit et les sources du noyau 2.2.19. Je déplace les .deb des kernel-image dans mon compte et efface les sources, 100 Mo de gagné ! Et encore 15 Mo en purgeant kernel-source-2.2.19.

Je pourrais encore gagner 250 Mo en virant Star Office, c'est à considérer.

The Gimp 1.2

Histoire de remplir un peu la place libérée, j'installe les paquets gimp1.2 et gimp1.2-print, ce qui ajoute encore libgimp1.2, libgtkxmhtml1 et gimpprint-locales. Le fonctionnement me semble parfait.

Tests d'éditeurs

Je cherche un éditeur sympa pour éditer mes fichiers HTML. Emacs et son mode SGML sont vraiment beaucoup trop lents. aee est rapide, mais trop simple et avec plein de nouveaux raccourcis à apprendre. Je ne vois même pas du premier coup comment annuler la dernière opération. Tant pis pour lui, je jette.

august est plus complet en revanche. C'est un éditeur HTML spécialisé. Il est plus rapide qu'Emacs, mais encore trop lent. En plus sa coloration syntaxique est douteuse. Et surtout il ne me semble disposer que de fonctions inutiles qui pondent du mauvais HTML. Et c'est effectivement encore une version bêta, donc hop poubelle.

Par ordre alphabétique, je tombe sur beaver. Basé sur GTK+, il a une interface intéressante et des raccourcis claviers auquels je semble déjà habitué. Mais la coloration syntaxique est ratée. Et surtout, faute capitale pour un éditeur, tellement lent qu'il continue à effacer après que j'aie relâché la touche d'effacement. Sans compter des clignotements de rafraîchissement particulièrement pénibles. Tant pis. Peut-être la version 1.0 vaudra-t-elle la peine d'être ré-évaluée.

Tiens, j'arrive sur Emacs. Il existe un mode CSS, intéressant, j'installe donc le paquet css-mode. Ce qui installe aussi un paquet html-helper-mode. Aaaahhh, voilà qui semble parfait. Vraiment très très bien. Après avoir redémarré Emacs, je me retrouve dans un mode HTML nettement plus rapide que le mode SGML. Avec une meilleure coloration syntaxique en prime. Et le mode CSS est aussi sympa. Tout est au mieux.

Je pourrais remplacer mon Emacs 20.7.2 par Emacs 21.2, mais ce n'est plus si pressant maintenant que je peux enfin éditer de gros fichiers HTML sans poireauter sur les scripts d'Emacs.

Tiens, d'après ce que j'ai lu sur le Web, avec Emacs 21, taper Delete effacerait le caractère sous le curseur. Finalement je dois installer Emacs 21 au plus vite ! Et plus, des lignes vides ne seront plus silencieusement ajoutées en fin de fichier en utilisant la touche flèche en bas. Que des avantages.

Que des avantages, sauf l'indentation automatique. Heureusement je peux changer cela avec le menu Help->Customize->Apropos Options...->indent. Je n'ai qu'à mettre 1 au lieu de nil dans le réglage suivant et sauver pour toutes les sessions (dans mon .emacs).

Html Helper Never Indent: [Hide] nil
   [State]: you have edited the value as text, but you have not set the option.
If not nil, the indentation code for html-helper is turned off.

10 août 2002

The Gimp, utilisation

J'ai besoin d'utiliser un peu sérieusement The Gimp. Pour cela j'installe quelques paquets supplémentaires : gimp-manual qui prend dans les 20 Mo, gimp1.2-nonfree car j'ai besoin de sauver en GIF et freefont pour avoir le choix. L'installation de gimp1.2-nonfree cause une connexion à un serveur sur Internet, celle de freefont un petit message d'avertissement : /usr/sbin/update-fonts-scale: warning: absolute path usr/lib/X11/fonts/Type1 was provided.

Pratiquement aucune des polices de freefont ne semble avoir un répertoire ISO-8859-1 complet, c'est assez étonnant. Je comprend cependant mieux pourquoi elle ne sont pas installées par défaut. Je tente cependant une utilisation dans Mozilla avec freefont-slogan-iso8859-1 comme police cursive (un peu trop petite pour être lisible en taille par défaut) et freefont-parkavenue-iso8859-1 comme police fantaisie. Ces polices n'ont généralement pas de variation grasse ou italique, pas terrible. Il est probable que je désinstalle tout ça le jour où j'ajoute des polices True Type.

11 août 2002

Je suis nul en dessin et à mon grand désarroi autant avec The Gimp qu'avec les autres programme (MS Paint, Deluxe Paint…) En plus je trouve le fonctionnement de ces programmes peu intuitif. The Gimp 1.2 ne fait malheureusement pas du tout exception. Il y a pas mal de trucs qui m'échappent. Un bon menu contextuel aurait sauvé ma journée, mais non, y'a pas.

Clavier & police dans XTerm & Rxvt

Depuis que je suis passé à Woody, mon XTerm utilise une police italique. C'est intéressant, mais manque tout de même un peu de clarté. Je vais donc d'abord rétablir une bonne police dans XTerm, ensuite autoriser les caractères 8 bits. D'abord les polices, et quitte à s'occuper des polices, je vais aussi chercher pourquoi Rxvt utilise une police grasse.

xrdb -query -all |grep font
*VT100.font:    -misc-fixed-medium-*-semicondensed-*-13-*-*-*-*-*-iso8859-1
*font:  -misc-fixed-*-*-*-*-13-*-*-*-*-*-iso8859-1
*fontList:      -*-lucida-medium-r-*-*-12-*-*-*-*-*-*-*
XMotd*quit.font:        -*-times-bold-r-*-*-*-240-*
emacs.font:     -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1

Pour XTerm, c'est *VT100.font qui s'applique. Grâce à xfontsel -pattern "-misc-fixed-medium-*-semicondensed-*-13-*-*-*-*-*-iso8859-1" je remarque qu'il existe une variante italique qui est prise en priorité. Facile à corriger, tout est défini dans /etc/X11/Xresources/xterm. Je change : *VT100.font: -misc-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-iso8859-1. J'en profite pour ajouter quelques lignes de défilement : *VT100.saveLines: 8191.

Rxvt de son côté ne reconnaît que les classes de ressource XTerm et Rxvt. Ma classe VT100 semble donc totalement inutile. Je modifie donc /etc/X11/Xresources/xterm pour que les ressources font, pointerColor, visualBell et saveLines. Ces ressources de XTerm semblent également bonnes pour XTerm et Rxvt. Du coup, autant utiliser Rxvt, il occupe moins de mémoire :

update-alternatives --config x-terminal-emulator

There are 4 programs which provide `x-terminal-emulator'.

  Selection    Command
-----------------------------------------------
      1        /usr/bin/rxvt-xterm
      2        /usr/bin/rxvt-xpm
*+    3        /usr/X11R6/bin/uxterm
      4        /usr/X11R6/bin/xterm

Enter to keep the default[*], or type selection number: 1
Using `/usr/bin/rxvt-xterm' to provide `x-terminal-emulator'.

Pour ce qui est des caractères 8 bits, je peux les afficher (cat 3.html) dans la console comme avec XTerm. L'entrée n'est en revanche possible qu'avec XTerm et encore pas directement dans bash. mais par exemple dans cat >toto. Peut-être suffit-il de s'occuper de /etc/inputrc ?

# To allow the use of 8bit-characters like the german umlauts, comment out
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off

set convert-meta off règle effectivement tous les problèmes avec XTerm, mais ça n'a aucun effet sur la console. Je soupçonne une mauvaise configuration de clavier.

Clavier & police noyau (et console)

D'après /etc/init.d/keymap.sh, c'est /etc/console/boottime.kmap.gz qui est chargé par loadkeys au démarrage. Le fichier /usr/share/doc/console-data/README.Debian donne des informations très intéressantes sur les contraintes du chargement du clavier et explique pourquoi il faut utiliser install-keymap pour changer de clavier. Pour l'instant j'ai bien un clavier suisse-romand, mais dont seuls les caractères ASCII sont définis.

En relisant la capture d'installation je me rends compte que j'ai oublié le dialogue de configuration de console-common. J'avais choisi Select keymap from arch list mais juste après il y a eu un message Imported boot-time keymap from old console-tools settings. Plus tard, lors du setup de console-data un autre message notable est apparu : No default for console-data/keymap/qwertz/swiss/variant - picking one. Si le premier clavier du script Perl /usr/share/console/lists/keymaps/console-data.keymaps a été pris, alors il s'agit sans doute de /usr/share/keymaps/i386/qwertz/fr_CH.kmap.gz qui semble effectivement être un clavier suisse-romand purement ASCII.

Un petit test dans la console avec loadkeys fr_CH-latin1 est convaincant, j'essaie install-keymap fr_CH-latin1. Au niveau des claviers, c'est presque parfait. En fait je ne vois plus que deux défauts dans le clavier du noyau :

  1. Alt Gr-1 ne produit rien au lieu de | (code ASCII 124) comme avec X Window. Pour obtenir le caractère de code ASCII 124 il faut taper Alt Gr-7, même si cela affiche ¦ qui est le glyphe du caractère de code ISO-8859-1 166. Il n'y a pas moyen de taper le caractère de code ISO-8859-1 166. C'est un peu confus. À noter cependant que cette confusion n'est pas propre à Debian, ni même à Linux…
  2. La touche Logo n'agit pas comme touche Compose. En fait je n'ai même pas trouvé une touche Compose.

Enfin, la police de la console est manifestement celle de la ROM de carte graphique. En effet, aucune trace de setfont dans les scripts de démarrage. En outre l'affichage des caractères correspond exactement avec la description donnée dans le courrier de Pablo Sartxaga repris dans le French-HOWTO sur Freenix.

Tiens, en fait je découvre en lisant le Francophones-HOWTO (/usr/share/doc/HOWTO/en-txt/Francophones-HOWTO.gz) que setfont a été remplacé par consolechars. Or consolechars est utilisé par /etc/init.d/console-screen.sh qui utilise la configuration (actuellement vide) de /etc/console-tools/config.

12 août 2002

Locales

J'ai encore du travail de localisation. Ainsi j'ai pu créer un répertoire avec mkdir àéàé. Mais ls est incapable de m'afficher ces caractères :

ls -ld àéàé
drwxrwsr-x    2 marc     marc         4096 Aug 12 22:43 ????

Mozilla en revanche arrive à me les afficher.

D'après la capture d'installation, je dois ajouter les locales que je veux (mais listées dans /usr/share/i18n/SUPPORTED) dans /etc/locale.gen puis lancer locale-gen. Mais en fait dpkg-reconfigure locales devrait me permettre de faire tout cela de manière guidée. Je sélectionne donc fr_CH ISO-8859-1 dans l'interface de sélection des locales à générer, mais laisse C comme locale par défaut du système. Et voilà, fr_CH ISO-8859-1 a été ajouté à /etc/locale.gen puis localedef lancé.

Petite vérification :

23:30:00 marc /home/marc
export LC_ALL="fr_CH"
23:31:04 marc /home/marc
ls -ld àéàé
drwxrwsr-x    2 marc     marc         4096 aoû 12 22:43 àéàé
23:33:56 marc /home/marc
ls "y'a pas"
ls: y'a pas: Aucun fichier ou répertoire de ce type
23:34:02 marc /home/marc

C'est tellement beau que je vais en faire la localisation par défaut du système. Il semble que dpkg-reconfigure ajoute simplement LANG=fr_CH dans /etc/environment. Je relance le tout et, ô joie, tout fonctionne encore mieux ; c'est-à-dire que less est capable d'afficher tous les caractères ISO-8859-1 et Mozilla a aussi un titre de fenêtre correct.

13 août 2002

Installation de Microsoft® Windows® XP Édition familiale

Il faut s'avoir s'ouvrir à d'autres cultures. :-) En fait il s'agit d'une réinstallation propre après avoir nettoyé le disque à grand coup de mke2fs /dev/hda1.

L'installation est remarquablement simple. Sauf bien sûr, si l'on veut vérifier le contrat de licence utilisateur final… Bon, comme je ne veux pas m'engager pour 10 ans de légion étrangère sans m'en rendre compte, je vérifie. Quelques limitations intéressantes :

Le partitionnement n'utilise que 39072 Mo sur 39080. 8 Mo sont réservés par Windows XP. L'interface est en mode texte, mais intuitive, enr evanche le clavier utilisé et AZERTY, pas bien.

Tout (carte son, graphique, mère, modem, souris) est reconnu sans question, pas mal du tout. La pile de mises à jour semble d'une taille comparable à Debian, peut-être un peu plus grande. Surtout les patches sont plus gros.

15 août 2002

chbg

Lors du passage à Woody chbg a été perdu. J'installe une toute nouvelle version (1.5 au lieu de 0.8). Désormais il y a une dépendance sur GTK+ qui cause en plus l'installation de libgdk-pixbuf2.

18 août 2002

Emacs 21

Le Saint-Graal de la configuration étant à portée de main, j'installe emacs21. L'installation produit de nombreux messages, mais en gros ça a l'air OK.

La police est en gras, la fenêtre trop large, les menus trop volumineux, mais les touches Backspace et Delete font ce pour quoi elles ont été créés ! Le reste n'est que détail.

Pour la police de caractère, il s'agit d'un résidu de problème dans mes ressources X. La police par défaut (*font) était -misc-fixed-*-*-*-*-13-*-*-*-*-*-iso8859-1, je la remplace par -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1. Bizarrement, Emacs 21 ignore la ressource emacs.font. Quant à l'aide configuration, bof, difficile de s'y retrouver, de comprendre le vocabulaire employé, ça reste Emacs quoi.

19 août 2002

Optimisation des connexions par modem

Les connexions à Internet prennent trop de temps. Je peux l'observer dans xconsole :

Aug 19 21:08:39 yok-yok diald[175]: Trigger: udp       192.168.0.1/1030   195.129.112.101/53   
Aug 19 21:08:39 yok-yok diald[175]: Calling site 212.53.96.247 
Aug 19 21:08:40 yok-yok connect: Initializing Modem
Aug 19 21:08:40 yok-yok chat[706]: timeout set to 10 seconds
Aug 19 21:08:40 yok-yok chat[706]: expect (OK)
Aug 19 21:08:50 yok-yok chat[706]: alarm
Aug 19 21:08:50 yok-yok chat[706]: send (AT^M)
Aug 19 21:08:50 yok-yok chat[706]: expect (OK)
Aug 19 21:08:50 yok-yok chat[706]: AT^M^M
Aug 19 21:08:50 yok-yok chat[706]: OK
Aug 19 21:08:50 yok-yok chat[706]:  -- got it 
Aug 19 21:08:50 yok-yok chat[706]: send (ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0^M)
Aug 19 21:08:51 yok-yok chat[706]: timeout set to 10 seconds
Aug 19 21:08:51 yok-yok chat[706]: expect (OK)
Aug 19 21:08:51 yok-yok chat[706]: ^M
Aug 19 21:08:51 yok-yok chat[706]: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0^M^M
Aug 19 21:08:51 yok-yok chat[706]: OK
Aug 19 21:08:51 yok-yok chat[706]:  -- got it 
Aug 19 21:08:51 yok-yok chat[706]: send (^M)
Aug 19 21:08:51 yok-yok connect: Dialing system
Aug 19 21:08:51 yok-yok chat[708]: timeout set to 60 seconds
Aug 19 21:08:51 yok-yok chat[708]: abort on (NO CARRIER)
Aug 19 21:08:51 yok-yok chat[708]: abort on (BUSY)
Aug 19 21:08:51 yok-yok chat[708]: abort on (NO DIALTONE)
Aug 19 21:08:51 yok-yok chat[708]: abort on (ERROR)
Aug 19 21:08:51 yok-yok chat[708]: send (ATDT10781015015015^M)
Aug 19 21:08:52 yok-yok chat[708]: expect (CONNECT)

La commande coupable se trouve dans /etc/diald/connect, il s'agit de chat $DEBUG TIMEOUT 10 OK-AT-OK "$MODEM_INIT" TIMEOUT 10 OK "". Il suffit de tranformer cela en chat $DEBUG "" AT TIMEOUT 3 OK "$MODEM_INIT" TIMEOUT 3 OK pour que le modem compose le numéro moins de 3 secondes après que diald ait détecté du trafic.

Reste que la phase de négociation entre les modems dure 30 secondes, tout comme la phase de démarrage de PPP. Bref, c'est encore trop lent. Mais le processus est complexe, à commencer par le script /etc/init.d/diald qui cherche un nom de provider dans /etc/diald/diald.provider puis utilise ce nom pour charger $DIALD_CACHE/options.$PROVIDER qui lui-même inclus /etc/diald/diald.defaults, sauf si le nom du provider était old-config (ce qui est mon cas) auquel cas c'est /etc/diald/diald.options qui est donné à diald comme fichier de configuration. Enfin, on peut encore noter que diald lit pour commencer dans tous les cas /etc/diald/diald.defs. Ce qui me laisse un fichier /etc/diald/diald.conf inutile. Je le renomme en /etc/diald/diald.conf.cruft pour vérifier qu'il n'a réellement aucun usage.

Un autre défaut de la lenteur de la connexion et que PPP interrompt parfois l'attente par LCP: timeout sending Config-Requests. J'essaie de le rendre plus patient en ajoutant la ligne lcp-max-configure 20 dans /etc/ppp/options.

20 août 2002

GCC 3.2 & patch

Les versions de GCC se succèdent rapidement. Afin d'éviter de tout télécharger à chaque fois, je surmonte ma flemme et décide d'apprendre à utiliser patch. Après quelques ratages je découvre l'option -p1. Ce qui me donne pour passer de GCC 3.1 à GCC 3.2 :

  1. tar xvzf ~/DL/gcc-core-3.1.tar.gz
  2. tar xvzf ~/DL/gcc-g++-3.1.tar.gz
  3. cd gcc-3.1
  4. zcat ~/DL/gcc-core-3.1-3.1.1.diff.gz |patch -p1
  5. zcat ~/DL/gcc-g++-3.1-3.1.1.diff.gz |patch -p1
  6. zcat ~/DL/gcc-core-3.1.1-3.2.diff.gz |patch -p1
  7. zcat ~/DL/gcc-g++-3.1.1-3.2.diff.gz |patch -p1

Ensuite je fais un répertoire gcc-3.2-build, un répertoire ~/bin/gcc-3.2, je lance ../gcc-3.2/configure --prefix=/home/marc/bin/gcc-3.2/ --enable-languages=c,c++ --enable-version-specific-runtime-libs --with-dwarf2, puis make bootstrap. Et je vais me coucher…:-) make install et voilà.

3 septembre 2002

De la place

Il existe sur mon PC un certain nombre de paquets dont je me demande comment ils sont arrivés ici. Et quelques autres que je n'utilise jamais. 20 Mo en tout : ghostview, grace, netcdfg3, octave, octave-ci, octave-doc, octave-htmldoc, octave2.0, syslinux, wmaker, xchat-common. Tout se désinstalle bien, à un rm -r /usr/share/octave/ près.

4 septembre 2002

Comme Emacs 21 va bien, je désinstalle Emacs 20 : aucun problème apparent et beaucoup de place libérée.

Blocage complet du système

J'ai dû utiliser le bouton RESET du PC pour débloquer le système. Ce n'est pas la première fois de l'année, ça commence à m'inquiéter. Peut-être s'agissait-il de X Window, difficile à dire. Il me faudrait un accès réseau pour y voir plus clair. J'ai toutefois noté un accès inattendu au lecteur de CD après quelques dizaines de secondes de blocage.

5 septembre 2002

Toujours plus de place

blt8.0, blt-common, libfnlib0, fnlib-data, libwraster2, hermes1, libwraster1, libungif3g, vflib2, xmhtml1 : joli tas de bibliothèques inutiles.

Trois versions de Tcl/Tk sont installées : 8.0, 8.2 et 8.3. Tcl ne m'intéresse pas, je ne garde que la version 8.3.

Il y a aussi quelques paquets obsolètes à virer : ae, gnome-audio, gnome-faq, gnome-users-guide-en, gnotepad+-help, ldp-ligs, libgimp1, libgtk1, libguile6, libltdl0-dev, libltdl0, libncurses4, libpcre2, netpbm1. Aptitude donne cependant quelques signes de faiblesse. Je voulais aussi remplacer lsof 2.2 par le 4, mais après l'effacement des paquets précédents j'ai eu un message d'erreur (problème avec un sous-processus)… En fait sûrement dû au fait que j'aurais dû explicitement effacer lsof 2.2 d'abord.

Configuration de Exim

Je lance eximconfig. Je choisis la configuration suivante :

 (4) Local delivery only: You are not on a network.  Mail for local users 
     is delivered.

Je redirige les courriers administratif (pour root ou postmaster) vers marc. Il semble que cette opération va écraser mon /etc/aliases qui contient pour l'instant la ligne webmaster: root.

J'apprends en outre qu'en éditant /etc/email-addresses je peux donner une adresse spécifique pour le courrier sortant, les domaines yok-yok et localhost étant reconnus comme local.

Sur ce la configuration est terminée. Elle me génère un fichier /etc/aliases redirigeant sur root à peu près tous les utilisateurs systèmes de ma machine, dont webmaster. Avec root redirigé sur marc c'est parfait.

Je teste en envoyant d'un utilisateur local à un autre… Premier problème, un accès réseau active le modem. En revanche le courrier arrive bien à l'autre utilisateur local avec tous les champs joliment complétés. Second problème, le modem est à nouveau activé après quelques minutes, sans raison apparente. Peut-être car le premier essai a échoué ?

Dans /etc/exim/exim.conf je trouve la ligne host_lookup = * que je commente. D'après /var/log/syslog, c'est cron qui lance régulièrement Exim. Je commente encore host_accept_relay = 127.0.0.1 : ::::1 et host_auth_accept_relay = * par sécurité. Enfin j'ajoute dans /etc/email-addresses la ligne marc: Marc.Mongenet@freesurf.ch qui est censée être utilisée par une règle de transformation d'adresse pour les courriers sortant.

J'ai trouvé un défaut aux noms d'utilisateur avec majuscules : Exim les converti en minuscule et n'arrive ensuite plus à envoyer le courrier.

12 septembre 2002

Exim cause un appel au serveur DNS pour résoudre des noms se trouvant dans /etc/hosts. Telnet aussi, mais pas ping. J'ai fait un petit programme utilisant struct hostent *gethostbyname(const char *name); et il résoud aussi les noms locaux (yok-yok et localhost) localement, ce qui paraît normal.

Le plus simple est sans doute de voir en détail comment telnet résoud les noms de domaine. Je remets dans /etc/apt/sources.list les lignes pour les sources Woody, puis apt-get source telnet.

Malgré mes efforts, je n'arrive pas à dupliquer le comportement de telnet. Même en appelant getaddrinfo() puis getnameinfo() je ne cause pas d'accès au serveur DNS. Heureusement je vois avec Google que mon cas n'est pas unique.

Le fin mot de l'histoire est que de nombreux programmes comme Telnet, Exim ou SSH causent une résolution de nom pour IPv6 en plus de IPv4. Or mon fichier /etc/hosts ne contenait pas d'adresse IPv6 pour yok-yok ou localhost, d'où un accès au serveur DNS avant de se rabattre sur l'adresse IPv4 localement définie.

Je me suis contenté de compléter l'entrée ::1 ip6-localhost ip6-loopback avec yok-yok localhost pour résoudre ce problème.

13 septembre 2002

Après encore quelques recherches je suis arrivé à la conclusion qu'il s'agit d'un problème connu de la libc : getaddrinfo() does not respect nsswitch.conf. Il semble que la résolution de nom essaie d'abord toutes les sources d'information (fichiers et DNS) pour IPv6 avant d'essayer IPv4.

Configurer Exim pour qu'il envoie des messages aussi à l'extérieur demande encore un peu de configuration. Mais en reprenant l'exemple de la documentation ça marche avec ce fichier exim.conf.

En revanche les messages que j'ai tenté d'envoyer avant d'avoir la bonne configuration restent bloqués (frozen). En effet, l'envoi à l'extérieur était impossible et le retour aussi car la règle de réécriture donne une adresse de retour également à l'extérieur ! Pour les supprimer je suis obligé d'être root. La commande mailq donne la liste des messages en attente avec leur identificateur. La commande exim -Mrm identificateurs… permet d'effacer ces messages.

Mozilla 1.0.1

Il est enfin sorti, j'espère qu'il consommera un peu moins de mémoire. L'installation se fait en tout cas sans problème. Le DOM Inspector fonctionne bien. Le JavaScript Debugger semble aussi OK, quoique très lent à démarrer. Je vais tester les outils de gestion d'images et de cookies. Pour autant que XFree86 cesse de se bloquer…

14 septembre 2002

logrotate et Apache inactif

Depuis qu'Apache n'est plus automatiquement lancé au démarrage, logrotate m'envoie des messages d'erreur par courrier car il n'arrive plus à recharger la configuration d'Apache. Ça me remplit inutilement ma boîte aux lettres, mais je ne vois pas bien comment l'éviter. À tout hasard, j'efface tous les logs de /var/log/apache.

26 septembre 2002

Linux VM tuning

Avec Mozilla et Emacs chargés, mon système a une insupportable tendance à swapper. Je me risque donc à utiliser sysctl pour changer les valeurs de la VM. Je mets déjà à zéro le paramètre pagetable_cache dont la documentation du noyau dit qu'il n'est utile que sur un système SMP : sysctl -w vm/pagetable_cache="0 0". Ça a l'air de toujours bien fonctionner, je sauve cela dans /etc/sysctl.conf

C'est étonnant, avec Mozilla, Emacs et StarOffice chargés, 40 Mo de RAM sont consacrés à la cache disque. D'après la documentation cependant, ceci signifie simplement que les données swappées sont cachées. Un peu tordu, mais bon…

J'essaie encore d'optimiser les gros swaps en doublant les valeurs tries_base et swap_cluster de kswapd : vm/kswapd = 1024 32 64

10 octobre 2002

Il me semble que c'est encore plus lent, enfin moins interactif, après avoir doublé ces valeurs. Je vais essayer l'inverse : sysctl -w vm/kswapd="256 32 16". Ça a l'air pas mal. Je divise encore un peu pour voir : sysctl -w vm/kswapd="256 32 8". Oui, je crois que c'est encore mieux. Je sauve dans mon sysctl.conf.

5 novembre 2002

Blocage du système

Je suis sur une piste. Lorsqu'un CD audio se trouve dans le lecteur, alors le job lancé par anacron accède au CD et bloque tout, ou du moins il y a un très (trop) long timeout SCSI. Je ne vois pas encore comment ces jobs arrivent à accéder au lecteur de CD-ROM, mais il y a un problème.

14 novembre 2002

Ethertap

diald essaie de trouver une interface tapn avant de se rabattre sur SLIP. Je vais compiler un module Ethertap pour éviter cela. En plus mon /var/log/daemon.log ne sera plus encombré de modprobe: modprobe: Can't locate module tap0.

Je n'ai pas trouvé de moyen rapide d'ajouter un module ; j'ai dû tout recompiler à cause du make-kpkg clean. Mais après redémarrage, tout va bien selon lsmod :

Module                  Size  Used by    
tap0                    2368   1 (autoclean)

pppd

Pour une raison inconnue pppd semble essayer d'installer un pass-filter dans le noyau. D'après le manuel ce n'est possible que sur NetBSD et effectivement c'est impossible sur mon noyau.

Une autre erreur que je pourrais en revanche corriger est la tentative de créer un ARP proxy. Le fichier /etc/ppp/options contient l'option proxyarp. Je la commente et le problème est réglé.

Encore un point obscur ; au lancement de pppd modprobe émet le message Can't locate module char-major-108 qui d'après /etc/modules.conf (venant de /etc/modutils/ppp) correspond au module ppp_generic, qui n'existe pas. Mais comme le module ppp est chargé, ce n'est sans doute qu'un essai sans importance. Voici ce que donne lsmod une fois PPP chargé :

Module                  Size  Used by    
ppp_deflate            39456   0  (autoclean)
bsd_comp                3936   0  (autoclean)
ppp                    20032   0  (autoclean) [ppp_deflate bsd_comp]
slhc                    4304   0  (autoclean) [ppp]
tap0                    2368   1  (autoclean)
16 novembre 2002

Démarrage d'Apache

Après chaque mise à jour d'Apache, ce dernier est à nouveau lancé automatiquement. update-rc.d -f apache remove n'est manifestement pas la bonne méthode pour conserver un Apache inactif. En effet, le script apache.postinst lance update-rc.d apache defaults 91 20. Cela recrée tous les liens, sauf si j'en laisse au moins un, d'après man update-rc.d. Je supprime donc manuellement les S91apache de rc2.d, rc3.d, rc4.d et rc5.d et laisse les K20apache.

21 novembre 2002

SCSI et interactivité

Mes réglages de la VM n'ont rien donné de satisfaisant. Mais un un extrait de Kernel Traffic m'a mis sur la voie : la queue de commandes SCSI. Je l'ai réduite de 32 à 4 et il me semble que c'est devenu plus interactif. Quoique peut-être un peu plus lent aussi. Je vais mesurer…

22 novembre 2002

Sans avoir mesuré, je passe de 4 à 8 car les performances me semblaient trop souffrir de l'interactivité.

28 novembre 2002

Plantée SCSI et ventilateur du CPU

J'ai essuyé une plantée majeure du sous-système SCSI avec force messages sur la console. Ce qui est tout à fait regrettable c'est qu'ils n'ont été loggué nulle part. Enfin ça a commencé par un reset SCSI du module Advansys puis un mélange d'erreurs d'accès aux disques et d'erreur EXT2.

En vérifiant la machine j'ai vu que le ventilateur du CPU ne tournait plus. Pour l'instant je mets la plantée sur le compte du matériel. J'ai réussi à relancer le ventilateur, mais il tourne irrégulièrement. Après quelques démarrages ça a l'air d'aller mieux cependant. En outre le système de fichiers ne semble souffrir d'aucun dommage.

J'ai également profité des redémarrages pour redescendre la taille de la queue de commandes SCSI par périphérique de 8 à 6.

30 novembre 2002

fstab

J'essaie de résoudre les problèmes de blocage de la machine qui semblent en rapport avec le CD-ROM. J'ai déjà trouvé que scsi_eh_0 est un thread du noyau, eh signifiant error handler et 0 étant le numéro d'hôte.

man mount m'a aussi appris que je pouvais autoriser tout utilisateur à démonter ce qui a été monter par un autre utilisateur, à condition d'utiliser l'option users au lieu de user. Cela m'intéresse, je teste… ça marche.

J'ai aussi trouvé ce qui me forçait d'être root la première fois que je montais une disquette DOS. Sans l'option -t réservée à root, mount essaie automatiquement un certain nombre de types de systèmes fichiers, ceux de Microsoft non compris. Ensuite il essaie ceux listés dans /etc/filesystems puis ceux listés dans /proc/filesystems. Or je n'avais pas de /etc/filesystems ni système de fichier DOS monté par défaut. J'ai donc créé ce qu'il fallait :

cat >/etc/filesystems
vfat
msdos

13 décembre 2002

Minolta DiMAGE F100 et USB

Deux grandes nouveautés : un appareil photo numérique Minolta DiMAGE F100 et la première utilisation (après 5 ans !) de mon port USB. J'ai ajouté les modules usb-uhci, usb-storage et usbcore. J'ai aussi installé gphoto2 pour rien et des outils USB, notamment pour avoir /sbin/hotplug.

Pour accéder à l'appareil j'ai absolument tout fait à la main : modprobe usb-storage, modprobe usb-uhci, mount -t usbdevfs /proc/bus/usb et finalement mount -t vfat /dev/sdd1 /f100. Le dernier mount m'a posé des problèmes. Je n'étais pas certain de l'adresse SCSI à utiliser et je crois que lorsque l'appareil se mets en veille il se déconnecte. En outre usb-uhci est indiqué comme inutilisé par lsmod mais il semble nécessaire.

15 décembre 2002

La commande lsmod m'indique que les trois modules USB sont chargés. Le usbdevfs est aussi monté automatiquement, par le script /etc/hotplug/usb.rc du paquet hotplug d'après ce que je vois.

Il faut cependant que je recompile les modules USB sans les messages de debug, car mes logs se remplissent un peu vite. J'ai aussi rencontré un seul problème sérieux : un fichier JPEG incomplet. J'espère que ça ne se reproduira pas, car cet avertissement est loggué : WARNING: USB Mass Storage data integrity not assured. Je supprime aussi gphoto2.

16 décembre 2002

Tout va bien comme le montre le résultat de dmesg. Et voici les messages de /var/log/syslog lorsque je branche puis débranche l'appareil :

Dec 16 14:31:32 yok-yok kernel: hub.c: USB new device connect on bus1/2, assigned device number 2
Dec 16 14:31:32 yok-yok kernel: usb.c: USB new device connect, assigned device number 2
Dec 16 14:31:32 yok-yok kernel: usb.c: USB device 2 (vend/prod 0x686/0x400c) is not claimed by any active driver.
Dec 16 14:31:32 yok-yok /etc/hotplug/usb.agent: Setup usb-storage for USB product 686/400c/0100
Dec 16 14:31:32 yok-yok kernel: usb.c: registered new driver usb-storage
Dec 16 14:31:32 yok-yok kernel: scsi1 : SCSI emulation for USB Mass Storage devices
Dec 16 14:31:32 yok-yok kernel: scsi : 2 hosts.
Dec 16 14:31:32 yok-yok kernel: usb-uhci.c: interrupt, status 3, frame# 643
Dec 16 14:31:33 yok-yok kernel:   Vendor: MINOLTA   Model: DiMAGE F100       Rev: 1.00
Dec 16 14:31:33 yok-yok kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02
Dec 16 14:31:33 yok-yok kernel: Detected scsi removable disk sdd at scsi1, channel 0, id 0, lun 0
Dec 16 14:31:33 yok-yok kernel: SCSI device sdd: hdwr sector= 512 bytes. Sectors= 29120 [14 MB] [0.0 GB]
Dec 16 14:31:33 yok-yok kernel: usb-uhci.c: interrupt, status 3, frame# 676
Dec 16 14:31:33 yok-yok kernel: sdd: Write Protect is off
Dec 16 14:31:33 yok-yok kernel:  sdd: sdd1
Dec 16 14:31:33 yok-yok kernel: WARNING: USB Mass Storage data integrity not assured
Dec 16 14:31:33 yok-yok kernel: USB Mass Storage device found at 2
Dec 16 14:31:33 yok-yok kernel: USB Mass Storage support registered.
Dec 16 14:31:33 yok-yok /etc/hotplug/usb.agent: missing kernel or user mode driver usb-storage 
Dec 16 14:35:23 yok-yok kernel: usb.c: USB disconnect on device 2

Cette manie de Linux de passer lar le sous-système SCSI est tout de même étonnante. Mais il me semble que c'est en cours de nettoyage dans le noyau 2.5.

19 décembre 2002

Connexion ADSL avec un ZyXEL Prestige 650ME-11

J'ai reçu mon modem ADSL. Malgré un petit empilement de rallonges et adaptateurs sur ma prise de téléphone, j'arrive toujours à téléphoner, la led DSL du modem est allumée, j'arrive à configurer le modem par son interface Web et avec ifconfig et route j'arrive même à pinguer une adresse qui doit être à l'autre bout de la ligne. Mais pas moyen d'aller plus loin.

Je suppose que je dois m'inscrire chez Tele2 car ils m'ont envoyé un CD d'installation avec un code d'identification. Mais uniquement pour Windows. Je sens que je vais enrichir la hotline de Tele2

J'ai aussi installé un client DHCP, mais je ne comprends pas très bien comment il fonctionne : il m'a détruit toutes mes tables de routage, créé une interface réseau dummy et il réclame un noyau avec CONFIG_FILTER. En plus l'impression des 200 pages de documentation du modem plante à la cinquantième. Pas sorti de l'auberge…

8 janvier 2003

Côté installation du matériel c'était en fait facile. A priori aucun besoin de DHCP, que je vais désinstaller, ainsi que diald. Le modem a l'adresse 192.168.1.1. Alors pour passer d'un modem dial-up PPP avec diald à ADSL par Ethernet il suffit d'entrer les commandes suivantes :

ifconfig eth0 192.168.1.2
route del -net 0.0.0.0
route add default gw 192.168.1.1

La bêtise qui m'a bloquée durant toute ces semaines est de Tele2. Ils envoient tout un stupide CD d'installation Windows plus quelques documents, mais oublient un renseignement : http://reg.tele2.ch. En effet, il faut utiliser ce serveur pour s'enregistrer avec un Personal Autentification Code (PAC) et recevoir un login ADSL. Ensuite je rentre ce login dans le Wizard intégré au modem et tout va bien.

Reste à configurer mon /etc/network/interfaces pour démarrer avec la bonne configuration réseau. Il faudrait aussi que ntpdate soit lancé automatiquement. Quoiqu'en fait l'installation de Woody a dû remettre en place ce qu'il faut (/etc/rcS.d/S51ntpdate et /etc/init.d/ntpdate). Cependant je ne vois plus trace de ntpdate dans /var/log/daemon.log. Tout bien réfléchi, syslogd n'est pas encore lancé à ce moment, le log est donc perdu ! Pas grave, il reste une trace sur la console.

9 janvier 2003

NEdit

Lassé par la lenteur d'Emacs, j'ai installé NEdit. Il semble que j'ai enfin trouvé un éditeur avec une coloration syntaxique, des commandes et une vitesse raisonnables.

23 février 2003

NEdit est effectivement très bien, je l'ai adopté.

Partitions non inscriptibles

Depuis quelques mois, sans doute à cause du ventilateur défectueux, mon PC donne quelques traces de faiblesse lors des accès SCSI. Je monte donc les partitions / et /usr en lecture seulement, avec l'option ro au lieu de rw dans mon fstab.

Pour /usr un montage en lecture seule ne semble pas poser de problème. En revanche monter / cause plein de messages des scripts de démarrage : des tentatives de chmod de /dev/ttynn échouent, la création de /dev/log échoue, et quelques autres problèmes qui défilent trop vite.


© 2002, 2003, 2004, 2005, 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 30 décembre 2017.