Nvidia drivers are marked as "auto" at installation and thus removed by `apt autoremove`
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubiquity (Ubuntu) |
Fix Released
|
Critical
|
robert flecken | ||
Jammy |
Fix Released
|
Critical
|
robert flecken | ||
ubuntu-release-upgrader (Ubuntu) |
Fix Released
|
Critical
|
robert flecken | ||
Jammy |
Fix Released
|
Critical
|
Unassigned |
Bug Description
[Impact]
The installer doesn't install the nvidia-driver-* metadata on 20.04.3 Desktop, which means that on
upgrade the user will be prompted to remove the actual driver packages as the final step of the install,
which will likely break their user session.
[Test plan]
This test plan is for the fix in ubuntu-
On a system with a nvidia GPU:
* Install 20.04.3 with proprietary drivers enabled:
https:/
* `sudo apt -s autoremove` should list quite a few libnvidia* packages, including libnvidia-gl-*
* Manually download the -proposed upgrader since jammy isn't available for LTS upgrades yet:
$ mkdir -p /tmp/u-r-u && wget http://
$ cd /tmp/u-r-u
$ ./jammy
-> At the end of the upgrade process, the only nvidia packages that should be up for removal are kernel modules for obsolete kernel
On the nvidia-enabled system (test that the fix doesn't break systems that are working)
* Install 21.10 with proprietary drivers enabled
https:/
* Fix the sources.list as noted there: https:/
* dpkg -l | grep libnvidia-gl- should return one package
* sudo apt -s autoremove shouldn't list that same package
* do-release-upgrade -p
-> fully functional system at the end including nvidia drivers
[Potential regressions]
* Crashing the upgrader, preventing users from upgrading
* Installing the nvidia proprietary stack on systems without user consent
* Totally breaking the graphics stack for desktop users
[Original report]
When installing Ubuntu 20.04 LTS and choosing the proprietary Nvidia drivers, they seem to be marked as "auto". Consequently, any subsequent `apt` commands recommend to call `apt autoremove`:
```
root@ubuntu-
Reading package lists... Done
Building dependency tree
Reading state information... Done
htop is already the newest version (2.2.0-2build1).
The following packages were automatically installed and are no longer required:
chromium-
libdrm-intel1:i386 libdrm-
libexpat1:i386 libffi7:i386 libglvnd0:i386 libgstreamer-
libnvidia-cfg1-390 libnvidia-
libnvidia-
libnvidia-gl-390 libnvidia-
libstdc++6:i386 libva-wayland2 libvulkan1:i386 libwayland-
libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386
libxcb-
libxcb1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxnvctrl0 libxshmfence1:i386
libxxf86vm1:i386 mesa-vulkan-
nvidia-prime nvidia-settings nvidia-utils-390 screen-
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 142 not upgraded.
```
Calling `apt autoremove`, of course results in removal of drivers which are necessary for X11 to start. At the next boot attempt, the user will be presented with just a black screen and possibly some information about a successful fsck on /dev/sda2.
Related branches
- Julian Andres Klode: Needs Fixing
-
Diff: 33204 lines (+6087/-4298) (has conflicts)142 files modifiedDistUpgrade/DistUpgradeController.py (+7/-2)
DistUpgrade/DistUpgradeQuirks.py (+109/-0)
DistUpgrade/DistUpgradeVersion.py (+4/-0)
data/DistUpgrade.cfg.groovy (+131/-0)
data/DistUpgrade.cfg.hirsute (+131/-0)
data/demoted.cfg.groovy (+1/-0)
data/demoted.cfg.hirsute (+1/-0)
data/mirrors.cfg (+40/-8)
debian/changelog (+40/-0)
debian/control (+1/-0)
debian/tests/control (+1/-1)
po/af.po (+38/-34)
po/am.po (+38/-34)
po/an.po (+38/-34)
po/ar.po (+38/-34)
po/ast.po (+38/-34)
po/az.po (+38/-34)
po/be.po (+38/-34)
po/bg.po (+38/-34)
po/bn.po (+38/-34)
po/bo.po (+38/-34)
po/br.po (+38/-34)
po/bs.po (+38/-34)
po/ca.po (+38/-34)
po/ca@valencia.po (+38/-34)
po/ce.po (+38/-34)
po/ceb.po (+38/-34)
po/ckb.po (+38/-34)
po/crh.po (+38/-34)
po/cs.po (+38/-34)
po/csb.po (+38/-34)
po/cv.po (+38/-34)
po/cy.po (+38/-34)
po/da.po (+38/-34)
po/de.po (+38/-34)
po/dv.po (+38/-34)
po/el.po (+38/-34)
po/en_AU.po (+38/-34)
po/en_CA.po (+38/-34)
po/en_GB.po (+38/-34)
po/eo.po (+38/-34)
po/es.po (+38/-34)
po/et.po (+38/-34)
po/eu.po (+38/-34)
po/fa.po (+38/-34)
po/fi.po (+38/-34)
po/fil.po (+38/-34)
po/fo.po (+38/-34)
po/fr.po (+38/-34)
po/fr_CA.po (+38/-34)
po/fur.po (+38/-34)
po/fy.po (+38/-34)
po/ga.po (+38/-34)
po/gd.po (+38/-34)
po/gl.po (+38/-34)
po/gu.po (+38/-34)
po/gv.po (+38/-34)
po/he.po (+38/-34)
po/hi.po (+38/-34)
po/hr.po (+38/-34)
po/hu.po (+38/-34)
po/hy.po (+38/-34)
po/ia.po (+38/-34)
po/id.po (+38/-34)
po/is.po (+38/-34)
po/it.po (+38/-34)
po/ja.po (+38/-34)
po/jv.po (+38/-34)
po/ka.po (+38/-34)
po/kk.po (+38/-34)
po/km.po (+38/-34)
po/kn.po (+38/-34)
po/ko.po (+38/-34)
po/ku.po (+38/-34)
po/ky.po (+38/-34)
po/lb.po (+38/-34)
po/ln.po (+38/-34)
po/lo.po (+38/-34)
po/lt.po (+38/-34)
po/lv.po (+38/-34)
po/mhr.po (+38/-34)
po/mjw.po (+38/-34)
po/mk.po (+38/-34)
po/ml.po (+38/-34)
po/mn.po (+38/-34)
po/mnw.po (+38/-34)
po/mr.po (+38/-34)
po/ms.po (+38/-34)
po/mus.po (+38/-34)
po/my.po (+38/-34)
po/nb.po (+38/-34)
po/nds.po (+38/-34)
po/ne.po (+38/-34)
po/nl.po (+38/-34)
po/nn.po (+38/-34)
po/oc.po (+38/-34)
po/om.po (+38/-34)
po/pa.po (+38/-34)
po/pam.po (+38/-34)
po/pl.po (+38/-34)
po/ps.po (+38/-34)
po/pt.po (+38/-34)
po/pt_BR.po (+38/-34)
po/qu.po (+38/-34)
po/ro.po (+38/-34)
po/ru.po (+38/-34)
po/rw.po (+38/-34)
po/sc.po (+38/-34)
po/sco.po (+38/-34)
po/sd.po (+38/-34)
po/se.po (+38/-34)
po/shn.po (+38/-34)
po/si.po (+38/-34)
po/sk.po (+38/-34)
po/sl.po (+38/-34)
po/sq.po (+38/-34)
po/sr.po (+38/-34)
po/sv.po (+38/-34)
po/szl.po (+38/-34)
po/ta.po (+38/-34)
po/ta_LK.po (+38/-34)
po/te.po (+38/-34)
po/tg.po (+38/-34)
po/th.po (+38/-34)
po/tl.po (+38/-34)
po/tr.po (+38/-34)
po/ubuntu-release-upgrader.pot (+38/-34)
po/ug.po (+38/-34)
po/uk.po (+38/-34)
po/ur.po (+38/-34)
po/uz.po (+38/-34)
po/vi.po (+38/-34)
po/xh.po (+38/-34)
po/zh_CN.po (+38/-34)
po/zh_HK.po (+38/-34)
po/zh_TW.po (+38/-34)
po/zu.po (+38/-34)
pre-build.sh (+6/-1)
tests/test_quirks.py (+242/-0)
utils/demoted.cfg.focal (+0/-2)
utils/demoted.cfg.groovy (+311/-0)
utils/demoted.cfg.hirsute (+274/-0)
- Steve Langasek: Approve
-
Diff: 79 lines (+56/-0)2 files modifiedDistUpgrade/DistUpgradeQuirks.py (+49/-0)
debian/changelog (+7/-0)
- Ubuntu Core Development Team: Pending requested
-
Diff: 33176 lines (+6079/-4296) (has conflicts)141 files modifiedDistUpgrade/DistUpgradeQuirks.py (+109/-0)
DistUpgrade/DistUpgradeVersion.py (+4/-0)
data/DistUpgrade.cfg.groovy (+131/-0)
data/DistUpgrade.cfg.hirsute (+131/-0)
data/demoted.cfg.groovy (+1/-0)
data/demoted.cfg.hirsute (+1/-0)
data/mirrors.cfg (+40/-8)
debian/changelog (+39/-0)
debian/control (+1/-0)
debian/tests/control (+1/-1)
po/af.po (+38/-34)
po/am.po (+38/-34)
po/an.po (+38/-34)
po/ar.po (+38/-34)
po/ast.po (+38/-34)
po/az.po (+38/-34)
po/be.po (+38/-34)
po/bg.po (+38/-34)
po/bn.po (+38/-34)
po/bo.po (+38/-34)
po/br.po (+38/-34)
po/bs.po (+38/-34)
po/ca.po (+38/-34)
po/ca@valencia.po (+38/-34)
po/ce.po (+38/-34)
po/ceb.po (+38/-34)
po/ckb.po (+38/-34)
po/crh.po (+38/-34)
po/cs.po (+38/-34)
po/csb.po (+38/-34)
po/cv.po (+38/-34)
po/cy.po (+38/-34)
po/da.po (+38/-34)
po/de.po (+38/-34)
po/dv.po (+38/-34)
po/el.po (+38/-34)
po/en_AU.po (+38/-34)
po/en_CA.po (+38/-34)
po/en_GB.po (+38/-34)
po/eo.po (+38/-34)
po/es.po (+38/-34)
po/et.po (+38/-34)
po/eu.po (+38/-34)
po/fa.po (+38/-34)
po/fi.po (+38/-34)
po/fil.po (+38/-34)
po/fo.po (+38/-34)
po/fr.po (+38/-34)
po/fr_CA.po (+38/-34)
po/fur.po (+38/-34)
po/fy.po (+38/-34)
po/ga.po (+38/-34)
po/gd.po (+38/-34)
po/gl.po (+38/-34)
po/gu.po (+38/-34)
po/gv.po (+38/-34)
po/he.po (+38/-34)
po/hi.po (+38/-34)
po/hr.po (+38/-34)
po/hu.po (+38/-34)
po/hy.po (+38/-34)
po/ia.po (+38/-34)
po/id.po (+38/-34)
po/is.po (+38/-34)
po/it.po (+38/-34)
po/ja.po (+38/-34)
po/jv.po (+38/-34)
po/ka.po (+38/-34)
po/kk.po (+38/-34)
po/km.po (+38/-34)
po/kn.po (+38/-34)
po/ko.po (+38/-34)
po/ku.po (+38/-34)
po/ky.po (+38/-34)
po/lb.po (+38/-34)
po/ln.po (+38/-34)
po/lo.po (+38/-34)
po/lt.po (+38/-34)
po/lv.po (+38/-34)
po/mhr.po (+38/-34)
po/mjw.po (+38/-34)
po/mk.po (+38/-34)
po/ml.po (+38/-34)
po/mn.po (+38/-34)
po/mnw.po (+38/-34)
po/mr.po (+38/-34)
po/ms.po (+38/-34)
po/mus.po (+38/-34)
po/my.po (+38/-34)
po/nb.po (+38/-34)
po/nds.po (+38/-34)
po/ne.po (+38/-34)
po/nl.po (+38/-34)
po/nn.po (+38/-34)
po/oc.po (+38/-34)
po/om.po (+38/-34)
po/pa.po (+38/-34)
po/pam.po (+38/-34)
po/pl.po (+38/-34)
po/ps.po (+38/-34)
po/pt.po (+38/-34)
po/pt_BR.po (+38/-34)
po/qu.po (+38/-34)
po/ro.po (+38/-34)
po/ru.po (+38/-34)
po/rw.po (+38/-34)
po/sc.po (+38/-34)
po/sco.po (+38/-34)
po/sd.po (+38/-34)
po/se.po (+38/-34)
po/shn.po (+38/-34)
po/si.po (+38/-34)
po/sk.po (+38/-34)
po/sl.po (+38/-34)
po/sq.po (+38/-34)
po/sr.po (+38/-34)
po/sv.po (+38/-34)
po/szl.po (+38/-34)
po/ta.po (+38/-34)
po/ta_LK.po (+38/-34)
po/te.po (+38/-34)
po/tg.po (+38/-34)
po/th.po (+38/-34)
po/tl.po (+38/-34)
po/tr.po (+38/-34)
po/ubuntu-release-upgrader.pot (+38/-34)
po/ug.po (+38/-34)
po/uk.po (+38/-34)
po/ur.po (+38/-34)
po/uz.po (+38/-34)
po/vi.po (+38/-34)
po/xh.po (+38/-34)
po/zh_CN.po (+38/-34)
po/zh_HK.po (+38/-34)
po/zh_TW.po (+38/-34)
po/zu.po (+38/-34)
pre-build.sh (+6/-1)
tests/test_quirks.py (+242/-0)
utils/demoted.cfg.focal (+0/-2)
utils/demoted.cfg.groovy (+311/-0)
utils/demoted.cfg.hirsute (+274/-0)
- Brian Murray: Needs Fixing
- Julian Andres Klode: Approve
-
Diff: 69 lines (+46/-0)2 files modifiedDistUpgrade/DistUpgradeQuirks.py (+40/-0)
debian/changelog (+6/-0)
affects: | ubuntu → ubiquity (Ubuntu) |
tags: | added: fr-1937 |
Changed in ubuntu-release-upgrader (Ubuntu Jammy): | |
milestone: | none → ubuntu-22.04.1 |
description: | updated |
description: | updated |
Changed in ubiquity (Ubuntu): | |
status: | Incomplete → Fix Released |
Changed in ubiquity (Ubuntu Jammy): | |
status: | Incomplete → Fix Released |
Changed in ubiquity (Ubuntu): | |
assignee: | nobody → robert flecken (rob636) |
Changed in ubiquity (Ubuntu Jammy): | |
assignee: | nobody → robert flecken (rob636) |
Changed in ubuntu-release-upgrader (Ubuntu): | |
assignee: | nobody → robert flecken (rob636) |
assignee: | robert flecken (rob636) → nobody |
Changed in ubuntu-release-upgrader (Ubuntu Jammy): | |
assignee: | nobody → robert flecken (rob636) |
Changed in ubuntu-release-upgrader (Ubuntu): | |
assignee: | nobody → robert flecken (rob636) |
status: | Invalid → Fix Released |
Changed in ubuntu-release-upgrader (Ubuntu Jammy): | |
assignee: | robert flecken (rob636) → nobody |
Workaround: Install the Nvidia package manually, for example `apt install nvidia-384` (or whichever version works best for your hardware).