Mailinglist Archive: opensuse-factory (661 mails)

< Previous Next >
Re: [opensuse-factory] Kernel Mode Setting (KMS) for openSUSE.
  • From: Jeff Mahoney <jeffm@xxxxxxxx>
  • Date: Fri, 04 Dec 2009 12:51:30 -0500
  • Message-id: <4B194C22.9060603@xxxxxxxx>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 12/04/2009 04:59 AM, Egbert Eich wrote:
On Fri, Dec 04, 2009 at 05:24:23AM +0100, Stefan Dirsch wrote:
On Thu, Dec 03, 2009 at 04:37:05PM +0100, Egbert Eich wrote:
AIUI, if someone wants to use the proprietary driver, it is enough
that the package adds nomodeset boot option to bootloader configuration
and the drivers should continue to work just fine? (I'm no fan, but on
few machines I need 3D on ATI...)


The idea is that the install script for the proprietary driver would either
set the global NO_KMS_IN_INITRD sysconfig variable or blacklist exactly
those PCI ids in /etc/kms/<drm_driver_name>.blacklist and rerun mkinitrd.

BTW, in which sysconfig file should this variable be set? Apparently it's not
added by any of your patches, only checked in setup-kms.sh.

I've been thinking about the blacklisting some more. It's very easy
to get the system inconsistent when we have different sort of blacklistings.

modprobe supports blacklisting per driver (not per modalias or any wildcared
variant thereof). If we are willing to scarifice per device ID blacklisting
we should simply go with the blacklisting modprobe supports.
If we also make sure that options listed in /etc/modprobe.d/* are copied
to initrd for the drivers copied to it then

- The user can disable KMS (per driver) by adding the a line
options <drivername> modeset=0 to /etc/modprobe.d/options
- ATI (as an example) can simply ship a file containing the line
blacklist radeon
and dump it into /etc/modprobe.d/ to prevent loading the radeon driver.
rerunning mkinitrd will generate a new initrd without the radeon module.

YaST or the ATI installer could just dump the options or blacklist in
its own file in /etc/modprobe.d. The "options" file isn't special.
modprobe reads them all.

NO_KMS_IN_INITRD by itself doesn't provide a big benefit. If the DRM driver
isn't loaded in initrd it will be loaded by udev (which can be prevented)
or by the Xserver. Thus this option would only be useful for developers
who want to load a DRM driver by hand and thus not have it loaded by
initrd. (As a note on the side: when KMS is activated DRM drivers cannot
be unloaded - which makes debugging this driver a real treat :( )

If we want black listing or option listing based on PCI Ids we'd have
to provide a script which scans the hardware and adds appropirate entries
to /etc/modprobe.d/. It would have to be rerun every time the hardware
changes.
Expanding modprobe to perform such a mapping might be possible but I
don't want to go this route without soliciting for feedback on
opensuse-kernel.
The reason why I (and probably you) think that this might be useful is
that SaX2 used to maintain per device ID lists of driver options.
kernel developer might have a different take on that.

Yeah, it's probably possible to do it per-device, but right now the code
doesn't support it. It's a driver-global option.

- -Jeff

- --
Jeff Mahoney
SUSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.12 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org/

iEYEARECAAYFAksZTCIACgkQLPWxlyuTD7KMqACfUM/l0sxOa3kGTMnSdMoiklu9
OAIAn3eTppet7StvJTEzaqZH9ylXTfim
=oQVF
-----END PGP SIGNATURE-----
--
To unsubscribe, e-mail: opensuse-factory+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-factory+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups