Nouveau Kernel Modesetting
Currently, modes are initialised by the 2D driver on X server startup. Kernel Modesetting (KMS) moves all of this into the kernel.
- Name: BenSkeggs
- email: firstname.lastname@example.org
- Targeted release: Fedora 37
- Last updated: 2009-03-06
- Percentage of completion: 80%
The code is in rawhide and is working quite nicely on the GeForce 8 chipsets I have access to.
With KMS, output setup services move from being the job of the 2D X driver, to being the job of a kernel driver. Historically, the X server was responsible for saving output state when it started up, and then restoring it when it switched back to text mode. Fast user switching was accomplished with a VT switch, so switching away from the first user's X server would blink once to go to text mode, then immediately blink again to go to the second user's session.
With KMS, a simple default policy is loaded into the kernel for initial output setup, which means connected displays should go to their native resolution as early as possible. Graphical display services, like the X server and the new Plymouth boot manager, simply reuse the existing display settings if they match what is desired. This allows for a seamless transition between bootup and login screen. Fast user switching can also take advantage of this; if both users have the same screen resolutions, then there's no need to blink to transition, and even if they're different, the kernel can make the switch exactly once (instead of twice like before).
Finally, since the kernel is aware of which regions of video memory are being displayed, it can print panic messages to the display, which will assist with troubleshooting.
Benefit to Fedora
The feature will provide users of supported NVIDIA hardware a smoother startup sequence, with less flashing caused by multiple display mode changes. Additionally, the speed of switching between X and a console, or multiple X servers (fast user switching) will be greatly improved.
The primary target for this feature in this release is GeForce 8/9 series chipsets. If there's time before the feature freeze, code for the earlier chipsets may appear.
How To Test
When nouveau.modeset=1 is selected on the kernel commandline on a supported chipset, plymouth should run with a graphical splash screen. Otherwise, plymouth should run in the fallback text mode.
For each configuration, X startup and shutdown needs to work as expected, both when plymouth is enabled and when it is disabled. Additionally, fast user switching must be tested and working.
This feature will be disabled by default on release, so there will be no impact to users unless they chose to enable the feature themselves. If a user enables the feature, the immediate change they should notice is a much nicer graphical boot.
None. The required supporting code already exists in Fedora, as used by the Radeon and Intel drivers.
None necessary, the non-KMS boot sequence will remain the default for this release.
Will need to document how to enable the feature at boot time, as well as any bugs/caveats that the user may experience.
To enable: nouveau.modeset=1 on the kernel commandline