The SUSE SolidDriver Program is a key SUSE offering… in fact, the SUSE Linux Enterprise roadmap presentation includes a “SolidDriver Program” slide. But what exactly is the SolidDriver Program? How does it benefit customers? How do partners join it? This SUSE Conversation will try to provide some high-level answers to these questions. More in-depth information is available on the SolidDriver Program documentation pages at https://drivers.suse.com/doc .
As Linux use grows, so does the demand for new hardware drivers and other kernel modules. Fortunately, new drivers are constantly being added to the upstream Linux kernel. Unfortunately, even when a new driver or module is available upstream, users may not be able to update their kernels in order to get the new functionality. One way to support such users is to give them the ability to obtain and install updated modules separately from the kernel packages. For the purposes of this document, we call these modules “external” kernel modules.
But providing and using external kernel modules creates some problems. First, since the module is installed separately from the kernel, what will happen when the kernel is updated? Will the module functionality be lost? And from a support standpoint… how can customers verify that an external kernel module is “authorized” by SUSE? Addressing these issues is a primary goal of the SUSE SolidDriver Program.
What is the SolidDriver Program?
The SUSE SolidDriver Program is a framework of technologies and services to help partners provide, and customers use, external kernel modules in a SUSE-authorized way. Kernel modules that meet the SolidDriver Program guidelines are said to be SolidDriver-Compliant (see https://drivers.suse.com/doc/SolidDriver_Compliance ).
SolidDriver Technologies: SUSE Linux Enterprise (SLE) includes technology to ensure that 1) external kernel modules provided by authorized SUSE partners will load without error, and 2) properly-packaged external kernel modules will remain functional through SLE maintenance and security kernel updates. There is no program requirement or fee to make use of these technologies.
SolidDriver Services: The SolidDriver services are SUSE Partner Engineering program offerings to help partners provide –- and customers use –- SolidDriver-Compliant modules. The SolidDriver services include extensive online documentation, SUSE assistance for building, signing, and hosting external kernel modules, and SUSE websites that make it easy for customers to find partner modules. Some of the SolidDriver services are free and some are fee-based. All are provided through defined SolidDriver program levels.
SolidDriver Program Levels
The SolidDriver Program includes one free level (Level 0) and two fee-based levels (Level 1 and Level 2). These levels are designed for SUSE partners (as opposed to SUSE customers). Customers do not need to join the SolidDriver Program; they simply interact with the program when they use SolidDriver modules.
SolidDriver Program Level 0: The no-cost Level 0 was created simply to acquaint partners with the publicly-available SolidDriver documentation available at https://drivers.suse.com/doc . This documentation includes information about how to package external modules so that they will continue to work through SLE kernel updates. Therefore, partners who are comfortable taking a “Do-It-Yourself” approach to building their external kernel modules — and who do not care about marking their modules as coming from an official SUSE partner — may find that SolidDriver Level 0 meets their needs. Level 0 partners can just start using the documentation; no contract is required.
SolidDriver Program Level 1: Level 1 provides partners with authorization and instructions to mark their modules so that they will be recognized by SUSE Support as coming from an official SUSE partner. Partners who wish to have official SUSE authorization for their module(s), but who do not need any further SUSE technical assistance for packaging, etc., may wish to join the SolidDriver Program at Level 1.
SolidDriver Program Level 2: Level 2 includes all deliverables from Level 1 and also provides partners with SUSE packaging, signing, and hosting assistance. At Level 2, partners can choose to use their own development environment or they can provide their source code (GPL only) to SUSE for packaging and hosting on SUSE servers. Either way, SUSE engineers will provide the technical assistance needed to package and host the partner modules in a SolidDriver-Compliant manner. Therefore, partners who wish to have official SUSE authorization for their module(s), and who also would like SUSE packaging and hosting assistance, may wish to join the SolidDriver Program at Level 2.
Important Note: Specific technical or legal situations can affect eligibility for SolidDriver Program Levels. For instance, all the SolidDriver Program Level 2 offerings are rpm-based, so partners who do not wish to use rpm packaging format will gain no benefit from purchasing a Level 2 contract. With respect to source code licensing, partners who use non-GPL licenses for their kernel modules can purchase a Level 2 contract in order to get SUSE technical assistance, but SUSE will not be able to actually build or host the packages for the partner. The following table illustrates these eligibility recommendations and restrictions:
Public access to SolidDriver documentation
SUSE authorization to add module support flag
SUSE technical assistance for self-packaging, hosting
SUSE in-house packaging, hosting services
|Non-rpm package format, any license||Free level; some documentation may apply||Eligible||Not eligible||Not eligible|
|rpm package format, proprietary license||Free level; most documentation will apply||Eligible||Eligible||Not eligible|
|rpm package format, GPL license||Free level; documentation will apply||Eligible||Eligible||Eligible|
Note: SolidDriver Program levels are inclusive; higher levels include lower-level deliverables (where appropriate).
Joining the SolidDriver Program
Partners who wish to join the SolidDriver Program at Level 1 or Level 2 should contact their SUSE PartnerNet representative. As part of joining the program at one of these levels, SUSE will ask the partner to complete both the standard SUSE “Developer Services Agreement” as well as a “SolidDriver External Support Agreement”. The SUSE Developer Services Agreement is a legal document/contract. The “SolidDriver External Support Agreement” is not a legal document (no signature required) but it does require the partner to provide information about module names, support contacts, etc. The purpose of the SolidDriver External Support Agreement is to establish and document the process that SUSE and the partner will use to provide Level 3 support to customers who are using the partner’s external module(s).
After a partner joins the SolidDriver Program at Level 1 or Level 2, SUSE will provide the partner with a SUSE Partner Engineering contact. This contact will answer questions and provide technical assistance as described below:
SolidDriver Level 1 Partners: SUSE will provide instructions for how to mark external modules with a flag that indicates joint SUSE and partner supportability. Level 1 partners can simply apply these instructions during their own external module build and packaging process. SUSE will provide assistance related to using the instructions.
SolidDriver Level 2 Partners: Once they have joined the program (if not before), Level 2 partners should consider whether they wish to do their own packaging and hosting or use SUSE’s SolidDriver packaging and hosting services. The partner’s SUSE Partner Engineering contact can answer questions and help the partner in making this decision. If the partner decides to self-package, the SUSE engineer will provide further technical assistance to help the partner create SolidDriver-compliant packages (including the module supportability flag). If the partner decides to use SUSE’s packaging and hosting services, the SUSE engineer will obtain the partner’s source code, package it using the SUSE SolidDriver Build Service, then host the resulting SolidDriver packages on https://drivers.suse.com .
The SUSE SolidDriver Program highlights SUSE’s commitment to helping partners integrate their products with SUSE Linux Enterprise. Hopefully this article provides a starting point with respect to program details. Stay tuned for future blogs that provide more step-by-step technical instructions for building SolidDriver-Compliant packages.