On 30 Apr 2002 [EMAIL PROTECTED] wrote: > To me this discussion represents some problems we are having as Linux > gets larger and more mainstream and has a massive plethora of devices in > need of a driver.This business of building device driver support into the > kernel is a good example, sure its all getting much more modular but > that's not my point.
On the subject of compiling drivers into the kernel, I'd like to contrast with MS Windows at this point: Under Linux, it's normal to compile the kernel only with the functionality you require at boot time, and load other drivers as modules later. You usually need harddisk, filesystem, and a couple of other drivers at this point. MS Windows is no different. The difference lies in the simple fact that windows only supports (at most) two filesystems at boot time, and that it boots in real mode, using the BIOS for IDE access, which is much less efficient. > Longer term what should the linux community do to make the production of > drivers easier?? I don't believe Linux is that bad in this respect. The problem is when the people writing drivers don't have access to proper harware documentation. I have read a report from someone doing commercial driver development under contract that Linux is an ideal platform to develop drivers for porting to other OSs, eg MS Windows. > Companies will always be reluctant to make the source to their drivers > freely available, they quite rightly believe it puts their intellectual > property at risk. You sound like you'd be interested in what's happening with the Uniform Driver Interface (UDI), aimed at allowing manufacturers with these hangups to write a single driver that can be run on multiple operating systems. http://www.projectudi.org/specs.html > I'm not a software writer so I don't know what tools are already out on > the market for linux, free or otherwise. But if we build a simple driver > construction kit so that a manufacturer can produce a single precompiled > library and perhaps an xml document that tells the os how to install it > and use it. Text document? HTML document? Even on MS Windows, the standard README files are still just plain text. :) > One that is able to be utilised by any linux distribution and identify > driver version numbering. Provided you (or your distribution) compile the kernel correctly, you can already use driver modules on any distribution with a compatible kernel version. This is nothing new, and few manufacturers do actually supply closed-source drivers in this manner. > I hate to say this but one of the elegance's of the windows driver model > is that its fairly simple to keep the number of files for the driver small > and there is a standard interface to driver installation that being the > inf file. Sure its not perfect and can screw up, but its easy to > distribute and install. It {the inf} even offer's some version control > and declaration of which versions of the OS can use the driver. Ontop of > this it is a compiled dll and whatever else so IP is protected. The .inf is not a compiled DLL, and completely seperate from what it's installing. :) Linux has it's (various) equivelents: .deb .rpm and the oldfashioned .tgz (these in decreasing levels of complexity and fuctionality :) Both .deb and .rpm offer SIGNIFCANTLY better functionality than .inf files, and are used extensively for applications, whereas .inf files are normally reserved for the relatively simple requirements of device drivers, and custom executables used for installing applications. (ugh!) In practical terms, I have not yet seen linux drivers packaged seperately in any format. The advantage of this would be to configure it as it's installed, but the usual aproach is to install them all at once and leave the configuration until later. > How can linux achieve this level of simplicity in driver support / > production?? After all if its easy to build the drivers and protects their > IP then the manufacturers will build them to gain another competitive > advantage. The problem here is twofold: 1) for many manufacturers, ANY aditional effort is too much effort. They are used to writing windows drivers, and they'll keep doing so. 2) As you alluded to at the top of your email, the Linux driver interface does not seem as stable as the windows one. Some drivers are indeed incompatible between W95,W98,etc but that number is very small. Linux drivers became incompatible more than a couple of times within the 2.2 series kernels, hence the preference for open-source drivers. > Arguments / feedback?? As above. :) -- Jessica Mayo. (Everything with a Grin :) -- SLUG - Sydney Linux User's Group - http://slug.org.au/ More Info: http://lists.slug.org.au/listinfo/slug
