Következő Előző Tartalom

17. Hogyan alakíthatom át az XFree86 modeline sorokat framebuffer eszköz időkre?

Ha feltelepítetted az XFree86-t (X11) a gépedre, és eredményesen használod, egyszerű dolog átalakítani a modeline sorokat az XF86Config-ból a framebuffer eszköz számára szükséges időkre.

A framebuffer eszközhöz a következő mezőkre van szükség:

  • pixclock - pixel óra picoszerkundumban
  • left_margin - time fron sync to picture
  • right_margin - time from picture to sync
  • upper_margin - time from sync to picture
  • lower_margin - time from picture to sync
  • hsync_len - length of horizontal sync
  • vsync_len - length of vertical sync

Egy XFree86 mode sor a következő mezőket tartalmazza:

Modeline  "1280x1024" DCF HR SH1 SH2 HFL VR SV1 SV2 VFL

Néhány egyszerű számítás elvégzésére van szükség az XF86 mode-sorok framebuffer eszköz időzítésbe való átszámításához. Például meg kell vizsgálnunk, hogy hogyan alakíthatjuk át az XF86Config állományból vett modeline sor értékeit.

Modeline  "1280x1024" 110.00 1280 1328 1512 1712 1024 1025 1028 1054

Először számoljuk ki a szükséges pixclock értéket. Az XFree86 megahertzet használ, míg a framebuffer eszközök picoszekundumot használnak (Hogy miért? Nem tudom. ) Ossz el egymilliót a DFC-vel. Például: 1,000,000 / 110.0 = 9090.9091

Most ki kell számolnunk a vízszintes időket.

  • left_margin = HFL - SH2
  • right_margin = SH1 - HR
  • hsync_len = SH2 - SH1

A példánkban ez a következő lenne:

  • left_margin = 1712 - 1512 = 200
  • right_margin = 1328 - 1280 = 48
  • hsync_len = 1512 - 1328 = 184

És most ki kell számolnunk a függőleges időket.

  • upper_margin = VFL - SV2
  • lower_margin = SV1 - VR
  • vsync_len = SV2 - SV1

Például ez a következő lenne:

  • upper_margin = 1054 - 1028 = 26
  • lower_margin = 1025 - 1024 = 1
  • vsync_len = 1028 - 1025 = 3

Most felhasználhatjuk ezt az információt a framebuffer kívánt üzemmódjába állításához. Például a matroxfb framebufferhez a következőre van szükség:

video=matrox:xres:<>,yres:<>,depth:<>,left:<>,right:<>,hslen:<>,upper:<>,lower:<>,vslen:<>

A következő sort tettem be a /etc/lilo.conf állományomba:

append = "video=matrox:xres:1280,yres:1024,depth:32,left:200,right:48,hslen:184,upper:26,lower:0,vslen:3"

Jegyezzük meg, hogy ebben az esetben a pixclock nem használatos. Csak akkor szökséges, ha nem szereted az alapértelmezett órajeleket. Átadhatod ezt paraméterként is. A pixclock beállítása e HOGYAN más részeiben megtalálod.


Következő Előző Tartalom