The future of third-party driver installation
We have had Jockey for quite a while now to perform the installation
of proprietary (e. g. NVidia), alternative (e. g. fglrx vs.
fglrx-updates), third-party (e. g. from openprinting.org) drivers.
However, I feel that this needs some refreshing:
* The code base of Jockey is quite complex, it was meant for a lot
more stuff than we are actually using it for. We also came up with
simpler ways of mapping hardware to packages, mostly with
additional tags in the apt package lists. We also have a more
upstream friendly API in PackageKit/
of thing.
We can simplify the jockey code base and backend logic a lot (up
to the extend of completely dropping it) by making full use of
above new technologies and dropping the extra features we don't
use. The exception is the openprinting.org detection, but that
could go into system-
* We install some drivers (like Broadcom wifi) straight from Ubiquity
now, which certainly makes sense for devices where there is no free
alternative. For the others (e. g. NVidia) we pop up a notification
and offer to install them. I'd like to walk through the current UI
and discuss how this could be made more steamlined and less
confusing (e. g. for NVidia it can potentially offer 6 different
drivers for you!)
* We might consider merging the jockey UI functionality, which is
mostly a shallow GUI around "install that package" now) into
software-center, control-center, or something similar to the codec
installer. I'd again appreciate if someone from the design team
could participate in that (hello Matthew!).
Blueprint information
- Status:
- Complete
- Approver:
- Sebastien Bacher
- Priority:
- High
- Drafter:
- Martin Pitt
- Direction:
- Approved
- Assignee:
- Martin Pitt
- Definition:
- Approved
- Series goal:
- Accepted for quantal
- Implementation:
- Implemented
- Milestone target:
- quantal-alpha-3
- Started by
- Martin Pitt
- Completed by
- Kate Stewart
Related branches
Related bugs
Whiteboard
UI redesign: (draft)
- https:/
Code/package design:
- Remove the backend/selection logic and move to the packagekit plugin API; we need the "printer drivers from openprinting.org" logic moved into s-c-p
- Move UI into software-
- Keep current handling on hybrid systems, i. e. don't offer NVidia, but do offer fglrx as it works with some cards
- New ubuntu-
- openprinting.org driver lookup should move directly into system-
- s-c-p should use the PackageKit API to install repositories and packages from openprinting.org; aptdaemon will implement the necessary compat API
Please see /usr/share/
http://
Work Items
Work items:
[mpt] Design for devices where you've manually installed a driver when a packaged version is available <https:/
[mpt] Change color-coding so that green = whichever driver was tested with the Ubuntu release <https:/
[mpt] add "3-D graphics" to the installer's third-party software text (ubiquity can detect whether nvidia card is in the system) <https:/
[mpt] Get legal review of the installer's third-party software paragraph for posible shortening <https:/
[albertomilone] ensure that the packaged nvidia driver removes an user-installed nvidia upstream driver: TODO
[albertomilone] ensure that installing nvidia/fglrx driver package also updates the alternatives symlinks and updates initramfs for the changed blacklists: DONE
[albertomilone] port the libraries in nvidia-common and the test suite to python 3.x: DONE
[ogra] Add Modaliases: header to pvr-omap4 package (ask tseliot/pitti about how to do that); if omapdrm_pvr does not use modaliases, add special case to ubuntu-
[albertomilone] Ensure that only one nvidia/fglrx driver version can be installed by default, so that the alternatives are configured correctly automatically: TODO
[pitti] add Modaliases: header to linux-firmware-
[pitti] drop -C option/logic; the free drivers have provided compositing support for years: DONE
[pitti] rename nvidia-common to ubuntu-
[pitti] aptdaemon/
[pitti] put driver detection API into u-d-common: DONE
[pitti] add ubuntu-drivers script (similar to "jockey-text --auto-install"-) script to u-drivers-common for Ubiquity: DONE
[pitti] Add open-vm-dkms special case to u-d-common: DONE
[pitti] handle blacklisting of nvidia on hybrid systems: DONE
[pitti] Add sl-modem-daemon special case to u-d-common: DONE
[pitti] drop update-notifier hack for DVB-usb firmware and use g-s-d's: DONE
[pitti] Move ubiquity from jockey to ubuntu-drivers: DONE
[pitti] Implement repo_enable PackageKit API in aptdaemon, for getting drivers from openprinting.org: DONE
[pitti] Implement install_signature PackageKit API in aptdaemon, for getting drivers from openprinting.org: DONE
[pitti] Drop jockey-gtk from seeds: DONE
[pitti] Discuss future of jockey-kde and moving of Kubuntu to u-d-common: DONE
[cyphermox] implement the new UI design for drivers from mpt: DONE
[didrocks] finish the implementation of the new UI design: DONE
[tkamppeter] move openprinting.org driver lookup logic from Jockey into s-c-p: TODO
[tkamppeter] implement openprinting.org driver installation in s-c-p through PackageKit API (with help from pitti): TODO