[haiku] Improving the hardware driver situation in Haiku

  • From: Ryan Leavengood <leavengood@xxxxxxxxx>
  • To: Haiku ML <haiku@xxxxxxxxxxxxx>
  • Date: Wed, 14 Oct 2009 01:45:45 -0400

I think we need to try our best to improve the hardware driver
situation. Not in magically fixing all the bugs in current drivers or
adding all needed drivers but mainly in having a more robust system
for noticing when current drivers fail and better informing the user
of this fact. I have 3 personal examples just from my recent
experience with my desktop machine: the intel_extreme video driver not
working, the HDA sound driver not working and the ATA driver not
working. I will address these below.

If it is at all possible to tell if the video driver is failing, we
should try to automatically fall back to VESA. If that is too
difficult we should at least be more proactive when the user has
selected fail safe video mode in the boot menu. If they do that and we
can detect what driver they *should* be using, the system should offer
to disable that driver. There is a high probability they are choosing
fail safe video mode for a reason, that reason being that the driver
that should support their hardware actually does not.

For sound we should really try our best not to set up a driver that
looks OK in the Media preferences but that just doesn't work. I had
this with the HDA in my desktop and I've heard other people with the
same problem. I also think the Media preferences need a built-in way
to test if sound works, both in general and on each output (and maybe
even each input too.) Also the work that was done to allow both OSS
and native drivers to exist on the same system should be finished and
thoroughly tested so it can be used in a released Haiku.

For the ATA driver I think it should show more information about the
problem if possible. I don't currently know enough about this to
suggest much, but the current situation is pretty frustrating, even
for someone like me who has been involved with Haiku for a while. I
don't say this to at all demean the incredibly hard work involved in
making the ATA driver support a lot of variable and quirky hardware,
but if we can make it easier for the user to help us solve their
problems that will make our lives easier. For example automatically
showing the text log information when the ATA driver fails. And in my
testing the paging of the log did not work well with a USB keyboard.
It would be nice to fix that if possible.

In all these cases it would also be nice if we had a tool to package
up log information, listdev output and whatever else might be needed
to fix a driver bug and offer to automatically send that to the
project (if possible, for ATA problems it probably isn't.)

Another nice thing to set up would be an infrastructure to
automatically log what hardware definitely works well with Haiku, as
well as what unsupported hardware would be the "most wanted" for
future driver additions. Basically for this we need some way for
people to optionally send their hardware information and what drivers
are working to some web-site or REST API under our control. I think
Pieter Panman's work on the Devices preferences would make a good
start on this. I'd be willing to do any server side scripting needed
for this too (though it might not be for a while since the browser is
higher priority.)

I would not want this "hardware database" system to become a
bottleneck on the R1 release, but I still think it would be nice to
get it done as soon as possible. I do think some of my other
suggestions should be considered for R1 since driver issues are likely
going to be the biggest problem new users have.


Other related posts: