From b081c24f8e036ec389db2c59c5b58a1f0ee6e79b Mon Sep 17 00:00:00 2001 From: 4aiman Date: Wed, 4 Nov 2026 16:06:24 +0300 Subject: [PATCH] Add lts24-lts26-upgrade: notes on problems hit while upgrading Ubuntu 24.04 to 26.04 --- ...move после апгрейда - как не снести нужное | 25 +++++++++++++ .../chromium deb без снапа на 26.04 | 22 +++++++++++ .../dkms не пересобрал модуль после апгрейда | 17 +++++++++ ...peg из исходников - gnutls not found и lto | 37 +++++++++++++++++++ .../lightdm спрашивает имя пользователя | 19 ++++++++++ ... python3.12 - конфликт файлов при установке | 21 +++++++++++ .../nvidia - autoremove сносит драйвер | 18 +++++++++ .../nvidia - готовые модули вместо dkms | 23 ++++++++++++ .../obs portable - пересборка под ffmpeg 8 | 11 ++++++ ... - лого уменьшается и съезжает влево вверх | 27 ++++++++++++++ .../qt-программы под pkexec белые | 11 ++++++ .../ssh-агент пропал в X-сессии | 9 +++++ .../v4l2loopback 0.15 - STREAMON EINVAL | 13 +++++++ .../venv на python 3.12 сдохли | 26 +++++++++++++ .../vmware workstation на ядре 7.0 | 14 +++++++ .../апгрейдер молча удаляет твои конфиги | 23 ++++++++++++ .../звук остаётся на pulseaudio | 23 ++++++++++++ .../репа CUDA перебивает драйвер убунты | 20 ++++++++++ ...¸ пакеты xfce после апгрейда - тиринг вернулся | 20 ++++++++++ 19 files changed, 379 insertions(+) create mode 100644 lts24-lts26-upgrade/autoremove после апгрейда - как не снести нужное create mode 100644 lts24-lts26-upgrade/chromium deb без снапа на 26.04 create mode 100644 lts24-lts26-upgrade/dkms не пересобрал модуль после апгрейда create mode 100644 lts24-lts26-upgrade/ffmpeg из исходников - gnutls not found и lto create mode 100644 lts24-lts26-upgrade/lightdm спрашивает имя пользователя create mode 100644 lts24-lts26-upgrade/mono и python3.12 - конфликт файлов при установке create mode 100644 lts24-lts26-upgrade/nvidia - autoremove сносит драйвер create mode 100644 lts24-lts26-upgrade/nvidia - готовые модули вместо dkms create mode 100644 lts24-lts26-upgrade/obs portable - пересборка под ffmpeg 8 create mode 100644 lts24-lts26-upgrade/plymouth - лого уменьшается и съезжает влево вверх create mode 100644 lts24-lts26-upgrade/qt-программы под pkexec белые create mode 100644 lts24-lts26-upgrade/ssh-агент пропал в X-сессии create mode 100644 lts24-lts26-upgrade/v4l2loopback 0.15 - STREAMON EINVAL create mode 100644 lts24-lts26-upgrade/venv на python 3.12 сдохли create mode 100644 lts24-lts26-upgrade/vmware workstation на ядре 7.0 create mode 100644 lts24-lts26-upgrade/апгрейдер молча удаляет твои конфиги create mode 100644 lts24-lts26-upgrade/звук остаётся на pulseaudio create mode 100644 lts24-lts26-upgrade/репа CUDA перебивает драйвер убунты create mode 100644 lts24-lts26-upgrade/свои пакеты xfce после апгрейда - тиринг вернулся diff --git a/lts24-lts26-upgrade/autoremove после апгрейда - как не снести нужное b/lts24-lts26-upgrade/autoremove после апгрейда - как не снести нужное new file mode 100644 index 0000000..8c11c01 --- /dev/null +++ b/lts24-lts26-upgrade/autoremove после апгрейда - как не снести нужное @@ -0,0 +1,25 @@ +После апгрейда `apt-get -s autoremove` хотел удалить 640+ пакетов. Вслепую - ни в коем случае. + +Что делал: +- выгрузил список и прошёлся по нему руками: что оставить - `apt-mark manual`, остальное пусть уходит; +- перед этим бэкап пометок: +``` +sudo cp -a /var/lib/apt/extended_states ~/extended_states.before-autoremove +``` +- результат проверял на копии этого файла, не трогая систему: +``` +apt-get -s -o Dir::State::extended_states=$HOME/копия autoremove +``` + +Грабли: +- `apt-mark manual пакет` помечает только родную архитектуру. 32-битную копию надо называть явно: `пакет:i386`. Иначе vdpau/libxml2 для 32-битных игр уедут; +- apt НЕ знает про то, что собрано руками в /usr/local и ~/bin. Свой ffmpeg, OBS из make install, WiVRn - их библиотеки для apt "никому не нужны". Сначала пересобрать/удалить самосборки, проверить `ldd`, и только потом autoremove; +- пакет может быть "manual" и висеть вечно (у меня libvpx9) - `apt-mark auto` ему. + +Перед запуском: +``` +apt-get -s autoremove | grep -E 'nvidia|linux-(image|modules)|pulseaudio' +``` +Пусто - можно `sudo apt autoremove`. + +После - `dpkg -l | grep ^rc` покажет удалённые пакеты с оставшимися конфигами. Они ничего не делают, `--purge` по желанию. diff --git a/lts24-lts26-upgrade/chromium deb без снапа на 26.04 b/lts24-lts26-upgrade/chromium deb без снапа на 26.04 new file mode 100644 index 0000000..71a346b --- /dev/null +++ b/lts24-lts26-upgrade/chromium deb без снапа на 26.04 @@ -0,0 +1,22 @@ +Chromium у меня шёл .deb из Debian stable через пин. Апгрейдер источник отключил, версия застряла. +На 26.04 нормальный .deb (не снап) есть в PPA xtradeb/apps. Но там ещё куча приложений - пускаем из него только chromium. + +``` +sudo add-apt-repository ppa:xtradeb/apps +``` +`/etc/apt/preferences.d/xtradeb-chromium.pref`: +``` +Package: * +Pin: release o=LP-PPA-xtradeb-apps +Pin-Priority: 1 + +Package: chromium* +Pin: release o=LP-PPA-xtradeb-apps +Pin-Priority: 600 +``` +``` +sudo apt update && sudo apt install chromium +``` +Старый пин на Debian удалить. Профиль `~/.config/chromium` остаётся тот же. + +chromium-sandbox (setuid-песочница) можно сносить, если user namespaces разрешены - Chromium сам переходит на них. diff --git a/lts24-lts26-upgrade/dkms не пересобрал модуль после апгрейда b/lts24-lts26-upgrade/dkms не пересобрал модуль после апгрейда new file mode 100644 index 0000000..1ed66c0 --- /dev/null +++ b/lts24-lts26-upgrade/dkms не пересобрал модуль после апгрейда @@ -0,0 +1,17 @@ +Ядро 7.0.0-42 было и на 24.04 (hwe), и на 26.04. Номер тот же, сборка разная (gcc 13 против gcc 15). +DKMS смотрит на номер ядра - раз модуль под 7.0.0-42 уже собран, пересобирать не будет. +Итог после перезагрузки: +``` +vhba: disagrees about version of symbol module_layout +``` + +`dkms install --force` НЕ помогает - берёт старую сборку из `/var/lib/dkms`. +Помогает только удалить и собрать заново: +``` +sudo dkms remove vhba/20260313 -k 7.0.0-42-generic +sudo dkms install vhba/20260313 -k 7.0.0-42-generic +sudo modprobe vhba +``` +В выводе должен быть шаг "Building". Нет его - значит опять взял старое. + +Проверка: `dkms status`, `ls /dev/vhba_ctl`. diff --git a/lts24-lts26-upgrade/ffmpeg из исходников - gnutls not found и lto b/lts24-lts26-upgrade/ffmpeg из исходников - gnutls not found и lto new file mode 100644 index 0000000..5fdd2fc --- /dev/null +++ b/lts24-lts26-upgrade/ffmpeg из исходников - gnutls not found и lto @@ -0,0 +1,37 @@ +Свой статический ffmpeg в ~/bin надо пересобрать под 26.04 - иначе он держит библиотеки 24.04 (x264-164, x265-199, vpx9), и их нельзя удалить. +Конфигурация та же, что была: `~/bin/ffmpeg -buildconf` покажет её. + +Сначала доставить то, что апгрейд снёс: +``` +sudo apt install libvpx-dev libmp3lame-dev libass-dev libunistring-dev +``` + +Грабли 1: +``` +ERROR: gnutls not found using pkg-config +``` +Хотя libgnutls28-dev стоит. В `ffbuild/config.log` видно правду: `cannot find -lunistring`. С `--pkg-config-flags=--static` нужны все зависимости gnutls, а libunistring-dev апгрейд снёс. + +Грабли 2: +``` +ERROR: SvtAv1Enc >= 0.9.0 not found using pkg-config +``` +В логе: `bytecode stream ... generated with LTO version 13.1 instead of the expected 15.1`. +libSvtAv1Enc.a был собран gcc 13 с LTO - внутри не машинный код, а байткод gcc 13. gcc 15 его не ест. Только пересобрать SVT-AV1: +``` +cd ~/ffmpeg_sources/SVT-AV1 && mkdir -p build-2604 && cd build-2604 +cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DCMAKE_BUILD_TYPE=Release -DBUILD_DEC=OFF -DBUILD_SHARED_LIBS=OFF -DSVT_AV1_LTO=ON .. +make -j$(nproc) && make install +``` +Остальные .a проверить, есть ли там LTO: +``` +for a in ~/ffmpeg_build/lib/*.a; do echo "$a $(readelf -S --wide $a | grep -c gnu.lto)"; done +``` +Ноль - пересобирать не надо. + +Мораль: при ошибке configure сразу лезть в `ffbuild/config.log`, сообщение в консоли врёт. + +После сборки проверить, что старых библиотек нет: +``` +ldd ~/bin/ffmpeg | grep -E 'x264.so.164|x265.so.199|vpx.so.9|not found' +``` diff --git a/lts24-lts26-upgrade/lightdm спрашивает имя пользователя b/lts24-lts26-upgrade/lightdm спрашивает имя пользователя new file mode 100644 index 0000000..e1bd245 --- /dev/null +++ b/lts24-lts26-upgrade/lightdm спрашивает имя пользователя @@ -0,0 +1,19 @@ +Раньше в greeter был мой пользователь - только пароль ввести. После 26.04 просит и имя, и пароль. + +lightdm 1.32 принёс `/etc/lightdm/lightdm.conf.d/01_debian.conf`, а там: +``` +greeter-hide-users=true +``` +Свой lightdm.conf я при апгрейде оставил, но это новый файл рядом - его никто не спрашивал. + +Файл пакета не трогать (будут вопросы при обновлениях), а перебить в своём `/etc/lightdm/lightdm.conf` - он читается последним: +``` +sudo sed -i '/^\[Seat:\*\]/a greeter-hide-users=false' /etc/lightdm/lightdm.conf +``` +Проверить, что победило и откуда: +``` +/usr/sbin/lightdm --show-config 2>&1 | grep hide-users +``` +Применится после выхода из сессии или перезагрузки. Перезапускать lightdm из сессии не надо - убьёт все окна. + +Вообще `lightdm --show-config` полезен после любого апгрейда - показывает итоговые настройки и из какого файла каждая. diff --git a/lts24-lts26-upgrade/mono и python3.12 - конфликт файлов при установке b/lts24-lts26-upgrade/mono и python3.12 - конфликт файлов при установке new file mode 100644 index 0000000..e9c8c2e --- /dev/null +++ b/lts24-lts26-upgrade/mono и python3.12 - конфликт файлов при установке @@ -0,0 +1,21 @@ +Два раза наступил на одни и те же грабли. + +Mono: стоял 6.12 из репы mono-project (136 пакетов - по пакету на библиотеку), в 26.04 Ubuntu даёт 6.14 одним пакетом `mono-libraries`. Файлы пересекаются, а apt распаковывает новый РАНЬШЕ, чем удаляет старые. Даже в одной транзакции. dpkg падает, куча пакетов висит ненастроенными. +Python 3.12 с deadsnakes: у deadsnakes для resolute нет `python3.12-minimal`, а `/usr/bin/python3.12` лежит в `python3.12` без Replaces на пакет убунты. Та же история. + +`apt -s` (симуляция) такие конфликты НЕ видит. Вообще. + +Решение одно: сначала удалить старое семейство отдельной командой, потом ставить новое. +``` +sudo apt-get remove <всё старое семейство> +sudo apt-get install <новое> +sudo apt-get -f install +``` +Mono я в итоге снёс целиком - .NET 10 и wine-mono от него не зависят. + +Проверить заранее, перезапишет ли новый пакет чужие файлы: +``` +apt-get download <пакет> +dpkg-deb -c <пакет>.deb | awk '{print $6}' | sed 's|^\.||' | xargs -r dpkg -S 2>/dev/null +``` +Если вылезли пакеты не из того же семейства - будет конфликт. diff --git a/lts24-lts26-upgrade/nvidia - autoremove сносит драйвер b/lts24-lts26-upgrade/nvidia - autoremove сносит драйвер new file mode 100644 index 0000000..e55ee84 --- /dev/null +++ b/lts24-lts26-upgrade/nvidia - autoremove сносит драйвер @@ -0,0 +1,18 @@ +Удалил мета-пакет nvidia-driver-580-open (когда переходил на готовые модули) - и всё, что он тянул, осталось с пометкой "auto". +`apt install` поверх уже стоящего пакета пометку НЕ меняет. Первый же `apt autoremove` снёс бы X-драйвер. И апгрейдер в конце тоже предлагает удалить "ненужное". + +Лечится явной пометкой: +``` +sudo apt-mark manual xserver-xorg-video-nvidia-580 nvidia-utils-580 libnvidia-gl-580 libnvidia-gl-580:i386 libnvidia-decode-580 libnvidia-encode-580 libnvidia-fbc1-580 libnvidia-extra-580 libnvidia-common-580 nvidia-settings nvidia-prime +``` + +После апгрейда та же засада, только с ядром: `linux-generic-hwe-26.04` и `linux-modules-nvidia-580-open-generic-hwe-26.04` стоят как auto и держатся на переходных пакетах hwe-24.04, которые сами в autoremove. Второй autoremove убил бы модуль nvidia. +``` +sudo apt-mark manual linux-generic-hwe-26.04 linux-modules-nvidia-580-open-generic-hwe-26.04 +``` + +Проверять перед КАЖДЫМ autoremove: +``` +apt-get -s autoremove | grep -E 'nvidia|linux-(image|modules|generic)' +``` +Пусто - можно. diff --git a/lts24-lts26-upgrade/nvidia - готовые модули вместо dkms b/lts24-lts26-upgrade/nvidia - готовые модули вместо dkms new file mode 100644 index 0000000..e054e0a --- /dev/null +++ b/lts24-lts26-upgrade/nvidia - готовые модули вместо dkms @@ -0,0 +1,23 @@ +Годами сидел на nvidia-driver-580-open через DKMS и думал, что иначе никак. +А у убунты, оказывается, есть уже собранные модули nvidia под каждое ядро. Из тех же самых исходников, просто собраны Canonical. +Если модуль не патчил - бери готовый. DKMS оставлять только для того, у чего готового нет (у меня это vhba). + +Ставится так (пример для ядра 7.0 на 24.04, на 26.04 то же самое, только hwe-26.04): +``` +sudo apt install linux-generic-hwe-24.04 linux-modules-nvidia-580-open-generic-hwe-24.04 nvidia-headless-no-dkms-580-open nvidia-utils-580 xserver-xorg-video-nvidia-580 +``` +v4l2loopback туда же - тоже есть готовый: +``` +sudo apt install linux-main-modules-v4l2loopback-7.0.0-42-generic +``` +Потом удалить `nvidia-driver-580-open`, `nvidia-dkms-580-open`, `v4l2loopback-dkms`. + +Плюс: новое ядро приходит сразу с модулем. Никакого "ой, DKMS не собрался, сижу в tty". +Минус: версия userspace обязана совпадать с версией модуля. Проверять так: +``` +modinfo -F version nvidia +dpkg-query -W nvidia-utils-580 +``` +Цифры разные - не перезагружаться. + +Перед апгрейдом обкатал ядро 7.0 + модули прямо на 24.04 - X, CUDA, Bluetooth, OpenRGB, Steam. Всё завелось, только после этого полез в do-release-upgrade. diff --git a/lts24-lts26-upgrade/obs portable - пересборка под ffmpeg 8 b/lts24-lts26-upgrade/obs portable - пересборка под ffmpeg 8 new file mode 100644 index 0000000..476e4b4 --- /dev/null +++ b/lts24-lts26-upgrade/obs portable - пересборка под ffmpeg 8 @@ -0,0 +1,11 @@ +Портативный OBS, собранный на 24.04, сидит на FFmpeg 6 (libavcodec.so.60). В 26.04 FFmpeg 8 (so.62), а шестой уходит в autoremove - и OBS вместе с ним. +Пересобрал тем же cmake, что и раньше, просто в новую папку: `release-2604`. + +Нюансы: +- в libobs зашиты абсолютные пути папки установки. Собрал в release-2604 - не переименовывать потом, иначе плагины не найдутся; +- ярлык должен ставить `LD_LIBRARY_PATH` на `.../release-2604/lib`. И `ldd bin/obs` без этой переменной врёт "libobs.so.30 not found" - это нормально; +- старый системный OBS (make install в /usr/local) новый не использует - проверить: +``` +LD_LIBRARY_PATH=$PWD/lib ldd bin/obs | grep -E 'libobs|libav' +``` +Всё из release-2604 и из /usr/lib - значит /usr/local можно чистить. Его надо снести ДО autoremove: autoremove уберёт FFmpeg 6, на котором он висит. diff --git a/lts24-lts26-upgrade/plymouth - лого уменьшается и съезжает влево вверх b/lts24-lts26-upgrade/plymouth - лого уменьшается и съезжает влево вверх new file mode 100644 index 0000000..8007840 --- /dev/null +++ b/lts24-lts26-upgrade/plymouth - лого уменьшается и съезжает влево вверх @@ -0,0 +1,27 @@ +На загрузке лого xubuntu сначала нормальное, по центру, а потом уменьшается и уезжает влево вверх. Будто экран уже 2K, а рисуется всё ещё под 1080. + +Так и есть: +- plymouth стартует на simpledrm - это картинка от UEFI в 1920x1080; +- через пару секунд грузится nvidia-drm и переключает монитор в родные 2560x1440; +- тема-скрипт посчитала центр один раз при старте и больше не пересчитывает. + +Видно по журналу: +``` +journalctl -b -k -o short-monotonic | grep -E 'simpledrm|nvidia-drm' +journalctl -b -o short-monotonic -u plymouth-start +``` +plymouth-start раньше nvidia-drm - оно. + +Лечится ранней загрузкой nvidia - модули в initramfs, тогда plymouth сразу стартует на nvidia в нужном разрешении: +``` +printf 'nvidia\nnvidia_modeset\nnvidia_uvm\nnvidia_drm\n' | sudo tee -a /etc/initramfs-tools/modules +sudo update-initramfs -u +``` +Прошивку GSP и /etc/modprobe.d (modeset=1 и прочее) initramfs заберёт сам. initrd вырастет примерно с 90 до 175 МБ. +Проверка (файл называется через дефис, не через подчёркивание): +``` +lsinitramfs /boot/initrd.img-$(uname -r) | grep -E 'nvidia-drm|gsp_' +``` +Откат - убрать 4 строки и снова update-initramfs. + +Вариант через GRUB (`GRUB_GFXMODE=2560x1440`) работает, только если UEFI видеокарты этот режим умеет. В консоли GRUB (`c`) команда `videoinfo` покажет. diff --git a/lts24-lts26-upgrade/qt-программы под pkexec белые b/lts24-lts26-upgrade/qt-программы под pkexec белые new file mode 100644 index 0000000..06db9cc --- /dev/null +++ b/lts24-lts26-upgrade/qt-программы под pkexec белые @@ -0,0 +1,11 @@ +qdirstat запускаю от root через pkexec - после апгрейда он белый-пребелый, тема Qt не применяется. +pkexec чистит окружение, и `QT_QPA_PLATFORMTHEME` до программы не доходит. А у root своего конфига qt6ct нет. + +Ярлык: +``` +Exec=pkexec env DISPLAY=:0 XAUTHORITY=/home//.Xauthority QT_QPA_PLATFORMTHEME=qt6ct /usr/bin/qdirstat %f +``` +И отдать root свой конфиг: +``` +sudo install -D -m 644 ~/.config/qt6ct/qt6ct.conf /root/.config/qt6ct/qt6ct.conf +``` diff --git a/lts24-lts26-upgrade/ssh-агент пропал в X-сессии b/lts24-lts26-upgrade/ssh-агент пропал в X-сессии new file mode 100644 index 0000000..7392655 --- /dev/null +++ b/lts24-lts26-upgrade/ssh-агент пропал в X-сессии @@ -0,0 +1,9 @@ +После апгрейда `git push` по ssh перестал видеть ключи. `ssh-add -l` - "Could not open a connection to your authentication agent". + +В 26.04 ssh-агент - это `gcr-ssh-agent`, сокет `/run/user//gcr/ssh`. Только вот `SSH_AUTH_SOCK` есть в окружении systemd user, а в X-сессию (lightdm + xfce) не попадает. + +Создал `~/.xsessionrc`: +``` +export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh" +``` +Перезайти в сессию. Проверка: `ssh-add -l`. diff --git a/lts24-lts26-upgrade/v4l2loopback 0.15 - STREAMON EINVAL b/lts24-lts26-upgrade/v4l2loopback 0.15 - STREAMON EINVAL new file mode 100644 index 0000000..af1bc8c --- /dev/null +++ b/lts24-lts26-upgrade/v4l2loopback 0.15 - STREAMON EINVAL @@ -0,0 +1,13 @@ +С v4l2loopback 0.12.7 на 0.15.3 сломалась моя виртуалка-камера (гринскрин на питоне). +``` +VCam format set failed: [Errno 22] Invalid argument +``` +Падало на `VIDIOC_STREAMON`. В 0.15 STREAMON требует сначала REQBUFS, иначе EINVAL. +А для 0.12.7 STREAMON был костылём - без него устройство не "занималось". +В 0.15 `write()` сам занимает устройство, `close()` освобождает. Костыль больше не нужен. + +Решение: STREAMON только для старых версий. Версию модуля брать тут: +``` +cat /sys/module/v4l2loopback/version +``` +Меньше 0.13 - делаем STREAMON, иначе просто пишем кадры через write(). diff --git a/lts24-lts26-upgrade/venv на python 3.12 сдохли b/lts24-lts26-upgrade/venv на python 3.12 сдохли new file mode 100644 index 0000000..383a8ed --- /dev/null +++ b/lts24-lts26-upgrade/venv на python 3.12 сдохли @@ -0,0 +1,26 @@ +В 26.04 `python3` - это 3.14. А venv, созданные на 24.04, внутри выглядят так: +``` +venv/bin/python3 -> /usr/bin/python3 +``` +Т.е. теперь они запускают 3.14, а пакеты лежат в `lib/python3.12/site-packages`. Ничего не импортируется. + +Ставим 3.12 с deadsnakes (см. заметку про конфликт файлов) и переводим ссылку: +``` +readlink venv/bin/python3 > venv/bin/.python3.link-before-2604 +ln -sfn /usr/bin/python3.12 venv/bin/python3 +venv/bin/python -c 'import sys; print(sys.version)' +``` +Всё. Пересоздавать venv и качать заново гигабайты torch не надо. + +Найти все такие venv: +``` +find ~ /opt -xdev -name pyvenv.cfg -exec grep -l 'version *= *3\.12' {} + +``` + +Вентиляторы видеокарты (скрипт на pynvml) - там venv вообще не нужен, есть системный пакет: +``` +sudo apt install python3-pynvml +``` +и запускать скрипт системным python3. + +Чисто на пакетах 26.04 (без pip) torch не получится: python3-torch только CPU, torchvision и pygame-ce в репах нет. diff --git a/lts24-lts26-upgrade/vmware workstation на ядре 7.0 b/lts24-lts26-upgrade/vmware workstation на ядре 7.0 new file mode 100644 index 0000000..99dc02b --- /dev/null +++ b/lts24-lts26-upgrade/vmware workstation на ядре 7.0 @@ -0,0 +1,14 @@ +VMware Workstation 25 на ядре 7.0 не завёлся: `vmware.service` падает на каждой загрузке, модулей vmmon/vmnet нет. +Он собирает их сам из `/usr/lib/vmware/modules/source/*.tar`, не через DKMS, и под 7.0 не собрал. + +Мне он оказался не нужен (машин на диске уже не было, всё давно на qemu), снёс: +``` +sudo vmware-installer -u vmware-workstation +``` +Хвосты после деинсталлятора: +- `/etc/vmware`, `/etc/vmware-installer`, `/etc/vmware-vix`; +- битая ссылка `/usr/bin/vmware-installer`; +- служба `vmware-USBArbitrator` висит в systemd, пока не сделать `sudo systemctl daemon-reload`; +- `~/.vmware`. + +`xserver-xorg-video-vmware` - это драйвер для Linux ВНУТРИ виртуалки VMware, на хосте он не нужен никогда. diff --git a/lts24-lts26-upgrade/апгрейдер молча удаляет твои конфиги b/lts24-lts26-upgrade/апгрейдер молча удаляет твои конфиги new file mode 100644 index 0000000..7637986 --- /dev/null +++ b/lts24-lts26-upgrade/апгрейдер молча удаляет твои конфиги @@ -0,0 +1,23 @@ +do-release-upgrade в конце удаляет "obsolete conffiles" - конфиги, которые больше не принадлежат ни одному пакету. И ему пофиг, что ты их правил. +У меня так ушли: +- `/etc/systemd/zram-generator.conf` - zram стал 4 ГБ lzo-rle вместо моих ram/2 на zstd; +- `/etc/sysctl.conf` (повезло, настройки памяти лежали в `/etc/sysctl.d/`, а там всё цело). + +Вывод: всё своё держать копией в репе/дома и класть в `*.d/` каталоги, а не в главный файл. + +zram вернуть: +``` +[zram0] +zram-size = ram / 2 +compression-algorithm = zstd +swap-priority = 100 +``` +в `/etc/systemd/zram-generator.conf` и перезагрузка. Проверка: `zramctl`. + +На вопросы "Y/I/N/O/D/Z" про конфиги отвечал так: +- то, что правил сам (pulse, grub, ssh, samba, lightdm, pam.d/lightdm, privoxy, sleep.conf, 20auto-upgrades, geoclue) - N; +- автозапуски, которые я удалял из `/etc/xdg/autostart` (orca, at-spi, im-launch, update-notifier, ubuntu-advantage) - тоже N, иначе вернутся; +- не уверен - D, смотришь разницу и решаешь. +Новые версии лежат рядом как `*.dpkg-dist` - потом можно сравнить. + +Удаление устаревших пакетов в конце апгрейда - НЕТ. Там 800+ штук, включая то, что нужно. Разбирал руками через `apt-get -s autoremove`. diff --git a/lts24-lts26-upgrade/звук остаётся на pulseaudio b/lts24-lts26-upgrade/звук остаётся на pulseaudio new file mode 100644 index 0000000..6c56590 --- /dev/null +++ b/lts24-lts26-upgrade/звук остаётся на pulseaudio @@ -0,0 +1,23 @@ +Апгрейд на 26.04 очень хочет пересадить звук на PipeWire. Мне не надо - проблемы со звуком были даже от одного pipewire без pulse-обёртки. +Библиотеки libpipewire/libspa пусть стоят, их приложения тянут. А вот демоны - нафиг. + +До апгрейда: +``` +sudo apt-mark manual pulseaudio pulseaudio-module-jack pulseaudio-module-bluetooth pulseaudio-utils +``` +И запрет `/etc/apt/preferences.d/no-pipewire.pref`: +``` +Package: pipewire pipewire-bin pipewire-pulse wireplumber pipewire-jack pipewire-alsa gstreamer1.0-pipewire libpipewire-0.3-modules ubuntustudio-pipewire-config +Pin: release * +Pin-Priority: -1 +``` +Внимание: в 26.04 `ubuntustudio-pulseaudio-config` - это переходный пакет НА pipewire. Поэтому он тоже в списке. + +При апгрейде на вопрос про `/etc/pulse/default.pa` - N, оставить свой. + +Проверка после: +``` +dpkg -l | grep -E 'pipewire|wireplumber' | grep ^ii +pactl info | grep 'Server Name' +``` +В первой - только lib*, во второй - pulseaudio. diff --git a/lts24-lts26-upgrade/репа CUDA перебивает драйвер убунты b/lts24-lts26-upgrade/репа CUDA перебивает драйвер убунты new file mode 100644 index 0000000..0607e02 --- /dev/null +++ b/lts24-lts26-upgrade/репа CUDA перебивает драйвер убунты @@ -0,0 +1,20 @@ +Если подключена репа CUDA от NVIDIA - она привозит свой драйвер (580.196), а у убунты 580.178. +У обеих приоритет 500, побеждает версия новее, т.е. NVIDIA. Обычный `apt dist-upgrade` поставил бы userspace 580.196 и УДАЛИЛ готовые модули ядра 580.178. Здравствуй, tty. + +Сузить стандартный пин до `cuda-* libcu* nsight*` мало - всё остальное из репы CUDA всё равно идёт с 500. +Надо ещё задавить остальное до 100. `/etc/apt/preferences.d/cuda-repository-pin-600`: +``` +Package: cuda-* libcu* nsight* +Pin: release l=NVIDIA CUDA +Pin-Priority: 600 + +Package: * +Pin: release l=NVIDIA CUDA +Pin-Priority: 100 +``` +Проверка - кандидат должен быть от убунты: +``` +apt-cache policy nvidia-utils-580 | head -4 +``` + +Для 26.04 репа CUDA (`ubuntu2604`) подписана НОВЫМ ключом - ставить свежий cuda-keyring для 2604, со старым ключом apt update ругается. Метка `NVIDIA CUDA` та же, пин работает. diff --git a/lts24-lts26-upgrade/свои пакеты xfce после апгрейда - тиринг вернулся b/lts24-lts26-upgrade/свои пакеты xfce после апгрейда - тиринг вернулся new file mode 100644 index 0000000..48e1a7c --- /dev/null +++ b/lts24-lts26-upgrade/свои пакеты xfce после апгрейда - тиринг вернулся @@ -0,0 +1,20 @@ +После апгрейда в играх вернулся тиринг. Причина простая: апгрейд заменил мой патченый xfwm4 (gpu-compositor) штатным. Thunar и systemload-плагин - туда же. + +Что надо знать, чтобы это не повторялось: +- версия своего пакета БЕЗ тильды и выше штатной: `4.20.0-1build1+gpucomp5`, а не `~gpucomp`. С тильдой любое обновление перебьёт; +- после установки - hold: +``` +sudo apt-mark hold xfwm4 thunar thunar-data xfce4-systemload-plugin +``` +- если пакет зависит от `thunar-data (= 4.20.7-1)` - держать и его, и при обновлении thunar-data пересобирать; +- собирать с `dpkg-deb --root-owner-group`, иначе все файлы в системе будут принадлежать тебе (у меня так годами и было); +- старые .deb не перезаписывать, новую ревизию - новым номером. + +Thunar из git-дерева не собирался: +``` +No rule to make target 'thunar-marshal.c' +``` +В тарболе этот файл уже сгенерирован, а в git нет. Надо `./autogen.sh --enable-maintainer-mode`. + +Патчи держать в git (у меня форки на своём Forgejo), тогда перенос на новую версию - это cherry-pick, а не ковыряние руками. +Forgejo не принимает push из shallow-клона - делал отдельную цепочку коммитов от дерева upstream (git commit-tree).