BinaryDriverEducation

Differences between revisions 18 and 19
Revision 18 as of 2006-11-08 19:24:51
Size: 9643
Editor: 207
Comment: + implement for Kubuntu
Revision 19 as of 2006-11-08 19:37:50
Size: 9657
Editor: 207
Comment:
Deletions are marked like this. Additions are marked like this.
Line 48: Line 48:
 * If you are an administrator, and you are logging in to an Ubuntu installation for the second time, ''or'' three months have passed since you were last notified, ''or'' you are using a live CD, Ubuntu should notify you about the problem with the non-Free drivers.  * If you are an administrator, and you are logging in to an Ubuntu installation for the second time, ''or'' three months have passed since you were last notified, ''or'' you use a new non-free driver ''or'' you are using a live CD, Ubuntu should notify you about the problem with the non-Free drivers.
Line 85: Line 86:
We will use existing desktop notification framework (notification-daemon), it supports text notifications and has url support. The checkprogram will be done in the users session using /etc/xdg/autostart.

Small program that runs in the session
The checkprogram will be done in the users session using /etc/xdg/autostart. It will be a small python-gtk application. Because this application is run in every session we may consider writing it in C to optimize for slower hardware and faster startup (this needs to be benchmarked).
Line 94: Line 93:
- We can tell whether the ATI or Nvidia package is being used
- I think something more instrusive for notification would be desired
- Same f
or eg atheros (grep /proc/modules)
To tell whether the ATI or Nvidia package is being used we check the /etc/X11/xorg.conf for not commented out "Driver 'nvidia/fglrx'". For the other drivers we check /proc/modules
Line 98: Line 95:
- a webpage needs to be create and maintained with useful information about what the implications of binary drivers are (the points above) and hints what hardware to buy instead. Make clear why we ship non-free drivers in the first place.

 * Canonical support staff are writing whitepapers; Karl Tilbury's (mneptok's) first will be about the pitfalls of binary drivers. When done, this should be adapted for
A webpage needs to be create and maintained with useful information about what the implications of binary drivers are (the points above) and hints what hardware to buy instead. Make clear why we ship non-free drivers in the first place. Canonical support staff are writing whitepapers; Karl Tilbury's (mneptok's) first will be about the pitfalls of binary drivers. When done, this should be adapted for the webpage.
Line 102: Line 97:
 * The check for non-free modules can be done either at the modprobe level or at the session login level. We probably want to do it at the session level because its easier.
Line 119: Line 113:
 * Instead of checking at the session level for non-free modules it can be done at the modprobe level.

We include several proprietary drivers in Ubuntu by default (it is possible to install without them). We would like to do more to educate users to avoid hardware that requires such drivers in order to work with Linux. We propose a notification on login which will lead users to further information, including recommending certified hardware that does not have this problem.

Rationale

A large proportion of people using Ubuntu -- including 70%-80% of people with new computers -- need a non-Free driver for reasonable performance from their graphics card, wireless card, or modem, because there is no Free driver available. This is a problem, because:

  • we are completely dependent on the hardware vendor for bug fixes, even for security bugs
  • security fixes need careful testing, because we don't know what changed in the update
  • we don't know the vendor's roadmap for updates
  • we don't have any service-level agreement
  • any problems with the "tainted" kernel [http://www.tux.org/lkml/#s1-18 will not get attention from upstream kernel developers].

In most cases there is alternative hardware with Free drivers available. In the case of graphics cards, Intel onboard cards are available, but their performance isn't as good (lagging behind the ATI/Nvidia cards), and they aren't available as separate components.

This is a polarizing issue, because other distributors have made different choices — [http://wiki.debian.org/NvidiaGraphicsDrivers#head-406d3dad648f663d3a578addb21f289fd5daa658 Debian], [http://lwn.net/Articles/195351/ Fedora], and [http://lists.opensuse.org/opensuse-announce/2006-02/msg00003.html OpenSuse] do not install proprietary drivers by default — and because some see proprietary drivers as [http://ussg.iu.edu/hypermail/linux/kernel/0512.0/0972.html a threat to the future viability of Linux].

As long as Ubuntu does ship proprietary drivers in the short term, we should take steps to improve the situation in the long term. We believe the best way to do this is to convey the problem to people using Ubuntu — explaining why we distribute non-Free drivers at all, what the risks are, and what people can do to avoid such hardware in future.

Scope

To begin with, the notification should apply to modules provided in linux-restricted-modules:

  • video (fglrx, nvidia)
  • modems (fritz isdn/dsl modules, lt-modem)
  • wifi (ath_hal aka madwifi, contains a binary blob for FCC compliance — work has begun on a Free version, but nothing usable yet)
  • 3945 Intel wireless card, which has Free driver + binary blob (though this should be replaced by a Free version in Feisty)

Out of scope:

  • firmware (even upstream kernel hackers don't worry about that)
  • ndiswrapper (see "Future work")

  • what happens if a fully functional Free driver becomes available for hardware that formerly didn't have one (see [:AcceleratedX:AcceleratedX]).

Use cases

  • Danilo is a gamer who currently dual-boots Windows 2000. He upgrades his system every six months or so, and is interested in getting the best video performance possible.
  • Clara administers her own computer in a small accounting office, but will not have the budget to upgrade her computer any time soon.
  • Harriet had Ubuntu installed on her computer a couple of days ago, by a nephew who has now gone on a camping holiday. Harriet does not know what a "driver" is.

Design

Startup notification

When you log in to Ubuntu on a computer where non-Free drivers are required for acceptable performance:

  • If you are not an administrator, you likely can do nothing about the hardware situation, so nothing special should happen.
  • If you are an administrator who is logging in to an Ubuntu installation for the first time, it is important for your first impression to be of an elegant uncluttered system, so nothing special should happen.
  • If you are an administrator, and you are logging in to an Ubuntu installation for the second time, or three months have passed since you were last notified, or you use a new non-free driver or you are using a live CD, Ubuntu should notify you about the problem with the non-Free drivers.

The notification should take the form of an info alert. (A notification bubble would be inappropriate, because it would contain a control that does something other than closing it; and unnecesary, because this notification will happen very infrequently.) The alert should read:

  • To make this computer’s ______ work properly, Ubuntu is using driver software that cannot be supported. You can avoid this problem with your next computer, by choosing hardware from more cooperative manufacturers.

    To learn more later, open the Device Manager. ( Learn More... ) ((   OK   ))

The first sentence should refer to "display", "modem", "wireless connection", or (if multiple devices have the problem) "hardware".

Device Manager notification

On a system using proprietary drivers, the Device Manager should have a "Problem Devices" section above the "Computer" section. This section should be selected by default whenever the Device Manager is launched. Whenever it is selected, the main pane should show the same message as the alert, just with different layout:

  • To make this computer’s ______ work properly, Ubuntu is using driver software that cannot be supported. You can avoid this problem with your next computer, by choosing hardware from more cooperative manufacturers. ( Learn More... )

Ubuntu.com site

In either case, clicking "Learn More..." should open your default Web browser to a page on ubuntu.com that:

  • explains the problem in general
  • describes the particular device (or devices) with the problem on your computer in particular
  • links to vendors of alternative hardware, if available
  • possibly links to an Ubuntu forum section for discussing the issue.

The page should be iteratively redesigned to be understandable, tactful, and non-confrontational.

To count the proportion of users using proprietary drivers without breaching people's privacy, the hardware database client should record and calculate the proportion of people using each proprietary driver (see also IncreaseHardwareDatabaseParticipation).

ubuntu.com should count the number of Ubuntu installations (not including live CD sessions) that access its information on each driver.

Implementation

The checkprogram will be done in the users session using /etc/xdg/autostart. It will be a small python-gtk application. Because this application is run in every session we may consider writing it in C to optimize for slower hardware and faster startup (this needs to be benchmarked).

For counting the number of times people click "Learn More..." for each driver:

  • the URL is opened with an extra parameter indicating it was accessed from "Learn More..."
  • ubuntu.com redirects from any URL containing the parameter to the same URL without the parameter, so that if the resulting page is bookmarked/e-mailed/etc, visits from other computers aren't counted
  • in a live CD session, Ubuntu opens the URL without the parameter.

To tell whether the ATI or Nvidia package is being used we check the /etc/X11/xorg.conf for not commented out "Driver 'nvidia/fglrx'". For the other drivers we check /proc/modules

A webpage needs to be create and maintained with useful information about what the implications of binary drivers are (the points above) and hints what hardware to buy instead. Make clear why we ship non-free drivers in the first place. Canonical support staff are writing whitepapers; Karl Tilbury's (mneptok's) first will be about the pitfalls of binary drivers. When done, this should be adapted for the webpage.

Future work

  • We should extend this to detect use of ndiswrapper, for which Ubuntu will need to determine whether there is a Free equivalent to the Windows driver being used.

  • Implement for Kubuntu.

See also EthicalInfo, IssueNotificationServiceSpecification.

Alternative approaches

  • We considered using ubuntu.com to count the number of unique Ubuntu installations on which people accessed information on each driver:
    • Ubuntu would generate a UUID for the system
    • this ID would be included in the URL
    • ubuntu.com would redirect from any URL containing the ID parameter to the same URL without the ID, so that if the page was bookmarked/e-mailed/etc, visits from other computers wouldn't be counted
    • in a live CD session, Ubuntu would open the URL without any ID parameter.
    We decided not to do this, because people might not like Ubuntu giving their system a unique identifier.
  • Instead of checking at the session level for non-free modules it can be done at the modprobe level.

Discussion

  • If it uses notifications every couple of months, it should be able to be turned off (people who don't care or who can't afford new hardware). I also believe the alert should use more positive language - i.e. "to make this computer's display work to its full potential"... instead of "more co-operative manufacturers", use the phrase "Linux-friendly manufacturers". -- unsigned

    • I don't think this is worth it; once every three months is not enough annoyance to warrant an option to turn it off. -- mpt

BinaryDriverEducation (last edited 2012-02-01 12:39:34 by mpt)