This tutorial will explain, how to install the SiS and XGI Volari graphics drivers with Debian Linux. Debian Linux is a very popular distribution. Althrough it lost some of the popularity recently, after the american police murdered the founder of the project. The Debian project is focusing on offering a stable system, which is usually actively maintained for 2-3 years. Debian is trying to maintain compatibility with both old and newer systems. After Debian is installed, the packages are downloadable from central servers. Debian's goal is to avoid every eye candy, the best usage for Debian is to use it with the LXDE windows manager.
The Debian Linux distribution has a strict preference of avoiding closed source drivers and binaries in the system. Despite of this, Debian is not against closed source software, so Debian is trying to maintain binary compatibility. Executable files compiled with Debian will usually run with older softwares too, so software developers like to use this system. Once Debian is installed, it can be updated with the following command: apt-get update.
This tutorial will cover Debian 9 (stretch), althrough the new version is Debian 10 (buster), this tutorial should work with Debian 10, and also with Debian 8 and probably with Debian 7. I will not link any binary files for security reasons - therefore, you will have to compile the driver for yourself. You will not have to recompile the kernel for this practicular driver to work.
What is XGI Volari?
SiS is a graphics card manufacturer. Nowdays, they mostly focus on creating processors and SOC-s. XGI was a spun-off company of SiS. The share holder of the company was SiS. SiS also acquired the Trident corporation, which was another graphics card designer. The focus of XGI was to create graphics chips for desktop computers, low-end gaming, low cost add-on graphics cards, and simplistic graphics chips with small power consumption for servers and embedded sysetms. After founding XGI, SiS decided to focus on creating processors. Later, on, XGI ran out from money, and SiS melted it back to the corporation. Unfortunately, after this, the Volari product line received little to zero driver updates, althrough the Volari chips are still manufactured.
Illustration: a server with Volari graphics card
Why there is no Volari driver in Debian?
The SiS / XGI cards have drivers for X11 under Linux. In Debian, however, these drivers are removed from the system. The reason for this is unknown - some developers claim that the drivers are outdated, unmaintained, and buggy. Which is true into some extent. However, without the drivers, you can run into issues. Debian not just removed it from the base system, they also decided not to upload the SiS/XGI drivers into Debian repositories. The Xorg drivers are of course open source, so no one can stop you from using them.
Whats the problems with this
Althrough Linux can work without graphics drivers (by using your 16 bit VESA VBE video bios on your graphics chip), this is limited. For example, you cant set any resolutions above 1024x768, which is problematic if you have a display with 16:9 ratio. Once the driver is installed, resolutions like 1360x768 will became available.
Step1: Download the source code
Download the source code of the drivers from the repository. You can download the newest snapshot from GitHub, from the following link: https://github.com/freedesktop/xorg-xf86-video-sis
If this version fails to compile, you can try the version 12.0: https://github.com/freedesktop/xorg-xf86-video-sis/releases/tag/xf86-video-sis-0.12.0
After finished downloading the source code, unpack it. Please note, you will have to be in root mode to install drivers in your system.
Step2: Be sure you have installed all the dependencies. You can do this with apt-get. Run the following command to install all the dependencies for the driver:
apt-get install g++ libx11-dev xorg-dev xutils-dev libtool libgbm-dev
Step3: Go to the directory of your unpacked Volari driver package, and execute the following command:
./autogen.sh
If the file does not exists, first try to execute the following command: automake
Step4: Observe the output of the command. If everything works well, you will get no errors. You can now compile the driver.
To compile the driver, enter the command: make
Make will take a minute to finish. If you want to optimize your driver a little more, then open your makefile, search for every line containing CFLAG, and replace the -O2 with -O3 everywhere you see. In the other CFLAG lines without any -O2 flag, you can insert the -O3 as well. This will force extra optimizations on the driver. I have tested it with the newest snapshot on github, and it causes no problems to compile the driver like this.
Step5: After make is finished, be sure it finished without critical errors. After this, run: make install
Step6: Unfortunately, make install will somewhat fail on Debian, as the outputs are different on Debian than the X11 project's intented file output. To fix this, you must execute the following command manually:
/usr/bin/install -c src/.libs/sis_drv.so /usr/lib/xorg/modules/drivers/sis_drv.so
This will copy the SiS driver to the proper location in the system.
Step7: Create a file in /etc/X11 called xorg.conf
The contents of the file must be the following:
Section "Module"
Load "dbe"
Load "i2c"
Load "bitmap"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "vbe"
EndSection
Section "Device"
Identifier "Card0"
Driver "sis"
BusID "PCI:1:4:0"
EndSection
Section "DRI"
Mode 0666
EndSection
Please note the BusID parameter. In this example, the bus id is "PCI:1:4:0", but this maybe differs on your computer. To get the proper BUS ID, check your hardware ID with the following command: lspci
Example of the lspci output:
01:04.0 VGA compatible controller: XGI Technology Inc. (eXtreme Graphics Innovation) Z7/Z9 (XG20 core)
You have to observe this device number - in this example, its 01,04 and 0. Replace these numbers to the BusID section as 1:4:0.
Step8: Congratulations, you have installed your driver.
Now cross your fingers, and reboot the computer. If you are lucky, the system will come up in proper display resolution. In this case, your driver is working fine.
Troubleshooting:
If you driver hangs the computer, then simply delete the xorg.conf and remove the /usr/lib/xorg/modules/drivers/sis_drv.so file.
What to expect:
The driver is not perfect, but it will work better than the VESA VBE-based fallback. You will be able to set resolutions above 1024x768, the usability of the system stays intact up to 1360x768. You will be sort of able to watch movies and videos up to the display resolution 1360x768 (only a minor stuttering can be observed). Please note that most of the integrated server-volaris have only 16 MByte dedicated RAM, therefore you should not expect to be able to set resolutions above full HD (1920x1080). There is no notable difference in speed when trying to set the desktop into 16 bit.