** Description changed:

- The intended behavior of `ubuntu-drivers` has always been mysterious to
- me. Here are a few examples:
+ (SRU template at the bottom)
+ 
+ 
+ The intended behavior of `ubuntu-drivers` has always been mysterious to me. 
Here are a few examples:
  
  (1) It is not clear to me what --gpgpu is intended to do. The help
  output simply says:
  
  Options:
-   --gpgpu              gpgpu drivers
+   --gpgpu              gpgpu drivers
  
  According to https://ubuntu.com/server/docs/nvidia-drivers-installation:
  
- 
  > Check the available drivers for your hardware
  > For desktop:
- > 
+ >
  > sudo ubuntu-drivers list
  > or, for servers:
- > 
+ >
  > sudo ubuntu-drivers list --gpgpu
  ```
  
  But both commands list the same set of packages - just in a different
  order:
  
  $ sudo ubuntu-drivers list
  nvidia-driver-550-open, (kernel modules provided by 
linux-modules-nvidia-550-open-generic)
  nvidia-driver-470-server, (kernel modules provided by 
linux-modules-nvidia-470-server-generic)
  nvidia-driver-535-open, (kernel modules provided by 
linux-modules-nvidia-535-open-generic)
  nvidia-driver-535-server-open, (kernel modules provided by 
linux-modules-nvidia-535-server-open-generic)
  nvidia-driver-550, (kernel modules provided by 
linux-modules-nvidia-550-generic)
  nvidia-driver-535-server, (kernel modules provided by 
linux-modules-nvidia-535-server-generic)
  nvidia-driver-470, (kernel modules provided by 
linux-modules-nvidia-470-generic)
  nvidia-driver-535, (kernel modules provided by 
linux-modules-nvidia-535-generic)
  
  $ sudo ubuntu-drivers list --gpgpu
  nvidia-driver-470-server, (kernel modules provided by 
linux-modules-nvidia-470-server-generic)
  nvidia-driver-535-open, (kernel modules provided by 
linux-modules-nvidia-535-open-generic)
  nvidia-driver-550, (kernel modules provided by 
linux-modules-nvidia-550-generic)
  nvidia-driver-535-server, (kernel modules provided by 
linux-modules-nvidia-535-server-generic)
  nvidia-driver-470, (kernel modules provided by 
linux-modules-nvidia-470-generic)
  nvidia-driver-550-open, (kernel modules provided by 
linux-modules-nvidia-550-open-generic)
  nvidia-driver-535, (kernel modules provided by 
linux-modules-nvidia-535-generic)
  nvidia-driver-535-server-open, (kernel modules provided by 
linux-modules-nvidia-535-server-open-generic)
  
- 
- But there's no indication that the order means anything. `sudo ubuntu-drivers 
install --gpgpu` on this system will install 
nvidia-headless-no-dkms-535-server. Which, notably, installs no kernel drivers 
(neither DKMS nor signed) on my system. `sudo ubuntu-drivers install`, OTOH, 
will install nvidia-driver-550 linux-modules-nvidia-550-generic.
+ But there's no indication that the order means anything. `sudo ubuntu-
+ drivers install --gpgpu` on this system will install nvidia-headless-no-
+ dkms-535-server. Which, notably, installs no kernel drivers (neither
+ DKMS nor signed) on my system. `sudo ubuntu-drivers install`, OTOH, will
+ install nvidia-driver-550 linux-modules-nvidia-550-generic.
  
  (2) According to https://ubuntu.com/server/docs/nvidia-drivers-
  installation, ubuntu-drivers "always tries to install signed drivers
  which are known to work with Secure Boot." But, if there isn't an l-r-m
  package available for the current kernel, it will fall back to a -dkms
  package. It seems like that would be the case in the window between
  pushing out a new nvidia-graphics-drivers package and l-r-m's having
  been built against it. Maybe that archive state "shouldn't happen" - but
  if this mode is documented to install signed drivers, then unavailable
  signed drivers should be an error.
  
- 
- (3) There's no option to automatically install the best "-open" variant. 
There is a `--free-only` option, but that filters out all nvidia drivers.
- 
+ (3) There's no option to automatically install the best "-open" variant.
+ There is a `--free-only` option, but that filters out all nvidia
+ drivers.
  
  Suggestions:
  
  From what I can tell, the `--gpgpu` actually intends to install drivers
  for a headless system. (Maybe it is just a bug that it installs no
  driver on my system?) Assuming that is the intent, then `--headless`
  seems like a better option name. Perhaps we could add `--headless` as an
  alias for `--gpgpu`... and maybe deprecate --gpgpu?
  
  Could we add a `--server|--desktop` flag so a user can explicitly choose
  the server variant? I realize that `--server` and `--headless` seem
  similar - but we do provide the full graphics stack for the -server
  variant drivers, and that does make sense on some systems (DGX A100
  Station, for example). Again, documentation could clarify the
  difference.
  
  Could we allow the -open variants to be installed with --free-only? Or
  could we add a flag to select the -open variant, and document the
  difference between that and --free-only?
+ 
+ 
+ 
+ [ Impact ]
+ help for --gpgpu flag is vague and does not state what it is for
+ 
+ [ Steps to reproduce ]
+ call: ubuntu-drivers list --help
+ 
+ Expected result:
+ the help should say:
+ "Install drivers for use in a headless (aka General Purpose GPU) environment. 
This results in a smaller installation footprint by not installing packages 
that are only useful in graphical environments."
+ > instead of:
+ "gpgpu drivers"
+ 
+ [ Test plan ]
+ 1. Install ubuntu-drivers on a machine with a modern NVIDIA card
+ 2. Call ubuntu-drivers list --help
+ 3. read the text

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to ubuntu-drivers-common in Ubuntu.
https://bugs.launchpad.net/bugs/2081881

Title:
  nvidia driver installation modes are unclear and in conflict w/ the
  server guide

Status in ubuntu-drivers-common package in Ubuntu:
  Fix Released
Status in ubuntu-drivers-common source package in Jammy:
  New
Status in ubuntu-drivers-common source package in Noble:
  New
Status in ubuntu-drivers-common source package in Oracular:
  New
Status in ubuntu-drivers-common source package in Plucky:
  Fix Released

Bug description:
  (SRU template at the bottom)

  
  The intended behavior of `ubuntu-drivers` has always been mysterious to me. 
Here are a few examples:

  (1) It is not clear to me what --gpgpu is intended to do. The help
  output simply says:

  Options:
    --gpgpu              gpgpu drivers

  According to https://ubuntu.com/server/docs/nvidia-drivers-
  installation:

  > Check the available drivers for your hardware
  > For desktop:
  >
  > sudo ubuntu-drivers list
  > or, for servers:
  >
  > sudo ubuntu-drivers list --gpgpu
  ```

  But both commands list the same set of packages - just in a different
  order:

  $ sudo ubuntu-drivers list
  nvidia-driver-550-open, (kernel modules provided by 
linux-modules-nvidia-550-open-generic)
  nvidia-driver-470-server, (kernel modules provided by 
linux-modules-nvidia-470-server-generic)
  nvidia-driver-535-open, (kernel modules provided by 
linux-modules-nvidia-535-open-generic)
  nvidia-driver-535-server-open, (kernel modules provided by 
linux-modules-nvidia-535-server-open-generic)
  nvidia-driver-550, (kernel modules provided by 
linux-modules-nvidia-550-generic)
  nvidia-driver-535-server, (kernel modules provided by 
linux-modules-nvidia-535-server-generic)
  nvidia-driver-470, (kernel modules provided by 
linux-modules-nvidia-470-generic)
  nvidia-driver-535, (kernel modules provided by 
linux-modules-nvidia-535-generic)

  $ sudo ubuntu-drivers list --gpgpu
  nvidia-driver-470-server, (kernel modules provided by 
linux-modules-nvidia-470-server-generic)
  nvidia-driver-535-open, (kernel modules provided by 
linux-modules-nvidia-535-open-generic)
  nvidia-driver-550, (kernel modules provided by 
linux-modules-nvidia-550-generic)
  nvidia-driver-535-server, (kernel modules provided by 
linux-modules-nvidia-535-server-generic)
  nvidia-driver-470, (kernel modules provided by 
linux-modules-nvidia-470-generic)
  nvidia-driver-550-open, (kernel modules provided by 
linux-modules-nvidia-550-open-generic)
  nvidia-driver-535, (kernel modules provided by 
linux-modules-nvidia-535-generic)
  nvidia-driver-535-server-open, (kernel modules provided by 
linux-modules-nvidia-535-server-open-generic)

  But there's no indication that the order means anything. `sudo ubuntu-
  drivers install --gpgpu` on this system will install nvidia-headless-
  no-dkms-535-server. Which, notably, installs no kernel drivers
  (neither DKMS nor signed) on my system. `sudo ubuntu-drivers install`,
  OTOH, will install nvidia-driver-550 linux-modules-nvidia-550-generic.

  (2) According to https://ubuntu.com/server/docs/nvidia-drivers-
  installation, ubuntu-drivers "always tries to install signed drivers
  which are known to work with Secure Boot." But, if there isn't an
  l-r-m package available for the current kernel, it will fall back to a
  -dkms package. It seems like that would be the case in the window
  between pushing out a new nvidia-graphics-drivers package and l-r-m's
  having been built against it. Maybe that archive state "shouldn't
  happen" - but if this mode is documented to install signed drivers,
  then unavailable signed drivers should be an error.

  (3) There's no option to automatically install the best "-open"
  variant. There is a `--free-only` option, but that filters out all
  nvidia drivers.

  Suggestions:

  From what I can tell, the `--gpgpu` actually intends to install
  drivers for a headless system. (Maybe it is just a bug that it
  installs no driver on my system?) Assuming that is the intent, then
  `--headless` seems like a better option name. Perhaps we could add
  `--headless` as an alias for `--gpgpu`... and maybe deprecate --gpgpu?

  Could we add a `--server|--desktop` flag so a user can explicitly
  choose the server variant? I realize that `--server` and `--headless`
  seem similar - but we do provide the full graphics stack for the
  -server variant drivers, and that does make sense on some systems (DGX
  A100 Station, for example). Again, documentation could clarify the
  difference.

  Could we allow the -open variants to be installed with --free-only? Or
  could we add a flag to select the -open variant, and document the
  difference between that and --free-only?



  [ Impact ]
  help for --gpgpu flag is vague and does not state what it is for

  [ Steps to reproduce ]
  call: ubuntu-drivers list --help

  Expected result:
  the help should say:
  "Install drivers for use in a headless (aka General Purpose GPU) environment. 
This results in a smaller installation footprint by not installing packages 
that are only useful in graphical environments."
  > instead of:
  "gpgpu drivers"

  [ Test plan ]
  1. Install ubuntu-drivers on a machine with a modern NVIDIA card
  2. Call ubuntu-drivers list --help
  3. read the text

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-drivers-common/+bug/2081881/+subscriptions


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to