Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Framebuffer] Une partie de l'écran n'est pas visible
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
vieuxmike
n00b
n00b


Joined: 27 Jun 2008
Posts: 27

PostPosted: Mon Oct 27, 2008 3:45 pm    Post subject: [Framebuffer] Une partie de l'écran n'est pas visible Reply with quote

Bonjour,

Enthousiasmé par la console, je souhaiterais m'en servir le plus possible et lancer X uniquement "en cas de besoin", du coup j'ai installé le framebuffer, qui tourne au poil, sauf que...

Sauf qu'une fine partie de l'ecran, à gauche, une bande large de 20 pixels peut-être, n'est pas visible. A droite cela semble être l'inverse : des pixels en trop! Pour dire simplement, l'affichage semble "décalé" par rapport à l'écran, comme par l'effet d'une translation invisible, ce qui ne serait pas gênant si les lettres sur la gauche n'étient pas "mangées" >_<.

Normalement j'ai une touche sur le moniteur : "repositionnement auto", qui règle au poil la géométrie de l'affichage du moniteur. C'est très bien, l'affichage est centré correctement, sauf qu'après un startx rebelote! l'écran est à nouveau décalé, une partie large de quelques pixels mangée, une fine bande noire sur le bord opposé. Et naturellement faire un "repositionnement auto" règle le problème sur X, mais le reporte encore une fois sur le framebuffer, et caetera...

Pour résoudre ce genre de beans, la documentation nous fornit le mode d'emploi de fbset : fbset permet de régler certains paramètres, et de sauver ces réglages dans un hypothétique /etc/fb.modes, sauf que voilà : j'ai pas très bien du comprendre comment s'en servir... :X

Ainsi la man page de fb.modes nous dit par exemple

Code:

INTERNALS
       Generally a frame buffer display is organized as follows:

                                             +---+---------------+---+---+
                                             |   |       ^       |   |   |
                                             |   |       | 5     |   |   |
                                             |   |       v       |   |   |
                                             +---#################---+---+
                                             |   #       ^       #   |   |
                                             |   #       |       #   |   |
                                             |   #       |       #   |   |
                                             | 1 #       |   2   # 3 | 4 |
                                             |<->#<------+------>#<->|<->|
                                             |   #       |       #   |   |
                                             |   #       | 6     #   |   |
                                             |   #       |       #   |   |
                                             |   #       v       #   |   |
                                             +---#################---+---+
                                             |   |       ^       |   |   |
                                             |   |       | 7     |   |   |
                                             |   |       v       |   |   |
                                             +---+---------------+---+---+
                                             |   |       ^       |   |   |
                                             |   |       | 8     |   |   |
                                             |   |       v       |   |   |
                                             +---+---------------+---+---+

              1  left margin
              2  xres
              3  right margin
              4  horizontal sync len
              5  upper margin
              6  yres
              7  lower margin
              8  vertical sync len


et celle de fbdev nous dit entre autres

Code:

 This documentation is out of date!!

[...]
Code:

 Display geometry:

              -xres <value>
                     set visible horizontal resolution (in pixels)

              -yres <value>
                     set visible vertical resolution (in pixels)

              -vxres <value>
                     set virtual horizontal resolution (in pixels)

              -vyres <value>
                     set virtual vertical resolution (in pixels)

              -depth <value>
                     set display depth (in bits per pixel)

              --geometry, -g ...
                     set all geometry parameters at once in the order <xres> <yres>  <vxres>  <vyres>  <depth>,
                     e.g.  -g 640 400 640 400 4

              -match
                     make the physical resolution match the virtual resolution

       Display timings:

              -pixclock <value>
                     set  the  length of one pixel (in picoseconds). Note that the frame buffer device may only
                     support some pixel lengths

              -left <value>
                     set left margin (in pixels)

              -right <value>
                     set right margin (in pixels)

              -upper <value>
                     set upper margin (in pixel lines)

              -lower <value>
                     set lower margin (in pixel lines)

              -hslen <value>
                     set horizontal sync length (in pixels)

              -vslen <value>
                     set vertical sync length (in pixel lines)

              --timings, -t ...
                     set all timing parameters at once in the order <pixclock> <left> <right>  <upper>  <lower>
                     <hslen> <vslen>, e.g.  -g 35242 64 96 35 12 112 2



Eh bien soit : récupérons les valeurs pour le framebuffer
Code:

 $ fbset -s

mode "1280x1024-77"
    # D: 131.096 MHz, H: 80.328 kHz, V: 76.649 Hz
    geometry 1280 1024 1280 1024 32
    timings 7628 160 32 16 4 160 4
    rgba 8/16,8/8,8/0,8/24
endmode           


changeons une valeur : hslen par exemple

Code:

# fbset -hslen 112


et regardons le résultat

Code:

# fbset

mode "1280x1024-77"
    # D: 131.096 MHz, H: 80.328 kHz, V: 76.649 Hz
    geometry 1280 1024 1280 1024 32
    timings 7628 160 32 16 4 160 4
    rgba 8/16,8/8,8/0,8/24
endmode


Il semble que hslen n'ait pas varié.

Autre extrait du man de fbset
Code:

 Display positioning:

              -move {left|right|up|down}
                     move the visible part of the display in the specified direction

              -step <value>
                     set  step  size  for display positioning (in pixels or pixel lines), if -step is not given
                     display will be moved 8 pixels horizontally or 2 pixel lines vertically


eh bien une commande telle que fbset -move right ne semble pas bouger l'écran.

Pour résumer : je n'ai absolument pas compris comment fonctionne fbset. Quelqu'un pourrait-il m'expliquer?

Merci pour vos éclaicissements :)
Back to top
View user's profile Send private message
nonas
Guru
Guru


Joined: 17 Apr 2005
Posts: 328

PostPosted: Mon Oct 27, 2008 9:36 pm    Post subject: Reply with quote

/me va suivre ce sujet avec beaucoup d'attention !!
J'ai mis le support du framebuffer pour la premier fois sur le dernier noyau que je me suis fait et j'ai exactement le même problème ! (en dehors de ça, quelle joie d'avoir une console avec de la place !)
Back to top
View user's profile Send private message
CryoGen
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1426
Location: Bamako - Mali - Afrique

PostPosted: Tue Oct 28, 2008 12:54 am    Post subject: Reply with quote

J'ai le même soucis depuis quelques temps déjà... comme je me sers rarement de la console hors X je m'en suis pas occupé mais il le faudra bien un jour... Vais suivre ce thread et voir ce que je peux trouver :)
_________________
- CryoGen` on #gentoofr@irc.freenode.net
- ~amd64 / KDE4
- I'm the bone of my sword...
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum