5 votes

La sortie dans une console virtuelle (tty1) est ridiculement lente ; problème possible d'accélération graphique.

Il y a quelque temps, sur un vieil ordinateur fonctionnant sous Ubuntu, j'ai remarqué que la sortie d'une console virtuelle (par ex. tty1 ) est lent. Ce n'était pas un problème ici et c'était à peine perceptible.

Mais maintenant, sur mon nouvel ordinateur portable équipé de Manjaro Linux (dérivé d'Arch), il est parfois ridiculement lent. Je pense que c'est différent de la situation décrite et expliquée ici Par conséquent, ma question n'est pas redondante. Je soupçonne un problème d'accélération graphique.

J'ai découvert que le problème est fortement affecté par la vitesse d'horloge du processeur. Cette vidéo montre à quoi ça ressemble à 800 MHz.

Des informations éventuellement pertinentes provenant de dmesg :

[    0.474770] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.478826] vesafb: mode is 1920x1080x32, linelength=7680, pages=0
[    0.478827] vesafb: scrolling: redraw
[    0.478828] vesafb: Truecolor: size=8:8:8:8, shift=24:16:8:0
[    0.478843] vesafb: framebuffer at 0xa0000000, mapped to 0xffffc90001000000, using 8128k, total 8128k
[    0.661095] Console: switching to colour frame buffer device 240x67
[    0.842325] fb0: VESA VGA frame buffer device
[    2.301199] fb: switching to inteldrmfb from VESA VGA
[    2.363655] fbcon: inteldrmfb (fb0) is primary device
[    2.363698] Console: switching to colour frame buffer device 240x67
[    2.363705] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device

El scrolling: redraw semble intéressante, bien que je ne sois pas sûr qu'elle signifie quoi que ce soit, puisqu'il est dit que switching to inteldrmfb from VESA VGA .

Sortie de fbset -i :

mode "1920x1080" 
    geometry 1920 1080 1920 1080 32 
    timings 0 0 0 0 0 0 0 
    accel true 
    rgba 8/16,8/8,8/0,0/0 
endmode 

Frame buffer device information: 
    Name : inteldrmfb 
    Address : 0xa0000000 
    Size : 8294400 
    Type : PACKED PIXELS 
    Visual : TRUECOLOR 
    XPanStep : 1 
    YPanStep : 1 
    YWrapStep : 0 
    LineLength : 7680 
    Accelerator : No

Quelques tests supplémentaires pour documenter la différence :

  • time python -c "for i in range(100): print(\"hi\")"
    me montre 0.03s sur xfce4-terminal y 0.23s sur une console virtuelle.

  • time echo -e "\033c"
    0s sur xfce4-terminal y 0.14s - 0.16s sur une console virtuelle.

  • time man gpm (et en appuyant sur Q pendant qu'il s'ouvre)
    instantanément sur xfce4-terminal , 3s - 4s sur une console virtuelle.

C'est particulièrement frustrant lorsque l'on fait défiler les pages du site. man pages. Il est intéressant de noter que nano ne semble pas être affecté par cela.

Comment faire pour que mes consoles virtuelles rendent le texte avec une vitesse décente ?

3voto

dirkt Points 15364

BTW, tty désigne tout appareil "télétype" (ligne série, pseudo terminal, ...). Ce dont vous parlez est le système Linux console virtuelle . Et le défilement y est ridiculement lent, car les versions récentes de Linux utilisent le mode graphique dans un framebuffer au lieu du mode texte, mais parfois pas l'accélération graphique.

Vérifiez donc les paramètres de votre framebuffer et voyez si vous ne pouvez pas utiliser l'accélération en utilisant le bon pilote, etc.

編集 : Comme on peut le voir dans la vidéo, le problème est définitivement le défilement non accéléré en redessinant tout, on peut voir les "vagues" lorsque le contenu se déplace.

Je ne comprends pas non plus pourquoi vous semblez utiliser d'abord vesafb (qui fait un défilement lent non accéléré) et ensuite 2 secondes plus tard inteldrmfb (qui devrait faire du défilement accéléré). Il est possible que le problème soit lié à l'interrupteur. Veuillez fournir les données complètes dmesg après le démarrage, mettez-le dans un pastebin etc., et éditez la question avec le lien.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X