GEARHEADS ONLY
by Alan Cox
Video4Linux is the Linux 2.2 interface to TV- and radio- related cards. Prior kernels had a jumble of incompatible add-on modules. This made it very hard to write a general-purpose video application for Linux. A wide variety of radio interfaces are available for PCs, and these are generally very simple to program. Usually, the biggest problem with supporting such devices is extracting documentation from the vendor.
by Alan Cox
Last month I walked through the steps of writing a serviceable mouse driver that contained a couple of bugs and that would not work with asynchronous I/O. In this month's column I'll smooth things out a bit. But first, I think we should take a look at some bugs.
by Alan Cox
Mice are conceptually one of the simplest device drivers in the Linux operating system. Not all mice are handled by the kernel; rather, there is a two-layer abstraction. The kernel provides services for mice that cannot be driven directly by the user libraries and applications. That is, mice other than serial mice. On top of this library and application, programs (selection or gpm) provide a single common interface to all mice whether supported directly by the kernel or via a serial line.
by Alan Cox
In last month's article, we looked at writing a basic Linux SCSI driver -- one that basically sucked. Actually, this driver was worse than planned because it contained a bug which anyone running on an SMP box would have found pretty quickly.
by Alan Cox
This month, I'm going to talk about writing a driver for a simple SCSI controller under Linux. The Linux kernel SCSI layer does most of the work for SCSI device handling, so a simple SCSI driver is relatively painless to write. For more advanced devices, however, the kernel's SCSI code is actually too clever -- there are plans afoot to streamline it and solve these problems.
by Paul Mackerras
There is an increasing number of people running Linux on their Power Macintoshes. One of the advantages of running Linux (as opposed to other variants of UNIX) on a Power Mac is that the Linux source includes drivers for a large number of PCI cards. All of the current Power Macs use the PCI bus as their internal I/O bus and many have PCI expansion card slots, allowing users to install any of the wide range of PCI expansion cards which are available today. The drivers in the Linux source will usually work on a Power Mac, but often only after some tweaking. The problem is usually that the driver author has made some assumptions that are true on an Intel PC but not on other machines. In this column, I will discusses some of those assumptions and how driver authors can make sure that their drivers will work not only on an Intel PC, but also on the Power Mac and other machines.
by Alan Cox
If you followed last issue's "Gearheads" column, all of your block and character devices should be running under Linux 2.2, albeit possibly with warnings about obsolete PCI interfaces. In this article, I will finish up with some of the smaller changes that may catch a driver author, cover networking, and then look at the new PCI layer.
by Alan Cox
The desire for more speed and better multi-processor support has caused inevitable changes in Linux, resulting in the development of the current kernel -- Linux 2.2. As a driver author, you may initially avoid taking advantage of the latest kernel changes. Ultimately, however, you'll probably end up re-writing your driver to stay current with kernel design, to improve your driver's performance, and to take advantage of the ever-increasing opportunities that appear on the horizon for Linux users in 1999.
|