Par défaut, le changement de console se fait par Alt-Fn ou Ctrl-Alt-Fn.
Sous X
(ou les versions récentes de dosemu
), seule la
combinaison Ctrl-Alt-Fn marche.
XFree86 1.3 ne sait pas que la touche Alt est enfoncée quand on rappelle la fenêtre X. Il faut donc relâcher Alt avant de pouvoir rechanger de console. Pourtant, ça pourrait marcher: le noyau mémorise toujours l'état appuyé/relâché des touches. (Autant que faire se peut: certains clavier n'émettent pas de scancode quand on appuie dessus (ex: les touches PFn d'un FOCUS 9000) ou quand on les relâche (ex: la touche Pause de la plupart des claviers).)
XFree86 1.3 sauve les polices chargées sur la carte vidéo quand il est
démarré, et les restaure lors d'un changement de console. Donc le
résultat d'un setfont
sur une console virtuelle est annulé par un
aller retour dans la fenêtre X.
L'utilisation de setfont
sous X donne des résultats bizarres...
Le changement de console par programme est possible grâce à la
commande chvt
.
Cette question est toujours posée de temps en temps, mais la réponse
est: il y en a déjà suffisament.
Depuis la version 1.1.54 du noyau, il y a entre 1 et 63 consoles
virtuelles. Une nouvelle console est créée dès qu'elle est ouverte.
Elle peut être supprimée avec disalloc
(mais il faut que plus
aucun processus ne lui soit associé).
Pour les vieux noyaux, changer la ligne
#define NR_CONSOLES 8
dans include/linux/tty.h
(ne pas dépasser 63),
et recompiler. Il est possible que vous ayez à créer le périphérique correspondant
avec MAKEDEV
ou mknod tty
N c 4
N où N est le numéro du terminal.
Si vous voulez avoir des getty
sur ces nouvelles consoles,
ajoutez des lignes dans /etc/inittab
.Quand les consoles sont allouées dynamiquement, il est généralement
plus simple de n'avoir qu'un ou deux getty
. D'autres consoles
sont ouvertes par
open -l -s bash
. Les consoles inutilisées (sans processus
associé) sont désallouées par disalloc
.
Si vous disposez de spawn_login
(inclus dans
kbd-0.90.tar.gz
) et que vous mettez
loadkeys << EOF
alt keycode 103 = Spawn_Console
EOF
spawn_login &
dans /etc/rc.local
, taper Alt-FlècheHaute créera (et
affichera) une nouvelle console avec un login
. Voir aussi
open-1.3.tgz
. Vous ne pouvez vous loger sous "root" que sur les terminaux listés dans
/etc/securetty
.