À chaque impression, Apsfilter ajoute dans le fichier de
log /var/spool/lpd/lp/log
une ligne
d'avertissement indiquant qu'il ne connaît pas l'option
yok-yok
. Effectivement, c'est le nom de la
machine.
Le fonctionnement de tout cela est pour le moins tordu. Nous avons :
lpd
lit dans /etc/printcap
qu'il
existe un filtre (if=
)
/etc/apsfilter/basedir/bin/apsfilter
.lpd
appelle le
filtre avec la commande filtre [-c]
-wwidth -llength -iindent
-n login -h host
acct-file
.$CONTROL
(qui serait fournie par LPRng) sans
quoi il lit le fichier
"$SPOOLDIR/$control_file"
dont le nom est
donné par le contenu du fichier
"$SPOOLDIR/lock"
."$SPOOLDIR/$control_file"
ainsi :
case "$line" in
C*) CLASS="$value" ;;
H*) HOST="$value" ;;
J*) JOB="$value" ;;
N*) FNAME="$value" ;;
P*) USER="$value" ;;
esac
Selon man lpd
, la ligne
commençant par C
contient
Classification. String to be used for the
classification line on the burst page.
"$SPOOLDIR/$control_file"
généré par mon
système :
cat /var/spool/lpd/lp/cfA012yok-yok
Hyok-yok
Proot
Jprintcap
Cyok-yok
Lroot
fdfA012yok-yok
UdfA012yok-yok
N/etc/printcap
$CLASS
ce qui suit
la ligne commençant par C
, Apsfilter essaie de
reconnaître dedans diverses options d'impression comme
ascii
ou tray2
. À défaut, il
ignore tout ce qui correspond à [A-Z]
, mais
yok-yok
ne correspondant à rien, d'où la ligne
d'avertissement.Troublé par ce comportement erroné, je pose la question à
linux-leman@alphanet.ch
avant de soumettre un éventuel bug.
sources.list
Avant de poursuivre, je mets à jour mon /etc/apt/sources.list
afin d'avoir un système à jour. Désormais j'ai les sources
suivantes :
# CD `woody'
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-7 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-6 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-5 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-4 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-3 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-2 (20020718)]/ unstable contrib main non-US/contrib non-US/main
deb cdrom:[Debian GNU/Linux 3.0 r0 _Woody_ - Official i386 Binary-1 (20020718)]/ unstable contrib main non-US/contrib non-US/main
# Security `woody' conseillée par www.debian.ch
deb http://security.debian.org/ woody/updates main contrib non-free
# non-US `woody' conseillée par www.debian.ch
deb http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free
# Swiss mirror for Debian `woody' conseillée par www.debian.ch
deb http://sunsite.cnlab-switch.ch/ftp/mirror/debian/ woody main non-free contrib
Et il y a déjà pas mal à mettre à jour :
The following packages will be upgraded glibc-doc libc6 libc6-dev libpng2 libpng3 libssl0.9.6 libssl09 locales mpack xsnow 10 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 13.0MB of archives. After unpacking 60.4kB will be freed.
Afin de libérer un peu /usr
et éviter des mises à
jour aussi grosses qu'inutiles par modem, je fais encore un
peu de place en supprimant les paquets bsdgames
,
koules
, procmail
,
autoclass
, diploma
,
enlightenment
, enlightenment-data
,
fftw-dev
, sgml-tools
,
linuxdoc-tool
, nethack
,
nethack-x11
, rcs
,
tk8.2-dev
, tcl8.2-dev
,
wzip
, xevil
et
xscavenger
. Encore un rmdir
/etc/nethack
et c'est bon. Je laisse à tout
hasard /etc/enlightenment/menus/
quoique son utilité est douteuse.
Un peu déçu de constater que je n'ai gagné que quelques
pourcents sur /usr
.
Mais je ferai de la place en installant le noyau 2.2.20 et
virant les sources du 2.2.19 de /usr/local/src
.
Il est temps de supprimer mon noyau
2.2.18pre21-fastboot
; le 2.2.19 est tout à
fait stable et je vais essayer le 2.2.20 qui vient avec
Woody. J'ai déjà décompressé les sources du
2.2.20 dans mon compte, elles me prennent 94940
kilo-octets !
Aptitude a très bien nettoyé le noyau
2.2.18pre21-fastboot
, ses modules, sa
documentation. En revanche il a laissé le lien
/vmlinuz.old
sur rien du tout. J'ai lancé LILO
en prenant garde de commenter le label
LinuxOLD.
Avant d'essayer un noyau 2.4, je tente le dernier noyau
2.2 en date car il est assez récent. D'abord j'installe
fakeroot
pour pouvoir suivre fidèlement la
documentation Debian.
Ensuite :
cp
/usr/local/src/Linux/kernel-source-2.2.19/.config
.
car je n'ai rien changé dans mon
PC ;make oldconfig
, très pratique,
2 petites questions et tout le reste a l'air bien
récupéré ;make-kpkg clean
fakeroot make-kpkg --revision=marc.1.0
kernel_image
produit
../kernel-image-2.2.20_marc.1.0_i386.deb
;root
, dpkg -i
kernel-image-2.2.20_marc.1.0_i386.deb
;lilo -v
après avoir
spécifié les deux labels :
image=/vmlinuz
label=Linux
read-only
append="advansys="
# restricted
alias=1
et
image=/vmlinuz.old
label=LinuxOLD
read-only
append="advansys="
# restricted
alias=2
Et maintenant, le moment de vérité… Parfait,
comme le montre dmesg
>dmesg_2.2.20.txt
.
Le lecteur CD de ma PlayStation rend lentement l'âme
depuis des années. Mais je n'ai encore jamais essayé de lire
un CD audio sur mon lecteur de CD-ROM. Je ne sais même pas
quelle application utiliser. À tout hasard, j'installe
cdcd
et libcdaudio0
.
Je lance cdcd
, il me demande si
/dev/cdrom
correspond bien à mon CD-ROM, puis si
je suis connecté à un réseau (no). Malheureusement
je n'ai pas le droit d'accéder au lecteur de CD en tant que
marc
. En tant que root
cependant,
c'est bon.
Pour laisser une fois pour toute chacun(e) accéder aux CD
je pourrais me contenter d'un chmod o+rw
/dev/scd0
. Mais je vais suivre la méthode
orthodoxe et mettre les utilisateurs concernés dans le groupe
cdrom
.
/usr
J'ai un répertoire /usr/local/src/Linux
qui
contient les .deb
des noyaux que j'ai produit et
les sources du noyau 2.2.19. Je déplace les .deb
des kernel-image
dans mon compte et efface les
sources, 100 Mo de gagné ! Et encore 15 Mo en
purgeant kernel-source-2.2.19
.
Je pourrais encore gagner 250 Mo en virant Star Office, c'est à considérer.
Histoire de remplir un peu la place libérée, j'installe
les paquets gimp1.2
et
gimp1.2-print
, ce qui ajoute encore
libgimp1.2
, libgtkxmhtml1
et
gimpprint-locales
. Le fonctionnement me semble
parfait.
Je cherche un éditeur sympa pour éditer mes fichiers HTML.
Emacs et son
mode SGML sont vraiment beaucoup trop lents. aee
est rapide, mais trop simple et avec plein de nouveaux
raccourcis à apprendre. Je ne vois même pas du premier coup
comment annuler la dernière opération. Tant pis pour lui, je
jette.
august
est plus complet en revanche. C'est un
éditeur HTML spécialisé. Il est plus rapide qu'Emacs, mais encore
trop lent. En plus sa coloration syntaxique est douteuse. Et
surtout il ne me semble disposer que de fonctions inutiles
qui pondent du mauvais HTML. Et c'est effectivement encore
une version bêta, donc hop poubelle.
Par ordre alphabétique, je tombe sur beaver
.
Basé sur GTK+, il a une interface intéressante et des
raccourcis claviers auquels je semble déjà habitué. Mais la
coloration syntaxique est ratée. Et surtout, faute capitale
pour un éditeur, tellement lent qu'il continue à effacer
après que j'aie relâché la touche d'effacement. Sans compter
des clignotements de rafraîchissement particulièrement
pénibles. Tant pis. Peut-être la version 1.0 vaudra-t-elle la
peine d'être ré-évaluée.
Tiens, j'arrive sur Emacs. Il existe un
mode CSS, intéressant, j'installe donc le paquet
css-mode
. Ce qui installe aussi un paquet
html-helper-mode
. Aaaahhh, voilà qui semble
parfait. Vraiment très très bien. Après avoir redémarré
Emacs, je me
retrouve dans un mode HTML nettement plus rapide que le mode
SGML. Avec une meilleure coloration syntaxique en prime. Et
le mode CSS est aussi sympa. Tout est au mieux.
Je pourrais remplacer mon Emacs 20.7.2 par Emacs 21.2, mais ce n'est plus si pressant maintenant que je peux enfin éditer de gros fichiers HTML sans poireauter sur les scripts d'Emacs.
Tiens, d'après ce que j'ai lu sur le Web, avec Emacs 21, taper Delete effacerait le caractère sous le curseur. Finalement je dois installer Emacs 21 au plus vite ! Et plus, des lignes vides ne seront plus silencieusement ajoutées en fin de fichier en utilisant la touche flèche en bas. Que des avantages.
Que des avantages, sauf l'indentation automatique.
Heureusement je peux changer cela avec le menu
Help->Customize->Apropos
Options...->indent
. Je n'ai qu'à mettre
1 au lieu de nil
dans le réglage
suivant et sauver pour toutes les sessions (dans mon .emacs
).
Html Helper Never Indent: [Hide] nil [State]: you have edited the value as text, but you have not set the option. If not nil, the indentation code for html-helper is turned off.
J'ai besoin d'utiliser un peu sérieusement The Gimp. Pour
cela j'installe quelques paquets supplémentaires :
gimp-manual
qui prend dans les 20 Mo,
gimp1.2-nonfree
car j'ai besoin de sauver en GIF
et freefont
pour avoir le choix. L'installation
de gimp1.2-nonfree
cause une connexion à un
serveur sur Internet, celle de freefont
un petit
message d'avertissement :
/usr/sbin/update-fonts-scale: warning: absolute path
usr/lib/X11/fonts/Type1 was provided.
Pratiquement aucune des polices de freefont
ne semble avoir un répertoire ISO-8859-1 complet, c'est assez
étonnant. Je comprend cependant mieux pourquoi elle ne sont
pas installées par défaut. Je tente cependant une utilisation
dans Mozilla avec
freefont-slogan-iso8859-1
comme police cursive
(un peu trop petite pour être lisible en taille par défaut)
et freefont-parkavenue-iso8859-1
comme police
fantaisie. Ces polices n'ont généralement pas de variation
grasse ou italique, pas terrible. Il est probable que je
désinstalle tout ça le jour où j'ajoute des polices True
Type.
Je suis nul en dessin et à mon grand désarroi autant avec The Gimp qu'avec les autres programme (MS Paint, Deluxe Paint…) En plus je trouve le fonctionnement de ces programmes peu intuitif. The Gimp 1.2 ne fait malheureusement pas du tout exception. Il y a pas mal de trucs qui m'échappent. Un bon menu contextuel aurait sauvé ma journée, mais non, y'a pas.
Depuis que je suis passé à Woody, mon XTerm utilise une police italique. C'est intéressant, mais manque tout de même un peu de clarté. Je vais donc d'abord rétablir une bonne police dans XTerm, ensuite autoriser les caractères 8 bits. D'abord les polices, et quitte à s'occuper des polices, je vais aussi chercher pourquoi Rxvt utilise une police grasse.
xrdb -query -all |grep font *VT100.font: -misc-fixed-medium-*-semicondensed-*-13-*-*-*-*-*-iso8859-1 *font: -misc-fixed-*-*-*-*-13-*-*-*-*-*-iso8859-1 *fontList: -*-lucida-medium-r-*-*-12-*-*-*-*-*-*-* XMotd*quit.font: -*-times-bold-r-*-*-*-240-* emacs.font: -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
Pour XTerm, c'est *VT100.font
qui s'applique.
Grâce à xfontsel -pattern
"-misc-fixed-medium-*-semicondensed-*-13-*-*-*-*-*-iso8859-1"
je remarque qu'il existe une variante italique qui est prise
en priorité. Facile à corriger, tout est défini dans
/etc/X11/Xresources/xterm
. Je change :
*VT100.font:
-misc-fixed-medium-r-semicondensed-*-13-*-*-*-*-*-iso8859-1
.
J'en profite pour ajouter quelques lignes de
défilement : *VT100.saveLines: 8191
.
Rxvt de son côté ne reconnaît que les classes de ressource
XTerm
et Rxvt
. Ma classe
VT100
semble donc totalement inutile. Je modifie
donc /etc/X11/Xresources/xterm
pour que les
ressources font
, pointerColor
,
visualBell
et saveLines
. Ces ressources de XTerm semblent
également bonnes pour XTerm et Rxvt. Du coup, autant utiliser
Rxvt, il occupe moins de mémoire :
update-alternatives --config x-terminal-emulator There are 4 programs which provide `x-terminal-emulator'. Selection Command ----------------------------------------------- 1 /usr/bin/rxvt-xterm 2 /usr/bin/rxvt-xpm *+ 3 /usr/X11R6/bin/uxterm 4 /usr/X11R6/bin/xterm Enter to keep the default[*], or type selection number: 1 Using `/usr/bin/rxvt-xterm' to provide `x-terminal-emulator'.
Pour ce qui est des caractères 8 bits, je peux les
afficher (cat 3.html
) dans la console
comme avec XTerm. L'entrée n'est en revanche possible qu'avec
XTerm et encore pas directement dans bash
. mais
par exemple dans cat >toto
.
Peut-être suffit-il de s'occuper de /etc/inputrc
?
# To allow the use of 8bit-characters like the german umlauts, comment out
# the line below. However this makes the meta key not work as a meta key,
# which is annoying to those which don't need to type in 8-bit characters.
# set convert-meta off
set convert-meta off
règle effectivement tous
les problèmes avec XTerm, mais ça n'a aucun effet sur la
console. Je soupçonne une mauvaise configuration de
clavier.
D'après /etc/init.d/keymap.sh
,
c'est /etc/console/boottime.kmap.gz
qui est chargé par loadkeys
au démarrage. Le
fichier /usr/share/doc/console-data/README.Debian
donne des informations très intéressantes sur les contraintes
du chargement du clavier et explique pourquoi il faut
utiliser install-keymap
pour changer de clavier.
Pour l'instant j'ai bien un clavier suisse-romand, mais dont
seuls les caractères ASCII sont définis.
En relisant la
capture d'installation je me rends compte que j'ai oublié
le dialogue de configuration de console-common
.
J'avais choisi Select keymap from arch list mais
juste après il y a eu un message Imported boot-time
keymap from old console-tools settings. Plus tard,
lors du setup de console-data
un
autre message notable est apparu : No default for
console-data/keymap/qwertz/swiss/variant - picking
one. Si le premier clavier du script Perl
/usr/share/console/lists/keymaps/console-data.keymaps
a été pris, alors il s'agit sans doute de
/usr/share/keymaps/i386/qwertz/fr_CH.kmap.gz
qui
semble effectivement être un clavier suisse-romand purement
ASCII.
Un petit test dans la console avec loadkeys
fr_CH-latin1
est convaincant, j'essaie
install-keymap fr_CH-latin1
. Au
niveau des claviers, c'est presque parfait. En fait je ne
vois plus que deux défauts dans le clavier du
noyau :
Enfin, la police de la console est manifestement celle de
la ROM de carte graphique. En effet, aucune trace de
setfont
dans les scripts de démarrage. En outre
l'affichage des caractères correspond exactement avec la
description donnée dans le courrier de Pablo Sartxaga repris
dans le French-HOWTO
sur Freenix.
Tiens, en fait je découvre en lisant le
Francophones-HOWTO (/usr/share/doc/HOWTO/en-txt/Francophones-HOWTO.gz
)
que setfont
a été remplacé par
consolechars
. Or consolechars
est
utilisé par /etc/init.d/console-screen.sh
qui utilise la configuration (actuellement vide) de /etc/console-tools/config
.
J'ai encore du travail de localisation. Ainsi j'ai pu
créer un répertoire avec mkdir àéàé
.
Mais ls
est incapable de m'afficher
ces caractères :
ls -ld àéàé
drwxrwsr-x 2 marc marc 4096 Aug 12 22:43 ????
Mozilla en revanche arrive à me les afficher.
D'après la capture
d'installation, je dois ajouter les locales
que je veux (mais listées dans /usr/share/i18n/SUPPORTED
)
dans /etc/locale.gen
puis lancer locale-gen
. Mais en fait
dpkg-reconfigure locales
devrait me
permettre de faire tout cela de manière guidée. Je
sélectionne donc fr_CH ISO-8859-1
dans
l'interface de sélection des locales à générer,
mais laisse C
comme locale par
défaut du système. Et voilà, fr_CH ISO-8859-1
a
été ajouté à /etc/locale.gen
puis localedef
lancé.
Petite vérification :
23:30:00 marc /home/marc
export LC_ALL="fr_CH"
23:31:04 marc /home/marc
ls -ld àéàé
drwxrwsr-x 2 marc marc 4096 aoû 12 22:43 àéàé
23:33:56 marc /home/marc
ls "y'a pas"
ls: y'a pas: Aucun fichier ou répertoire de ce type
23:34:02 marc /home/marc
C'est tellement beau que je vais en faire la localisation
par défaut du système. Il semble que
dpkg-reconfigure
ajoute simplement
LANG=fr_CH
dans /etc/environment
.
Je relance le tout et, ô joie, tout fonctionne encore
mieux ; c'est-à-dire que less
est capable
d'afficher tous les caractères ISO-8859-1 et Mozilla a aussi un titre de
fenêtre correct.
Il faut s'avoir s'ouvrir à d'autres cultures. :-) En fait
il s'agit d'une réinstallation propre après avoir nettoyé le
disque à grand coup de mke2fs
/dev/hda1
.
L'installation est remarquablement simple. Sauf bien sûr, si l'on veut vérifier le contrat de licence utilisateur final… Bon, comme je ne veux pas m'engager pour 10 ans de légion étrangère sans m'en rendre compte, je vérifie. Quelques limitations intéressantes :
Mises à jour de sécurité. Les fournisseurs de contenu utilisent la technologie de gestion des droits numériques (« Microsoft DRM ») contenue dans ce LOGICIEL pour protéger l'intégrité de leur contenu (le « Contenu Sécurisé ») afin d'empêcher toute atteinte à leurs droits de propriété intellectuelle, y compris les droits d'auteur, sur ce contenu. De temps à autre, les propriétaires dudit Contenu Sécurisé (les « Propriétaires de Contenu Sécurisé ») peuvent exiger de Microsoft, Microsoft Corporation ou leurs filiales qu'ils fournissent des mises à jour relatives à la sécurité des composants Microsoft DRM du LOGICIEL (les « Mises à Jour de Sécurité »). Ces Mises à Jour de Sécurité peuvent avoir des effets sur votre capacité à copier, afficher et/ou diffuser le Contenu Sécurisé par le biais de logiciels Microsoft ou d'applications appartenant à des tiers utilisant Microsoft DRM. PAR CONSÉQUENT, VOUS ACCEPTEZ QU'EN TÉLÉCHARGEANT UNE LICENCE D'UTILISATION DE CONTENU SÉCURISÉ À PARTIR D'INTERNET, MICROSOFT, MICROSOFT CORPORATION OU LEURS FILIALES PEUVENT ÉGALEMENT, EN ASSOCIATION AVEC LADITE LICENCE, TÉLÉCHARGER SUR VOTRE ORDINATEUR LES MISES À JOUR DE SÉCURITÉ QU'UN PROPRIÉTAIRE DE CONTENU SÉCURISÉ A SOUHAITÉ QUE MICROSOFT, MICROSOFT CORPORATION OU LEURS FILIALES DISTRIBUENT.
Le partitionnement n'utilise que 39072 Mo sur 39080. 8 Mo sont réservés par Windows XP. L'interface est en mode texte, mais intuitive, enr evanche le clavier utilisé et AZERTY, pas bien.
Tout (carte son, graphique, mère, modem, souris) est reconnu sans question, pas mal du tout. La pile de mises à jour semble d'une taille comparable à Debian, peut-être un peu plus grande. Surtout les patches sont plus gros.
chbg
Lors du passage à Woody chbg
a
été perdu. J'installe une toute nouvelle version (1.5 au lieu
de 0.8). Désormais il y a une dépendance sur GTK+ qui cause
en plus l'installation de libgdk-pixbuf2
.
Le Saint-Graal de la
configuration étant à portée de main, j'installe
emacs21
. L'installation produit de nombreux messages, mais en gros ça
a l'air OK.
La police est en gras, la fenêtre trop large, les menus trop volumineux, mais les touches Backspace et Delete font ce pour quoi elles ont été créés ! Le reste n'est que détail.
Pour la police de caractère, il s'agit d'un résidu de
problème dans mes ressources X. La police par défaut
(*font
) était
-misc-fixed-*-*-*-*-13-*-*-*-*-*-iso8859-1
, je
la remplace par
-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
.
Bizarrement, Emacs 21 ignore la
ressource emacs.font
. Quant à l'aide
configuration, bof, difficile de s'y retrouver, de comprendre
le vocabulaire employé, ça reste Emacs quoi.
Les connexions à Internet prennent trop de temps. Je peux
l'observer dans xconsole
:
Aug 19 21:08:39 yok-yok diald[175]: Trigger: udp 192.168.0.1/1030 195.129.112.101/53 Aug 19 21:08:39 yok-yok diald[175]: Calling site 212.53.96.247 Aug 19 21:08:40 yok-yok connect: Initializing Modem Aug 19 21:08:40 yok-yok chat[706]: timeout set to 10 seconds Aug 19 21:08:40 yok-yok chat[706]: expect (OK) Aug 19 21:08:50 yok-yok chat[706]: alarm Aug 19 21:08:50 yok-yok chat[706]: send (AT^M) Aug 19 21:08:50 yok-yok chat[706]: expect (OK) Aug 19 21:08:50 yok-yok chat[706]: AT^M^M Aug 19 21:08:50 yok-yok chat[706]: OK Aug 19 21:08:50 yok-yok chat[706]: -- got it Aug 19 21:08:50 yok-yok chat[706]: send (ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0^M) Aug 19 21:08:51 yok-yok chat[706]: timeout set to 10 seconds Aug 19 21:08:51 yok-yok chat[706]: expect (OK) Aug 19 21:08:51 yok-yok chat[706]: ^M Aug 19 21:08:51 yok-yok chat[706]: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0^M^M Aug 19 21:08:51 yok-yok chat[706]: OK Aug 19 21:08:51 yok-yok chat[706]: -- got it Aug 19 21:08:51 yok-yok chat[706]: send (^M) Aug 19 21:08:51 yok-yok connect: Dialing system Aug 19 21:08:51 yok-yok chat[708]: timeout set to 60 seconds Aug 19 21:08:51 yok-yok chat[708]: abort on (NO CARRIER) Aug 19 21:08:51 yok-yok chat[708]: abort on (BUSY) Aug 19 21:08:51 yok-yok chat[708]: abort on (NO DIALTONE) Aug 19 21:08:51 yok-yok chat[708]: abort on (ERROR) Aug 19 21:08:51 yok-yok chat[708]: send (ATDT10781015015015^M) Aug 19 21:08:52 yok-yok chat[708]: expect (CONNECT)
La commande coupable se trouve dans /etc/diald/connect
,
il s'agit de chat $DEBUG TIMEOUT 10 OK-AT-OK
"$MODEM_INIT" TIMEOUT 10 OK ""
. Il suffit de
tranformer cela en chat $DEBUG "" AT TIMEOUT 3 OK
"$MODEM_INIT" TIMEOUT 3 OK
pour que le modem compose
le numéro moins de 3 secondes après que diald
ait détecté du trafic.
Reste que la phase de négociation entre les modems dure 30
secondes, tout comme la phase de démarrage de PPP. Bref,
c'est encore trop lent. Mais le processus est complexe, à
commencer par le script /etc/init.d/diald
qui cherche un nom de provider dans /etc/diald/diald.provider
puis utilise ce nom pour charger
$DIALD_CACHE/options.$PROVIDER
qui lui-même
inclus /etc/diald/diald.defaults
,
sauf si le nom du provider était
old-config
(ce qui est mon cas) auquel cas c'est
/etc/diald/diald.options
qui est donné à diald
comme fichier de
configuration. Enfin, on peut encore noter que
diald
lit pour commencer dans tous les cas
/etc/diald/diald.defs
.
Ce qui me laisse un fichier
/etc/diald/diald.conf
inutile. Je le renomme en
/etc/diald/diald.conf.cruft
pour vérifier qu'il
n'a réellement aucun usage.
Un autre défaut de la lenteur de la connexion et que PPP
interrompt parfois l'attente par LCP: timeout sending
Config-Requests. J'essaie de le rendre plus patient en
ajoutant la ligne lcp-max-configure 20
dans
/etc/ppp/options
.
patch
Les versions de GCC se
succèdent rapidement. Afin d'éviter de tout télécharger à
chaque fois, je surmonte ma flemme et décide d'apprendre à
utiliser patch
. Après quelques ratages je
découvre l'option -p1
. Ce qui me donne pour
passer de GCC 3.1 à
GCC 3.2 :
tar xvzf
~/DL/gcc-core-3.1.tar.gz
tar xvzf
~/DL/gcc-g++-3.1.tar.gz
cd gcc-3.1
zcat ~/DL/gcc-core-3.1-3.1.1.diff.gz |patch
-p1
zcat ~/DL/gcc-g++-3.1-3.1.1.diff.gz |patch
-p1
zcat ~/DL/gcc-core-3.1.1-3.2.diff.gz |patch
-p1
zcat ~/DL/gcc-g++-3.1.1-3.2.diff.gz |patch
-p1
Ensuite je fais un répertoire gcc-3.2-build
,
un répertoire ~/bin/gcc-3.2
, je lance
../gcc-3.2/configure
--prefix=/home/marc/bin/gcc-3.2/ --enable-languages=c,c++
--enable-version-specific-runtime-libs
--with-dwarf2
, puis make
bootstrap
. Et je vais me coucher…:-)
make install
et voilà.
Il existe sur mon PC un certain nombre de paquets dont je
me demande comment ils sont arrivés ici. Et quelques autres
que je n'utilise jamais. 20 Mo en tout :
ghostview
, grace
,
netcdfg3
, octave
,
octave-ci
, octave-doc
,
octave-htmldoc
, octave2.0
,
syslinux
, wmaker
,
xchat-common
. Tout se désinstalle bien, à un
rm -r /usr/share/octave/
près.
Comme Emacs 21 va bien, je désinstalle Emacs 20 : aucun problème apparent et beaucoup de place libérée.
J'ai dû utiliser le bouton RESET du PC pour débloquer le système. Ce n'est pas la première fois de l'année, ça commence à m'inquiéter. Peut-être s'agissait-il de X Window, difficile à dire. Il me faudrait un accès réseau pour y voir plus clair. J'ai toutefois noté un accès inattendu au lecteur de CD après quelques dizaines de secondes de blocage.
blt8.0
, blt-common
,
libfnlib0
, fnlib-data
,
libwraster2
, hermes1
,
libwraster1
, libungif3g
,
vflib2
, xmhtml1
: joli tas de
bibliothèques inutiles.
Trois versions de Tcl/Tk sont installées : 8.0, 8.2 et 8.3. Tcl ne m'intéresse pas, je ne garde que la version 8.3.
Il y a aussi quelques paquets obsolètes à virer :
ae
, gnome-audio
,
gnome-faq
, gnome-users-guide-en
,
gnotepad+-help
, ldp-ligs
,
libgimp1
, libgtk1
,
libguile6
, libltdl0-dev
,
libltdl0
, libncurses4
,
libpcre2
, netpbm1
. Aptitude donne
cependant quelques signes de faiblesse. Je voulais aussi
remplacer lsof
2.2 par le 4, mais après
l'effacement des paquets précédents j'ai eu un message
d'erreur (problème avec un sous-processus)… En fait
sûrement dû au fait que j'aurais dû explicitement effacer
lsof
2.2 d'abord.
Je lance eximconfig
. Je choisis la
configuration suivante :
(4) Local delivery only: You are not on a network. Mail for local users is delivered.
Je redirige les courriers administratif (pour
root
ou postmaster
) vers
marc
. Il semble que cette opération va écraser
mon /etc/aliases
qui
contient pour l'instant la ligne webmaster:
root
.
J'apprends en outre qu'en éditant /etc/email-addresses
je peux donner une adresse spécifique pour le courrier
sortant, les domaines yok-yok
et
localhost
étant reconnus comme local.
Sur ce la configuration est terminée. Elle me génère un
fichier /etc/aliases
redirigeant sur root
à peu près tous les
utilisateurs systèmes de ma machine, dont
webmaster
. Avec root
redirigé sur
marc
c'est parfait.
Je teste en envoyant d'un utilisateur local à un autre… Premier problème, un accès réseau active le modem. En revanche le courrier arrive bien à l'autre utilisateur local avec tous les champs joliment complétés. Second problème, le modem est à nouveau activé après quelques minutes, sans raison apparente. Peut-être car le premier essai a échoué ?
Dans /etc/exim/exim.conf
je
trouve la ligne host_lookup = *
que je commente.
D'après /var/log/syslog
,
c'est cron
qui lance régulièrement Exim. Je commente encore
host_accept_relay = 127.0.0.1 : ::::1
et
host_auth_accept_relay = *
par sécurité. Enfin
j'ajoute dans /etc/email-addresses
la ligne marc: Marc.Mongenet@freesurf.ch
qui est
censée être utilisée par une règle de transformation
d'adresse pour les courriers sortant.
J'ai trouvé un défaut aux noms d'utilisateur avec majuscules : Exim les converti en minuscule et n'arrive ensuite plus à envoyer le courrier.
Exim cause un appel au serveur DNS pour résoudre des noms
se trouvant dans /etc/hosts
. Telnet
aussi, mais pas ping
. J'ai fait un petit
programme utilisant struct hostent *gethostbyname(const
char *name);
et il résoud aussi les noms locaux
(yok-yok
et localhost
) localement,
ce qui paraît normal.
Le plus simple est sans doute de voir en détail comment
telnet
résoud les noms de domaine. Je remets
dans /etc/apt/sources.list
les lignes pour les sources Woody, puis
apt-get source telnet
.
Malgré mes efforts, je n'arrive pas à dupliquer le
comportement de telnet
. Même en appelant
getaddrinfo()
puis getnameinfo()
je
ne cause pas d'accès au serveur DNS. Heureusement je vois
avec
Google que mon cas n'est pas unique.
Le fin mot de l'histoire est que de nombreux programmes
comme Telnet, Exim ou SSH causent une résolution de nom pour
IPv6 en plus de IPv4. Or mon fichier /etc/hosts
ne contenait
pas d'adresse IPv6 pour yok-yok
ou
localhost
, d'où un accès au serveur DNS avant de
se rabattre sur l'adresse IPv4 localement définie.
Je me suis contenté de compléter l'entrée ::1
ip6-localhost ip6-loopback
avec yok-yok
localhost
pour résoudre ce problème.
Après encore quelques recherches je suis arrivé à la
conclusion qu'il s'agit d'un problème connu de la
libc
:
getaddrinfo()
does not respect
nsswitch.conf
. Il semble que la résolution
de nom essaie d'abord toutes les sources d'information
(fichiers et DNS) pour IPv6 avant d'essayer IPv4.
Configurer Exim pour qu'il envoie des messages aussi à
l'extérieur demande encore un peu de configuration. Mais en
reprenant l'exemple de la documentation ça marche avec
ce fichier
exim.conf
.
En revanche les messages que j'ai tenté d'envoyer avant
d'avoir la bonne configuration restent bloqués
(frozen). En effet, l'envoi à l'extérieur était
impossible et le retour aussi car la règle de réécriture
donne une adresse de retour également à l'extérieur !
Pour les supprimer je suis obligé d'être root
.
La commande mailq
donne la liste des
messages en attente avec leur identificateur. La commande
exim -Mrm
identificateurs…
permet
d'effacer ces messages.
Il est enfin sorti, j'espère qu'il consommera un peu moins de mémoire. L'installation se fait en tout cas sans problème. Le DOM Inspector fonctionne bien. Le JavaScript Debugger semble aussi OK, quoique très lent à démarrer. Je vais tester les outils de gestion d'images et de cookies. Pour autant que XFree86 cesse de se bloquer…
logrotate
et Apache inactifDepuis qu'Apache
n'est plus automatiquement lancé au démarrage,
logrotate
m'envoie des messages d'erreur par
courrier car il n'arrive plus à recharger la configuration
d'Apache. Ça me
remplit inutilement ma boîte aux lettres, mais je ne vois pas
bien comment l'éviter. À tout hasard, j'efface tous les logs
de /var/log/apache
.
Avec Mozilla et
Emacs
chargés, mon système a une insupportable tendance à swapper.
Je me risque donc à utiliser sysctl
pour changer
les valeurs de la VM. Je mets déjà à zéro le paramètre
pagetable_cache
dont la documentation du noyau
dit qu'il n'est utile que sur un système SMP :
sysctl -w vm/pagetable_cache="0 0"
.
Ça a l'air de toujours bien fonctionner, je sauve cela dans
/etc/sysctl.conf
C'est étonnant, avec Mozilla, Emacs et StarOffice chargés, 40 Mo de RAM sont consacrés à la cache disque. D'après la documentation cependant, ceci signifie simplement que les données swappées sont cachées. Un peu tordu, mais bon…
J'essaie encore d'optimiser les gros swaps en doublant les
valeurs tries_base
et swap_cluster
de kswapd
: vm/kswapd = 1024 32
64
Il me semble que c'est encore plus lent, enfin moins
interactif, après avoir doublé ces valeurs. Je vais essayer
l'inverse : sysctl -w vm/kswapd="256 32
16"
. Ça a l'air pas mal. Je divise encore un peu
pour voir : sysctl -w vm/kswapd="256 32
8"
. Oui, je crois que c'est encore mieux. Je
sauve dans mon
sysctl.conf
.
Je suis sur une piste. Lorsqu'un CD audio se trouve dans
le lecteur, alors le job lancé par anacron
accède au CD et bloque tout, ou du moins il y a un très
(trop) long timeout SCSI. Je ne vois pas encore comment ces
jobs arrivent à accéder au lecteur de CD-ROM, mais il y a un
problème.
diald
essaie de trouver une interface
tapn
avant de se rabattre sur SLIP.
Je vais compiler un module Ethertap pour éviter cela. En plus
mon /var/log/daemon.log
ne sera plus encombré de modprobe: modprobe: Can't
locate module tap0.
Je n'ai pas trouvé de moyen rapide d'ajouter un
module ; j'ai dû tout recompiler à cause du
make-kpkg clean
. Mais après
redémarrage, tout va bien selon
lsmod
:
Module Size Used by tap0 2368 1 (autoclean)
pppd
Pour une raison inconnue pppd
semble essayer
d'installer un pass-filter dans le noyau.
D'après le manuel ce n'est possible que sur NetBSD et
effectivement c'est impossible sur mon noyau.
Une autre erreur que je pourrais en revanche corriger est
la tentative de créer un ARP proxy. Le fichier
/etc/ppp/options
contient l'option proxyarp
. Je la commente et le
problème est réglé.
Encore un point obscur ; au lancement de
pppd
modprobe
émet le message
Can't locate module char-major-108 qui d'après
/etc/modules.conf
(venant de /etc/modutils/ppp
)
correspond au module ppp_generic
, qui n'existe
pas. Mais comme le module ppp
est chargé, ce
n'est sans doute qu'un essai sans importance. Voici ce que
donne lsmod
une fois PPP
chargé :
Module Size Used by ppp_deflate 39456 0 (autoclean) bsd_comp 3936 0 (autoclean) ppp 20032 0 (autoclean) [ppp_deflate bsd_comp] slhc 4304 0 (autoclean) [ppp] tap0 2368 1 (autoclean)
Après chaque mise à jour d'Apache, ce dernier est à
nouveau lancé automatiquement. update-rc.d -f
apache remove
n'est manifestement pas la bonne
méthode pour conserver un Apache inactif. En effet, le
script apache.postinst
lance update-rc.d
apache defaults 91 20
. Cela recrée tous les liens,
sauf si j'en laisse au moins un, d'après man
update-rc.d
. Je supprime donc manuellement les
S91apache
de rc2.d
,
rc3.d
, rc4.d
et rc5.d
et laisse les K20apache
.
Mes réglages de la VM n'ont rien donné de satisfaisant. Mais un un extrait de Kernel Traffic m'a mis sur la voie : la queue de commandes SCSI. Je l'ai réduite de 32 à 4 et il me semble que c'est devenu plus interactif. Quoique peut-être un peu plus lent aussi. Je vais mesurer…
Sans avoir mesuré, je passe de 4 à 8 car les performances me semblaient trop souffrir de l'interactivité.
J'ai essuyé une plantée majeure du sous-système SCSI avec force messages sur la console. Ce qui est tout à fait regrettable c'est qu'ils n'ont été loggué nulle part. Enfin ça a commencé par un reset SCSI du module Advansys puis un mélange d'erreurs d'accès aux disques et d'erreur EXT2.
En vérifiant la machine j'ai vu que le ventilateur du CPU ne tournait plus. Pour l'instant je mets la plantée sur le compte du matériel. J'ai réussi à relancer le ventilateur, mais il tourne irrégulièrement. Après quelques démarrages ça a l'air d'aller mieux cependant. En outre le système de fichiers ne semble souffrir d'aucun dommage.
J'ai également profité des redémarrages pour redescendre la taille de la queue de commandes SCSI par périphérique de 8 à 6.
fstab
J'essaie de résoudre les problèmes de blocage de la
machine qui semblent en rapport avec le CD-ROM. J'ai déjà
trouvé que scsi_eh_0
est un thread
du noyau, eh
signifiant error
handler et 0
étant le numéro d'hôte.
man mount
m'a aussi appris que je
pouvais autoriser tout utilisateur à démonter ce qui a été
monter par un autre utilisateur, à condition d'utiliser
l'option users
au lieu de user
.
Cela m'intéresse, je teste… ça marche.
J'ai aussi trouvé ce qui me forçait d'être
root
la première fois que je montais une
disquette DOS. Sans l'option -t
réservée à
root
, mount
essaie automatiquement
un certain nombre de types de systèmes fichiers, ceux de
Microsoft non
compris. Ensuite il essaie ceux listés dans /etc/filesystems
puis ceux listés dans /proc/filesystems
.
Or je n'avais pas de /etc/filesystems
ni système de fichier DOS monté par défaut. J'ai donc créé ce
qu'il fallait :
cat >/etc/filesystems vfat msdos
Deux grandes nouveautés : un appareil photo numérique
Minolta DiMAGE F100 et la première utilisation (après 5
ans !) de mon port USB. J'ai ajouté les modules
usb-uhci
, usb-storage
et
usbcore
. J'ai aussi installé
gphoto2
pour rien et des outils USB, notamment
pour avoir /sbin/hotplug
.
Pour accéder à l'appareil j'ai absolument tout fait à la
main : modprobe usb-storage
,
modprobe usb-uhci
, mount
-t usbdevfs /proc/bus/usb
et finalement
mount -t vfat /dev/sdd1 /f100
. Le
dernier mount
m'a posé des problèmes. Je n'étais
pas certain de l'adresse SCSI à utiliser et je crois que
lorsque l'appareil se mets en veille il se déconnecte. En
outre usb-uhci
est indiqué comme inutilisé par
lsmod
mais il semble nécessaire.
La commande lsmod
m'indique que
les trois modules USB sont chargés. Le usbdevfs
est aussi monté automatiquement, par le script /etc/hotplug/usb.rc
du paquet hotplug
d'après ce que je vois.
Il faut cependant que je recompile les modules USB sans
les messages de debug, car mes logs se remplissent un peu
vite. J'ai aussi rencontré un seul problème sérieux : un
fichier JPEG incomplet. J'espère que ça ne se reproduira pas,
car cet avertissement est loggué : WARNING: USB
Mass Storage data integrity not assured. Je supprime
aussi gphoto2
.
Tout va bien comme le montre le
résultat de dmesg
. Et voici les messages de
/var/log/syslog
lorsque je branche puis débranche l'appareil :
Dec 16 14:31:32 yok-yok kernel: hub.c: USB new device connect on bus1/2, assigned device number 2 Dec 16 14:31:32 yok-yok kernel: usb.c: USB new device connect, assigned device number 2 Dec 16 14:31:32 yok-yok kernel: usb.c: USB device 2 (vend/prod 0x686/0x400c) is not claimed by any active driver. Dec 16 14:31:32 yok-yok /etc/hotplug/usb.agent: Setup usb-storage for USB product 686/400c/0100 Dec 16 14:31:32 yok-yok kernel: usb.c: registered new driver usb-storage Dec 16 14:31:32 yok-yok kernel: scsi1 : SCSI emulation for USB Mass Storage devices Dec 16 14:31:32 yok-yok kernel: scsi : 2 hosts. Dec 16 14:31:32 yok-yok kernel: usb-uhci.c: interrupt, status 3, frame# 643 Dec 16 14:31:33 yok-yok kernel: Vendor: MINOLTA Model: DiMAGE F100 Rev: 1.00 Dec 16 14:31:33 yok-yok kernel: Type: Direct-Access ANSI SCSI revision: 02 Dec 16 14:31:33 yok-yok kernel: Detected scsi removable disk sdd at scsi1, channel 0, id 0, lun 0 Dec 16 14:31:33 yok-yok kernel: SCSI device sdd: hdwr sector= 512 bytes. Sectors= 29120 [14 MB] [0.0 GB] Dec 16 14:31:33 yok-yok kernel: usb-uhci.c: interrupt, status 3, frame# 676 Dec 16 14:31:33 yok-yok kernel: sdd: Write Protect is off Dec 16 14:31:33 yok-yok kernel: sdd: sdd1 Dec 16 14:31:33 yok-yok kernel: WARNING: USB Mass Storage data integrity not assured Dec 16 14:31:33 yok-yok kernel: USB Mass Storage device found at 2 Dec 16 14:31:33 yok-yok kernel: USB Mass Storage support registered. Dec 16 14:31:33 yok-yok /etc/hotplug/usb.agent: missing kernel or user mode driver usb-storage Dec 16 14:35:23 yok-yok kernel: usb.c: USB disconnect on device 2
Cette manie de Linux de passer lar le sous-système SCSI est tout de même étonnante. Mais il me semble que c'est en cours de nettoyage dans le noyau 2.5.
J'ai reçu mon modem ADSL. Malgré un petit empilement de
rallonges et adaptateurs sur ma prise de téléphone, j'arrive
toujours à téléphoner, la led DSL du modem est allumée,
j'arrive à configurer le modem par son interface Web et avec
ifconfig
et route
j'arrive même à
pinguer une adresse qui doit être à l'autre bout de la ligne.
Mais pas moyen d'aller plus loin.
Je suppose que je dois m'inscrire chez Tele2 car ils m'ont envoyé un CD d'installation avec un code d'identification. Mais uniquement pour Windows. Je sens que je vais enrichir la hotline de Tele2…
J'ai aussi installé un client DHCP, mais je ne comprends
pas très bien comment il fonctionne : il m'a détruit
toutes mes tables de routage, créé une interface réseau
dummy
et il réclame un noyau avec
CONFIG_FILTER
. En plus l'impression des 200
pages de documentation du modem plante à la cinquantième. Pas
sorti de l'auberge…
Côté installation du matériel c'était en fait facile. A
priori aucun besoin de DHCP, que je vais désinstaller, ainsi
que diald
. Le modem a l'adresse 192.168.1.1.
Alors pour passer d'un modem dial-up PPP avec
diald
à ADSL par Ethernet il suffit d'entrer les
commandes suivantes :
ifconfig eth0 192.168.1.2
route del -net 0.0.0.0
route add default gw 192.168.1.1
La bêtise qui m'a bloquée durant toute ces semaines est de
Tele2. Ils envoient tout
un stupide CD d'installation Windows plus quelques documents,
mais oublient un renseignement :
http://reg.tele2.ch
.
En effet, il faut utiliser ce serveur pour s'enregistrer avec
un Personal Autentification Code (PAC) et
recevoir un login ADSL. Ensuite je rentre ce login dans le
Wizard intégré au modem et tout va bien.
Reste à configurer mon
/etc/network/interfaces
pour démarrer avec
la bonne configuration réseau. Il faudrait aussi que
ntpdate
soit lancé automatiquement. Quoiqu'en
fait l'installation de Woody a dû remettre en
place ce qu'il faut (/etc/rcS.d/S51ntpdate
et /etc/init.d/ntpdate
).
Cependant je ne vois plus trace de ntpdate
dans
/var/log/daemon.log
.
Tout bien réfléchi, syslogd
n'est pas encore
lancé à ce moment, le log est donc perdu ! Pas grave, il
reste une trace sur la console.
Lassé par la lenteur d'Emacs, j'ai installé NEdit. Il semble que j'ai enfin trouvé un éditeur avec une coloration syntaxique, des commandes et une vitesse raisonnables.
NEdit est effectivement très bien, je l'ai adopté.
Depuis quelques mois, sans doute à cause du ventilateur
défectueux, mon PC donne quelques traces de faiblesse lors
des accès SCSI. Je monte donc les partitions /
et /usr
en lecture seulement,
avec l'option ro
au lieu de rw
dans
mon fstab
.
Pour /usr
un
montage en lecture seule ne semble pas poser de problème. En
revanche monter /
cause
plein de messages des scripts de démarrage : des
tentatives de chmod
de
/dev/ttynn
échouent, la création de
/dev/log
échoue, et quelques autres problèmes
qui défilent trop vite.
© 2002, 2003, 2004, 2005, Marc Mongenet
Ce document est disponible selon les termes de la Creative Commons Attribution 2.5 License.
Dernière mise à jour et
validation le 30 décembre 2017.