Appendix: more updates to infrastructure and drivers
The updates to the latest Linux version mentioned in the above article are only the most significant – the tip of the iceberg, as the saying goes. And the iceberg in this case is made up of the thousands of patches added to each new Linux version. Numerous other important new features can be found in the following list, organised by topic and with brief descriptions of the updates that link to additional sources of information.
Which drivers were modified – On the Git front end at kernel.org, it is possible to retrieve information on changes to individual files in the Linux kernel. That is how to find out if there were any updates to drivers used on a user's own system. To do that, however, it is important to know where the drivers are located on the Linux source code tree. In distributor's kernels, which are heavily reliant on modules, it often helps to have the output of a program called modinfo: [VERBATIM0] If a compiled module is located in /lib/modules/[...]/kernel/drivers/net/e100.ko, then its source code is located in the drivers/net/ directory in the Linux source code in files with similar names. In the case of the e100 driver responsible for Intel 100 Mb network hardware, for instance, the file is called e100.c. Other drivers, like the e1000 driver for Intel's PCI gigabit LAN chips, on the other hand, have their own directory. If a person knows the approximate position of the driver, the tree view of the Git web interface can be used to navigate to the corresponding source code data; clicking on the history link displays an overview of the most recent changes to files and directories. In the network drivers directory, for instance, the modifications to the driver code for the e100 (drivers/net/e100.c) and e1000 (drivers/net/e1000/) drivers can be displayed. |
Architecture code:
- x86:
- PIE executable randomization
- Randomize brk
- Boot debugging via FireWire
- Extended interrupt LVT support for AMD Barcelona
- Reboot via ACPI
- x86: Improvements for using the TSC (time stamp counter) on AMD Barcelona(1, 2)
- Others:
- [AVR32] Support for AT32AP7001 and AT32AP7002
- [CRIS v32] Support for Etrax FS and Artpec-3 (1, 2)
- [mn10300] MN10300/AM33 architecture
- [POWERPC] Support for CellEB (native)
- [POWERPC] Integration of libfdt
- [POWERPC] Integration of dtc
- [POWERPC] Xilinx Hwicapdriver
- [POWERPC] Logical performance monitor driver for Playstation 3
- [PPC] Remove support for 85xx-Chips from arch/ppc
File systems and the VFS (Virtual File System):
- [CIFS] Support for setting ACLs and first part of support for DFS (Distributed File Service) (1, 2)
- [OCFS2] Online resize (1, 2)
Power management techniques and ACPI (Advanced Configuration and Power Interface):
- Suspend: Testing facility (documentation)
- Aggressive use of deep C-states using Cpuidle (processor.latency_factor=2)
- Cpuidle documentation
- Generic thermal driver for Sysfs
- Framework for forwarding ACPI hotkey events to the graphics driver
- Support for new Turion CPUs in powernow-k8
- Support for newer VIA C7 CPUs in the Cpufreq framework
Notebook and PDA specific drivers:
- [acer-wmi] New driver for Acer notebooks (1, 2)
- [asus_acpi] Support for Asus F3Sa series
- [sony-laptop] Improvements for the Vaio N series
- [thinkpad-acpi] Documentation for input devices
- [thinkpad-acpi] Tablet mode reporting
- [thinkpad-acpi] Suspend reporting
- [thinkpad-acpi] Improvements for X61t
- [i8k] Support for x86-64
- Driver for Intel's Menlow platform
- [leds] Driver for Clevo notebook
- [leds] Driver for HP Jornada 6xx
PCI subsystem:
- PCIe Hotplug fixes (pertains to ExpressCard slots for Dell notebooks and others)
- PCIe hotplug no longer considered experimental
USB subsystem:
Input subsystem – input devices like keyboard and mouse:
- [wacom] Support for Bamboo1, BambooFun and Cintiq 12WX
- Support for third generation MacBooks
- Special handling for Microsoft Wireless Optical Desktop 3.0
- Support for A4 Tech X5-005D horizontal mouse wheel
- Improvements for MS Presenter
Storage:
- Libata (parallel and serial ATA drivers):
- [ahci] Support for Nvidia's MCP7B
- [ahci] Support for Marvell 6121 SATA controller
- [sata_svw] Support for the Serverworks HT1100 SATA controller
- [sata_mv] Fix for error handling when using NCQ on Marvell SATA controllers
- [sata_mv] Support for NCQ on newer Marvell SATA controllers
- [pata_legacy] Support for Winbond chips
- [ata_generic] Support for Cenatek hardware
- [pata_ninja32] New driver for ATA card bus
- [pata_via] Correction of cable detection for the Cx700 southbridge
- IDE subsystem (old parallel ATA drivers and individual drivers for serial ATA controllers):
- SCSI:
- [SCSI] Bidirectional command support
- [mvsas] New SAS driver for Marvell 6440 (1,2)
- [3w-9xxx] Better performance on some motherboards
- [aic94xx] Option to update Adaptec controller firmware
- Removed: seagate, ncr3C9x and psi240i
- General:
- Enhanced partition statistics (documentation, 1, 2, 3, 4)
- [ricoh_mmc] Support for Ricoh RL5c476
- [usbstorage] Special treatment for Nikon D80
- Special treatment for storage controllers in ATI/AMD southbridges (1, 2)
Network:
- LAN:
- [forcedeth] Fixes for MCP77/79
- [phylib] Support for the Realtek 821x and Broadcom BCM5482 PHYs
- [r6040] New driver for the RDC R6040 Fast Ethernet controller
- [e1000e] Improvements to the wakeup function
- [iw_nes] Driver for NetEffect 1/10Gb NICs
- [bnx2] New firmware with support for S/G RX buffers
- Wi-Fi:
- [iwlwifi] Comprehensive restructuring of code (e.g. 1 and 2) and separate configuration options for 3945 and 4965 Wi-Fi chips
- [p54usb] Support for Linksys WUSB54G v 2 and Phillips CPWUA054
- [rt2x00] Suspend and resume handling, USB ID for Melco hardware (0x0411, 0x005)
- [zd1211rw] Support for Trendnet TEW-429UB A
- [b43] Support for new firmware
- Support for another variant of the Dell Wireless 5520
- General:
- [mac80211] Beacon and key configuration via Cfg80211, Hardware scan framework reworked
- [aoe] Multiple network paths to AoE device
Graphics hardware:
- [drm/radeon] Support for RS690 (first part) and RV380
- [drm/sis] Support for SiS 662/671
- [drm/i915] Support for E7221 and an unknown mobile graphic chipset
- [intel_agp] Fixes for G35 and G965 as well as support for the mobile graphic chipset just mentioned
- Display of various VESA graphic modes in vga=ask
Audio:
- [hda-codec] Virtual master controls, improvements to automatic configuration and support for VIA VT1708B
- [hda-intel] Shorter latency times, support for RV6xx HDMI audio (1, 2), Intel SCH and several audio devices
- [sis7019] New audio driver for SiS 7019
- [mpc8610_hpcd] ASoC driver for Freescale MPC8610 SoC
- The sequencer instrument layer was removed
Hardware monitoring/I2C:
- [coretemp] Readout of the temperature threshold at which all fans should run at full capacity
- [watchdog] HP ProLiant WatchDog driver
- [hwmon] Support for Winbond W83L786NG/NR
- [i2c-viapro] Support for VIA VT8237S
- The I2C-RTC driver was removed
V4l/DVB:
- [saa7134] Support for Medion/Creatix CTX948 and LifeView FlyDVB-T Hybrid Mini PCI
- [zr364xx] Support for Creative DiVi CAM 516 and Pentax Optio 50
- [dvb-usb-dib0700] Support for Gigabyte u7000 USB DVB-T and WinTV Nova-T-CE driver
- [ivtv] Support for AVerMedia PVR-150 Plus, ASUS Falcon2
- Removed: saa7134-oss
Miscellaneous:
- SLUB: performance statistics
- [crypto] Support for Aead, LZO and GCM
- Executable files can now be larger than 2 GB
- Support for a.out binaries was removed
In their Wiki, the Kernelnewbies maintain an overview similar to this list, as well as a brief description of the most important changes in 2.6.25. Those interested in more details can comb through the several megabyte-long changelog, which contains comments on every single patch that corresponds to a commit in the source code administration system. Another alternative is to work through the kernel sources and their most recent changes in the Git web interface – it also contains the actual patches for those who want to examine or download them. (Thorsten Leemhuis thl/c't)