Jump to content

Driver woes?


Gowator
 Share

Recommended Posts

http://searchopensource.techtarget.com/col...1225136,00.html

 

I'll say again what I have said before....

The biggest barrier to Linux drivers are users using ndiswrapper or linmodem, lin printer etc.

 

ITs not individuals as such, sure I used a linmodem driver for my laptop... so Im as guilty as anyone but this is really what allows manufacturers to skip the driver issue for linux.

 

Now it seems the fascination for a 3D desktop seems poised to kill off opensource drivers as well as making linux unstable.

 

I don't know about everyone else but prior top using closed source drivers I don't remember the desktop locking up very often at all... and when it did you could always log-in remotely ...and kill it.

 

Now I get frequent freezes .. usually leaving googleearth open while a openGL screen saver starts or something but these lock the whole kernel... which is of course impossible if the programmers have followed the rules....

Link to comment
Share on other sites

As 3D Desktops become more stable and support more graphics cards this problem should decline, IMHO. It's just that 3d desktops are really immature in the Linux world at this point and require opengl-capable cards, the most popular of which are NVIDIA and ATI. However, some 3d desktops run fine on Intel video chipsets which are usually support by kernel drivers.

 

IMHO, there is nothing wrong with what NVIDIA and ATI do, having closed source drivers. It's their right as a company to keep their code private, and I'm not going to force them to go open source.

 

As far as 3d desktops being unstable, well, it's new stuff...it's going to have some issues. If your X is locking up regularly, you may have a problem that you need to fix, aside from using closed source drivers :P

Link to comment
Share on other sites

As 3D Desktops become more stable and support more graphics cards this problem should decline, IMHO. It's just that 3d desktops are really immature in the Linux world at this point and require opengl-capable cards, the most popular of which are NVIDIA and ATI. However, some 3d desktops run fine on Intel video chipsets which are usually support by kernel drivers.

 

IMHO, there is nothing wrong with what NVIDIA and ATI do, having closed source drivers. It's their right as a company to keep their code private, and I'm not going to force them to go open source.

 

I agree, there is a lot of competition in the market for graphics cards, and the fact is that both ATI and NVidia are bound by license contracts between themselves and the actual manufacturers of the cards, e.g. sapphire, gigabyte, etc, they are not in a position to be able to relase open source drivers. They may not be entirely taking on the open source philosophy, but they are making an effort to support users of their products that use Linux, that at least has to be commended.

Link to comment
Share on other sites

As 3D Desktops become more stable and support more graphics cards this problem should decline, IMHO. It's just that 3d desktops are really immature in the Linux world at this point and require opengl-capable cards, the most popular of which are NVIDIA and ATI. However, some 3d desktops run fine on Intel video chipsets which are usually support by kernel drivers.

 

IMHO, there is nothing wrong with what NVIDIA and ATI do, having closed source drivers. It's their right as a company to keep their code private, and I'm not going to force them to go open source.

 

As far as 3d desktops being unstable, well, it's new stuff...it's going to have some issues. If your X is locking up regularly, you may have a problem that you need to fix, aside from using closed source drivers :P

NVIDIA and ATI can obviously do what they want ... the problem is that we the consumers keep buying graphics cards without opensource drivers and this sends a message that we are willing to accept opensource drivers.

 

Intel drivers should at least make a difference. The problem is that nvidia and ati are a defacto cartel.. perhaps not even by their own wishes so the choice of graphics cards today is limited to basically these two and Intel. I suppose Matrox might represent a small blip...

 

If you go back 10 years then there were probably well over 100 graphics chipset manufacturers who's names we have probably all but forgotten until we look through the driver lists... what happened to Diamond, Hercules, S3 etc. ? even 5 years ago there were probably 30+ mainstream chipsets.

 

As far as 3d desktops being unstable, well, it's new stuff...it's going to have some issues. If your X is locking up regularly, you may have a problem that you need to fix, aside from using closed source drivers :P

This is the problem, how can I (or anyone else fix it if the drivers are closed source) ... even if I wait for a month or two for it to happen again (I call this regualrly) can I get any decent debugging info when its completely frozen and I can't even sysrq or ssh in?

 

My server, without X installed even has run as long as I let it without ever crashing.... last shutdown was actually for cleaning it ... (getting the fluff out of the fans) but prior to that the uptime was from when I installed.

 

I would be interested how many people have uptimes > 1 year using closed source drivers.

Anything under a year is not even approaching STABLE (if you rebooted for a kernel change fine but Im talking other than voluntary shutdowns uptimes 24x7 of over a year)

 

The reason I think 3D desktops present a problem is simple....

If you don't play games then the nv driver is perfectly acceptable, you miss out on googleearth and a few things but really not much when all is said and done. (Mainly functions like twinview or TV out etc.)

 

I can't actually think of many apps that *need* 3d and the closed source driver outside games, Im sure there are a few but for basic office work, internet access etc. NOT using the closed source driver is acceptable.

 

As 3D desktops mature they are likely going to be the default. Even right now I guess many are downloading them just to try the 3D desktop and this is sending a strong message to nvidia and ati ....

 

Here is another good perspective

http://www.securityfocus.com/news/11189

 

What I would add is that the graphics card manufacturers are not concerned with security or programming flaws. If it crashes linux on average once every 2 months I doubt they have issues... whereas a kernel developer would find this ($EXPLITIVE) unacceptable in the extreme.

 

Most importantly the closed source developers don't give a toss for security

http://www.heise-security.co.uk/news/79623

 

"There have been multiple public reports of this Nvidia bug on the NVNews forum and elsewhere, dating back to 2004," Rapid7 said in its advisory. "In a public posting on the NVNews forum, an Nvidia employee reported having reproduced the problem, assigned it bug ID 239065, and promised a fix would be forthcoming."

http://news.com.com/Exploit+code+released+..._3-6126846.html

 

The fact is this has been over 2 years of a known security bug.... Even Microsoft fix them faster than that.

IF this was an opensource driver it would have been fixed the next day, if not the same day.

 

I am unfortunately using the nvidia driver... NOT for googleearth but because I need the twinhead support for my projector. Since I have it installed I use it for google earth :D but was it not for the projector I would not use it...

 

MY GF's comp is running the nv driver. It has NEVER CRASHED ....certainly never so it needs rebooting.

 

root@PixieBox:~# uptime

15:03:14 up 49 days, 22:44, 2 users, load average: 0.05, 0.11, 0.06

 

Ive no idea why she rebooted it? Actually I guess that was when we got back from vacation and she turned it back on.

Link to comment
Share on other sites

If you're talking about flaws that have stayed in systems for extensive periods of time, even open source is guilty of this. I remember news of a flaw in X that has existed for many years and never been fixed.

I would be interested how many people have uptimes > 1 year using closed source drivers.
Since I started my use of a 3d desktop earlier this year (sometime over the summer) with the nvidia closed source drivers I only had issues early on that were actually a misconfiguration on my part. Since that time, I have never had to reboot because of a lockup (caused by closed source drivers or otherwise). I haven't had a lockup caused be NVIDIA drivers being buggy (with or without 3d desktop) in many years (3+, IIRC)
I can't actually think of many apps that *need* 3d and the closed source driver outside games, Im sure there are a few but for basic office work, internet access etc. NOT using the closed source driver is acceptable.
That's fine, if that's what you want to do. We all have that choice. There are open source drivers for both ATI and NVIDIA that are included in every linux distribution. But even they have their own problems - i.e. when I use the NV driver the screen is never correctly positioned on my LCD. It's always shifted to the right 20 pixels or so, I have to use my LCD's automatic configuration to correct this. And it shouldn't occur, the NVIDIA drivers properly position the screen without any action on my part.
Link to comment
Share on other sites

That's fine, if that's what you want to do. We all have that choice. There are open source drivers for both ATI and NVIDIA that are included in every linux distribution. But even they have their own problems - i.e. when I use the NV driver the screen is never correctly positioned on my LCD. It's always shifted to the right 20 pixels or so, I have to use my LCD's automatic configuration to correct this. And it shouldn't occur, the NVIDIA drivers properly position the screen without any action on my part.

 

I think that sums it up.... I'm not saying people shouldn't use the nvidia drivers (I do) I'm saying people should be aware of the effect of their choice. and the message that choice sends NVIDIA. (or ati)

 

As for the problems with the nv driver... I think the two are kinda linked, that is the resources being used on the nv driver are probably less than if the nvidia driver didn't exist...

I think the devels must feel (at least partly) that the opensource driver is a sideline which will be used in installs and then 90% of people will install the closed source anyway. In many ways I think a lot of the small problems with the driver would have been fixed with a bigger user base? Its only specualtion... but there are other examples...

 

I read a post on the kanotix forum about Flash9 where as someone put it they are not going to use it because it just detracts from all the progress made by Gnash ...

I see the point, if I was a Gnash developer then Adobe suddenly waking up having skipped flash 8 is a bit of a slap in the face if the user base and bug testers etc. all just give up on Gnash in favour of the "real thing".

 

Further more they might skip Flash 10-11 .. who knows? but by then unless people keep using Gnash its likely to die or at least not get any further.

 

I guess its the same as browser id spoofing - plenty of sites are written for IE only... not because they won't run on mozilla, just because they deliberatly use browser detection to allow Microsoft users only.

 

Quite why they do this I don't know, lazyness is probably a large factor but if you battle through some Linux protected site by spoofing browser id then you are just adding to their traffic and in a way reinforcing the point they don't need to cater for non Windows users.

Link to comment
Share on other sites

I think that sums it up.... I'm not saying people shouldn't use the nvidia drivers (I do) I'm saying people should be aware of the effect of their choice. and the message that choice sends NVIDIA. (or ati)
See, I think the only message it sends is "we use your cards, and thanks for making a Linux driver!". That's a good message, IMHO. It seems you believe it sends, "you don't have to be open source, we don't care, go ahead and be closed source" which I don't think is the case. If people stopped using the closed source NVIDIA driver, it's more likely NVIDIA will just stop developing it than that they will started making an open source driver (even if the decline is accompanied with cries of "make it open source!". They make the Linux driver because the care about Linux, they make it closed source because their care about their proprietery code. When I see the NVIDIA drivers, I simply think: at least they make Linux drivers!. Which is more than can be said about the majority of hardware vendors, and is a step in the right direction IMHO.

 

I don't think it's right of the OSS community to attempt to force other people/companies to be OSS, or persuade others not to use a product because it isn't OSS. I believe the ideal of having choice that we so viciously proclaim should apply just as much to developers and manufacturers as it does to the end user. Otherwise, we're just being hypocritical.

Link to comment
Share on other sites

I'm not trying to tell people to use them or not.... and I agree that at least they consider linux... but I think in reality there are far more manufacturers who provide open source drivers than we realise ... simply because they are open source and in the kernel.

 

The first spring to mind is Adaptec. You don't even notice the adaptec drivers because they are a standard module and unless your compiling a kernel then they just work... you don't really need to know about them....

 

Then there is CUPS (not exactly a driver but written OS from a commercial company...) which brings me to the many printers with linux drivers. Then there is creative with the numerous OS drivers for different sound cards.

 

A recent(ish) addition is Intel , check out http://www.intellinuxgraphics.org/

but also http://ipw3945.sourceforge.net/ and others for the wireless chipsets.

 

But either way I don't think its simple.

Here is an interesting take (and Im not personally sure how I stand)

http://kerneltrap.org/node/3729

Link to comment
Share on other sites

My point was that if you were to compare:

manufacturers who write linux drivers v. manufacturers who don't

the right side would be much heavier :) anything that adds more weight to the left is fine by me.

 

But either way I don't think its simple.

Here is an interesting take (and Im not personally sure how I stand)

http://kerneltrap.org/node/3729

IMHO, this turned out badly and I personally lay the blame on procedures which are only necessary on an idealistic level. There is no legal issue with having closed source code being used by open sourced code as long as the open sourced code does not directly contain any of the closed source code aside from the calling of functions, which is often known as "the black box" - that is, "i don't know what happens in there but i know if i pass it this stuff i get this stuff back, and that's all i need to know for it to function". I think all too often the OSS community gets high on it's horse and says "If it ain't OSS we ain't gonna use it!"

 

I believe that this conclusion:

Binary drivers only take from Linux, they do not give back anything.
is false. Binary drivers give Linux the ability to use hardware that was previously unavailable. This helps advance Linux by making more hardware compatible, there by getting more users, which in the end improves and expands the Linux community. Coders have a tendency to only look at things from the developer perspective, when there's a much larger picture they completely miss. They can't see the forest for the trees.
Link to comment
Share on other sites

My point was that if you were to compare:

manufacturers who write linux drivers v. manufacturers who don't

the right side would be much heavier :) anything that adds more weight to the left is fine by me.

Well I'd be a hypocrite if I didn't say Im using them but also I do try and buy products with opensource drivers .. for a few reasons.

But either way I don't think its simple.

Here is an interesting take (and Im not personally sure how I stand)

http://kerneltrap.org/node/3729

IMHO, this turned out badly and I personally lay the blame on procedures which are only necessary on an idealistic level. There is no legal issue with having closed source code being used by open sourced code as long as the open sourced code does not directly contain any of the closed source code aside from the calling of functions, which is often known as "the black box" - that is, "i don't know what happens in there but i know if i pass it this stuff i get this stuff back, and that's all i need to know for it to function". I think all too often the OSS community gets high on it's horse and says "If it ain't OSS we ain't gonna use it!"

 

I believe that this conclusion:

Binary drivers only take from Linux, they do not give back anything.
is false. Binary drivers give Linux the ability to use hardware that was previously unavailable. This helps advance Linux by making more hardware compatible, there by getting more users, which in the end improves and expands the Linux community. Coders have a tendency to only look at things from the developer perspective, when there's a much larger picture they completely miss. They can't see the forest for the trees.

Taking the last part first, this is certainly true and probably kernel devels more than most.

 

However drivers do represent a contentious issue because of what they do.

I don't have any problem at all with commercial closed source software in Linux, indeed I encourage it up to a point. I'm certainly very happy with my photoprocessing SW... skype and quite a few others ... though skype does deserve special criticism because of the way it hijacks the sound ...

 

I'm pointing this out as an example because its actually a badly behaved application. The thing is the part which need protecting for commercial reasons doesn't have anything to do with this part. The encryption and compression algoriths could continue to be a black box and the UI and handling the sound server could be opensources without compromising the trade secrets in the important part.

 

If you think then all of what makes skype work well is the compression and encrytption algorithms .. the UI isn't anything special and the sound driver hooks are terrible since not only do they take exclusive access they often forget to let go afterwards!

 

Now onto drivers... the problem is drivers have direct HW control and load into kernel space.

I think the black box itself isn't bad but it depends where that black box is.

 

As I say, its not simple. Certain firmware (WiFi) is impossible to open source in the USA for instance simply because of legislation regarding radio transmissions, specifically that the user should not be able to boost the power output of a consumer item.

 

I understand WHY.... but the legislation is then directly preventing an opensource driver for most wifi chipsets, I doubt that was its intended goal, its just a byproduct that only really affects opensource because if its closed source then you can't play with the gain in the firmware.

(and ultimately if your determined then you can mess with it anyway using external add-ins, anyone who ever had a CB radio will know that)

 

The real problem is that the drivers are in effect a part of the kernel... and the firmware gets direct control over kernel processes but there is no review process for the binary drivers...

Specifically

"i don't know what happens in there but i know if i pass it this stuff i get this stuff back, and that's all i need to know for it to function"

Yes and No.... because the part that misses out is you don't necassarily know what comes out of the black box, only those parts for which you have known hooks.

 

It could be malicious but more likely it could just be poor code*. Hence even Windows does driver certification (if people choose the MS certified driver or not is up to them)... but the whole idea of not having a certification or peer review is alien to linux.

 

In the case of the pwc driver... well I think this was going over the top in many ways but I think from a kernel dev's POV its a question of where the slippery slope starts..???

 

Overall its a strange dance in the IP world....companies want to protect their IP and development costs naturally but in many cases they are just shaving off cents of development by shifting a hardware function into firmware so that the host's CPU can run it.

The problem is that by loading firmware into a kernel module they are introducing parts of the runing kernel that may or may not interfer with other parts of the runing kernel.

 

Perhaps the simplest example is a WinPrinter.

If you take a hardware only printer you send it pure instructions, be it ps or PCL5 etc. but with a winprinter you are actually loading the firmware into the kernel to do the translation....

Of course the translation is no big deal... but exactly how that kernel module interacts with everything else is then unknown. A few badly coded hooks or just direct memory access etc. and the whole kernel is borked or at least one other device might then stop working.

 

This is a simple consquence of the monolithic linux kernel...its far more suceptible to kernel taints than a micro kernel like NT4 based OS's or BSD's....

Its also got a lot of advantages.... but its what we have in linux.

As a OT interesting read (if very old)

http://people.fluidsignal.com/~luferbu/mis..._Tanenbaum.html

 

 

edits:*

When I say poor code what I mean't is the driver writer for closed source HW is only interested in their one device, not how it interact with other devices running in the same kernel space. This is a particular problem with a monlithic kernel... so how well a driver behaves in kernel space is far more important than how an application behaves and co-exists in user space.

 

I don't think this is really exploited in a malicious way but it would be easy to do so...

I'm not saying this happens, its an example: but say ATI build some code into the closed source driver that deliberatly messes about with say a nforce chipset and disables the sound or network or whatever. Its unlikely because it would be stupid because in most cases the probs would start AFTER adding the new ATI card... but there are plenty of places it could be malicious.

Mainly however its just down to the driver manufacturer having no interest in what they break so long as thier product works.

Im sure a few of us remember the probs with DMA and IRQ conflicts back in DOS/Win95/98 times

 

Because the linux kernel is monolithic it is susceptible to bad code in modules and this bad code might not even be apparent until you add a second module... but then you can't fix it nor can the kernel dev team because its closed source.

However linux is also more generic in driver support...so it tends to support chipsets not actual products.

As more closed source drivers are added then a situation like DOS/Win98 with conflicting drivers is likely to occur .. in other words I can have SATA access or sound but not at the same time?

 

In summary I think there is a difference between what happens in userspace and kernel space and that is inherent in the design of linux. Sloppy programing happens everywhere but in the case of closed source its not repairable unless the manufacturer sees a need... and if the problem is that the programming just affects a competitors hardware then motivation to fix it (and then admit to the bad coding to start off) is low whereas with opensource cross compatibility and well behaved drivers have a higher motivation.

Edited by Gowator
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...