Journebian · Woody sur un nouveau PC

24 février 2003

Nouveau PC

Spécifications
microprocesseur Intel Pentium 4, 2,4 GHz, FSB 133 MHz
carte mère Intel D845PESV, chipset Intel 845PE (max 2 DIMM DDR de 1 Go et 333 MHz, AGP 4×, ATA-100, USB 2.0, codec AC'97, ventilation silencieuse)
mémoire vive 2 DDR-SDRAM Apacer de 512 Mo, CAS 2, 266 MHz
disque dur Western Digital WD800JB, 80 Go, 7200 trm, ATA-100
CD/CD-R/CD-RW/DVD Plextor PlexCombo PX-320A
carte graphique ATI Radeon 7000 (VE)
carte réseau SURECOM EP-320X-R-1 10/100 Mbits

Partitions

Je vais installer Woody et Windows XP sur ce PC. Linux 2.4 s'impose pour tirer parti de ce matériel récent. Vu la quantité de mémoire, je vais me passer de swap pour Linux. Si nécessaire, je peux toujours utiliser des fichiers de swap, quoique je commencerais plutôt par mettre 2 Go de mémoire vive et après les limites du microprocesseur sont tellement proches que du swap est peut-être superflu.

Je vais créer 10 Go de /usr, 2 Go de /var, 1 Go de /, 2 Go réservés, 45 Go de /home et 20 Go pour Windows. Il me semble avoir lu que l'installation de Windows ne repectait pas le bloc de démarrage et écrasait LILO.

Effectivement, Windows XP a méchament tendance à écraser le bloc d'amorce. J'ai d'abord créé les partitions avec le cfdisk de Woody. Mais je n'ai pas réussi à installer Windows XP sur la dernière partition. Et en essayant de tout formater avec l'installeur de Windows, 8 Mo étaient perdus. Finalement j'ai créé juste deux partitions, installé Windows sur la seconde puis divisé les partitions restantes avec cfdisk. Ce qui donne finalement :

                                  cfdisk 2.11n

                              Disk Drive: /dev/hda
                            Size: 80026361856 bytes
              Heads: 255   Sectors per Track: 63   Cylinders: 9729

    Name        Flags      Part Type  FS Type          [Label]        Size (MB)
 ------------------------------------------------------------------------------
                            Logical   Free Space                           0.04*
    hda5        NC          Logical   Linux ext2                       10001.91*
    hda6        NC          Logical   Linux ext2                        1998.75
    hda7        NC          Logical   Linux ext2                        1003.49
    hda8                    Logical   Win95 FAT32 (LBA)                 1998.75
    hda9        NC          Logical   Linux ext2                       45000.51
    hda2        Boot        Primary   NTFS             [^B]             20020.34

Le petit espace vide au début correspond à 63 secteurs, sans doute le cylindre du bloc d'amorce qui ne peut être utilisé.

Woody à partir de zéro

Le début de l'installation de Woody est vraiment bien, en français avec clavier suisse-romand et tout. En outre les mises à jour de sécurité ont été automatiquement prises sur Internet sans configuration autre que la passerelle et les serveurs DNS. La carte réseau est automatiquement reconnue et utilisée.

Ce sont plutôt les paquets individuels qui posent des problèmes trop techniques. Par exemple une question de sound-wrapper pour Mozilla alors que je ne pense même pas que le son fonctionne. Il ne fonctionne en tout cas pas sur Windows XP sans installer les pilotes Intel, alors sur Linux…

XFree86 à partir de zéro

J'ai refusé l'aide de debconf, peut-être à tort. Heureusement un très bon script permet de lancer XFree86, voir la trace du problème, lancer un outil de configuration XFree86 et recommencer ! Malheureusement l'outil de XFree86 est mauvais. Il perd les configurations précédentes et à tendance à planter sur la configuration de la souris.

Après une heure de recherche, d'abord du port USB, puis PS/2 lorsque je me suis souvenu que j'avais un adaptateur, je suis arrivé à un fichier XF86Config dans /usr/X11R6/lib/X11/XF86Config. Par chance et contrairement aux documentations, les puces Radeon VE sont supportées. Un peu trop bien même puisque je me retrouve en 1920×1440 !

Installations supplémentaires

Pour récupérer les données du vieux PC, je fais simple : juste un telnetd sur l'ancien PC, le nouveau PC ayant assez de services installés, dont FTP. Plus tard ce sera cependant l'occasion d'essayer SSH.

Les logiciels installés par défaut ne correspondent pas tout à fait à mes habitudes. Le premier manque est celui d'aptitude, j'utilise donc dselect. Ensuite j'installe nedit pour éditer ce fichier.

Configuration de XFree86

Je dois mieux configurer XFree86 pour y voir quelque-chose. Pour créer un fichier /etc/X11/XF86Config-4 dans les normes, j'utilise dpkg-reconfigure xserver-xfree86. Les questions sont claires, avec de bonnes explications, notamment sur les modules utiles. Bizarrement, le fichier généré contient deux configurations de souris ; inutile mais sans doute pas génant. En revanche l'utilisation du frame buffer semble faire planter XFree86, quoique ça n'apparaissent pas très clairement dans la trace. Je me demande si le problème n'est pas en fait un support limité à 8 bpp.

Pour régler XFree86, je lance startx en tant que root. Je ne sais pas pourquoi, l'environnement KDE est alors chargé au lieu de GNOME. J'obtiens d'abord du 1280×1024 en 85 Hz, mais avec de gros parasites lorsque je déplace une fenêtre. Pas de problèmes dans les résolutions inférieures, mais sans raison apparentes le 1152×864 est en 75 Hz. Je dois donc reprendre la ligne ModeLine que j'avais calculée pour le vieux PC. Finalement j'obtiens un /etc/X11/XF86Config-4 qui produit une bonne image dans les résolutions voulues et gère correctement la souris, y compris la molette. La trace contient quelques erreurs, mais rien d'apparent.

Le plus étonnant est l'erreur (EE) RADEON(0): [agp] AGP not available. La carte est bien AGP et elle fonctionne pourtant bien. Une documentation du site XFree86 indique une option précisant un mode AGP. J'ai précisé 4, XFree86 en tient compte, mais l'erreur persiste.

Mozilla

Il s'agit ensuite de remplacer Mozilla 1.0.0 par une version plus récente, comme la 1.2.1. Le menu de GNOME contient encore une entrée pour Mozilla, malgré le fait que j'ai tout supprimé avec Aptitude. Tiens, je peux retirer l'icône par menu contextuel sur le panel, c'est moderne. :-)

Mozilla requiert une vieille bibliothèque, /usr/lib/libstdc++-libc6.1-1.so.2, car il serait compilé avec egcs 1.1.x.

25 février 2003

Caractères accentués (ISO-8859-1)

Quelques petits problèmes classiques avec les caractères accentués. Je ne peux pas les entrer dans le shell, le terminal de GNOME ne les supporte pas du tout et nedit est dans un mode sans touche morte…

Pour l'affichage par le terminal de GNOME, c'était le support des caractères multi-bytes qui posait de gros problèmes d'affichage. Pour l'entrée des caractères, il suffit de décommenter le set convert-meta off de /etc/inputrc.

Pour nedit il fallait exporter LC_ALL=fr_CH après avoir compilé la locale fr_CH ISO-8859-1.

Tant qu'à faire je peux récupérer mes réglages de bash. Je complète donc /etc/bash.bashrc avec :

HISTCONTROL=ignoredups
HISTSIZE=32767
export HISTCONTROL HISTSIZE
unset HISTFILESIZE

unset MAILCHECK

shopt -s checkwinsize
shopt -s histappend

Noyau 2.4.20

Je me suis compilé un noyau 2.4.20 sur mesure, notamment avec support HIGHMEM et AGP. Succès dès le premier essai. En plus le démarrage de XFree86 se déroule mieux.

Cependant dmesg donne encore quelques inquiétudes : I cache de 0 Ko, pas de codec audio, conflit d'interruptions, pilote de chipset non compilé. Ce n'est cependant pas plus mauvais que les messages du noyau 2.4.18 de Debian.

26 février 2003

Sécurisation

Ayant installé le PC pour aller dans un réseau, quelques services inutiles tournent par défaut : portmap, fingerd, talkd, un truc Minitel… Il suffit de les désinstaller. En revanche inetd est configuré pour écouter le port SMTP et lancer Exim. J'aimerais conserver Exim uniquement pour les courriers locaux. Avec eximconfig je peux configurer Exim. Pour inetd, je commente la ligne smtp dans /etc/inetd.conf.

Login/logout GNOME

Grâce à l'aide de Pierre Maître j'ai trouvé comment éteindre le PC avec l'interface GNOME. C'était peu évident, il fallait utiliser gdmconfig en tant que root.

LILO

Petite optimisation du chargement de Linux en utilisant l'option compact de LILO. Ce qui cause un message inquiétant, finalement sans objet : Warning: COMPACT may conflict with LBA32 on some systems. En outre ma carte supporte l'option vga=9, ce qui rend la console plus agréable en 132×44 caractères. Voici mon fichier lilo.conf.

Optimisation noyau 2.4.20

Le noyau 2.4.20 m'a causé une petite inquiétude en affichant CPU: L1 I cache: 0K. Mais en fait il a raison car le Pentium 4 n'a pas de cache d'instuction de premier niveau. Il a un trace cache de 12 K micro-instructions (uops), mais le noyau ne le rapporte pas (encore).

Le noyau 2.4.20 n'arrive pas à initialiser la partie son de ma carte mère :

i810: Intel ICH4 found at IO 0xe080 and 0xe400, IRQ 3
i810_audio: Audio Controller supports 6 channels.
i810_audio: Primary codec not ready.

Il semble qu'il existe un patch qui est arrivé juste un peu tard pour le noyau 2.4.20. Marcello Tosatti indique avoir repoussé son inclusion au noyau 2.4.21.

Il n'y a pas de pilote spécifique pour le contrôleur ICH4, mais ça ne semble pas important :

ICH4: IDE controller on PCI bus 00 dev f9
ICH4: detected chipset, but driver not compiled in!
PCI: Device 00:1f.1 not available because of resource collisions
PCI: Found IRQ 9 for device 00:1f.1
PCI: Sharing IRQ 9 with 00:1d.2
ICH4: BIOS setup was incomplete.
ICH4: chipset revision 2
ICH4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio

Enfin mon noyau n'arrive pas à éteindre le PC, même avec le support APM compilé. En fait un message d'amorce indique apm: BIOS not found. Je suppose que mon PC a l'ACPI uniquement. Je pourrais essayer d'expérimenter le code Linux pour cela, mais les risques me semblent trop importants, tant pis.

27 février 2003

hdparm

Mon disque dur se traine assez lamentablement : 2,89 Mo/s d'après hdparm -t /dev/hda. Mais le mode DMA n'est pas utilisé, contrairement à ce que je croyais avoir configuré dans le noyau. J'obtiens 45,71 Mo/s après hdparm -d 1 /dev/hda. Avec en plus hdparm -m 8 /dev/hda j'obtiens 46.04 Mo/s. Un article d'O'Reilly explique bien l'utilité des divers réglages. Un article d'Intel donne aussi de très bonnes informations, notamment sur une possibilité de régler Linux par LILO. J'ai de la chance, il semble que le DMA du contrôleur ICH4 ne puisse être utilisé qu'à partir du noyau 2.4.20.

Il me reste à trouver où lancer hdparm. Il ne semble pas exister de script pour cela dans la séquence de chargement. Je crée donc un fichier /etc/init.d/hdparm et un lien S03hdparm dans /etc/rcS.d.

fsck -y

J'ai trouvé dans /etc/default/rcS une option FSCKFIX permettant de demander à fsck de corriger automatiquement (je ne saurais de toute façon pas corriger autrement).

28 février 2003

Carte SCSI Tekram DC-315U

J'ai installé cette carte neuve. Mais comme je n'ai aucun périphérique à brancher dans l'immédiat, je ne suis pas pressé d'installer un pilote SCSI, qui n'est en l'occurrence pas dans le noyau officiel.

Défions la censure

Aujourd'hui je joue à l'internaute chinois ; je contourne la censure imposé à mon ISP par la justice suisse pour accéder à http://www.appel-au-peuple.org. Une petite recherche sur Google, une liste de proxies, je configure Konqueror, et me voilà sur http://www.freejustice.de/ (le site est évidemment déjà déplacé sur une adresse non filtrée).

1er mars 2003

Nouveau BIOS

J'ai mis à jour le BIOS de la carte mère et j'obtiens à présent beaucoup plus d'informations à l'amorçage sur ACPI.

/etc/filesystems

Ce fichier manquait pour monter les disquettes DOS sans préciser le système de fichier, ce qui requiert d'être root.

Imprimante

J'ai reconfiguré l'imprimante avec apsfilterconfig. Un peu d'hésitations sur le nom de l'imprimante, finalement le mieux semble d'avoir une imprimante appelée lp, ce qui donne une entrée dans mon /etc/printcap. Après, tout va bien, sauf pour les idéogrammes, mais bon…

3 mars 2003

Partitions VFAT et NTFS

J'ai complété mon fstab pour accéder aux partitions VFAT et NTFS de mon disque. Lorsque je monte la partition NTFS, les droits du répertoire de montage passent automatiquement à dr-x------ et je n'ai pas le droit de les changer. Cela force l'utilisation du compte root pour accéder à cette partition. Ce n'est pas trop grave car je compte utiliser la partition VFAT pour échanger des fichiers.

D'après ce que j'ai testé avec la partition VFAT, le paramètre de montage umask donne les droits d'accès. J'ai dû le mettre à 0 pour pouvoir librement manipuler la partition VFAT avec un utilisateur quelconque.

Plus ennuyeux, il semble que Windows XP ne reconnaisse pas le formatage de cette partition.

Polices TrueType

Une disquette de polices TrueType etait livrée avec mon imprimante Xerox. Malheureusement il y a un installeur. Je les installe sur Windows XP pour voir ce qui se passe… Des fichiers TTF sont effectivement mis dans le répertoire \WINDOWS\Fonts. Pour la suite, coup de chance, il y a un guide TrueType Fonts on Debian XFree86 4.x Systems. Ce qui donne :

kameha:~# mkdir /usr/local/share/fonts
kameha:~# mkdir /usr/local/share/fonts/TrueType
kameha:~# cp /xp/WINDOWS/Fonts/UI/FI_900* /usr/local/share/fonts/TrueType/
kameha:~# chmod 664 /usr/local/share/fonts/TrueType/*
kameha:~# cd /usr/local/share/fonts/TrueType/
kameha:/usr/local/share/fonts/TrueType# ttmkfdir -o fonts.scale
kameha:/usr/local/share/fonts/TrueType# ttmkfdir -o fonts.scale -f agfa
kameha:/usr/local/share/fonts/TrueType# head -1 fonts.scale > fonts.dir
kameha:/usr/local/share/fonts/TrueType# tail +2 fonts.scale | tac >> fonts.dir
kameha:/usr/local/share/fonts/TrueType# cp fonts.dir fonts.scale

J'ai dû précisé le nom de fondeur agfa pour éviter que ces polices soient classées sous misc. Je pourrais encore faire des alias, mais ça à l'air un peu compliqué et pas forcément utile. Je pourrais aussi sans doute désinstaller le serveur de polices xfs, mais ça peut attendre. J'ajoute la ligne FontPath "/usr/local/share/fonts/TrueType" dans /etc/X11/XF86Config-4 et je relance XFree86.

7 mars 2003

Minolta DiMAGE F100 et carte de 128 Mo

J'ai pu monté sans problème la carte mémoire de 128 Mo sans configuration. Sans doute une amélioration du noyau 2.4 sur le 2.2. J'ai aussi installé le programme picview, très commode pour explorer mes répertoires de photos.

Au lieu de xhost

xhost est avantageusement remplacé par export XAUTHORITY=/home/marc/.Xauthority (avec bien sûr export DISPLAY=:0).

Gravage de CDROM

Je veux mettre mes photos sur CD, j'installe donc cdrecord et xcdroast (plus les dépendances). Malheureusement il me manque un module, sans doute sg (SCSI générique). C'est en tout cas le sens du message d'erreur de xcdroast.

La configuration pour graver avec un graveur ATAPI est longue. Il faut avoir dans le noyau le support SCSI, CD SCSI, SCSI générique et IDE-SCSI. En outre il faut indiquer à l'amorçage d'utiliser l'émulation IDE-SCSI pour le périphérique, ce qui donne la commande append="hdc=ide-scsi" dans /etc/lilo.conf. Et le périphérique apparaît enfin sous /dev/sr0 plutôt que /dev/hdc, il faut donc corriger le lien /dev/cdrom.

Et après tout cela il faut se retrouver dans l'interface byzantine de xcdroast. C'est incroyable le fourbi que ça présente juste pour graver des CD. Ça irait bien dans un Interface hall of shame. Enfin, il semble que j'aie réussi à graver du premier coup, pas si mal.

10 mars 2003

Modules SCSI, USB et CD-ROM

Je ne peux plus monter la carte mémoire de mon appareil photo. C'est sans doute dû au fait que j'ai ôté le support des disques SCSI de mon noyau. Je fais donc un noyau intégrant le support SCSI (disque, CD-ROM et générique), le support USB (mémoire de masse) et l'émulation IDE-SCSI. Ainsi je devrais tout pouvoir utiliser simplement. Pour le lecteur de disquette, l'imprimante et le système de fichier NTFS, les modules se chargent automatiquement sans problème en cas de besoin. Avec cette configuration, aucun problème n'est révélé par dmesg.

11 mars 2003

picview

Un bug idiot de picview, ou plus probablement de Electric Eyes m'a fait perdre des photos. En effet, Electric Eyes cache dans un répertoires ~/.ee/previews les miniatures des images. Or toutes les images venant de mon appareil sont nommées pictnnnn.jpg, d'où confusions. En ôtant tous les droits d'accès à ce répertoire il semble cependant que je puisse régler ce problème de cohérence de cache.

Freenet

J'ai essayé la version de Freenet distribuée par Debian, mais échec complet. Le client Java se plante avec la locale fr_CH. Le serveur local (proxy ?) n'écoute rien, j'ai été obligé de préciser en ligne de commande à fclient où se connecter. En général les nœuds ne répondent pas (pas étonnant, des adresses sur dyndns.org) et ceux qui répondent ne sont pas compatibles. Je vais plutôt essayé de charger la dernière version et l'installer dans mon compte.

Après avoir installé la version 0.5.1 en test et le JRE 1.4.1 de Sun (gij part en boucle infinie) tout va mieux. Je trouve même épatant l'idée du proxy Web qui donne finalement une interface classique à un protocole aussi original (quoique lent).

Je suis également content de voir que mon giga-octet de RAM n'est pas totalement disproprotionné ; avec Mozilla, XFree86 et la VM Java j'utilise presque la moitié, avec environ 300 Mo de cache, certes…

16 mars 2003

SVCD, mpeg_play, xmovie et xine

J'ai dû faire quelques essais pour réussir à jouer un SVCD, ou du moins un CDROM qui contient les répertoires standards d'un SVCD, mais dont les données MPEG-2 sont dans des fichiers normaux. Everything2 a une excellente description du standard SVCD.

Après quelques essais infructueux avec xmovie, j'ai opté pour xine. Il a une horrible interface graphique, mais les fichiers MPEG-2 sont bien rendus, y compris en plein écran. Toutefois xine ne semble pas supporter les menus SVCD, contrairement à PowerDVD sur Windows. J'ai essayé de lancer xine en lui faisant croire que le disque était un VCD, mais infructueusement, même en ajoutant des liens /dev/dvd et /dev/vcd sur /dev/cdrom.

Je testerai le son lorsque le noyau supportera mieux ma carte mère.

18 mars 2003

Noyau 2.2.25 sur vieux PC

Mon ancien PC présente de graves signes de faiblesse. Je pensais qu'il plantait à cause du ventilateur de processeur défectueux, mais ce n'est pas cela. Il s'agit plus probablement de l'électronique d'un des deux disques SCSI. Je les ai séparé par le lecteur de disquette dans le boîtier, ainsi j'espère qu'ils chauffent nettement moins.

J'ai également installé un noyau 2.2.25 compilé (rapidement) sur le nouveau PC. J'ai abandonné le support USB et mis beaucoup de fonctionnalités en module. J'ai aussi désinstallé des vieux noyaux 2.2.2x. Enfin j'ai supprimé du runlevel 2 la partie X Window (xdm et xfs).

Le noyau 2.2.25 corrige une faille locale des noyaux 2.2 et 2.4, j'attends donc le noyau 2.4.21 qui corrige cette même faille.

CD audio

J'ai un CD audio un peu griffé que j'aimerais récupéré en le copiant avec un logiciel corrigeant les erreurs, comme cdparanoia -B. Je n'ai accès au CD qu'en tant que root. Peut-être à cause des droits restrictif sur sg0 :

kameha:~# ll /dev/sg0
crw-------    1 root     root      21,   0 Mar 14  2002 /dev/sg0

En changeant les droits d'accès ça va effectivement mieux :

kameha:~# ll /dev/sg0
crw-rw----    1 root     cdrom     21,   0 Mar 14  2002 /dev/sg0

Bon, j'ai lu que les programmes de gravage utilisent également les droits root pour se mettre en haute priorité et bloquer leurs pages en mémoire vive. Pour la priorité, je ferai attention. Quant aux pages, n'ayant pas de swap je ne risque rien…

Pour cdrdao je crée un lien ln -s /dev/sg0 /dev/cdrecorder. J'ai cependant de forts doutes sur la fiabilité de ces programmes :

cdrdao write --driver generic-mmc toc-file 
Cdrdao version 1.1.5 - (C) Andreas Mueller <andreas@daneb.de>
  SCSI interface library - (C) Joerg Schilling
  L-EC encoding library - (C) Heiko Eissfeldt
  Paranoia DAE library - (C) Monty

Check http://cdrdao.sourceforge.net/drives.html#dt for current driver tables.

Using libscg version 'schily-0.5'

/dev/cdrecorder: PLEXTOR CD-R   PX-320A Rev: 1.03
Using driver: Generic SCSI-3/MMC - Version 1.2 (options 0x0000)

Starting write at speed 20...
Pausing 10 seconds - hit CTRL-C to abort.
Process can be aborted with QUIT signal (usually CTRL-\).
WARNING: No super user permission to setup real time scheduling.
Turning BURN-Proof on
Executing power calibration...
Power calibration successful.
ERROR: Write data failed.
ERROR: Writing failed.
?: Input/output error.  : scsi sendcmd: retryable error
CDB:  1E 00 00 00 00 00
status: 0x0 (GOOD STATUS)
cmd finished after 180.059s timeout 180s
ERROR: Cannot prevent/allow medium removal.

En plus le CDROM continue de tourner indéfiniment. Il y a un problème au niveau du noyau… Jamais vu un si gros problème, des messages d'erreur SCSI arrivaient encore alors que le noyau avait affiché Power down !

Il semble que le gravage en 20× soit cause de bien des soucis. Après quelques essais avec l'option -dummy de cdrecord je suis arrivé à un bon gravage avec cdrecord -v -dao speed=16 dev=0,0,0 -audio ~marc/Son/Earthquake_6-2/track*. Ah, pouvoir enfin récouter Ya Mutha de D.O.A. !

29 mars 2003

Exim uniquement en local

J'ai vainement cherché une option d'Exim pour désactiver l'écoute du port SMTP. Mais en fait il suffit de ne pas lancer le démon Exim ; ça n'empêche pas de délivrer le courrier local. rm /etc/rc2.d/S20exim /etc/rc3.d/S20exim /etc/rc4.d/S20exim /etc/rc5.d/S20exim /etc/rc0.d/K20exim /etc/rc1.d/K20exim /etc/rc6.d/K20exim.

30 mars 2003

Modules nls_cp437 et char-major-10-135

Ces deux fonctionnalités manquent à mon noyau. Je les ai ajoutées dans le .config. Je recompilerai le noyau à l'occasion.

23 avril 2003

less et LESSOPEN

La variable d'environnement LESSOPEN permet de configurer less pour afficher directement divers types de fichiers, dont les fichiers compressés. Pour activer cette fonctionnalité, Debian fournit deux scripts pratiques qu'il suffit d'évaluer : lesspipe ou lessfile. J'ajoute donc eval $(lesspipe) dans mon .bashrc.

13 mai 2003

Mozilla 1.4b et POP3 CRAM-MD5

Suite à l'installation de Mozilla 1.4b, je n'arrive plus à m'identifier auprès de pop.freesurf.ch. D'après le bug #200503 de Bugzilla, ce serait dû à une mauvaise configuration de la part de Freesurf. Malheureusement cela est difficile à vérifier avec telnet à cause de quelques opérations binaires sur les mots de passe.

14 mai 2003

Calendrier de Mozilla

J'ai installé le calendrier de Mozilla. C'est un fichier XPI à télécharger qui s'installe dans le répertoire de Mozilla. J'espère que je ne perderai pas mes rendez-vous à la prochaine mise à jour.

20 mai 2003

Modem ADSL ZyXEL Prestige 650ME-11 planté

J'ai mis à jour le système d'exploitation de mon modem avec un fichier proposé par Studerus Telecom et maintenant le modem est totalement incapable de lancer la liaison ADSL. En plus il est impossible de trouver d'autres firmwares pour ce modem. C'est la merde. Il ne me reste plus qu'à obtenir de l'aide de Studerus Telecom

PPP

La seule solution qui me reste est mon brave vieux modem 56K. Je vais transitoirement utiliser PPP. Je crée d'abord des fichiers /etc/ppp/peers/econophone et /etc/chatscripts/econophone en adaptant les fichiers squelettes fournis. Ensuite je lance pon econophone mais bizarrement le fichier d'options de PPP contient des lignes non reconnues (/dev/modem et 38400) qui sont censées être les deux premiers paramètres en ligne de pppd.

Ces options commentées, pppd se lance, mais il manque le support PPP dans le noyau. En ajoutant le support PPP au noyau et en lançant pon econophone /dev/ttyS0 115200, le modem se connecte. Il faut encore configurer les routes manuellement, puis c'est bon.

Downgrade de Mozilla

Naturellement Freesurf n'a pas encore corrigé le problème d'identification POP3, rien d'étonnant de la part de ces incapables. Heureusement on peut passer facilement de Mozilla 1.4b à Mozilla 1.3.1 : il suffit de renommer le répertoire d'installation.

Configuration du shell

La configuration des shells n'est pas tout à fait cohérente. /etc/profile est exécuté en cas de login, par bash, mais également par ksh, ash et certainement d'autres (mais pas par les C shells). Après /etc/profile, bash exécute ~/.bash_profile, sinon ~/.bash_login, sinon ~/.profile. ksh exécute ~/.profile. /etc/bash.bashrc (c'est une spécialité de Debian) est exécuté avant ~/.bashrc par bash en mode interactif.

Je vais mettre une configuration minimale bien compatible dans /etc/profile et le reste dans /etc/bash.bashrc. En outre ~/.bash_profile se contentera d'appeler ~/.bashrc.

umask

D'abord le umask par défaut est 022. Je préfère 002 avec un groupe par utilisateur. Je change cela dans /etc/profile pour tous les shells, du coup je retire la commande umask de ~/.bash_profile et de /etc/skel/.bash_profile. Et j'ajoute encore umask 002 dans /etc/bash.bashrc pour que tous les shells interactifs en profitent. J'espère que c'est bon.

PS1

Découverte intéressante : il existe une séquence d'échappement pour indiquer à bash que certains caractères ne sont pas imprimables et ne doivent pas être comptés dans l'invite. Il s'agit de \[ et \]. Ceci permet de résoudre les problèmes d'édition de ligne que pose l'invite colorée. Je transforme donc PS1="${attr0}${couleur}\t \u \w${attr0}\n" en PS1="\[${attr0}${couleur}\]\t \u \w\[${attr0}\] ".

22 mai 2003

Carte Ethernet CNet (Davicom DM9102AF)

J'ai installé une carte Ethernet 10/100 Mbps à CHF 19,90 dans mon ancien PC. Le pilote dmfe est expérimental sur le noyau 2.2.25, mais il semble bien fonctionner, à quelques messages d'amorce inquiétants près.

Mon réseau est désormais entièrement à 100 Mbps. Mais ce n'est pas vraiment utile, c'est surtout le modem ADSL qui me manque…

pon et options de pppd

L'option /dev/modem de /etc/ppp/peers/econophone n'était pas reconnue simplement car je n'ai pas de fichier /dev/modem. Avec /dev/ttyS0 ça va bien, et à 115200.

Malgré un avertissement un peu vague, je vais utiliser l'option idle n avec persist mais sans demand. Je n'ai pas envie de risquer une facture téléphonique astronomique.

16 juin 2003

Après usage, il semble que l'option idle n de PPP ne fonctionne pas. Mais cette malheureuse expérience m'a au moins entraîné à l'usage de route (route del -net 0.0.0.0 pour supprimer la route par défaut sur le modem ADSL créée par les scripts d'initialisation du système et route add default gw 212.53.96.248 pour créer une route par défaut par la connexion modem établie par PPP). Heureusement j'ai reçu mon modem ADSL réparé. Le diagostic était un défaut matériel.

Terminaisons SCSI corrigées

J'ai fini par trouver l'origine de mes problèmes SCSI sur mon ancien PC. Il s'agissait d'un simple problème de terminaison : chacun des périphériques avait une terminaison activée. Étonnament, tout a été stable des années durant avant de dégénérer. J'ai supprimé les terminaisons des disques durs et retrouvé une parfaite fiabilité. Pour le disque Quantum, j'ai dû fouiller Internet pour trouver la documentation. J'ai été aiguillé par les membres du GULL et finalement Marc Schaefer a donné une explication détaillée des compatibilités SCSI.

Noyau 2.4.21

Profitant de mon modem ADSL réparé, j'ai téléchargé le noyau Linux 2.4.21. J'espère pouvoir utiliser le son du contrôleur Intel ICH4 de ma carte mère. J'espère aussi que l'arrêt de l'ordinateur par ACPI fonctionnera. Enfin j'installe lm-sensors pour connaître la température des composants, avec l'option I2C du noyau.

Premières observations avec le noyau 2.4.21 :

Je vais installé un noyau 2.4.21 avec la même configuration que mon 2.4.20 et voir comment fonctionne le sous-système IDE. La subtilité semble résider autour de l'option CONFIG_BLK_DEV_GENERIC. Elle n'existe pas pour le noyau 2.4.20. Mais j'ai répondu y à make oldconfig. Cette fois je réponds n et utilise à la place CONFIG_BLK_DEV_PIIX.

Avec l'option CONFIG_BLK_DEV_PIIX les problèmes de disque sont réglés : aucune interruption perdue, lecture à 46 Mo/s. Un autre avantage est que le mode DMA le plus efficace est automatiquement utilisé par le noyau. Je peux donc supprimer la commande hdparm -c3 -d1 -u1 -m16 /dev/hda de mes scripts d'initialisation. La seule différence est le I/O support default 16-bit au lieu de 32-bit w/sync. Étonnament il semble que cela augmente légèrement les performances.

Son

Le noyau 2.4.21 supporte la puce son de ma carte mère. J'ai installé mpg321 pour écouter les MP3 et tout va bien. Il faut toutefois mettre les utilisateurs du son dans le groupe audio. Côté enregistrement, en revanche, une brève tentative avec dd a échoué. Mais j'essaierai plus avant lorsque j'aurai acheté un câble cinch-minijack supplémentaire.

Arrêt de l'ordinateur

J'aimerais commander l'extinction de l'ordinateur par logiciel. Sur mon ancien PC c'est fait par APM. Mais il semble que ma carte mère ait totalement remplacé APM par ACPI. Or le support ACPI du noyau 2.4.21 semble encore trop défaillant (messages d'erreur lors du chargement du noyau et acpid n'est pas lancé). Peut-être le noyau 2.4.23 sera-t-il au point (ACPI semble disqualifié pour le 2.4.22).

Senseurs du matériel

Le projet lm-sensors repose sur des modules pas encore intégrés au noyau 2.4.x. Seul la partie I2C est déjà dans le noyau. Debian fournit les sources séparées dans lm-sensors-source avec afin de les intégrer au noyau. Mais comme j'utilise mes propres noyaux il vaudrait mieux que j'utilise directement les sources originales. Bref, trop de problèmes de maintenance en vue pour une si faible fonctionnalité. Je vais simplement attendre le noyau 2.6 puiqu'il semble que des modules soient acceptés dans le développement du noyau 2.5.

17 juin 2003

Finalement le noyau 2.4.21 ne m'a apporté que le son en plus. Avec en outre quelques corrections de sécurité et quelques optimisations, Et les messages de chargement de mon noyau 2.4.21 final, bien que nombreux, ne contiennent plus d'erreur.

19 juin 2003

Linux et audio

Après bien des investigations, j'ai réussi à comprendre comment utiliser le son sur Linux. Dans la foulée je suis passé de GNOME à KDE, mais FVWM n'est pas loin…

D'abord les interfaces des pilotes : /dev/dsp sert à envoyer et recevoir les données audios ; /dev/mixer sert à régler le volume des divers canaux.

cat ou dd peuvent suffire à accéder à /dev/dsp. sox est cependant plus riche de possibilités. Exemples : sox -t wav fichier.wav -t ossdsp /dev/dsp pour jouer ou sox -t ossdsp /dev/dsp -t wav fichier.wav pour enregistrer. Pour jouer un MP3, mpg321 machin.mp3.

Si un serveur de son comme artsd avec KDE fonctionne, l'accès à /dev/dsp sera interdit. Certains logiciels utilisent automatiquement le serveur. Autrement artsdsp sert de wrapper de commande. On peut encore utiliser les commandes spéciales comme artscat, artsplay

Concernant l'usage des canaux et la qualité d'enregistrement, de longues investigations ont donné les résultats suivants :

BIOS APM

J'ai flashé une nouvelle version du BIOS et gagné suffisamment de fonctions APM pour éteindre l'ordinateur avec Linux. En revanche j'ai perdu la souris PS/2 dans Windows XP. Et impossible d'indiquer à Windows qu'il y a une souris sur le port PS/2 ; typique Microsoft. C'est pas trop grave, sur port USB la souris reste détectée.

CONFIG_USB_UHCI

Il existe un ancien et un nouveau pilote USB dans le noyau (CONFIG_USB_UHCI et CONFIG_USB_UHCI_ALT). J'ai remplacé l'ancien pilote par le nouveau, aucun changement visible, si ce n'est un noyau un peu plus petit. Peut-être le mode haut débit de USB 2.0 est-il désormais activé ?

J'espèrais également éviter une série de messages de modprobe lors du lancement, mais ça n'a rien changé. Malheureusement ces messages ne sont pas tracés.

modprobe

En fait les messages de modprobe viennent sans doute de la configuration d'origine de Debian qui essaie de charger les modules usb-uhci, input, usbkbd et keybdev selon le fichier /etc/modules. Je commente donc toutes les entrées de ce fichier.

Deux autres messages de modprobe dans /var/log/daemon.log concernent la carte son :

Jun 19 23:48:22 kameha modprobe: modprobe: Can't locate module sound-slot-1
Jun 19 23:48:22 kameha modprobe: modprobe: Can't locate module sound-service-1-0

Ici c'est le noyau qui essaie de charger des modules. Suivant la méthode Debian, j'utilise update-modules après avoir ajouté alias sound-slot-1 off et alias sound-service-1-0 off dans /etc/modutils/aliases.

Le lancement du système semble plus rapide.

Terminal rxvt

Les émulateurs de terminal de GNOME ou KDE sont un peu lourds. Je mets rxvt-xterm par défaut avec update-alternatives --config x-terminal-emulator. Il existe aussi rxvt-xpm, mais il semble prendre plus de mémoire, sous doute juste pour quelques douteuses décorations.

kdeinit et PATH

Il semble que kdeinit hérite de l'environnement installé par mon .bashrc puis qu'il fixe sa valeur à la variable d'environnement PATH. Or quand ensuite je lance bash, mon .bashrc évite de réassigner PATH par une méthode ne résistant pas à ce genre de manipulation. Je solidifie un peu ainsi :

# PATH perso
my_PATH=/sbin:/usr/sbin/:$HOME/Soft/bin
if [ -z $(echo $PATH|grep $my_PATH) ]; then
        export PATH=$my_PATH:$PATH
fi

# MANPATH perso
my_MANPATH=$HOME/Soft/man
if [ -z $(echo $MANPATH|grep $my_MANPATH) ]; then
        export MANPATH=$my_MANPATH:$MANPATH
fi

# LD_LIBRARY_PATH perso
my_LD_LIBRARY_PATH=$HOME/Soft/lib/
if [ -z $(echo $LD_LIBRARY_PATH|grep $my_LD_LIBRARY_PATH) ]; then
        export LD_LIBRARY_PATH=$my_LD_LIBRARY_PATH:$LD_LIBRARY_PATH
fi

20 juin 2003

Plug-ins Mozilla

L'installation du calendrier dans Mozilla 1.4rc2 cause un tel problème que Mozilla plante au démarrage. Je suis donc repassé pour un temps à Mozilla 1.3. Et j'ai ajouté le plug-in Macromedia Shockwave Flash et le plug-in Real. Pas de problème pour le plug-in Flash, en revanche j'ai dû copier les fichiers manuellement pour avoir une installation générale du plug-in Real.

Après quelques essais infructueux (plantage), j'ai effacé le plug-in Real.

Démarrage X Window

Je n'arrive pas à régler les ressources X de rxvt. Les fichiers dans /etc/X11/Xresources/ ne semblent plus pris en compte. Je suppose que c'est dû à ces gros environnements comme KDE ou GNOME. Il est donc nécessaire de consacrer à nouveau un peu de temps à l'analyse du processus de démarrage…

  1. /etc/rc2.d/S99gdm vérifie que gdm est le default-display-manager (ce pourrait être xdm) et le cas échéant lance /usr/bin/gdm.

  2. gdm lit /etc/gdm/gdm.conf (configurable avec gdmconfig), lance un serveur X par écran local, puis lance gdmlogin. gdm peut aussi s'occuper du protocole XDMCP. À noter que gdm lance pour chaque écran le script correspondant dans /etc/gdm/Init/ puis /etc/gdm/Init/Default. En l'occurrence cela est sans effet.

    Une fonction accueillante semble permettre d'afficher la photo de l'utilisateur.

  3. Une fois l'utilisateur identifié, /etc/gdm/PreSession/Default est lancé. Ce dernier lance /usr/bin/X11/sessreg -a -w /var/log/wtmp -u none -l $DISPLAY $USER.

    Ensuite un script dans /etc/gdm/Sessions/ est lancé pour la session choisie par l'utilisateur dans le menu.

    • La session Debian lance /etc/X11/Xsession. Ce dernier lance les scripts de /etc/X11/Xsession.d qui chargent les ressources dans /etc/X11/Xresources et $HOME/.Xresources, puis lance le premier trouvé parmis $HOME/.xsession, $HOME/.Xsession, x-session-manager (par exemple kde2), x-window-manager, x-terminal-emulator. Le tout éventuellement sous le contrôle de SSH. C'est solide.

    • La session GNOME lance /usr/bin/gnome-session, éventuellement par /usr/bin/ssh-agent, après avoir chargé quelques valeurs de /etc/login.defs, les options de /etc/X11/Xsession.options, les ressources de /etc/X11/Xresources et $HOME/.Xresources, les éventuelles définitions de clavier /etc/X11/Xmodmap et $HOME/.Xmodmap.

    • La session KDE lance kde2 après avoir chargé les éventuelles définitions de clavier /etc/X11/Xmodmap et $HOME/.Xmodmap et les ressources $HOME/.Xresources. Ce script semble baclé, les ressources /etc/X11/Xresources sont notamment oubliées (bug #177144).

    • La session Xsession a un mode failsafe qui lance xterm. Autrement xsm est lancé, après avoir essayé $HOME/.xsession, $HOME/.Xclients, /etc/X11/xinit/Xclients et /etc/X11/Xclients. Avant de lancer xsm, les éventuelles ressources de $HOME/.Xresources, /etc/X11/Xresources et /etc/X11/xinit/Xresources sont chargées, puis d'éventuelles définitions de clavier (avec moult tests ésotériques pour éviter de mélanger Xmodmap et XKB.)

25 juin 2003

J'ai opté pour une session Debian, ce qui lance KDE tout en lisant /etc/X11/Xresources. J'ai en outre copié de l'ancien PC la ressource *font: -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1.

26 juin 2003

GPG

Suivant la documentation à http://www.gnupg.org/gph/fr/manual.html, je me suis créé des clés DSA et ElGamal de 1024 bits avec GPG pour Marc Mongenet <Marc.Mongenet@freesurf.ch>. Elles expireront le 24 juin 2008, prudence prudence… Surtout que le générateur de clé est trop rapide pour avoir le temps de créer de l'entropie aidant la génération de nombres aléatoires. De toute façon le plus difficile est de trouver un excellent mot de passe. Je peux voir ma clé publique avec gpg --armor --export Marc.

J'ai également importé la clé d'Erik Rossen avec gpg --import rossen.asc. Il faudra encore vérifier son empreinte (visible avec gpg --fingerprint).

GPG n'est pas intégré à Mozilla. Mais comme je l'ai lu, un tas de code comme Mozilla contient sans doute trop de risques pour lui laisser connaître le texte clair. Mieux vaut utiliser GPG séparément puis inclure le document signé ou crypté.

SSH

Je remplace telnet et ftp par SSH. Premièrement, je permets au sshd de mon ancien PC de se lancer par mv sshd_not_to_be_run Ksshd_not_to_be_run.

Ensuite je me crée une clé avec ssh-keygen -t dsa. Ceci me fait un fichier ~/.ssh/id_dsa.pub que je copie sur l'ancien ordinateur en tant que ~/.ssh/authorized_keys. Je peux maintenant tenter une connexion :

slogin yok-yok
The authenticity of host 'yok-yok (192.168.1.2)' can't be established.
RSA key fingerprint is 6e:e0:aa:7f:94:24:33:3c:66:22:72:2e:91:96:83:5c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'yok-yok,192.168.1.2' (RSA) to the list of known hosts.
Enter passphrase for key '/home/marc/.ssh/id_dsa': 
Linux yok-yok 2.2.25 #1 mer mai 21 18:35:42 CEST 2003 i586 unknown

Most of the programs included with the Debian GNU/Linux system are
freely redistributable; the exact distribution terms for each program
are described in the individual files in /usr/share/doc/*/copyright

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Thu Jun 26 03:52:00 2003 from kameha

Première connexion à mon ancien PC (yok-yok), il m'envoie une clé d'identification, mais je ne l'avais encore jamais transférée, d'où la question. En répondant yes, cette clé est sauvée dans ~/.ssh/known_hosts. Je me demande toutefois comment calculer l'empreinte sur yok-yok, histoire de vérifier ce 6e:e0:aa:7f:94:24:33:3c:66:22:72:2e:91:96:83:5c.

Pour ouvrir des programmes X à travers SSH j'ai mis la ligne X11Forwarding yes dans le fichier /etc/ssh/sshd_config du serveur. Ensuite je me connecte avec ssh -X yok-yok. Et là je peux lancer xclock& sans autre. Le serveur sshd configure DISPLAY=localhost:10.0. De ce fait, je peux à nouveau supprimer l'écoute TCP de XFree86 sur kameha dans /etc/X11/gdm/gdm.conf.

Pour utiliser SSH sans continuellement taper mon mot de passe, il y a ssh-agent qui garde la clé en mémoire. Debian est déjà configuré avec ssh-agent gérant la session X. Il ne reste qu'à charger ma clé en mémoire avec ssh-add. La copie fonctionne également bien d'après l'essai scp marc@yok-yok:.bashrc BASHRC.

14 août 2003

Duplication de CD

But du jour, trouver la meilleure commande pour dupliquer un CD-ROM, avec un seul lecteur-graveur. Pour la lecture, le plus simple semble être cat /dev/cdrom >cd.img. Cela ne fonctionne cependant que sur le début d'un de mes CD, que je peux pourtant monter et copier sans problème. Encore pire, cdread -dev=0,0,0 -f=cd.img semble toujours rencontrer des erreurs avant cat.

Ces problèmes de lecture semblent confinés aux CD gravés. Parfois cat fonctionne en ressayant, readcd en revanche trouve toujours le même problème.

Puisque je ne peux pas copier le CD tel quel, je copie de le fichier MPEG de 395231746 octets dans un répertoire t, puis crée une image ISO avec mkisofs -o cd.iso -r t. Reste à écrire cette image sur un disque, à vitesse 16× par prudence : cdrecord -v speed=16 dev=0,0,0 -data cd.iso. Tout se passe bien.

Après recherches, il s'avère qu'une piste (track) de CD contient souvent plus de blocs que le système de fichiers ISO9660. La commande cdrecord dev=0,0,0 -toc permet d'extraire la taille de la piste. La commande isosize -x /dev/cdrom permet de connaître la taille du système de fichiers sans le monter.

Là où ça se complique, c'est que les blocs (de padding) finissant la piste sont souvent illisibles. C'est ce qui fait échouer cat ou readcd. Mais connaissant la taille du système de fichiers, je peux faire une copie parfaite à l'aide de dd if=/dev/cdrom bs=2048 count=nombre_de_blocs of=cd.img.

Il semblerait que l'illisibilité de la fin d'une piste provienne du fait que le graveur met un certain temps à éteindre le laser, il est donc prévu qu'il y ait quelques (2) blocs (run-out blocks) perdus à la fin. Une bonne manière d'éviter ces problèmes serait d'écrire en DAO (Disk-At-Once) au lieu de TAO (Track-At-Once) par défaut.

15 août 2003

Caractère ~

Le caractère tilde (~) est bien utile sur Unix, mais malheureusement il est configuré en touche morte (je dois taper ~ puis  ). J'ai déjà exploré les réglages de clavier le 11 août 2002 après l'installation de Woody. Je règle déjà le problème du '~', du '|' et du '¦' dans la console Linux et installant un fichier /usr/share/keymaps/i386/qwertz/fr_CH-latin1-moi.kmap.gz avec les trois modifications qui m'intéressent. Côté affichage, la barre est affichée comme une barre brisée tandis qu'il n'y a pas de glyphe correspondant à la barre brisée. Mais il manque également d'autres glyphes, ce n'est pas bien grave.

Pour XFree86, il semble que le clavier soit définit par inclusions depuis /etc/X11/xkb/keymap/xfree86. Je change donc dead_tilde en asciitilde dans le fichier /etc/X11/xkb/symbols/de_CH.

21 août 2003

Retour à FVWM

La barre de KDE prend trop de place, le bureau virtuel trop petit et difficile à utiliser, le gestionnaire de fenêtre kwin pas assez configurable ni totalement fiable. Bref, FVWM me manque.

D'après man Xsession.options, il me suffit d'avoir un fichier $HOME/.Xsession. Un exemple est donné par /usr/share/doc/xfree86-common/examples/xsession.gz. Je copie, remplace twm par fvwm2, xterm par rxvt et je retrouve enfin un espace de travail de bon goût. FVWM nécessite cependant quelques réglages supplémentaires pour être réellement agréable à utiliser. Il suffit de créer un fichier /etc/X11/fvwm/post.hook avec mes préférences.

Quelques applications comme xclock ou xload ne reçoivent jamais le focus. Ceci est configuré dans /etc/X11/app-defaults/XClock avec la ressource XClock.input: false. Par curiosité, j'essaie de trouver où cela est documenté. Cette ressource suit le standard du ICCCM décrit dans /usr/share/doc/xspecs/icccm.txt.gz et /usr/share/doc/xspecs/xlib.txt.gz à propos de la propriété WM_HINTS. Cependant aucun de ces documents ne fait officiellement le lien entre la ressource et WM_HINTS. Le document X Toolkit Intrinsics -- C Language Interface (/usr/share/doc/xspecs/intrinsics.txt.gz), mentionne XtNinput "input" dans l'appendice E et dans dans le chapitre Shell Widgets il cite XtNinput dans une liste de Shell Resources. Je ne trouverai pas de meilleures documentations.

23 août 2003

Dernière petite préférence à laquelle je tiens : un bouton de maximisation de fenêtre indiquant la maximisation. L'indication de maximisation fut difficile à obtenir, mais finalement j'ai réussi à écrire ce qu'il fallait dans un fichier default-style.hook.

25 août 2003

Noyau 2.4.22

Le noyau 2.4.22 fonctionne bien en reprenant la configuration du 2.4.21. Je supprime donc le noyau 2.4.20 par dpkg -r kernel-image-2.4.20.

Vu les besoins pressant, le support ACPI a été mis à jour dans le noyau 2.4.22, j'essaie donc de remplacer APM par ACPI. Il existe des options pour gérer la température du microprocesseur et la vitesse des ventilateurs par ACPI, quoique cela semble destiné aux portables. L'arrêt de l'ordinateur fonctionne bien, en revanche la température et la ventilation semblent indépendants d'ACPI.

Finalement j'utilise un noyau avec un support ACPI minime. Je l'ai compilé avec GCC 3.3.1 en espérant gagner quelques performances (ce n'est pas évident, le noyau compilé est déjà plus grand). Tout semble bien aller, d'après la masse d'informations de dmesg.

2 septembre 2003

VideoLAN

Les logiciels multimédias fourni avec Woody sont vraiment peu convaincants (xine par exemple). J'ai eu une bonne expérience avec VideoLAN sur Windows, alors comme ils proposent un téléchargement par Apt, j'en profite. Il me suffit d'ajouter deux lignes à /etc/apt/sources.list :

deb     http://www.videolan.org/pub/videolan/debian $(ARCH)/
deb-src http://www.videolan.org/pub/videolan/debian sources/

Après avoir ajouté ceci, une nouvelle version de libdvdread2 est installée. On me propose aussi de lancer /usr/share/doc/libdvdread2/examples/install-css.sh pour pouvoir lire les DVD. À tout hasard j'installe d'abord le paquet debhelper car il permettrait de créer un paquet Debian à partir des sources. Ce n'est cependant pas nécessaire car un binaire de libdvdcss2 est téléchargé et installé.

VideoLAN est partagé en un vingtaine de paquets, avec plusieurs plugins et plusieurs interfaces graphiques. J'essaie de n'installer que l'interface minimale (vlc) et le support de Mozilla (mozilla-plugin-vlc).

Je n'ai pas fait suffisament attention et j'ai installé le Mozilla 1.0.0 de Woody dans la foulée. Je le désinstalle donc, en espérant ne pas avoir mis trop de désordre. Je vais probablement devoir intervenir pour faire fonctionner les plugins VLC avec mon Mozilla.

L'interface GNOME de VLC est défectueuse, la fenêtre non redimensionnable prend au moins 1600 pixels de large. L'interface Qt est ignoble. L'interface KDE est passable. En revanche le décodage est moins solide que celui de xmovie ou xine. Peut-être devrais-je essayer MPlayer à la place.

15 septembre 2003

apt-get et réglages XFree86

Une mise à jour de XFree86 a remplacé mon fichier XF86Config-4. Je suis désormais en 1280×1024 à 85 Hz. Lorsque j'avais utilisé ce mode avec GNOME, j'étais tombé sur des problèmes d'affichage, mais rien à signaler avec FVWM.

Je n'ai peut-être pas suivi les procédures idoines lorsque javais modifié XF86Config-4, heureusement le nouvel XF86Config-4 fonctionne bien et a repris les principaux réglages (écran, souris, clavier…)

24 septembre 2003

Je n'avais effectivement pas suivi la procédure idoine en modifiant mon XF86Config-4. La mise à jour a remis les entrées par défaut, comme une souris générique que je n'ai pas. Selon Marc Schaefer, il faut utilisé dpkg-reconfigure xserver-xfree86 et indiquer que l'on configure XFree86 soi-même. Mais comme dpkg-reconfigure reprend très bien les options existantes et que son seul défaut est d'ajouter une section souris en trop, je laisse la configuration en ses mains. J'efface juste les quelques lignes de trop et j'obtiens un XF86Config-4 parfait.

25 septembre 2003

Backup

Commande pour sauver mes photos sur un CD : mkisofs -R -o pict.iso -r GFX suivi de cdrecord -v speed=16 dev=0,0,0 -data pict.iso. Et pour archiver sur un autre PC : scp fichier.tar.gz marc@yok-yok:dir/fichier.tar.gz.

Après vérification (le 18 janvier 2004) du manuel et sur un système Windows, la commande mkisofs -r -J -o pict.iso GFX est plus appropriée. L'option -J crée des extensions Joliet permettant des noms de fichier arbitraires sous Windows. Quant à -r, ça comprend -R.

Outils Debian

Après avoir mis à jour SSH et Exim sur mon ancien PC, SSH ne démarre plus tandis qu'Exim démarre tout seul, le contraire de ce que j'avais configuré. Il faut que je prenne garde à configurer avec les outils prévus par Debian si je ne veux plus que ce genre d'incident arrive. C'est l'occasion de parcourir la chartre Debian (Debian policy). Mais il n'y a rien d'exceptionnel, elle dit simplement d'utiliser update-rc.d pour les scripts rcn.d. En revanche pour SSH, dpkg-reconfigure ssh permet de changer la configuration.

30 septembre 2003

Sessions X Window simultanées

Il est possible de démarrer plusieurs serveurs XFree86 sur une même machine ! Avec startx -- :1 -depth 8 je peux lancer une session en mode 8 bits par pixel. Je dois le faire sous root et c'est KDE qui est chargé, mais il n'y a pas d'autre problème.

En me trompant (startx -- -depth 8 :1) je suis arrivé à un autre résultat bizarre : le nouveau serveur se connecte à l'ancien et la nouvelle session (KDE) s'ouvre dans une fenêtre (FVWM) de l'ancien.

7 octobre 2003

Moniteur défaillant

Mon moniteur CRT commence à défaillir. Lorsque le bas de l'affichage est trop foncé, un grésillement se fait entendre et le haut de l'écran présente des problèmes de synchronisation horizontale. J'achèterai sans doute un TFT, peut-être un Samsung SyncMaster 181T : 18,1 pouces, contraste 500:1, inclinable, entrées VGA et DVI, alimentation intégrée.

En attendant je met un fond d'écran gris clair pour éviter les grésillements.

Lecture de DVD

Je profite d'avoir un DVD pour faire des tests de lecture. Avec xine, le son et la navigation ne fonctionnent pas, malgré le fait que j'ai installé le paquet xine-dvdnav. Mais de toute façon l'interface de xine est tellement insupportable que ce n'est pas grave. À la place j'utilise VideoLAN. Cela ne fait pas partie de Debian, mais ils proposent des paquets Debian à http://www.videolan.org/pub/videolan/debian et même un plugin Mozilla qui fonctionne extrêmement bien après cp /usr/lib/mozilla/plugins/libvlcplugin.so /usr/local/mozilla/plugins/

8 octobre 2003

Je remarque enfin que Debian stable contient VideoLAN. Mais c'est évidemment une très ancienne version, donc pas de regret d'avoir installé une version plus récente.

15 octobre 2003

Paquet .deb

J'ai créé un paquet Debian .deb pour un petit jeu de mon cru. Les outils dpkg-deb et lintian sont pratiques, il a été très simple de suivre les instructions de http://www.kclee.com/clemens/unix/HowToCreateYourOwnDebianPackage.html.

18 octobre 2003

GCC 3.3.2 optimisé

Aujourd'hui je passe à GCC 3.3.2 et je l'optimise pour le Pentium 4. Cela demande quelques lourdes étapes en partant des sources de la version 3.3.1 et des patchs de la version 3.3.2 :

  1. cd C
  2. bzcat ../DL/gcc-core-3.3.1.tar.bz2|tar xf -
  3. bzcat ../DL/gcc-g++-3.3.1.tar.bz2|tar xf -
  4. mv gcc-3.3.1 gcc-3.3.2
  5. cd gcc-3.3.2
  6. bzcat /home/marc/DL/gcc-core-3.3.1-3.3.2.diff.bz2|patch -p1
  7. bzcat /home/marc/DL/gcc-g++-3.3.1-3.3.2.diff.bz2|patch -p1
  8. cd ..
  9. mkdir gcc-3.3.2-build
  10. cd gcc-3.3.2-build
  11. ../gcc-3.3.2/configure --prefix=/home/marc/Soft --enable-languages=c,c++
  12. make -j 2 CFLAGS='-g -O2 -march=pentium4' BOOT_CFLAGS='-g -O2 -march=pentium4' STAGE1_CFLAGS='-g -O2 -march=pentium4' bootstrap
  13. make install

La documentation sur les options de configuration est erronée, ce n'est qu'en fouillant avec Google que j'ai trouvé la trace de STAGE1_CFLAGS. Il existe encore d'autres variables pour les bibliothèques. Mais il est peut-être préférable de conserver des bibliothèques compatibles avec tous les processeurs, par exemple si je compile statiquement un programme pour le distribuer.

Je n'ai pas la patience de compiler sans optimisation pour comparer, mais un de mes projet prend 10,1 secondes contre 13,8 secondes pour la version 3.0.4 distribuée par Debian.

21 octobre 2003

Paquets sources de Debian

J'ai d'abord dû configurer mon système. J'ai ajouté la ligne deb-src http://http.us.debian.org/debian stable main contrib non-free dans /etc/apt/sources.list. Ensuite apt-get update puis apt-get source xgalaga. Ceci décompresse automatiquement les sources dans le répertoire courant. Je suppose que les patchs sont aussi appliqués.

Avec l'option --compile on peut même automatiquement créer un paquet binaire ! Comme il semble que la source disponible la plus récente soit automatiquement téléchargée, ça donne peut-être un moyen assez fiable d'avoir quelques versions récentes de certains paquets uniquement.

9 novembre 2003

Construction de paquet Debian

J'ai appris l'existence du Guide du nouveau responsable Debian et par la même que mon premier paquet produit était très loin du standard attendu. Je m'en doutais un peu, mais pas tant. J'installe déjà le paquet dh-make qui contient un utilitaire permettant de transformer des sources classiques en sources suivant la politique Debian. Le paquet devscripts contient également de nombreux petits outils peut-être utiles.

En tout cas dpkg-buildpackage -rfakeroot devrait tout me construire (paquet source, paquet binaire, patch…), une fois que j'aurai bien préparé les fichiers de contrôle.

17 décembre 2003

Clavier de la console

Une mise à jour a lancé dpkg-reconfigure console-common, ce qui reconfigure le clavier de la console. Or dpkg-reconfigure propose une liste de clavier qui ne semble pas venir directement du répertoire /usr/share/keymaps/. Il ne me propose pas donc pas mon clavier suisse romand latin 1 modifié. Je dois donc corrigé manuellement comme le 11 août 2002 avec install-keymap fr_CH-latin1-moi

19 décembre 2003

Noyau 2.4.23

Un nouveau noyau pour corriger la faille exploitée pour attaquer les serveurs Debian. En outre il offre un module pour lire un générateur d'entropie dans le chipset. Je le compile avec GCC 3.3.2 contre GCC 3.3.1 pour le précédent. Tout semble bien fonctionner, selon dmesg.

23 janvier 2004

Disque dur silencieux

Avec le temps, mon disque dur est devenu un peu bruyant : un sifflement aigü. La commande hdparm -y /dev/hda permet de le stopper, mais des accès fantômes (je n'ai pas de swap) le réactive après quelques secondes. Cela semble également rendre inopérante la pause automatique, même avec un délai d'attente d'activité minimal (hdparm -S 1 /dev/hda).

vmstat -n 5 montre qu'il y a régulièrement des lectures de disque. Quoique vmstat n'est peut-être pas tout à fait fiable, il ne détecte aucune écriture, malgré mes efforts et mes sync. Bref, trouvons déjà d'où viennent les accès détecté. Je pense qu'il s'agit de tâches (très) périodiques du type cron.

À force de touch /tmp/stamp, sync et find / -anewer /tmp/stamp|grep -v proc, j'ai identifié le téléchargement automatique de courrier par Mozilla. C'est une option facilement annulable. nedit fait aussi quelques sauvegardes automatiques, ce qui est aussi annulable. Enfin Exim est parfois lancé par cron.

Un dernier point ennuyeux, c'est que le fait de lancer une commande comme hdparm -y /dev/hda modifie l'enregistrement de dernier accès de hdparm, /lib/ld-2.2.5.so et quelques autres fichiers. Je peux monter /usr en lecture seule, mais plusieurs fichiers de / sont modifiés, ça semble donc plus compliqué pour /. La bonne solution est de toute façon hdparm -S n /dev/hda, mais ça ne fonctionne qu'avec un délai beaucoup plus long que prévu (plusieurs minutes au lieu de 5 secondes). Toutefois ce délai faux convient bien.

Reste à éliminer les programmes périodiques inutiles. Par exemple /etc/cron.d/exim lance Exim toutes les 15 minutes. Je supprime. Je ne vois pas bien à quoi ça sert, puisque de toute façon Exim est lancé avec les options -bd -q30m. D'ailleurs je met -q360m dans /etc/init.d/exim.

Ensuite une marque est faite dans /var/log/syslog et /var/log/messages toutes les 20 minutes. En ajoutant l'option -m 0 dans /etc/init.d/sysklogd on a j'évite cela.

Il reste à créer un script de démarrage qui lance hdparm -S 1 /dev/hda. Je fais un fichier /etc/init.d/hdparm basé sur /etc/init.d/skeleton. Ensuite un update-rc.d hdparm defaults 99 installe les liens par défaut. J'efface les K99hdparm (qui sont inutiles) et c'est bon.

26 janvier 2004

Cartes mémoire USB

Depuis le noyau 2.2.x, j'ai eu des problèmes pour monter les cartes mémoire de mon appareil photo Minolta DiMAGE F100. J'avais conclu que les noyaux 2.2.x ne supportait que la carte de 16 Mo et les noyau 2.4.x la carte 128 Mo. Testant la carte 16 Mo sur le noyau 2.4.25-pre7, j'ai vu qu'elle fonctionnait, mais plus la carte 128 Mo. J'ai donc lancé une discussion à ce sujet dans la liste Linux-Kernel et il s'est révélé qu'il fallait utiliser la commande eject lorsqu'on change de carte. Une solution un peu plus brutale est de décharger et recharger le module sd_mod.

31 janvier 2004

Modules non présents

Des messages apparaissent régulièrement dans /var/log/ksymoops/. Ils sont causés par net-pf-10, sound-slot-1 et sound-service-1-0. Je ne vois malheureusement pas moyen d'éviter ces messages. Ceux concernant le son sont sans doute causés par une application recherchant un seconde carte son. net-pf-10 correspond à IPv6, c'est plus ennuyeux car ça semble déclenché à tout moment.

6 février 2004

Initialisation de la carte graphique

Il arrive que seule la moitié de la mémoire vive de ma carte graphique soit détectée. Et dans ce cas, le défilement cause des parasites sur toute la largeur de l'écran à la hauteur du pointeur. En précisant la quantité de mémoire dans /etc/X11/XF86Config-4 le problème ne change pas. J'essaie une configuration avec le driver radeon au lieu de ati. Pour le premier essai, ça fonctionne, je conserve le log pour comparaison.

11 février 2004

Polices TrueType et anti-aliasing

Bien que j'ai installé des polices TrueType il y a longtemps, elles n'étaient pas disponibles. J'avais manuellement installé des polices Agfa dans /usr/local/share/fonts/TrueType/ et installé avec un paquet des polices Microsoft dans /usr/X11R6/lib/X11/fonts/TrueType/. Mais aucune configuration ne contenait le chemin des polices Microsoft. Quant aux polices Agfa, j'avais ajouté un chemin dans /etc/X11/XftConfig, mais sans résultat.

En outre, je ne comprend pas à quoi sert le serveur de police xfs installé par défaut. Il a encore un autre fichier de configuration contenant des chemins : /etc/X11/fs/config. En plus le paquet xfs ne semble pas désinstallable. Heureusement, je peux m'appuyer sur le XFree86 Font De-uglification HOWTO pour progresser.

En ajoutant les chemins dans /etc/X11/XF86Config-4, j'ai accès aux polices TrueType avec X Window. Mais sans antialiasing, Google en Arial est trop laid. Il faut configurer séparément Mozilla. La documentation indique en l'occurrence /usr/local/mozilla/defaults/pref/unix.js. Le changement de qualité avec l'antialiasing est frappant, quoique c'est facilement un peu trop flou. Voici mes réglages :

pref("font.FreeType2.enable", true);
pref("font.FreeType2.autohinted", false);
pref("font.FreeType2.unhinted", false);
pref("font.antialias.min",        10);
pref("font.directory.truetype.1", "/usr/local/share/fonts/TrueType");
pref("font.directory.truetype.2", "/usr/X11R6/lib/X11/fonts/TrueType");

Le serveur de polices semble aussi inutile ininstallable. Je le retire de la liste des FontPath de /etc/X11/XF86Config-4 et je me contente de ne pas le démarrer :

update-rc.d -f xfs remove
update-rc.d: /etc/init.d/xfs exists during rc.d purge (continuing)
 Removing any system startup links for /etc/init.d/xfs ...
   /etc/rc0.d/K20xfs
   /etc/rc1.d/K20xfs
   /etc/rc2.d/S20xfs
   /etc/rc3.d/S20xfs
   /etc/rc4.d/S20xfs
   /etc/rc5.d/S20xfs
   /etc/rc6.d/K20xfs

OpenGL

Si je lance glxgears, XFree86 se bloque complètement. Heureusement ce n'est que l'interface graphique. Je peux encore accéder au PC par ssh, après avoir renommé /etc/ssh/sshd_not_to_be_run et relancé /etc/init.d/ssh start. Toutefois le noyau se plante également si je tue XFree86. La cause n'est pas très claire, mais le domaine étant en plein développement, il faudrait commencer par essayer la dernière version (4.3) de XFree86. Ça ne vaut pas vraiment la peine, je laisse momentanément tomber.

13 février 2004

bash_completion

Il y a quelques mois, j'ai mis à l'essai le mécanisme permettant à bash de compléter intelligemment la ligne de commande en décommentant . /etc/bash_completion dans mon .bashrc. Comme je suis convaincu par le mécanisme, je le fais maintenant dans /etc/bash.bashrc.

15 février 2004

Modeline

XFree86 est censé paramétrer automatiquement la carte graphique pour afficher l'image de meilleure qualité dans n'importe quelle résolution. Bizarrement, ça ne fonctionne pas pour le 1152×864 qui est affiché en 75 Hz. Heureusement le site Colas XFree Modeline Generator permet toujours de calculer la Modeline pour le 85 Hz : ModeLine "1152x864" 118.02 1152 1200 1440 1536 864 866 878 904.

5 mars 2004

dexconf et XF86Config-4

Ayant mal balisé la section gérée par dexconf dans XF86Config-4, chaque mise à jour automatique de XFree86 me changeait les paramètres.

J'ai donc corrigé mon XF86Config-4 pour qu'il ne se fasse plus changer automatiquement. En effet, ces changements perdent mon mode 1152×864 en 85 Hz, mes chemins de polices, et ajoutent une souris inexistante. Selon le log, tout va bien. Reste à attendre la prochaine mise à jour automatique pour vérifier l'efficacité de ces corrections.

20 mars 2004

Clonage de CD-ROM

Pour cloner un CD-ROM non standard, dd et cdrecord ne suffisent pas. En revanche une paire de commandes comme cdrdao read-cd --read-raw --driver generic-mmc toc et cdrdao write --driver generic-mmc toc peut donner un bon résultat, mais c'est très lent.

22 mars 2004

Serveur d'impression

Pour utiliser un de mes PC comme serveur d'impression Unix, j'ai lpd qui fonctionne dessus en écoutant le réseau avec une entrée dans /etc/hosts.lpd pour le PC client. Sur le PC client, il a faut aussi que lpd soit installé. Bizarrement mon paquet lpr semblait partiellement installé avec lpr ou lpq mais pas lpd. Enfin j'ai ajouté une entrée d'imprimante distante dans /etc/printcap, par exemple avec apsfilterconfig. L'option -P des commandes d'impression permet ensuite de sélectionner cette imprimante.

2 avril 2004

Menu de FVWM

J'ai oublié de le documenter en son temps, mais j'ai ajouté des entrées dans le menu de FVWM. Je les ai ajoutées dans le fichier /etc/X11/fvwm/main-menu-pre.hook :

AddToMenu /Debian
+ "&Rxvt" Exec exec rxvt
+ "&Mozilla" Exec exec /usr/local/mozilla/mozilla
22 avril 2004

Souris USB

J'ai installé une souris USB sur mon vieux PC. J'ai compilé un noyau 2.4.26 en ajoutant le support HID (Human Interface Device) à la partie USB. Ensuite il a fallu lancer mknod /dev/input/mice c 13 63 car rien n'était préconfiguré. J'ai trouvé le numéro un peu au hasard avec Google car j'ai été égaré par /dev/usb/mouse0 de numéro (180,16) préconfiguré sur mon nouveau PC. Mais ce répertoire /dev/usb ne semble rien contenir d'utilisable.

Finalement en reprenant l'entrée préconfigurée dans /etc/X11/XF86Config-4 en ajoutant que c'est le CorePointer à tout hasard, tout va bien.

11 août 2004

SMTP par Exim

Ma sortie sur Internet par le port SMTP commençant à être filtrée par Tele2 ADSL et les connexions depuis des adresses IP dynamiques refusées par certains serveurs, je renonce à utiliser mon propre démon SMTP Exim. Il faut que j'utilise smtp.tele2.ch à la place. Mais Debian a besoin d'un support minimal du courrier.

Je veux configurer Mozilla pour qu'il lise le courrier local, la commande mail pour être capable d'envoyer des courriers partout et supprimer toute écoute sur port SMTP. La politique de courrier de Debian est documentée, ça devrait aidé. Les paquets s'occupant du courrier sont :

biff
Notification de réception de message, synchrone ou asynchrone avec le serveur comsat. Ne me sert à rien, je désinstalle.
Exim
''Mail Transfer Agent'' écoutant le port SMTP et essayant de transférer directement aux serveurs SMTP du destinataire.
kmail
Client mail de KDE, je l'effacerai peut-être une fois avec le reste de KDE.
mail-reader
Paquet virtuel
mail-transport-agent
Paquet virtuel
mailx
Contient la commande mail qu'il faut que je configure pour pouvoir envoyer des couriers à l'extérieur.
mpack
Utilitaire d'encodage en MIME, peut servir.
mutt
Client mail que je n'utilise pas, je désinstalle.
procmail
''Mail Delivery Agent'', pourrait être redondant avec Exim.
vacation
Prévu pour être appelé par un .forward

Actions

  1. Pas besoin qu'Exim écoute le port SMTP : rm /etc/rc*/S*exim.

  2. Une ligne dans /etc/cron.d/exim pour régulièrement vider une éventuelle queue de messages en attente :
    0-23/4 * * * mail if [ -x /usr/sbin/exim -a -f /etc/exim/exim.conf ]; then /usr/sbin/exim -q ; fi

  3. Je lance eximconfig, option 2, pour qu'Exim utilise toujours smtp.tele2.ch pour envoyer le courrier externe. Les fichiers /etc/aliases et /etc/exim/exim.conf et /etc/mailname sont configurés. Le fichier /etc/email-addresses sert à contenir les règles de réécriture d'adresse.

    La réécriture est complexe, il faut réécrire uniquement ce qui sort par SMTP. Mais il faut réécrire les adresses des en-têtes et de l'enveloppe (notamment utilisées par la commande MAIL FROM de SMTP). Or Exim ne permet de réécrire les en-têtes que dans le transport SMTP. L'enveloppe doit être réécrite immédiatement, avant que le transport ne soit déterminé, ce qui affecte également les courriers locaux. Heureusement la commande mail et Mozilla se basent sur l'en-tête From: Marc Mongenet <marc@kameha> plutôt que Return-path: <Marc.Mongenet@freesurf.ch>.

    Un courrier envoyé à root est reçu par marc grâce aux alias. Mais l'effet n'est pas propagé aux réécritures, ainsi root ne peut pas profiter de la réécriture de marc pour envoyer un courrier externe en tant que Marc.Mongenet@freesurf.ch, logique. Voici mon exim.conf.

  4. Je me crée un compte Movemail avec Mozilla. Un répertoire est créé au fin fond du répertoire .mozilla. Il suffit de remplacer son fichier Inbox vide par une copie du fichier mbox pour récupérer l'ancien courrier.

    Malheureusement la configuration de Debian empêche au Movemail interne à Mozilla de vérouiller /var/mail/marc. Il ne reste qu'à attendre que Mozilla implémente un Movemail externe.

    Si je donne le chemin complet du fichier Inbox de Mozilla dans mon .forward, Mozilla ne semble remarquer les ajouts à ce fichier qu'au démarrage. Ce n'est d'ailleurs pas documenté, donc risqué. Il reste à attendre que Mozilla implémente une méthode Movemail externe, comme Netscape 4

  5. Pour être cohérent, je devrais configurer Mozilla pour envoyer le courrier à travers Exim. Mais je ne compte pas envoyer de courrier local avec Mozilla donc je peux directement utiliser smtp.tele2.ch.


© 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 31 dédembre 2017.