[Linux] Tableau de caractères

Tableau de caractères [Linux] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 27-12-2005 à 20:11:50    

Lorsque j'écris dans /dev/tty1, le noyau modifie un tableau de caractères stocké en RAM, en interprétant si besoin les caractères spéciaux (tabulations, retours à la ligne, séquences d'échappement...), ensuite :
- si le noyau est lancé en mode graphique (argument vga=... présent) il effectue un rendu bitmap dans la mémoire vidéo (dans ce cas, la carte graphique n'effectue que le balayage, on dit qu'elle fonctionne en mode graphique).
- si le noyau est lancé en mode texte (mode par défaut si l'argument vga est absent) il copie le tableau de caractères dans la mémoire vidéo (dans ce cas, la carte graphique effectue le rendu et le balayage en même temps, on dit qu'elle fonctionne en mode texte).
 
L'image bitmap est accessible grâce à /dev/fb0. Comment accéder au tableau de caractères de /dev/tty1 ?

Reply

Marsh Posté le 27-12-2005 à 20:11:50   

Reply

Marsh Posté le 28-12-2005 à 00:07:33    

cat /dev/tty1 ?

Reply

Marsh Posté le 28-12-2005 à 20:04:37    

Dumbledore a écrit :

cat /dev/tty1 ?


Non, si je fais ça, je lis ce qui vient du clavier. Une autre suggestion ?

Reply

Marsh Posté le 28-12-2005 à 23:38:52    

Parole de bébutant ...
je crois que tty1 est une sortie ecran, c'est donc à l'ecran.
alt+F1 ou Ctrl+alt+F1

Reply

Marsh Posté le 29-12-2005 à 10:08:10    

Je ne vois pas ce que tu veux faire, mais la commande stty ne te suffirait-elle pas ?
 
EDIT : si tu veux juste écrire sur le tty : echo "ecriture sur la console\n" >/dev/tty1
par contre, je ne pense pas que tu puisses modifier ce qui a DEJA été écrit sur le
tty (buffers gérés par le kernel)
 
REEDIT : si ton but est de capturer les traces consoles, il existe le module netconsole
qui permet de rediriger sur une autre machine... (dans network device support)

Message cité 1 fois
Message édité par imarune le 29-12-2005 à 10:36:50
Reply

Marsh Posté le 29-12-2005 à 22:16:12    


Non. Les tty sont des consoles, et une console c'est une entrée (clavier) et une sortie (écran), en fonction du type de open.
 
Si j'appuye sur [Alt]+[F9], le clavier écrit dans tty9, d'ailleurs on va faire un test : placez vous dans [Alt]+[F3] faites un cat /dev/tty9, si vous écrivez ici il ne se passe rien, même le [Ctrl]+[D] ne marche pas. Alors que si vous allez dans [Alt]+[F9] (sans quitter la commande que vous avez lancée dans [Alt]+[F3]) et que vous écrivez Bonjour puis [Entrée], votre Bonjour ne sera pas recopié ici mais dans [Alt]+[F3], et pour quitter cat, il faut faire un [Ctrl]+[D] dans [Alt]+[F9].

Reply

Marsh Posté le 29-12-2005 à 22:29:19    

imarune a écrit :

Je ne vois pas ce que tu veux faire, mais la commande stty ne te suffirait-elle pas ?


Non. Si j'appuye sur [Alt]+[F3], alors le noyau fonctionne comme ça :

             /dev/tty1  =>  processus  =>  /dev/tty1  =>  tableau de caractères n°1
             /dev/tty2  =>  processus  =>  /dev/tty2  =>  tableau de caractères n°2
clavier  =>  /dev/tty3  =>  processus  =>  /dev/tty3  =>  tableau de caractères n°3  =>  mémoire vidéo
             /dev/tty4  =>  processus  =>  /dev/tty4  =>  tableau de caractères n°4
             /dev/tty5  =>  processus  =>  /dev/tty5  =>  tableau de caractères n°5
             /dev/tty6  =>  processus  =>  /dev/tty6  =>  tableau de caractères n°6


 
Je voudrais accéder à "tableau de caractères n°3". Quelqu'un a une idée ?

Message cité 1 fois
Message édité par e-miel le 29-12-2005 à 22:29:51
Reply

Marsh Posté le 29-12-2005 à 22:45:06    

e-miel a écrit :

Non. Si j'appuye sur [Alt]+[F3], alors le noyau fonctionne comme ça :

             /dev/tty1  =>  processus  =>  /dev/tty1  =>  tableau de caractères n°1
             /dev/tty2  =>  processus  =>  /dev/tty2  =>  tableau de caractères n°2
clavier  =>  /dev/tty3  =>  processus  =>  /dev/tty3  =>  tableau de caractères n°3  =>  mémoire vidéo
             /dev/tty4  =>  processus  =>  /dev/tty4  =>  tableau de caractères n°4
             /dev/tty5  =>  processus  =>  /dev/tty5  =>  tableau de caractères n°5
             /dev/tty6  =>  processus  =>  /dev/tty6  =>  tableau de caractères n°6


 
Je voudrais accéder à "tableau de caractères n°3". Quelqu'un a une idée ?


 
Je vais peut-être dire une bêtise, mais je pense (crois savoir) que les tty sont des FIFO; donc, la question primordiale, quel est ton but?

Reply

Marsh Posté le 30-12-2005 à 20:51:48    

imarune a écrit :

Je vais peut-être dire une bêtise, mais je pense (crois savoir) que les tty sont des FIFO

En effet c'est une bêtise. Les fichiers tty sont des moyens d'accéder au driver n°4 :

crw------- 1 root root 4, 0 2005-12-31 19:12 tty0
crw------- 1 root root 4, 1 2005-12-31 20:34 tty1
crw------- 1 root root 4, 2 2005-12-31 20:18 tty2
crw------- 1 root root 4, 3 2005-12-31 19:12 tty3
crw------- 1 root root 4, 4 2005-12-31 19:12 tty4
crw------- 1 root root 4, 5 2005-12-31 19:12 tty5
crw------- 1 root root 4, 6 2005-12-31 19:12 tty6
crw------- 1 root root 4, 7 2005-10-24 04:50 tty7
crw------- 1 root root 4, 8 2005-10-24 04:50 tty8
crw------- 1 root root 4, 9 2005-10-24 04:50 tty9

Un pipe, quant-à-lui, est un lien entre 2 descripteurs (généralement de 2 processus différents). La preuve : essaye d'ouvrir un pipe nommé, et tu verras que ton open est bloquant... jusqu'à ce qu'un autre processus fasse un open sur le même nom de pipe... et là, tout se débloque.
 

imarune a écrit :

quel est ton but?

Je voudrais accéder au tableau de caractères qui se trouve derrière un fichier tty. Quelqu'un a une idée ?

Reply

Marsh Posté le 30-12-2005 à 23:47:22    

Effectivement, c'était une bêtise (à priori, double bufferisation sur le driver serial) mais pas dans le sens ou tu l'entends : fifo n'est pas synonyme de pipe (tu peux écrire un module fifo, accessible par un fichier spécial caractère).
 
Pour ce que tu veux faire,il faut probablement utiliser l'appel système inb (ce qui implique de pomper largement dans un source mgetty, par exemple, pour savoir ou taper).
 
Désolé, je ne connais aucun utilitaire tout fait couvrant ton besoin :(

Reply

Marsh Posté le 30-12-2005 à 23:47:22   

Reply

Marsh Posté le 04-01-2006 à 17:05:43    

e-miel > Merci pour vos explications. Peut-être un peut compliqué pour moi pour le moment.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed