Install Xorg and the package xf86-video-trident, for example by:
sudo pacman -Sy xf86-video-trident
Create a configuration file in /etc/X11/xorg.conf.d/ named 99-trident.conf (or a name you prefer):
sudo nano /etc/X11/xorg.conf.d/99-trident.conf
Paste following text and save the file:
Identifier "gfxcard" Driver "trident"
# Options under this line may (or may not) improve performace # Option "NoAccel" "True" # Option "ShadowFB" "Enable" # Option "NoPciBurst" "Enable" # Option "FramebufferWC" # If Xorg crashes on startup (hangs with black screen) you may try out # the following two lines (by removing the "#" before the line): # Option "NoDDC" # Option "UseTiming1024" # The 1024 in UseTiming is for a Notebook with a native resolution of 1024x768 pixel. # If you have a native resolution of 800x600 pixel you should use "UnseTiming800" instead. EndSection
Identifier "Screen 0" Device "gfxcard" Monitor "Monitor 0" DefaultDepth 16
Identifier "Monitor 0" Option "DPMS" "Disable"
As trident cards a quite slow, using only 16 bit as color depth (see DefaultDepth in the Screen Section) is a good idea to speed things up. By only using 8 bit you can speed up things even more, but in my expirence a lot of programs have problems with color conversion an picture in my browser looked bit like Andy Warhol pictures. So you may want to keep 16.
On my Notebook Xorg does not properly detect the native screen resolution, which causes Xorg to crash. In the past adding "NoDDC" solved this problem for, but as of 02.11.2012 I have also to pass "UseTiming1024". Make sure the number matches you the native x-resolution of your display. For example I have a display with a resolution of 1024x768, so I'm using "UseTiming1024". If you have for example a resolution of 800x600, you would use "UseTiming800" instead.
I also added a few options which can improve speed, but commented it out. You may want to try them out be removing the "#" at the begin of the corresponding line.
A framebuffer driver called tridentfb is included in the kernel source, but not include in the default Arch Linux kernel package. You could recompile the kernel with tridentfb enabled, but much easier is installing the tridentfb package in the AUR. If you have yaourt you only have to type:
yaourt -S tridentfb
The package will be compiled against you currently running kernel and will only work with your current kernel. Because of this tridentfb will prevent the kernel package from updates. If you want to update your kernel, you have to remove tridentfb first. After the update, you can should recompile and reinstall the package by:
yourt -S tridentfb
To configure the resolution to meet the native resolution of your screen you need to create a configuration file in /etc/modprobe.d/. You can do this for example by:
sudo nano /etc/modprobe.d/tridentfb.conf
If you have a native resolution of 1024x768, you want to have a color depth of 8 bit and a refresh rate of 60Hz you should use this as configuration.
options tridentfb mode_option=1024x768-8@60
The format is: mode_option=XRESxYRES-DEPTH@REFRESHRATE
It's also a good idea to include the module and the configuration file in the initrd. To do this, you have to edit /etc/mkinitcpio.conf. Simply add tridentfb to the MODULES="..." array and also "/etc/modprobe.d/tridentfb.conf" to the FILES="..." array to also make you configuration available in the initrd. Now run
sudo mkinitcpio -p linux
to update your initrd. After every update of tridentfb you have to run mkinitcpio, if you have tridentfb included in your initrd.
tridentfb does no longer work after a minor kernel update
If you have updateded you kernel from version 3.x.y to 3.x.(y+1) and experience problems, just rebuild and reinstall the package (for example by using yaourt -S tridentfb). Also the package has to be rebuild and reinstall after major kernel updates.
The AUR package is not up to date - tridentfb cannot be build with the current kernel
You have updated the kernel but the PKGBUILD has not been updated yet to work with your current kernel? No problem! Only two numbers have to be changed in the PKGBUILD to meed your kernel version: Change pkgver=X.X to meet your kernel major version, for example to "pkgver=3.6" for kernel 3.6.4 and also change the last entry of the depends array to make tridentfb conflict with the linux kernel one version higher then you current kernel. If you are using kernel 3.6.4 the new entry should look like: 'linux<3.7'