Dans les versions de NetBSD précédant la 1.4, l'utilisateur pouvait choisir entre deux pilotes différents pour l'écran et le clavier: pccons (spécifique à i386) et pcvt. Avec la version 1.4, est apparu le pilote multi-plateforme wscons qui se substitue aux deux précédents (qui sont toujours supportés).
Wscons est le nouveau pilote de console de NetBSD. Il permet les terminaux virtuels, supporte les claviers internationaux, gère la souris... Les capacités de wscons varient suivant le portage (il n'est pas disponible pour tous): la version pour i386 est particulièrement riche en fonctions.
A la fin de l'installation, wscons est actif par défaut et n'a besoin de rien d'autre pour fonctionner. En version 1.4, les consoles virtuelles sont activées par défaut: voyez le Chapitre 4. Le reste de cette section décrit les options de wscons du fichier de configuration du noyau.
Si vous compilez un noyau personnel, pour disposer de wscons, vous devez activer les options adéquates et commenter les options concernant pcvt et pccons (ils ne peuvent pas tourner en même temps). Par exemple:
#pc0 at isa? port 0x60 irq 1 # pccons generic PC console driver #vt0 at isa? port 0x60 irq 1 # PCVT console driver
Dans le fichier de configuration du noyau, vous pouvez aussi paramètrer un clavier étranger. Par exemple, pour utiliser un clavier italien par défaut:
options PCKBD_LAYOUT="KB_IT"
Note : le clavier italien n'est pas idéal pour la programmation. Pour le modifier, voyez le Chapitre 4.
Le nombre pré-alloué de consoles virtuelles est contrôlé par l'option suivante:
options WSDISPLAY_DEFAULTSCREENS=4
D'autres consoles peuvent être ajoutées en activant les bonnes lignes du fichier /etc/wscons.conf: le signe de commentaires (#) doit être enlevé des lignes commençant par "screen x". Dans l'exemple suivant, une cinquième console est ajoutée aux quatre précédentes:
# screens to create # idx screen emul #screen 0 - vt100 screen 1 - vt100 screen 2 - vt100 screen 3 - vt100 screen 4 - - #screen 4 80x25bf vt100 #screen 5 80x50 vt100
Le script rc.wscons transforme chaque ligne non commentée en appels à la commande wsconscfg: chaque colonne devient un paramètre. La colonne idx correspond au paramètre index, screen correspond à -t type (qui définit le type d'écran: lignes, colonnes, couleurs...) et emul à -e emul (qui définit l'émulation). Par exemple:
screen 3 - vt100
est transformé en cet appel:
wsconscfg -e vt100 3
Note : il est possible qu'apparaissent des conflits entre les consoles pré-définies par le noyau et celles définies au démarrage par /etc/wscons.conf. Si pendant le démarrage, le système essaie d'allouer un écran déja défini, le message suivant sera affiché:
wsconscfg: WSDISPLAYIO_ADDSCREEN: Device busyLa solution est de commenter les lignes incriminées dans /etc/wscons.conf.
Les consoles virtuelles doivent aussi être actives dans /etc/ttys. Par exemple:
console "/usr/libexec/getty Pc" pc3 off secure ttyE0 "/usr/libexec/getty Pc" vt220 on secure ttyE1 "/usr/libexec/getty Pc" vt220 on secure ttyE2 "/usr/libexec/getty Pc" vt220 on secure ttyE3 "/usr/libexec/getty Pc" vt220 off secure ...
La ligne
ttyE3 "/usr/libexec/getty Pc" vt220 off secure
de /etc/ttys est utilisée par le serveur X pour trouver un terminal libre. Pour utiliser un écran différent du numéro 4, un paramètre sous la forme vtn doit être passé au serveur (n est le numéro de la touche de fonction utilisée pour activer l'écran de X).
Par exemple, "screen 7" doit être activé dans /etc/wscons.conf et X démarré avec " vt8" . Si vous utilisez xdm, vous devez modifier /usr/X11R6/lib/X11/xdm/Xserver. Par exemple:
:0 local /usr/X11R6/bin/X +kb dpms -bpp 16 dpms vt8
Pour xdm3d, le chemin est différent: /usr/X11R6/share/xdm3d/Xservers.
Un mode texte de 50 lignes peut être utilisé depuis la version 1.4.1 de NetBSD. Il est activé dans /etc/wscons.conf. La ligne suivante doit être décommentée:
font ibm - 8 ibm /usr/share/pcvt/fonts/vt220l.808
Les lignes suivantes doivent être modifiées:
#screen 0 80x50 vt100 screen 1 80x50 vt100 screen 2 80x50 vt100 screen 3 80x50 vt100 screen 4 80x50 vt100 screen 5 80x50 vt100 screen 6 80x50 vt100 screen 7 80x50 vt100
Cette configuration permet d'utiliser huit écrans, accessibles avec la combinaison de touches Ctrl-Alt-Fn (où n varie de 1 à 8). Les pilotes correspondants sont ttyE0 à ttyE7. Pour y accéder et obtenir l'invite de connexion, modifiez /etc/ttys:
ttyE0 "/usr/libexec/getty Pc" vt220 on secure ttyE1 "/usr/libexec/getty Pc" vt220 on secure ttyE2 "/usr/libexec/getty Pc" vt220 on secure ttyE3 "/usr/libexec/getty Pc" vt220 on secure ttyE4 "/usr/libexec/getty Pc" vt220 on secure ttyE5 "/usr/libexec/getty Pc" vt220 on secure ttyE6 "/usr/libexec/getty Pc" vt220 on secure ttyE7 "/usr/libexec/getty Pc" vt220 on secure
Il n'est pas possible de modifier la résolution " 80x25" de l'écran 0, sans doutes pour garantir que, même en cas de problème, il y ait un écran qui fonctionne toujours.
C'est le pilote de console qui se trouve sur la disquette d'installation i386. Il ne permet pas les consoles virtuelles et les programmes utilitaires mais prend très peu de place.
Pcvt est un émulateur de terminal VT220 et possède des fonctions plus avancées que celles du simple pccons. Il supporte les claviers étrangers et les consoles virtuelles (avec Ctrl-Alt-F1 à F8 ou avec les touches de fonction F9 à F12). Pour activer pcvt, les lignes suivantes doivent être décommentées du fichier de configuration du noyau:
# Enable only one of the following lines #pc0 at isa? port 0x60 irq 1 vt0 at isa? port 0x60 irq 1 # Options for PCVT console driver #options FAT_CURSOR options PCVT_NETBSD=132 options PCVT_NSCREENS=3
Pour utiliser un clavier étranger, vous devez l'activer au démarrage. Il faut aussi choisir le terminal correct. Par exemple:
/usr/local/bin/kcon -m i2 TERM=pcvt25; export TERM
/etc/ttys doit être modifié en fonction. Par exemple:
#console "/usr/libexec/getty Pc" pcvt25 on secure ttyv0 "/usr/libexec/getty Pc" pcvt25 on secure
Clavier italien Pcvt : la définition du clavier i2 est incorrecte, le fichier /sys/arch/i386/isa/pcvt/Util/keycap/keycap.src doit donc être modifié. Voici une modification qui a été testée avec NetBSD 1.3.3:
i2|italy142|Italian 142 mapping:\ :A8={:A9=[:A10=]:A11=}:\ :A12=`:A13=~:\ :A17=@:A18=#:\ :tc=italy141:
Les paramètrages d'un clavier étranger (ici le clavier italien), doivent être chargés au démarrage, par exemple dans /etc/rc.local:
KCONP=/usr/local/bin SCONP=/usr/local/bin LDFNP=/usr/local/bin ISPCP=/usr/sbin CURSP=/usr/local/bin set_keybd=YES #------------------------------------------------------ # En cas, mise en place du clavier italien #------------------------------------------------------ if [ X${set_keybd} = X"YES" -a -x $KCONP/kcon ] then echo echo 'passage en clavier italien' $KCONP/kcon -m i2 fi echo '.'
/etc/ttys doit aussi être modifié:
#console "/usr/libexec/getty Pc" pcvt25 on secure ttyv0 "/usr/libexec/getty Pc" pcvt25 on secure ttyv1 "/usr/libexec/getty Pc" pcvt25 on secure ttyv2 "/usr/libexec/getty Pc" pcvt25 on secure
L'utilitaire pcvt doit être compilé et installé:
cd /sys/arch/i386/isa/pcvt/Util make make install
Avec pcvt, vous pouvez changer le nombre de lignes et de colonnes à l'écran. L'exemple de script qui suit peut être utilisé pour passer automatiquement d'une résolution à une autre:
#!/bin/sh # Mettre l'écran à # lignes case $1 in 25) /usr/local/bin/scon -s 25 /usr/local/bin/cursor -s13 -e14 ;; 28) /usr/local/bin/loadfont -c1 -f /usr/share/misc/pcvtfonts/vt220l.814 /usr/local/bin/loadfont -c2 -f /usr/share/misc/pcvtfonts/vt220h.814 /usr/local/bin/scon -s 28 /usr/local/bin/cursor -s12 -e14 ;; 40) /usr/local/bin/loadfont -c3 -f /usr/share/misc/pcvtfonts/vt220l.810 /usr/local/bin/loadfont -c4 -f /usr/share/misc/pcvtfonts/vt220h.810 /usr/local/bin/scon -s 40 /usr/local/bin/cursor -s8 -e10 ;; 50) /usr/local/bin/loadfont -c5 -i /usr/share/misc/pcvtfonts/vt220l.808 /usr/local/bin/loadfont -c6 -i /usr/share/misc/pcvtfonts/vt220h.808 /usr/local/bin/scon -s 50 /usr/local/bin/cursor -s6 -e8 ;; *) echo "Nombre de lignes invalide (25/28/40/50)" ;; esac