Showing posts with label display. Show all posts
Showing posts with label display. Show all posts

2013-09-30

LCD display optimized video mode: CVT-R & Linux

Many modern LCD displays (ones with 60 Hz vertical refresh frequency) should support an improved video mode with reduced blanking intervals (CVT-R), which can save some signal bandwidth and reduce the cost of the cabling (sometimes you can use a single-link DVI / HDMI cable instead of a dual-link one to support some of the high-definition resolutions; due to reduced signal bandwidth, a longer, cheaper cable with a non-perfect shielding can be used with reduced risk of electromagnetic interference).
Unfortunately, the best mode sometimes can be missing from the display's EDID ("extended display identification data" accessed by computer through DDC), so your computer won't be able set the best mode automatically, and you'll need to do some manual configuration.
(The sample commands are for Debian GNU/Linux 7.0 "Wheezy", but should work for many other systems).
  1. First of all, find out the native resolution (e. g., 1920 x 1080) and refresh rate (should be a multiple of 60 Hz: 60 Hz, 120 Hz etc.) for your display.
  2. Try to calculate a suitable video mode string using cvt utility (from the xserver-xorg-core Debian package); 60 Hz is the default refresh rate, so it can be omitted:
    $ cvt -r 1920 1080
    # 1920x1080 59.93 Hz (CVT 2.07M9-R) hsync: 66.59 kHz; pclk: 138.50 MHz
    Modeline "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
    $ cvt -r 1920 1080 120
    # 1920x1080 119.88 Hz (CVT) hsync: 137.14 kHz; pclk: 285.25 MHz
    Modeline "1920x1080R"  285.25  1920 1968 2000 2080  1080 1083 1088 1144 +hsync -vsync
  3. Check the current video mode of your display through the display's menu (and write down those values somewhere for reference). If the actual clock values are higher than calculated by cvt, then it's reasonable to test the freshly calculated video mode.
  4. For quick video mode changes, you can use xrandr utility (from the x11-xserver-utils Debian package):
    $ xrandr
    Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
    DVI1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 456mm x 123mm
       1920x1080      60.0*+ 
       1024x768       60.0  
       800x600        60.3     56.2  
       640x480        59.9  
    VGA1 disconnected (normal left inverted right x axis y axis)
    HDMI1 disconnected (normal left inverted right x axis y axis)
    $ xrandr --output DVI1 --mode 800x600
    $ xrandr --newmode "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
    $ xrandr --addmode DVI1 1920x1080R
    $ xrandr --output DVI1 --mode 1920x1080R
    
  5. For permanent effect, you'll need to change X11 settings by putting the generated modeline into the proper section of the /etc/X11/xorg.conf config file:
    Section "Monitor"
        Identifier     "Monitor0"
        VendorName     "Vendor1"
        ModelName      "Model2"
        HorizSync       30.0 - 150.0
        VertRefresh     50.0 - 160.0
        Option         "DPMS" "true"
        Modeline       "1920x1080R"  138.50  1920 1968 2000 2080  1080 1083 1088 1111 +hsync -vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Monitor        "Monitor0"
        DefaultDepth    24
        SubSection     "Display"
            Depth       24
            Modes      "1920x1080R"
        EndSubSection
    EndSection
    Don't forget to restart the X server for updated configuration to take effect.
  6. The video mode for Linux console probably can be changed using KMS (kernel mode setting); there's some good info about KMS settings on nouveau Wiki.

See also:

2013-08-31

HOWTO: configure the OS to use a 100 Hz refresh capable CRT monitor in Linux

  • Test environment.
    • Hardware
      • Monitor: Samsung SyncMaster 959NF
        • Test display resolution: 1024 * 768 @ 100 Hz
      • Video card: based on Nvidia GeForce2 MX400
        $ lspci | grep -i nvidia
        01:00.0 VGA compatible controller: NVIDIA Corporation NV11 [GeForce2 MX/MX 400] (rev b2)
      • CPU: x86-compatible (some old AMD Athlon one)
    • Software
      • OS: Debian GNU/Linux 7.0 "Wheezy" / i386
      • Video driver: nouveau
  • X11 graphical mode configuration.
    1. Use cvt utility to generate a modeline for X11:
      $ cvt 1024 768 100
      # 1024x768 99.97 Hz (CVT) hsync: 81.58 kHz; pclk: 112.25 MHz
      Modeline "1024x768_100.00"  112.25  1024 1096 1200 1376  768 771 775 816 -hsync +vsync
      
      Note: 100 Hz is a non-standard refresh rate for CVT.
      If CVT timings don't work for some ancient monitor, you can also try to use gtf utility to generate somewhat older GTF timings:
      $ gtf 1024 768 100
      
        # 1024x768 @ 100.00 Hz (GTF) hsync: 81.40 kHz; pclk: 113.31 MHz
        Modeline "1024x768_100.00"  113.31  1024 1096 1208 1392  768 769 772 814  -HSync +Vsync
      
      
      Both cvt & gtf utilities are part of xserver-xorg-core Debian package.
    2. Change X11 settings by putting the generated modeline into the proper section of the /etc/X11/xorg.conf file:
      Section "Monitor"
          Identifier     "Monitor0"
          VendorName     "Samsung"
          ModelName      "SyncMaster"
          HorizSync       30.0 - 110.0
          VertRefresh     50.0 - 160.0
          Option         "DPMS" "true"
          Modeline       "1024x768_100.00"  112.25  1024 1096 1200 1376  768 771 775 816 -hsync +vsync
      EndSection
      
      Section "Screen"
          Identifier     "Screen0"
          Monitor        "Monitor0"
          DefaultDepth    24
          SubSection     "Display"
              Depth       24
              Modes      "1024x768_100.00"
          EndSubSection
      EndSection
    3. Restart the X server for updated configuration to take effect.
  • Here are the sample settings for non-X11 user interfaces, put into /etc/default/grub (the GRUB2 config).
    For modified settings to make effect, don't forget to execute update-grub2 as superuser and then reboot.
    ...
    GRUB_CMDLINE_LINUX="video=VGA-1:1024x768M@100"
    ...
    # The resolution used on graphical terminal
    # note that you can use only modes which your graphic card supports via VBE
    # you can see them in real GRUB with the command `vbeinfo'
    GRUB_GFXMODE=1024x768
    ...
    Notes:
    1. The Linux command line option mentioned aboves allows to set a desirable video mode for virtual console using kernel mode setting (KMS).
      There's more info about KMS settings on nouveau Wiki.
    2. Display refresh rate doesn't seem to be specifiable for GRUB bootloader graphical mode. This initial graphic mode depends heavily on VBE.
    3. Other caveats: video play in console framebuffer (i. e., using mplayer) has not seemed to work for me in this test setup.

See also:

2012-07-30

Acer Aspire 3810T (AS3810T): laptop LCD panel (screen) replacement compatibility list

Some of the Acer Aspire Timeline 3810T (AS3810T) laptops have specific LCD panels which often have backlight broken after some operation time (it's caused by a "flex strip"-type powerline bending breakup -- look at that blogpost for more info and pictures).

If your laptop is already out of warranty, you can buy a new LCD screen and replace it yourself.
  • Acer 3810T laptop commonly uses a 13.3" LCD screen [1366 * 768 WXGA; 18-bit RGB (3 * 6 bits) -> 262144 (218) colors] with LED backlight and 40-pin connector.
  • Pay attention to the specific brackets it has, as some display variations will not fit.
  • To prevent future problems, try to get a display with no such overbent "flex strips"; in this list, I've marked supposed "fragile flex" displays with a [bent flex] label.
  • Anyway, better don't buy a display without checking the actual part numbers and product photos (and also datasheets, preferably).
---
Info last updated: 2016-05-10.




Screens confirmed to fit by someone.

AU Optronics (AUO):
B133XW01 V2 [bent flex]

LG Display (ex-LG.Philips LCD):
LP133WH2-TLA3
LP133WH2-TLA4

Samsung:
LTN133AT18



And those displays are believed to work, but need some confirmation.

AU Optronics (AUO):
B133XW01 V3 [bent flex]
B133XW01 V7 [bent flex]
B133XW03 V2
B133XW03 V3

LG Display (ex-LG.Philips LCD):
LP133WH2-TLB3
LP133WH2-TLL1
LP133WH2-TLM1

Toshiba:
LT133EE09300

---
List data last updated: 2013-08-21.