I’ve been wanting to do this for a long time. I sat down this weekend
and tried hard to add a new graphics driver instead of just overwriting
an existing one. Alas, I’ve failed on my own - time to ask for some help.
To get everyone up to speed I’ve built and tested a new variant of the
VESA driver going by the name devg-vesabios.so. I have added the shadow
buffer feature but not the earlier timing settings as the newer edition
of the driver that comes with QNX 6.3.0 now has refresh rate setting as
standard.
Overwriting the original driver with the tweaked one works a treat so I
decided this is a good time to learn how to put additions in the
enumeration system.
Step One:
Give it a unique name. This involved a little learning of the Eclipse
tools for changing project and target names. This was solved and now I
have a new driver named “devg-vesatweak.so”.
Step Two:
Enumeration. Obviously, just putting this in /lib/dll is not going to
get it enumerated without further work. However, it is usable simply by
specifying vesatweak in the Advanced settings of the prefs.
To cut a long story short I added an OEM file named
/etc/system/enum/oem/devg-vesatweak with a driver list for my test bed,
namely an i830MG based laptop. The entries are the i830 driver, vesabios
driver, vga driver, and finally the new vesatweak driver. Then
executing a “crttrap clear” followed by a reboot. This results in a
fresh trap list which now includes vesatweak.
All good so far, but that’s as far as I can get. All attempts to
convince the prefs to include vesatweak in it’s list of devices have
failed.
Things tried so far:
- eyeballing the sources for filling a struct with “vesa” - none found.
- eyeballing the enum files for “vesa” like IDs - none found.
- grep’ing for any occurrence of “vesa” in the binary - found but
discounted. - grep’ing for any occurrence of “vesa” in phgrafx, io-graphics,
devgt-iographics - none found. - Removing “vesa” from the driver name.
- Modifying most public function names.
At a lose,
Evan