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 |
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é.
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…
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 !
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.
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.
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
.
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
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.
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
.
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
.
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
.
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.
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).
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.
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).
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
.
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…
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.
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.
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.
xhost
xhost
est avantageusement remplacé par
export
XAUTHORITY=/home/marc/.Xauthority
(avec bien sûr
export DISPLAY=:0
).
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.
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
.
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.
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…
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.
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.
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. !
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
.
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.
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
.
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.
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.
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…
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.
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.
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}\]
"
.
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.
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.
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.
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 :
Les messages de démarrage du noyau deviennent beaucoup trop verbeux.
Le mode UDMA du disque dur n'est pas activé. La
machine s'en trouve ralentie. Un hdparm -d1
/dev/hda
retourne HDIO_SET_DMA failed:
Operation not permitted
. Une option doit manquer
dans le noyau. En plus le noyau génère parfois
d'inquiétants messages hda: lost
interrupt.
Les lm-sensors
semblent requérir une
détection de matériel avec une foule de modules. Je crois
que je dois encore installer des trucs et lire de la
documentation. En attendant, les problèmes de
/dev/hda
sont plus urgents.
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.
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.
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).
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.
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.
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 :
Ce n'est pas Vol qui fonctionne comme master du volume mais Pcm2. Vol ne sert à rien.
IGain est un préampli uniquement actif pour enregistrer. Sur une entrée telle que Line, IGain > 1 semble saturer, d'où mes problèmes car j'utilisais IGain=100. IGain=0 coupe cependant l'enregistrement.
Étonnament, un enregistrement saturé par un IGain trop élevé peut être écouté sans trop de saturation en réduisant Pcm (convertiseur D/A ?) à 80, 50, 30… au lieu de 100.
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.
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
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.
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…
/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
.
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.
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
.)
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
.
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é.
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
.
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.
~
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
.
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.
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
.
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
.
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.
apt-get
et réglages XFree86Une 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…)
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.
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
.
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.
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.
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.
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/
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.
.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
.
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 :
cd C
bzcat ../DL/gcc-core-3.3.1.tar.bz2|tar xf
-
bzcat ../DL/gcc-g++-3.3.1.tar.bz2|tar xf
-
mv gcc-3.3.1 gcc-3.3.2
cd gcc-3.3.2
bzcat
/home/marc/DL/gcc-core-3.3.1-3.3.2.diff.bz2|patch
-p1
bzcat
/home/marc/DL/gcc-g++-3.3.1-3.3.2.diff.bz2|patch
-p1
cd ..
mkdir gcc-3.3.2-build
cd gcc-3.3.2-build
../gcc-3.3.2/configure
--prefix=/home/marc/Soft
--enable-languages=c,c++
make -j 2 CFLAGS='-g -O2 -march=pentium4'
BOOT_CFLAGS='-g -O2 -march=pentium4' STAGE1_CFLAGS='-g -O2
-march=pentium4' bootstrap
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.
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.
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.
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
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
.
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.
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
.
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.
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.
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
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.
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
.
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
.
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.
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.
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.
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
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.
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
comsat
. Ne me sert
à rien, je désinstalle.kmail
mail-reader
mail-transport-agent
mailx
mail
qu'il faut que
je configure pour pouvoir envoyer des couriers à
l'extérieur.mpack
mutt
procmail
vacation
.forward
Pas besoin qu'Exim
écoute le port SMTP : rm
/etc/rc*/S*exim
.
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
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
.
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…
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
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.