Re: Linux drivers management

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 http://www.shaolinmicro.com/product/cogofs/, unionfs, .....more), cluster infrastructure (used in ShaoLin InfiniCluster http://www.shaolinmicro.com/product/icluster/technology.php), 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 amazon.com, "Linux driver books", No good again.... Its crap, all not up-to-date! - 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?

regards,
David Chow
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux