Linux Device Drivers, 2nd ed. Released Under GNU FDL
Rosco P. Coltrane writes: "I don't know if this is old news, but I've just noticed that the "Linux Device Drivers, 2nd Edition" book by Alessandro Rubini & Jonathan Corbet has been published under the GNU Free Documentation License v1.1 by O'Reilly." Making the entire book available is a nice gesture by O'Reilly. And anything that helps get more device drivers written is a plus in my book... We reviewed the first edition, but obviously there have been one or two tiny changes since then.
This is news to me.
Next time you contact them, remind them that they were shipping Linux in the box with a lot of their products (TurboLinux) and that they have Linux support stamped on the boxes of their 10/100 NICs.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
As in...
C) The company is so paranoid that the technical information needed to develop drivers will either allow a competitor to come up with a cheap knock-off product (Which was M-Systems excuse...) or allow enough knowlege of the internal workings of the device in question to allow an opening for a patent infringement suit.
These companies are so sold on "intellectual" property and they're afraid that any piece of what they consider is their intellectual propery is guarded like the crown jewels. SiS, while they gave away technical data for the 6328 3D chip, has chosen to require an NDA to get ANYTHING about the 300, 305, or 315 chips- even though they gave out an open source driver, without that information, you can't fix it. Thankfully, I'm going to be able to work on it because my employer's working with something that uses a 603 chipset that contains the 300- so I'm going to be able to fix the drivers for a while at least.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Without technical programming information (such as register level/MMIO/DMA programming info for things like 2D/3D chips) you're not going to be able to write anything without a long, arduous reverse engineering process- that might never produce results.
Broadcom's not giving out stuff- even though they HAVE a closed source driver for their HomePNA stuff. It's no different than CyberLink or InterVideo with their PowerDVD for Linux and LinDVD- you have to be an OEM or an embedded systems vendor to even get a copy of the software. This means that I could concievably get a copy of any of this stuff, but the general public can't- which is WRONG.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
It's the book I used to first get up to speed with Linux driver development (this is what I do for a living now... :-). For many things, it will serve well, if they've kept it as good as the first edition- it assumes a decent level of proficiency in C coding and takes you through most of the nuances of the module's interface to the kernel and how to do things like bus-mastering, etc. in the manner Linux expects/allows.
Fair warning, while the coding is not hard, making drivers work the hardware and do it well is the actual hard part of making drivers for the kernel. Depending on the device it could be easy (The industrial I/O interface for 2.2.X kernels for the Versalogic VSBC-6 is simple- and was the first device driver that I successfully implemented...) or it could be rather complex (DRM modules for DRI support come immediately to mind...). It all depends on the device and what you want to do with it.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
The greatest trick the devil pulled was convincing the world he didn't exist -- Verbal Kint, The Usual Suspects)
Love the quote.
Excellent movie. Unbelievable plot twist at the end- if you've not seen it, you probably ought to go see it; it's got one of those mind-bomb endings not unlike the one they did in Sixth Sense.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
If you're not spending your own money, you're spending your employer's on printing this beast out.
Put it in those terms and you'll "get it".
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
NT
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
Is this definitely _the_ book to have on writing device drivers? I know there are other books written about the Linux kernel, but it seems that this is currently the best choice if you want to create a device driver.
Anyone disagree - are there any alternative books covering this topic?
-- Ed Avis ed@membled.com
Speaking about great books to help write drivers, any chance there will be or is already a fourth edition of Hans-Peter Messmer's "The Indispensable PC Hardware Book"? The latest edition I have been able to find is the third, 1997. I can't even find a homepage for the author using Google. Is he still in the business?
Making the entire book available is a nice gesture by O'Reilly.
... perhaps that has changed as FDLed documentation has continued to sell, and thus make O'Reilly a profit, anyway).
... I recall being very surprised at which publishers had given the FSF constructive feedback when they were writing the FDL, but no longer recall which Houses they were. This is an important point as the goal was to create a license which would allow publishers to make a profit while preserving the freedom of the information contained within the books being sold).
This wasn't a "gesture" by O'Reilly so much as a gesture by the Book's author. O'Reilly will agree to publish authors who insist on it to release their work under the FDL, but the authors must explicity request this (O'Reilly doesn't volunteer the information that they allow it, and to all appearances would prefer authors not do so. At least, that has been their stance in the past according to several people I spoke with
The Free Software Foundation is really pushing for all documentation about Free Software to be released under the FDL, which they crafted with the help of some very big publishers (I want to say Random House but I don't think that is correct
O'Reilly does deserve some credit for allowing authors to do this (and some criticism for being relatively mum about the option when signing authors), but the Author is clearly the one who deserves our highest praise, the best form of which would be purchasing his book and supporting his decision as well as underscoring O'Reilly's wisdom in allowing it.
--
The Future of Human Evolution: Autonomy
Really. My shelves are already loaded up pretty heavily with O'Reilly books, and this gesture just makes me want to add more to my collection.
--
Life's a bitch but somebody's gotta do it.
It seems that a lot of people really like this book, and I'm definately going to skim the on-lin version to see if I want to buy it, but I wonder how hard is it for someone with intermediatte experience coding to learn to make drivers? Anyone able to share their ordeals with it?
The first edition of the book was quite good for this; it had many examples of simple drivers scattered within to illustrate what it was talking about, which was very helpful.
My best advice would be to a) write a couple of toy drivers to get a feel for things, and b) take apart an existing driver and see how it works. I wrote an I/O space interface driver that I used to play with parallel ports, and a PCI-scanning driver; both purposes are already served by other parts of Linux, but it was still fun. I also had the dubious joy of wading throught the LML-33 video capture card's driver. I learned a lot by doing both, though, and the book was an invaluable reference.
There are a number of other O'Reilly books available in complete form online, but I have still bought the book nevertheless.
For one thing, as another poster has pointed ot, O'Reilly does tend to produce high quality books which do last, whereas a ring binder printout soon turns into a mass of out of sequence torn pages.
For another thing, depending on what I'm doing, I find that dead tree documentation is at times more readable for some strange reason than viewing it onscreen. For example, when you're computer is totally screwed up, reading an online form of 'Unix System Administration' is not going to happen!
For the reasons above I have only regretted buying one of the 15 O'Reilly books I have in my possession [The one on SQL and Oracle is the crap one IMO].
Donte Alistair Anderson Roberts - hi son!
Karma: Chameleon
The Linux 2.4.7 Universal Serial Bus pegasus driver claims to support a bunch of Home Phone Networking Alliance devices. If the Linksys device is a version of these devices, you may be able to get support by just adding the appropriate vendor and product ID's to linux-2.4.7/drivers/usb/pegasus.h (and doing "cd /usr/src/linux && make modules && make modules_install && depmod && rmmod pegasus ; modprobe pegasus"). At the very least, reading pegasus.h will give you a list of USB HomePNA devices that should work with Linux.
Otherwise, you might want to dump the USB device and interface descriptors (by activating some debug option in the core Linux USB driver or by the lsusb program) and see if your device exports an interface compatible with the USB Communications Class (wish I had a pointer to it in non-PDF form), which I believe includes an ethernet subclass. In that case, it still might be a lot of work and a lot of learning for someone not familiar with Linux device drivers and USB, but you would at least have some documentation (see http://www.usb.org for tons of free-as-in-beer USB documents).
Andamooka has a nice amount of books freely available online, and they're annotatable too. Worth checking out.
--
"Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
I wonder if the Linux Documentation Project will be getting together with or releasing (as DocBook, etc.) any of O'Reilly's free books.
(I believe that the LDP's efforts are not nearly inclusive enough -- there's a lot of quality documentation out there; why not bring it all under one roof?) <-- Anyone who sees a conspiracy here: the maintainer has final say over the control of a document, unless it's left unmaintained for several years, in which case an overhaul crew may be needed.
It's just that it would be nice if there was a huge, huge source for Linux documentation. The LDP is a good start, but it could be so much more...
Eh, just a thought.
-grendel drago
Laws do not persuade just because they threaten. --Seneca
Well, egg on me.
They released the source, but I still say they should harness the power of the LDP and include a bunch of their books with every distribution. (The relevant ones, y'know. I suppose I'd be uninterested in this book if I hadn't installed the kernel sources, for instance...)
It's just rather frustrating to see all these fragmented documentation efforts. It can be so much more effective if we work together... [insert patriotic chord here]
-grendel drago
Laws do not persuade just because they threaten. --Seneca
I dunno... at least on the competition front, I've been sending in diffs to HOWTOs that have typos or errors in them. I don't tend to do that with most books, because I assume it's been corrected anyway...
And you neglected that, while the FDL may or may not be good business, it's definitely good documentation -- remember, not all documentation comes from O'Reilly...
(Okay, the really good stuff does. But the HOWTOs have been indispensible at my job, cutting learn-this and learn-that times in half, at least.)
Remember, publically created documentation has a place, too.
-grendel drago
Laws do not persuade just because they threaten. --Seneca
Don't know about the 2nd edition, but the first was great. Lots of good examples to get you up and running in a hurry. Well, depends on what you're coding a driver for. I got a ISA DIO-24 card driver written and tested in a couple of hours.
Best Slashdot Co
The only value-add I can see is the provision of the document in printed form, for which customers are asked to pay. This works so long as printed books are the dominant form of knowlege distribution. This is rapidly changing. At some point in the vary near future, such printed and bound documents will become secondary to the online publication of the same works - for me it' just a matter of getting a better monitor so I don't go bug eyed after reading 10 pages online.
I dunno; there' something to be said about a portable device which requires no batteries which permits me to view a single document file, fits comfortably in my hands, and has a sufficiently high enough resolution and uses a lighting technology which doesn't give me headaches like staring at a LCD or a cathode ray tube.
Now as soon as LCD technologies allow the construction of a 300dpi LCD display about 5"x8" or so, and has a sufficiently fast enough refresh rate that it does't screw with my eyes, perhaps I'll rethink books. But I think we're more than one or two years away from having a device like this for under a hundred bucks...
I was going to buy the first edition some time ago, but I couldn't find it in the local book store and I don't like to buy books of this nature without having a quick read first.
The online availability of this edition solves this for me. I spent 10 minutes reading the html version before I realised its exactly the book I need, and the next five minutes ordering it online.
Well done the authors and may you sell many more copies for having the insight to make it freely available online.
-- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz
Not really. Most newer monitors won't even try to run out of spec, and expensive chips usually have thermal shutdown. As far as CPU voltage goes, I suggest NOT using the "jumperless" mode of your motherboard.
------
Agreed. I buy books and print documentation because they're much easier to read on paper than on my screen (especially since I don't have a dualhead).
------
It's quite a relief that they are actually publishing it for free online, since I bought the first edition a little while back, before realizing that, duh, it'll be totally useless because I'll have to figure out how to update a 2.0.x driver to 2.4.x, since 2.0.x probably won't support my computer even if I did want to use it.
Anyway, kudos to Tim, and kudos to the author. I might have to fork over the green for a first to second edition "upgrade" (20% off, I believe) if this really turns out to be a useful book.
The only "intuitive" interface is the nipple. After that, it's all learned.
"The question of whether a computer can think is no more interesting than that of whether a submarine can swim" -EWD
Repeat after me: people still like dead trees. That's not going to change, at least not until we start moving to Mars. There's no reason for it to -- eInk will never be as cheap as paper, and the fact is that ebooks haven't been very popular with the non-geek set.
Hell, I don't even like 'em very much -- the only reason I would use an ebook is for my guitar tab files (which are over an inch thick in dead tree form) and even then it's a pain in the ass to be playing, playing, playing, then having to stop to scroll down on my laptop to get to the next verse.
Ebooks: delicate, ephemeral by nature, can be locked up by greedy publishers.
Physical books: durable, portable, and you don't have to worry about lighting or screen quality half as much.
/Brian
I have the first version of this book. It is an excellent book. All you need is some C programming experience, and it will step you through using the tools. The book is fairly detailed about the internals of Linux and at worst, provides you with enough information to do some searches on the web or in the kernel code. Definitely worth the $35 USD that I paid for it.
Remember, You are unique...just like everyone else.
I agree that thepublication of this book under the FDL is a nice gensture and that having such detailed documentation freely available will make it possible for developers to release more device drivers at lower cost to them, but my convern is fith the concept of the FDL
The GPL works because it creates a potential service market by allowing complex software to be made freely available, and creating the need for consultation and support of the product. The FDL, on the other hand, has no such potential. Providing documentation under the FDL with software under the GPL makes sense, however providing documentation under the FDL alone does not create a post-provision market for services. It doesn't allow for any sort of value-add, except to make the material freely available online in some thuroughly indexed and referenced form (which the publisher is doing anyway). It does get the author and the publisher some name recognition, but O'Reilly was already recognised as the leader in such documentation, and service to the OSS comunity by a publisher.
The only value-add I can see is the provision of the document in printed form, for which customers are asked to pay. This works so long as printed books are the dominant form of knowlege distribution. This is rapidly changing. At some point in the vary near future, such printed and bound documents will become secondary to the online publication of the same works - for me it' just a matter of getting a better monitor so I don't go bug eyed after reading 10 pages online.
So, at some point the FDL will not serve a purpose or act as a market driving force as the GPL does - where the GPL creates through the potential for massive large scale peer review, an enviroment of cut-throat competition among developers, driving the creation of the highest quality software available. There is no similar force that the FDL creates. Does it really serve a valuable purpose, other than to allow the software to get his name ot there in a positive light?
--CTH
--Got Lists? | Top 95 Star Wars Line
One or two tiny changes? You mean covering the new stuff in kernel 2.4, and updating other sections in the book for 2.4 compliance, is a tiny change?
I'll buy this book, and even if I owned the first edition I'd still buy it.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
But honestly, I own dozens of O;Reilley books and have happily spent what I have on them because they are excellent reference materials. I know if I managed to get interested in linux driver coding, this freebie would be great to get me hooked, but once I was, I'd surely buy the book just to have it readily handy to flip through, mark up, etc :)
O'Reilly has done wonders for Unix as a whole even before the Linux revolution took off - I still have my 1st edition Perl bible and will never part with it - It helped through too many projects at work.
So I say congrats to Oreilly and they have NOTHING to worry about - even if they give their books away for free online - they're good enough to pay for, even if just to support the efforts of OReilly as a whole. Keep up the great work!
Top Most Bizarre/Disturbing Error Messages
Another very good FDL'ed book is the "GNU automake, autoconf and libtool" book written by Gary V. Vaughan, Ben Elliston, Tom Tromey and Ian Lance Taylor.
This book has helped me a lot in understanding the interaction between automake, autoconf, and libtool. The GNU manual for these tools are excellent, but the book does a great job in showing how the three interaction. I'd say this is a must read for beginning outsource programmers.
The hardcopy's ISBN is 1578701902 and can be found at bn.com
Based on upvotes, Ageism is the only "-ism" Slashdotters care about and think isn't SJW
I don't know of other book focusing only on device drivers for Linux. There are a few about the kernel, but this is the one for device drivers, as far as I know.
------I can please only one person per day. Today is not your day. Tomorrow isn't looking good either.------
I feel your pain. I have a linksys USB PNA 2 adapter for laptop. I've done a bit of research into getting a driver for it though, and check this out:
The chipset used by most of these is made by Broadcom (it's the 4400 series (or was it 4200?)), and after getting frustrated by Linksys and Diamond MM (I have a PNA device from them in my desktop) about the lack of Linux drivers, I contacted Broadcom about Linux support for this chipset. Believe it or not, Broadcom has a Linux driver for this chipset but will only release it to the OEMs, and only at their request! After getting back to Diamond MM about this, they were oddly silent. Linksys gave me a single sentence response: "We don't support Linux sir.".
Very very frustrating to know that a driver exists but will probably never be released. *sigh*
It seems that a lot of people really like this book, and I'm definately going to skim the on-lin version to see if I want to buy it, but I wonder how hard is it for someone with intermediatte experience coding to learn to make drivers? Anyone able to share their ordeals with it?