Compiling xserver-xorg-video-vesa from source
I'd like to compile xserver-xorg-video-vesa from source. Why?
The long version: http://trisquel.info/en/forum/cannot-get-widescreen-resolution-and-use-multiple-monitors-trisquel-7-i-could-trisquel-6
The short version: I suspect that the version used in Trisquel 6 works better with my computer than the version used in Trisquel 7. I'd like to try get the best of both Trisquel 6 and Trisquel 7!
Moreover, it might be a good exercise to learn a bit more about compiling C code and whatever else might be involved.
I'm familiar with using the command line, text editing and JavaScript programming. I don't know much C, though, but I've successfully compiled a few C programs made by others in the past.
I have started by downloading the source code from http://packages.trisquel.info/toutatis/xserver-xorg-video-vesa (xserver-xorg-video-vesa_2.3.0.orig.tar.gz).
I then tried to run ./configure. It complains about the packages xorg-server, xproto and fontsproto not being found. None of those appear to be present for installation from the repositories.
Now I do not have any ideas on how to proceed. Any help is appreciated!
Also, if it is not possible to downgrade xserver-xorg-video-vesa without also downgrading a bunch of other packages, which in the end would produce a system more like Trisquel 6, then please tell me. Then it's easier to just use Trisquel 6. But the slightly lower screen resolution in Trisquel 7 is not _that_ bad, so I might just stick with Trisquel 7 as it is. We'll see.
try searching those package names in synaptic packages manager
the packages might just be under a slightly different name
Thank you! I just found the xorg-server-dev package by using Synaptic. After installing it, ./configure could be run without error messages!
I am currently trying to run 'make'. That prints an aweful lot of warnings, and then errors out.
First, 'mibstore.h' could not be found. I don't know where this file is supposed to be coming from. I tried commenting it out to be able to move on.
Then I get the following errors:
vesa.c:1134:5: error: too many arguments to function ‘pScreen->CloseScreen’
vesa.c:1273:26: error: ‘struct _ScrnInfoRec’ has no member named ‘domainIOBase’
vesa.c:1700:5: error: too many arguments to function ‘pScrn->SwitchMode’
vesa.c:1702:5: error: too many arguments to function ‘pScrn->AdjustFrame’
vesa.c:1710:5: error: too many arguments to function ‘pScrn->AdjustFrame’
I'll get back to it tommorrow.
... or just a couple of minutes later.
I just downloaded the source code for the Trisquel 7 version as well. There, I managed to run both ./configure and make without errors. src/vesa.c does not try to include mibstore.h.
It'd be useful if I could find a git repository so that I could more easily track what has changed between the versions.
I found git://git.debian.org/git/pkg-xorg/driver/xserver-xorg-video-vesa. I guess that's a "proper" repo, since it comes from debian.
I also pretty quickly found a commit that remove mibstore.h
Here is how you would build the version that comes with the current Trisquel release:
cd /tmp/ apt-get source xserver-xorg-video-vesa cd xserver-xorg-video-vesa-* sudo apt-get build-dep xserver-xorg-video-vesa dpkg-buildpackage -uc -us
This will build the Debian package.
It might not be that hard to build the sources from a different version in a similar way.
Wow, thank you! That's super useful!
I did this:
cd /tmp wget http://archive.trisquel.info/trisquel/pool/main/x/xserver-xorg-video-vesa/xserver-xorg-video-vesa_2.3.0-7build2.dsc http://archive.trisquel.info/trisquel/pool/main/x/xserver-xorg-video-vesa/xserver-xorg-video-vesa_2.3.0.orig.tar.gz http://archive.trisquel.info/trisquel/pool/main/x/xserver-xorg-video-vesa/xserver-xorg-video-vesa_2.3.0-7build2.diff.gz dpkg-source -x xserver-xorg-video-vesa_2.3.0-7build2.dsc cd xserver-xorg-video-vesa-2.3.0/ dpkg-buildpackage -uc -us
But i seem to find a similar problem:
../../src/vesa.c:53:22: fatal error: mibstore.h: No such file or directory
Hope I helped.
Edit: I found the sources here.
Because of new information from http://trisquel.info/en/forum/cannot-get-widescreen-resolution-and-use-multiple-monitors-trisquel-7-i-could-trisquel-6, I will now abandon my attempts to compile the vesa driver from source, and instead focus on the radeon driver. http://www.x.org/wiki/radeonBuildHowTo/ seems helpful.
The linked guide sure is helpful. I recommend it to anyone attempting to build a radeon driver.
I cloned git://anongit.freedesktop.org/xorg/driver/xf86-video-ati and found a branch called ums. The latest commit was from 2013, even though UMS support was removed in 2012. Wow, that sounded promising!
However, the UMS removal removes a lot of code. _A lot._ Since then, it seems like many changes has been done in order to support newer versions of dependencies, such as xorg. When I tried compiling from the latest commit in the ums branch things failed, because that code was of course not updated for newer dependencies. Considering how much code I need to go through, and that I have prior experience with driver programming, or C programming at all, the task feels too big. (I actually managed to solve at least one thing -- but then 10 new problems arose). So I don't think I'll get further with this (at least for now). It was still a fun project that I learned lots from!