-
Notifications
You must be signed in to change notification settings - Fork 22
Selecting the Driver Packages
The driver packages (esp. the 3rd party driver packages provided by external repositories) should be automatically selected to install. That is done during installation automatically by the solver.
In installed system we need to enable this explicitly as it needs some special solver setting to allow selecting the driver packages.
The package solver provides several solving modes:
ingoreAlreadyRecommended | onlyRequires | Description |
---|---|---|
true |
false |
Full installation including recommended packages |
true |
true |
Minimal installation, without recommended packages but with system supporting packages |
false |
false |
Fill up all recommended packages (for already installed packages) |
false |
true |
Fill up only missing system supporting packages |
For selecting the driver packages in the installed system we need to set the very last settings.
The driver packages have special Supplements
tag in format modalias(<hardware>)
. For example the virtualbox-guest-tools
has Supplements
tag with value modalias(pci:v000080EEd0000BEEFsv*sd*bc*sc*i*)
. (That matches the virtual PCI VGA card emulated by the VirtualBox.)
The new driver packages should be only pre-selected for new repositories to avoid offering them again when user does not want to install them. Users could taboo the packages to avoid this but that is annoying and not user friendly. So YaST needs to somehow track the repositories for which the driver packages have already been automatically selected.
It is also possible to start the repository manager directly from the package manager, in that case the new repositories need to be checked as well.
YaST saves the known repositories to the /var/lib/YaST2/system_packages_repos.yaml
config file, it contains a list of repository URLs.
When starting the YaST package manager in installed system it compares the current repositories with the listed repositories and if there is a new repository found YaST tries selecting the driver packages from that repository. When the package manager is finished the current repositories are saved to the config file for the next run.
To force re-selecting the driver packages either remove the appropriate repository from the file or delete the file completely.
- Implemented in SLE15-SP1, openSUSE Leap 15.1
- Requires libzypp >= 17.10.2 (included in the products above)
- You can test it on a bare metal hardware with nVidia graphics card and with the nVidia 3rd party repository.
- You can test it with any driver package
- Get list of installed hardware packages:
rpm -qa --supplements | grep modalias
- Get the respective package for that supplements:
rpm -q --whatsupplements "modalias(...)"
- Uninstall that package (and remove the
/var/lib/YaST2/system_packages_repos.yaml
config file) - Start the YaST package manager, the package should be preselected to install
⚠️ Do not uninstall any mandatory driver packages (e.g. disk controller) otherwise your system will not be able to boot! If you do you have to install it back before rebooting or shutting down the system!
- Get list of installed hardware packages:
- Specifically for testing in a VirtualBox VM you can try removing the
virtualbox-guest-tools
package, after removing the/var/lib/YaST2/system_packages_repos.yaml
config file the package should be automatically selected to install.