Partner Linux Driver Process Introduction
Welcome to the Partner Linux Driver Process
The Driver Process category page, which contains links to all Driver Process documents, may be found at Partner Linux Driver Process.
Novell's Partner Linux Driver Process ("Driver Process") allows vendors to provide Linux drivers and driver updates via Driver Kits which are completely integrated with the SUSE Linux Enterprise "Software Updater". A Driver Kit includes drivers, necessary installation media and instructions, and an associated online update site. Supplying drivers via driver kits means providing customers with the drivers they need --- and ensuring that those drivers will continue to work in the future.
The best place for partners to develop kernel drivers is upstream in the kernel.org source tree, where kernel driver code benefits from thorough review, community involvement, and an established distribution mechanism. As an active member of the open source community, Novell promotes having all Linux device drivers be a part of the official kernel.org source tree.
However, some drivers might not be officially accepted by the kernel community yet, or they might be accepted but only available in a kernel version that is beyond a specific SUSE Linux Enterprise product. In such cases, the Driver Process allows partners to easily enable new hardware and provide customers with drivers in a timely, supportable, certifiable and accessible manner.
Before the Partner Linux Driver Process
As outlined in The Linux Kernel Driver Interface, drivers built for previous kernel versions may break during Linux kernel updates; the interface between drivers and the kernel evolves over time. Thus, before the Driver Process, customers who installed kernel updates often found themselves with unusable systems. In order to prevent these problems, drivers had to be recompiled against each new kernel version (sometimes this even required source code modification). End users either had to forego kernel updates or live with broken systems until updated drivers became available.
Additionally, vendors release new hardware between SUSE Linux Enterprise Server service packs. Before the Driver Process, customers either had to obtain new hardware drivers directly from the hardware vendor, or hope the new hardware will be supported in a later SUSE Linux Enterprise Server service pack. Neither of these approaches provided end-users with the fully-supported, maintained and timely solution they needed.
The Partner Linux Driver Process
With the Driver Process, Novell has created a clean and integrated infrastructure for partners to provide drivers independent of SUSE Linux Enterprise release cycles and distributed media. Through the Driver Process, vendors may provide drivers to correspond to kernel updates, to fix bugs, and to enable new hardware.
Driver Process drivers are provided via Driver Kits, which include all pieces necessary to install pertinent drivers and to register them for online updates. When the customer installs a driver as directed in a Driver Kit, it is associated with detected hardware as appropriate and the customer is automatically registered for the driver's online update service. When a customer installs a kernel update, the update process ensures that all installed drivers are compatible with the new kernel, and that those which are not will get updated to an appropriate version. The kernel update will not take place if it would render drivers incompatible for which no suitable new versions are available.
The Partner Linux Driver Process slide deck (pdf) gives an introduction to partners and comes with speaker notes in the second half of the file.
Requirements for Participation in the Partner Linux Driver Process
Depending on a partner's PartnerNet membership level, he/she may participate in one or more of the Driver Process components. To understand the PartnerNet requirements for joining the Driver Process, please refer to the program details specified at Driver Process Program Details.
Please note that partners may also use a self-service approach to providing some Driver Process functionality to customers. Information on this self-service approach is listed in the "Driver Process Build Service" section below.
Partner Linux Driver Process Components
The Driver Process includes three services, the "kABI Notification Service", the "Driver Process Build Service", and the "Driver Process Hosting Service". Details of these services are listed below. Note that when a partner uses the Driver Process Build Services, he/she will be registered automatically for the kABI Notification Service.
kABI Notification Service
The term “kABI” refers to the kernel Application Binary Interface, the set of in-kernel symbols used by drivers and other kernel modules. (kABI does not refer to the syscall interface used by user-space programs). The mainstream Linux kernel is a dynamic entity and as such, there are frequent changes to the kABI.
For the SUSE Linux Enterprise kernels, Novell's policy is to make kABI changes only with service pack releases where possible. More specifically, as part of the Driver Process, the kABI Notification Service has been created, where Novell tracks partner modules' kABIs w/ respect to security kernel and support pack updates. For modules that are tracked in this kABI notification database, Novell continually checks the module against upcoming kernel updates and keeps those kABIs stable.
In some cases, kABI changes cannot be avoided even between service packs, however. Such a change luckily has not been necessary since SUSE Linux Enterprise Server 9 SP3. In addition, with the kABI database in place, our kernel engineering teams notice early in the development process when a kABI change affects drivers, and Novell will notify the affected partners about the upcoming change.
The kABI Notification Service thus gives Novell engineering teams and partners the information they need to ensure that drivers will work with upcoming SUSE Linux Enterprise kernel releases.
Driver Process Build Service
Through the Driver Process Build Service, a partner may request a Driver Kit containing drivers, DUD/Add-on Products and online update sources. When a partner files a bug request for a driver kit, he/she lists the drivers to be included, the desired installation approach (e.g., Add-on Product), and the URL of the online update source (see "Driver Process Hosting Service", below). Novell Partner Engineering then will work closely with the partner to gather all necessary information and to file any additional bugs required to obtain builds of the drivers for the kit. After gathering all the drivers, Novell Partner Engineering will create the Add-on Product and the update site repository structure and provide them back to the partner for testing.
A partner may also request a build of a driver package (as opposed to a full driver kit). Because Novell's goal is to promote a positive customer experience with automatic online updates and service pack migration, Novell Partner Engineering may contact the partner to discuss the possibility of including the requested driver in a full driver kit.
For drivers that are in the Build service, Novell will update the associated driver kits for any updates (such as Service Packs) which include kABI changes.
Please note that partners may also create driver kits (and KMPs) using a self-service approach. Information and instructions for the self-service approach are provided at Driver Kit Do-It-Yourself.
Driver Process Hosting Service
Partners who request driver kits using the Driver Process Build Service may also request that their online update site be hosted at Novell. Before providing a driver kit to a partner, Novell will work with the partner to determine whether the online update site will be hosted at Novell or at the partner site. Novell will then include the site's URL in the driver kit's Add-on Product, ensuring that the end-user's system will register for updates from the correct site.
Only driver kits which contain GPL drivers may be hosted at Novell.
Partners may create their own online update sites by following the information in Creating an Online Update Site.
Terminology, Frequently Asked Questions, and Further Reading
Driver Process Terminology provides definitions for terms used throughout the Driver Process Documentation.
The Site Map shows the structure of Driver Process documentation.
The Partner Linux Driver Process Presentation (pdf) provides a visual introduction to the Driver Process. Speaker notes are included in the second half of the presentation file.
The Driver Process FAQ answers questions about the Driver Process, how it works, how it relates to the Linux community, and how to participate.
The Category Listing shows all articles in this wiki on the Partner Linux Driver Process.