Features/DriverBuddy

= DriverBuddy =

Summary
Move driver binding to user space to facilitate easier driver selection, configuration and installation.

Owner

 * Names: JonMasters, DavidZeuthen

Current status

 * Targeted release:
 * Last modified: 2008-08-08
 * Percentage of completion: ??%

Relevant players had a meeting at FreedomHEC recently to agree on plans and work out details.

Something like this exists in the form of the "jockey" driver manager for Ubuntu.

Usage cases/rationale
David is not satisfied with the kernel driver for his USB thingie. He opens gnome-device-manager, finds the device, goes to the driver page and selects a different one (real-world example: use the 'ub' driver instead of the 'usb-storage' driver).

Jon plugs in a device for which there is no driver. The system pops up a dialog informing him about this fact and pointing him to a website with further information.

Matthias wants his laptop battery to last longer. He opens gnome-device-manager and configures rarely used devices such that no driver is bound. Hence, the system can put the physical device into a deep power saving state (e.g. PCI D3) or possibly turn off the device entirely depending on the interconnect. (Of course, the right approach is to fix the driver so it's smart about power management; e.g. it turns of the device itself. Historically this tends to take time.)

Homer wants suspend/resume to work well on his laptop but after much debugging he finds that a rarely used driver is malfunctioning / making resume take ages (see this write-up and links for examples in another OS and thoughts from davej  about this topic on Linux. See also Jim's thoughts  about how resume works on his HP laptop.). Using gnome-device-manager, Homer can configure the devices such that offending drivers are not bound and suddenly suspend/resume just works and/or is a lot faster. (Again, the right approach is to fix drivers...)

Scope
This requires kernel changes to allow userspace driver binding (will be in 2.6.22, I believe), udev and hal changes, and support for driver information and binding in gnome-device-manager.

Test Plan
To be filled out.

Dependencies

 * It may be necessary to switch our initrd from nash to udev - the live cd already does that.

Details
Insert awesome diagram from Davidz here.

Comments and Discussion

 * See Talk:Features/DriverBuddy