[lkml]   [2006]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Linux drivers management
Dear all,

First of all, thanks for giving me lots of wonderful feedbacks, I read
both pros and cons, support and against msgs. And you are right, I am
serious person about this matter, not joking. Because I do this for my
bread and butter, not just for fun.

Before I continue this discussion, I would really want to clarify who am
I before get discriminated by end-users and developers, because I am both.

I am a full-time (M$_less) Linux user (many years...., Sharp Zaurus PDA,
Linux on laptop, desktop, server, storage and datacenter) with zero
windows experience for the last 5 years (can't remember, my last windows
desktop was on NT 4.0/Win98). I am an engineer, I wrote many file
systems (cogofs, unionfs,
.....more), cluster infrastructure (used in ShaoLin InfiniCluster, data
replication (used in Shaolin Volume Replicator), load balancing, iSCSI
storage drivers..... . I am also a system architect/engineering
manager, architect core Linux system software from scratch, desktop,
network computing, servers, network related projects. I am also a R&D
team manager, hiring, training, manage engineers .

In fact, this is not to talk about myself, but my full-time Linux
experience tells me Linux development is walking away with end-uesrs and
commercial developers that try to work with Linux. It sounds too scary
by now, with over 40MB tarred gzip kernel source. With personal efforts
and company resources, we maintain more than hundreds (probably
thousand) of Linux kernel headers and sources in our lab for building
off-the-shelf supported binary drivers with multiple hardware archs
(x86, ppc...). Because of this, who is going to pay for this? It doesn't
make any sense for anyone who want to maintain and write a driver for
Linux have to pay this price.

My summary from the responses from lkml collected as follows. Please
feel free to make correction if I am wrong, or comment if you want, I
will minimize to say about subjective comment to others comment in an
open area though.

Community Developers and Maintainers:
- Look at the matter on community development process, programming
- Chase for performance, optimization in source level, even though it is
difficult to maintain, who cares?
- Want freedom, change at will (with supported arguments, but who cares?) .
- My feels like it doesn't consider any other forms of development and
respect to traditional software engineering or QA process. Because a
stable API is first needed for teamwork collaborative development.
- Willing to maintain and develop drivers for free, even though they
don't work for the hardware vendor.
- We will follow the convention who make changes to the API will have to
patch all the mess in the kernel source, even though there are 3,714,234
hardware peripheral drivers in the kernel in year 2012, I am happy to do
that :) . Because I want to make change and following the convention.
(how much time to make change or test?)

Technical End-Users:
- Want to compile the drivers from source
- Enjoy building their own kernel, apply patches (patch and make, it
works! thats cool....)
- I don't mind to search for drivers and do it myself, because it was
fun to make something work with my effort :) .
- I don't mind to upgrade my OS because of a missing driver or needed
for new fucntionality. Even my application breaks, down time is not
important to my system because it s a sytsem for fun.

Non-technical Users:
- Want the system to have drivers pre-built, so that they don't have to
go through a compilation or patching process. Its a waste of time for
them (waste of time for me too)
- Why I have to search the drivers? Isn't is suppose to be included in
the OS? Or if not included in the OS, it should be included in a driver
disk (CD/DVD/floppy or whatever medium or download) .
- Why I have to upgrade the complete OS if only one driver is missing? I
want to stay with Redhat-9 , my PHP runs great.
- There is no "Linux support" labels on most the hardware out there,
should I risk my money, buy it and try out? Oh, full refund of item is
not allowed . Then, don't bother ...

Commercial developers:
- Want a stable API so that drivers can be maintained with ease. Because
we don't just work with Linux, we want to focus on our driver
development, not chasing the API changes, versions by versions, vendors
by vendors. Sometimes there are even vendor specific changes, its a
waste of time.
- If I have to make binary drivers, I have to maintain all kernel
sources and headers, compilers to make sure my drivers will be built
correctly without problem. Of risk to change symbols in the binaries and
hope it works!
- Where is the latest up-to-date documentation of the kernel API?
/Documentation only partially describe what I need, its version
specific, sometimes out-of-date, where the hell is that? Let's google it
in, "Linux driver books", No good again.... Its crap, all not
- Lets get on to it, read all docs and sample sources... mmm... My
driver seems working now.. Lets compile it and distribute it. Users:
have you got a driver for Redhat 9 2.4.18 kernel? Answer: No, it doesn't
work, because I write my driver on 2.6.15, you may to DIY. User
response: I want a refund, because you said your hardware has Linux
support, but its a false statement.
- Just leave Linux, who cares, it doens't make sense to us. Because it
doesn't make sense to go through all these problems to say "Linux
supported hardware", user will get refund the product if we say this on
the box on day one.
- Maybe we have another way to do that, submit the driver to the
community and hope it to include it in the latest kernel source.
Wait.... but what about support for Redhat 9 and SuSe 8.2?
- We are happy to maintain our own drivers, because we know better about
our hardware. We are paid to do so, we also have quality assurance
process with formal test tools and equipment. Don't think the community
can do a better core than us.
- It just doesn't work for us. No more Linux driver Cd's, it will not
happen .

My comments:
- Freedom? Someone tell me to shut-up . Some people define freedom using
their own way, not even using mailling list for discussion and make
suggetions or even define questions as "stupid", I will not say that to
anyone. Its rude.
- Wake up! Why would the maintainers bother to maintain the drivers if
the driver development work is now back to the hardware vendor, like
drivers for other platform did? I think someone mis-understood the whole
idea is to "GET RID OF DRIVER MAINTENANCE", belive it or not, it belongs
to the vendor, not here. If the driver releases as GPL, you can still
make your own changes, but it doesn't have to be in main source tree.
- You plug-in the hardware, it worked! Because many people behind the
scene has done a lot of work. My purpose of raising this question is
trying to help both users and developers, and try to make more hardware
that behaves "plug-n-play" .
- What is the goal of Linux developers? Just for fun? Or you want Linux
to get more popular? Users want their system to get supported with
latest drivers, not to compile and build to latest kernel. Or not to
upgrade their Linux distro every week or month. I don't use 2.6.15 nor
happy downloading 40Mb targged gzip kernel source and knowing how to
"make" it.
- Linux will not sail to major desktop unless a decent DDK (driver
development kit) exists. There is a stable ABI on the user space, but
the hardware has to "get worked" before anything in user space happens.
I decide to sell my USB wireless-G adapter because I don't have a driver
for it, neither Linksys did. I can only choose to get rid of Linux, but
can't, so just sell it. For others, why don't they simply choose another
supported OS?
- /Documentation/stable_api_nonsense.txt is only a document totally
written by a programmer sense, its nothing about people who don't want
to compile the drivers, and has assumed drivers should be maintained by
the community. But strictly speaking, it shouldn't. Please refer to the
process of making a driver from a manufacturers point of view and
consider user using old OS'es which don't want to upgrade.

Final comment: There is no right or wrong, stupid or smart, it depends
where you stands and where you want Linux to go. I am very clear myself
is to get Linux promoted to public sectors (where I belive 99% users are
non-technical), easy for developers (I believe everyone wants
easy-way-out) and easy for the community (I belive you people like
innovation, new ideas, rather thatn spend your time to work/maintain
drivers which this work should belongs to the original vendor). If you
think I have no contribution and stupid, that's up to you (who cares?
Linux has been working like this in day-one that I first compile and run
it). But my work has already beyond programming, because making patches
for Linux doesn't make any sense to me, especially when porting drivers
that I can't even tell what they are. My mood of patching the kernel
goes away when today's Linux kernel targged gzip source gets to over
40MB .. I have more important things to do. Its enough for me by now....
Sure its not going to change, maybe but not in a year or two, but
freedom of speech exists, right?

David Chow
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2006-02-07 20:48    [W:0.090 / U:4.388 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site