LCD
From A110 Wiki
The A110 has a 7" TFT-LCD, driven by the VIA VX800 graphics chipset.
Contents |
X11 drivers
unichrome 9.83 ubuntu 8.04 driver
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
