Zack's Kernel News



The Linux kernel mailing list comprises the core of Linux development activities. Traffic volumes are immense, often reaching ten thousand messages in a given week, and keeping up to date with the entire scope of development is a virtually impossible task for one person. One of the few brave souls to take on this task is Zack Brown.

Our regular monthly column keeps you abreast of the latest discussions and decisions, selected and summarized by Zack. Zack has been publishing a weekly online digest, the Kernel Traffic newsletter for over five years now. Even reading Kernel Traffic alone can be a time consuming task.

Linux Magazine now provides you with the quintessence of Linux Kernel activities, straight from the horse's mouth.

New Complete git Repository

Peter Stahlir asked whether anyone had put together a complete git tree of the kernel, from version 0.01 to the present. Periodically, this topic arises, and Linus Torvalds recently asked people to try to do it. This time, Dave Jones said he'd been working on it and was trying to split the repository into as many separate patches as possible, rather than making each official version a single mega-patch. Dave said he was trying to include every -pre, -test, and -rc patch as a separate commit.

Also, Dave was attempting to include the actual changelogs for as many of the commits as possible, something no one else has tried because of the horrifying size of the task. Remember that back then, "changelog" might mean a snippet of email in the middle of a long thread. Along the way, whenever Dave encountered people working on similar projects, he grabbed any changelogs he needed to fill in the gaps.

Dave's final result goes all the way up to v2.4, the point at which Linus started using BitKeeper. Git repositories covering 2.4 to the present already exist, so Dave's work just completes the history back to the beginning.

Dave published a 2G repository that includes more than a thousand commits, almost half of which have changelog entries associated with them: git://git.kernel.org/pub/scm/linux/kernel/git/davej/history.git

Also, the repository includes the full history, including all forks for stable/development trees and any other experimental trees Linus introduced along the way. Unfortunately, it appears that several kernel releases have been lost forever.

Also, now that Dave has published his work, more data continues to be added to the archive and errors are being corrected. The true record might not be complete for some time, and revisions will continue to be added as more information is discovered.

New Drivers

Adrian McMenamin wrote code to support the CD-ROM drive on the SEGA Dreamcast. Also, his driver implements the proprietary Sega Packet Interface and supports the proprietary Giga Disk ROM disc format (known as the GD-ROM format). Several folks offered technical feedback, and Adrian quickly submitted updated patches based on their criticisms. After a while, criticisms ended and the updated patch seems likely to go into the main tree.

Jochen Friedrich coded up support for the watchdog timer on PowerQUICC hardware, and this watchdog can be activated by the bootloader. After activation, it cannot be disabled again but must be reset periodically to prevent an automatic reboot. No real criticism was directed toward the patch, so it looks like it's going in.

Alex Dubov has submitted a GPLed patch supporting Sony's secret, proprietary protocol for their MemoryStick card, found in many Sony products. Alex also added an entry to the MAINTAINERS file listing himself as the official maintainer.

Darrick J. Wong wrote and submitted a driver to report the voltage, temperature, and fan sensor readings for the ADT7473 monitor chip.

Steve Hardy wrote a driver to support the Burr-Brown/Texas Instruments ADS7828 12-bit, 8-channel A/D converter used to monitor voltage on some off-the-shelf processors.

Andrzej Zaborowski submitted the OMAP1 PWL-based LCD backlight driver for inclusion in the main tree; the driver had been living for a while in the OMAP tree, and the time seemed right to get it into the mainline kernel.

David Sterba felt the time had come to migrate the 3G UMTS PCMCIA card wireless driver from Andrew Morton's -mm kernel into the mainline tree, so he submitted the patch. As it turned out, several folks had some technical issues that hadn't come up when the code only lived in the -mm tree. Alan Cox and others offered technical criticisms, and David promptly submitted an updated patch addressing these concerns. At this point, Jiri Kosina approved the patch and passed it up to Andrew, who also approved it and passed it up to Linus Torvalds.

Thomas Bogendörfer submitted a serial driver supporting SC2681/SC2691 UARTs, saying that older SNI RM400 systems relied on those chips for their on-board serial ports.

Harald Welte picked up the threads of a project started years ago by Thomas Kleffel - an MMC/SD driver for the Samsung S3C24xx SD/MMC controller. Thomas had abandoned the project when he'd run out of time to work on it but gave Harald permission to take it over. Harald brought the driver up to compliance with the current SD/MMC API and made it mergeable with the mainline kernel tree. The plan was that once the driver was successfully merged, Harald and Thomas would be co-maintainers. Pierre Ossman took issue with the excess of debugging code, among other things, in Harald's patch. Harald said he'd update the patch and resubmit it.

Removing Old Stuff

Dmitri Vorobiev removed the documentation/mips/GT64120.README file from the 2.6 tree because it really was 2.4-specific and referred to files and directories that didn't exist. The document discussed the GT-64120 system controller chip, in common use on many MIPS motherboards.

IDE-CD Driver Rewrite

Bartlomiej Zolnierkiewicz reworked the ide-cd driver and submitted his changes. One big reason for the rewrite was that ide-cd has not had a maintainer for quite some time, so any new fixes have been grafted into the existing code, resulting in a code base that has become uglier and harder to debug or maintain. Bartlomiej's work cleans this up. Another reason for the rewrite was to allow developers working in other areas, such as libata ATAPI, to identify the special cases for devices they want to support in their code. Bartlomiej's rewrite was just a stopgap, however. Finding someone to maintain the code regularly was the real goal. In response to Bartlomiej's submission, Borislav Petkov volunteered and started talking to Andrew Morton about driver updates.

Auto-Suspend and -Awaken

Pavel Machek is in the early stages of writing code that allows suspended systems to wake up on their own under certain conditions. Pavel envisions laptops waking up at a certain time of morning with an MP3 player or if certain network traffic comes in. Still, there are many obstacles, and Pavel points out that the code he's written doesn't even work on his own systems yet. Getting something - anything - working for this feature seems to be Pavel's main goal for now, then more stuff can be added later to support different hardware and software configurations.

H. Peter Anvin pointed out that waking up on network traffic would result in the system waking up on broadcast packets, which happens all the time.

Pavel's response was that waking up on network traffic is a distant goal, but he did suggest that perhaps something could be done at the router end so the sleeping system only gets "interesting" packets.

After this objection, and several others like it, a bunch of people started adding feedback on how to implement various features. Someone even suggested that the Linux folks might be able to work with the hardware vendors on specs for hardware that would support features. Overall, people - including Oliver Neukum, Ingo Molnar, and H. Peter - are interested in Pavel's project. The project is still new and has many obstacles, special cases, and an array of hardware that will be iffy to support, but it will be fun to watch how the project develops.

INFO
[1] Kernelnewbies Japan: http://lists.kernelnewbies.org/mailman/listinfo/jp-kernelnewbies