February 28, 2001

Linux 2.4 hardware support: Several improvements

Author: JT Smith

- By Jeff Field -
For years many people, myself included, have talked about the lack of support under Linux for many devices. Linux is gaining momentum and as it does, the support for it increases. However, while third-party support is great, perhaps the most important element of hardware support is the extent to which Linux supports hardware by default in the kernel.
Not only does Linux 2.4 have increased support for various devices, but it changes the way in which it handles many previous supported devices. Hardware support becomes more effecient, the possibility for data loss lessens, 3D games run (or if they ran before, they run better), and overall the world becomes a better place.

Increased support
Linux 2.4 now supports a wider range of hardware, not surprising, every major kernel revision has had more hardware supported than the last. In fact, 2.2 to 2.4 is not quite the profound change 2.0 to 2.2 was.

However, one can argue that about the the importance of the devices supported in 2.4. For instance, 2.4 now has support for USB devices. And while it has room for improvement, this is definately an important step for Linux in moving onto the desktop. If you take a look at desktop PCs targeted to consumers and businesses today, every one will have at least one USB port, and many come with USB devices, such as USB digital cameras, scanners, printers and keyboards. Thanks to Linux 2.4's support for USB, these devices can now be supported. Before, there was not support in the kernel (except in later revisions of 2.2, but it wasn't an easy thing to do) for USB devices, which made it pretty hard to support USB devices under Linux. With USB, Linux adds not only support for more devices, but takes away one of the things critics complained about even when USB was not widespread.

Linux 2.4 also adds support for the "competing" Firewire (IEEE1394) from Apple. Firewire is a 400Mb/second bus with similar capabilities to USB. Firewire products are becoming more widespread, and it is becoming very popular on video equipment, such as digital camcorders, which offer Firewire for the transfering of video. Also, Firewire hard drives have become available to customers. Firewire doesn't seem as important as USB if only because most PCs do not support Firewire. This is due to licensing issues with Apple, which wants companies to pay for every Firewire port they use. In light of this, Intel and several other big players in the PC industry have come together to define the USB 2.0 standard, which will soon replace USB 1.0 on motherboards. This backwards-compatible bus will provide greatly increased bandwidth, 480 Mb/second as opposed to the 12 of USB 1.0.

The Firewire support will allow for more digital video equipment to be supported by Linux, which is great for those who would much rather download free software than purchase expensive editing software. Linux has great appeal to those who make independent films, because it gives them the ability to do things that might otherwise cost them thousands of dollars for free, excluding equipment costs.

Increased support for 3D applications is provided through the Direct Rendering Manager (DRM) in Linux 2.4. The Direct Rendering Manager provides a way for processes to write to the video system using DMA while avoiding multiple processes attempting to access the video system at the same time, which can result in a crash. DRM is a must for those who wish to do 3D gaming under Linux, and many 3D cards require DRM in order to function properly under Linux in 3D.

While not quite a hardware-specific addition, one of the most important additions (as of 2.4.1) to the Linux Kernel is ReiserFS. ReiserFS is a Journaling File System (JFS) that keeps a log of disk activity. When a machine running Reiser is turned off or restarted without warning, ReiserFS plays the log back on boot. The most this playback has taken for me is 13 seconds. If this was an ext2 partition, it would have taken minutes for fsck to do its thing on the disk. Also, ReiserFS claims to be faster, though I have not yet done any benchmarks to find conclusive evidence either way. I plan on doing so in a future article, because ReiserFS is one of the features of 2.4 that most impresses me, so far.

While support for many things has been added to 2.4 support has also increased for many devices, even those that have fallen into disuse, such as ISA Plug and Play devices.

Since Plug and Play first came around on some 486 systems, ISA Plug and Play has had a rough time. Sure, it was supposed to be seamless, but in most cases I found ISA Plug and Play to be nothing but a pain. It just seemed easier to manually assign the resources needed via jumpers, or perhaps some sort of software, as Plug and Play (in its first iterations) was not very good at its job. Gradually, though, Plug and Play became easier to deal with, mostly due to the fact that the ISA bus was used less and less, in favor of PCI, which was designed from the ground up to support Plug and Play. However, for those users who still had ISA Plug and Play, Linux 2.2 could be very annoying. Now, thanks to 2.4, which has integrated ISA Plug and Play, it is now much easier to deal with, which is important because people who are toying with the idea of using Linux have a tendency to use older hardware first, and the whole Linux ISA Plug and Play experience could give a bad impression.

Also improved is support for various new chipsets, such as the Intel i815 and several VIA chipsets. Be forewarned however, that due to a bug in several VIA chipsets, DMA is disabled by default on these boards and should remain so unless you are certain your chipset isn't affected. I didn't realize this and enabled DMA, and boom, no more booting into Linux.

Support for Memory Type Range Registers (MTRRs) on both Intel and Non-Intel CPUs is an addition that helps with memory-write operations on VGA cards on a PCI or AGP bus. What MTRRs do is control the writing of memory ranges. By adding MTRR support, image write operations take much less time, allowing increased performance for video/3D applications.

Linux 2.4, while not a giant leap in hardware support, is another step in the right direction. Thanks to both the new drivers it provides and the increased support for various hardware access methods, it should be the first version of Linux that has a real shot at being used for gaming machines, if the game support comes. It will also help Linux become more mainstream because more consumer-oriented devices, such as USB cameras, printers and scanners, are supported.

NewsForge editors read and respond to comments posted on our discussion page.


  • Unix
Click Here!