LCD

From A110 Wiki
Jump to: navigation, search

The A110 has a 7" TFT-LCD, driven by the VIA VX800 graphics chipset.

Contents

X11 drivers

unichrome 9.83 ubuntu 8.04 driver

unichrome9 drv (Beta)

this driver allows true 800x600 virtual desktop, or 1000x600 compressed screens. the latter is somewhat slow, but the dot aspect ratio of 1000:600 is the same as the native 800:480 = 1:1,66. Just run "sudo vinstall" script and reboot.

http://linux.via.com.tw/support/downloadFiles.action

in order to use 800x600 virtual, you probably need unionfs fixed (as /root/dynamic, type mount to verify). Then setting up a new user other than nutzer is possibly required. change xorg.conf accordingly.

Real nice about this driver is, that when you force the via_agp and via_chrome9 modules to load, you'll get accellerated 3D-Graphics and thus AIGLX. Pretty neat.

Enabling 3D on the preinstalled Ubuntu 8.04

  • Install the BETA driver (link above), but DON'T REBOOT
  • do a "sudo depmod -ae"
  • Create a file /etc/modprobe.d/via with the contents:
install viaagp modprobe -f via_agp
install viachrome9 modprobe -f via_chrome9

I guess there is a typo. Please try: install viaagp modprobe -f via-agp

  • Add to your /etc/modules:
viaagp
viachrome9
  • Edit your /etc/X11/xorg.conf, add to the section "Screen"
SubSection "Display"
  Modes "1024x768"
EndSubSection

This has to be done because with enabled 3D acceleration higher resolutions don't display correctly on the internal LCD before using the native one, which leads to a corrupted display. Didn't test that with an external monitor, though. However, you can scale the screen after initializing your session.

But note this setting limits the available resolutions to a max. of 1024x768.

  • Reboot
  • Verify 3D is working by opening a terminal and typing:
glxinfo |grep direct


A beta Dokumentation is also avaible if you want to write your own driver.

Using Compiz desktop effects on the preinstalled Ubuntu with the above driver

  • Enable 3D support as above
  • Edit the "compiz" script as root: gksudo gedit `which compiz` and search for the line starting with WHITELIST
  • Change it to read:
WHITELIST="nvidia intel ati radeon i810 fglrx via"
  • Save it
  • Test compiz on the commandline by giving:
compiz --replace

If it works, quit it with Ctrl-C and enable desktop effects in Gnome as you always would do.

If you screwed your xorg.conf and thus cannot log in anymore, while you neither can switch to text mode console CTRL-ALT-F2, make sure you have a bootable puppy-linux-3.0 stick handy to quickly undo your changes (double entries, "virtual" entries asf.). Without X userlevel 2 wont get you anywhere with the VIA driver.

Proprietary, binary-only via_drv.so

Finally, IRC is great[1], we got a hint from one of the developers of Mandriva for the Airis Kira:

To get the native resolution working, you have to install the via-driver from service.one.de[[2]](1,4MB) as explained in the included readme file. Make sure, that your file system is writeable to do so (eg. the UnionFS-modification to the original Ubuntu installation from One). You have to modify the file /etc/X11/xorg.conf to contain a line

 Option "DisplayHardwareLayout" "TTLLCD"

inside the Device section for the "via" driver (instead of "vesa"). Not much more is needed.

For copy and paste, here is a (more or less) suitable /etc/X11/xorg.conf:


 # xorg.conf (X.Org X Window System server configuration file)
 #
 # This file was generated by failsafeDexconf, using
 # values from the debconf database and some overrides to use vesa mode.
 #
 # You should use dexconf or another such tool for creating a "real" xorg.conf
 # For example:
 #   sudo dpkg-reconfigure -phigh xserver-xorg
 Section "InputDevice"
   Identifier           "Generic Keyboard"
   Driver               "kbd"
   Option               "XkbRules"              "xorg"
   Option               "XkbModel"              "pc105"
   Option               "XkbLayout"             "de"
   Option               "XkbVariant"            "nodeadkeys"
   Option               "XkbOptions"            "lv3:ralt_switch"
 EndSection
 
 Section "InputDevice"
   Identifier           "Configured Mouse"
   Driver               "mouse"
 EndSection
 
 Section "InputDevice"
   Identifier           "Synaptics Touchpad"
   Driver               "synaptics"
   Option               "SendCoreEvents"        "true"
   Option               "Device"                "/dev/psaux"
   Option               "Protocol"              "auto-dev"
   Option               "HorizEdgeScroll"       "0"
 EndSection
 
 Section "Device"
   #Identifier          "Configured Video Device"
   #Driver              "vesa"
   Identifier           "device1"
   Driver               "via"
   #Option              "DPMS"
   #Option              "ActiveDevice"          "DFP,CRT"
   #Option              "PanelID"               "8"
   #Option              "LCDPort"               "DFP_HIGHLOW"
   #Option              "NoDDCValue"
   #The Option we were searching for:
   Option               "DisplayHardwareLayout" "TTLLCD"
   #Option               "FnHotkey"              "LCD, CRT"
   Option               "FnHotkey"
   #Option              "DisplayHardwareDevice" "LCD"
   Option               "ActiveDevice"          "LCD"
   #Option              "ForceLCD"
 EndSection
 
 Section "Monitor"
   Identifier           "monitor1"
   VendorName           "Generic"
   ModelName            "640x480 @ 60 Hz"
   HorizSync            30.0 - 72.0
   VertRefresh          50.0 - 75.0
   
   Modeline "800x480" 29.58  800 816 896 992  480 481 484 497
 
   # 800x480 @ 60.002 Hz (GTF) hsync: 29.82 kHz; pclk: 29.58 MHz
   Modeline "800x480@60gtf" 29.58  800 816 896 992  480 481 484 497  -HSync +Vsync
 
   # 800x480 59.48 Hz (CVT) hsync: 29.74 kHz; pclk: 29.50 MHz
   Modeline "800x480@60cvt" 29.50  800 824 896 992  480 483 493 500 -hsync +vsync
 
   # TV fullscreen mode or DVD fullscreen output.
   # 768x576 @ 79 Hz, 50 kHz hsync
   ModeLine "768x576"     50.00  768  832  846 1000   576  590  595  630
 
   # 768x576 @ 100 Hz, 61.6 kHz hsync
   ModeLine "768x576"     63.07  768  800  960 1024   576  578  590  616
 EndSection
 
 Section "Screen"
   Identifier           "Default Screen"
   Device               "Configured Video Device"
   Monitor              "Configured Monitor"
   SubSection "Display"
     Modes    "800x600"
   EndSubSection
 EndSection
 
 Section "ServerLayout"
   Identifier           "Default Layout"
   Screen               "Default Screen"
   InputDevice          "Synaptics Touchpad"
 EndSection


Note: If you use the xorg.conf from above, you will get an 800x600 "squeezed" GDM Loginscreen. In the Section "Screen" change the line

 Modes    "800x600"

to

 Modes    "800x480"


you will have the native LCD resolution after restarting X (Strg+Alt+Backspace).

To use an external monitor with it's native resolution will take some extra work. We assume here, that the DDC of the monitor works correctly (that is usually the case, at least it usually works good enough for our task). You simply have to remove or comment out the "Modes"-line and all "ModeLine" things. You've also to remove the

 Option "ActiveDevice" "LCD"

line. You can force to use your external monitor using

 Option "ActiveDevice" "CRT"

There is some difference in how the system reacts: sometimes things are completely different if you had attached the external monitor at startup.

Hint: Try a line

 Virtual 800 480

(inside the Display subsection) to be sure to have an 800x480 resolution on startup even with an external monitor attached.

OpenChrome

On the long run our best option is probably the OpenChrome project, which has open-source X11 drivers for many VIA chipsets.

Note: The VX800 support in OpenChrome is in an early beta stage, don't expect everything to work properly, yet! To be specific, there is no 3D acceleration support (yet), for instance. However, in the latest svn revision there is initial HWCursor and XVideo support now.

The recommended OpenChrome version for the A110 is trunk (>= r712), i.e. the latest svn development version. Currently none of the existing OpenChrome distribution packages will work, you have to build OpenChrome from source.

In order to build OpenChrome, you'll have to install a number of development libraries first, e.g.

$ apt-get install xserver-xorg-dev x11proto-core-dev libxvmc-dev x11proto-fonts-dev libdrm-dev x11proto-xf86dri-dev x11proto-gl-dev mesa-common-dev

Then, checkout OpenChrome trunk:

$ svn co http://svn.openchrome.org/svn/trunk openchrome-trunk
$ cd openchrome-trunk

Run autogen.sh with some debugging options:

$ ./autogen.sh --enable-debug --enable-xv-debug --prefix=/usr

If there are any errors you might have to install some more missing lib*-dev packages or development tools such as autoconf, automake, and libtool.

We use --prefix=/usr so that the installed modules will end up in /usr/lib/xorg/modules/drivers where all the other X.org drivers are located. If all went well, build the code:

$ make

Finally, (as root) install the compiled libs and modules:

$ make install

In order to use the new openchrome driver, edit your /etc/X11/xorg.conf file and use the following options:

Driver                "openchrome"
# Option              "SWCursor"
# Option              "NoAccel"
# Option              "ActiveDevice"  "LCD,CRT"

Notes:

  • The NoAccel, ActiveDevice, and SWCursor options are no longer needed with the lastest svn code.
  • On Debian Sid, make sure _NOT_ to use a framebuffer console as this will give a distorted display. Use a text console instead.

Original VIA Beta-Driver-Sources

First download The Driver

 cd    ./xf86-video-via-83.1.0/X11R7
 chmod +x config_x11r7
 chmod +x autogen.sh
 chmod +x configure
 ./config_x11r7
 ./autogen.sh	

Maybe autogen needs some other packages! Install with aptitude or synaptic. (I have needed: autoconf, xserver-xorg-dev, and pkg-config.)

 make
 make install

edit your /etc/X11/xorg.conf

 Section "InputDevice"
 	Identifier	"Generic Keyboard"
 	Driver		"kbd"
 	Option		"XkbRules"	"xorg"
 	Option		"XkbModel"	"pc105"
 	Option		"XkbLayout"	"de"
 EndSection
 
 Section "InputDevice"
 	Identifier	"Configured Mouse"
 	Driver		"mouse"
 	Option		"CorePointer"
 EndSection
 
 Section "InputDevice"
 	Identifier	"Synaptics Touchpad"
 	Driver		"synaptics"
 	Option		"SendCoreEvents"	"true"
 	Option		"Device"		"/dev/psaux"
 	Option		"Protocol"		"auto-dev"
 	Option		"HorizEdgeScroll"	"0"
 EndSection
 
 Section "Device"
 	Identifier	"Configured Video Device"
 	Driver 		"via"
       Option 		"DisplayHardwareLayout" "TTLLCD"
         Option      	"NoAccel" "TRUE"
         Option      	"SWCursor" "TRUE"
         Option      	"ActiveDevice" "LCD,CRT"
         Option "expand"
 EndSection
 
 Section "Monitor"
 	Identifier	"Configured Monitor"
 EndSection
 
 Section "Screen"
 	Identifier	"Default Screen"
 	Monitor		"Configured Monitor"
 	Device		"Configured Video Device"
 	DefaultDepth 24
 	Subsection "Display"
         	Depth 24
         	Modes "800x480"
           EndSubSection
 EndSection
 
 Section "ServerLayout"
 	Identifier	"Default Layout"
 	Screen		"Default Screen"
 	InputDevice	"Synaptics Touchpad"
 EndSection

restart X ( alt + ctrl + backspace) and everything will work fine!

Kernel framebuffer driver

See http://marc.info/?l=linux-kernel&m=121015917626649&w=2.

Enabling the framebuffer

The framebuffer works after a few changes, described there: http://wiki.ubuntuusers.de/Konsolen-Aufl%C3%B6sung It is in German but the steps a clear. For the menu.lst I have testet the vga=0x0301. hwinfo --framebuffer says that 0x0311 and 0x0312 are possible, too. So you don't need to install it ;)

Powersave modes

Console blanking

The command

$ setterm -blank 1

will "blank" the console display after one minute of inactivity. However, there's no measurable effect on the power the laptop draws. Using for instance

$ setterm -powersave powerdown -powerdown 1

has no measurable effect on power consumption, either.

X11

TODO.

Lid close

Closing the laptop's lid will trigger some sort of powersaving mode automatically (tested on stock 2.6.25 on Debian). It's unclear yet how to trigger this via the command line (without closing the lid). This mode does have an effect on power consumption, though (ca. 1.4 W difference).

LCD datasheet

Datasheet download: CLAA070LC0ACW_7.0_800x480_TTL_LED.pdf (1 MB).

Quote:

  CLAA070LC0ACW is 7" color TFT-LCD(Thin Film Transistor Liquid Crystal
  Display)module .Composed of LCD panel,driver ICs,control circuit,and LED backlight.
  The 7.0"screen produces a high resolution image that is composed of 800×480 pixel
  elements in a stripe arrangement.Display 262K colors by 6 Bit R.G.B signal input.
  General specifications are summarized in the following table:
                     ITEM                                SPECIFICATION
    Display Area (mm)                                   152.4(W)×91.44(H)
    Number of Pixels                                  800(H)×3(RGB)×480(V)
    Pixel Pitch (mm)                                   0.1905(H)×0.1905(V)
    Color Pixel Arrangement                             RGB vertical stripe
    Display Mode                                          Normally white
    Number of colors                                          262,144
    Viewing Direction                                        6 o´clock
    Response Time (Tr+Tf)                                      20ms
                       2
    Brightness(cd/m )                                       220nit(typ)
    Viewing Angle(BL on,CR≧10)                     140 degree(H),110degree(V)
    Electrical Interface(data)                                  TTL
    Power consumption                                       2.0W(Typ)
    Outline Dimension(in mm)                           165(W)×104(H)×5(D)
    Weight(g)                                                  TBD
    BL unit                                                     LED
    Surface Treament                                 Anti-Glare,Hardness:3H

Note: LED backlights have a lifetime of around 20,000h. Normally that means: after a usage time of twentythousand hours with full brightness, the brightness will be the half of that of a brand new display.

VX800/U Programming Manual

http://linux.via.com.tw/support/beginDownload.action?eleid=161&fid=241

Personal tools