Перед обновлением: $ ls -l /etc/libnvidiacurrent/libEGL.so -rw-r--r-- 1 root root 987736 мар 3 11:08 /etc/libnvidiacurrent/libEGL.so $ hexdump /etc/libnvidiacurrent/libEGL.so|head 0000000 457f 464c 0102 0001 0000 0000 0000 0000 0000010 0003 003e 0001 0000 4240 0002 0000 0000 ... $ sudo update-kernel Running kernel version: kernel-image-std-def-2:5.10.29-alt1 Checking for available std-def kernel packages... пакет kernel-image-std-def-2:5.10.35-alt1:sisyphus+271317.100.1.1@1620400388 не установлен Try to install new kernel kernel-image-std-def-2:5.10.35-alt1:sisyphus+271317.100.1.1@1620400388 and update its modules [y]/n? update-kernel: kernel-modules-drm is installed, trying to update... update-kernel: kernel-modules-nvidia is installed, trying to update... update-kernel: kernel-modules-virtualbox is installed, trying to update... Чтение списков пакетов... Завершено Построение дерева зависимостей... Завершено Следующие НОВЫЕ пакеты будут установлены: kernel-image-std-def#2:5.10.35-alt1:sisyphus+271317.100.1.1@1620400388 kernel-modules-drm-std-def#2:5.10.35-alt1:sisyphus+271317.100.1.1@1620400070 kernel-modules-nvidia-std-def#460.73.01-alt1.330275.1:sisyphus+271317.2500.1.1@1620401518 kernel-modules-virtualbox-std-def#6.1.20-alt1.330275.1:sisyphus+271317.4600.1.1@1620402263 0 будет обновлено, 4 новых установлено, 0 пакетов будет удалено и 0 не будет обновлено. Необходимо получить 0B/111MB архивов. После распаковки потребуется дополнительно 493MB дискового пространства. Совершаем изменения... Подготовка... #################################################################################################### [100%] Обновление / установка... 1: kernel-image-std-def-2:5.10.35-alt1 #################################################################################################### [ 25%] 2: kernel-modules-drm-std-def-2:5.10.35-alt1 #################################################################################################### [ 50%] 3: kernel-modules-nvidia-std-def-460.73.01-alt1.33#################################################################################################### [ 75%] 4: kernel-modules-virtualbox-std-def-6.1.20-alt1.3#################################################################################################### [100%] [00:00:00] Config file: /etc/initrd.mk [00:00:01] Generating module dependencies on host ... [00:00:05] Creating initrd image ... initrd-put: copy_file_range: /etc/libnvidiacurrent/libEGL.so -> /etc/libnvidiacurrent/libEGL.so: Invalid argument make[2]: *** [/usr/share/make-initrd/mk/make-initrd.mk:101: create] Ошибка 123 make[1]: *** [/usr/share/make-initrd/mk/make-initrd.mk:167: process-config] Ошибка 2 make: *** [/usr/share/make-initrd/mk/make-initrd.mk:157: all] Ошибка 1 Generating grub configuration file ... Found theme: /boot/grub/themes/workstation/theme.txt Found background image: /usr/share/plymouth/themes/workstation/grub.jpg Found linux image: /boot/vmlinuz-5.10.35-std-def-alt1 Found linux image: /boot/vmlinuz Found initrd image: /boot/initrd.img Found linux image: /boot/vmlinuz-std-def skipping symlink: /boot/vmlinuz-std-def Found linux image: /boot/vmlinuz-5.10.29-std-def-alt1 Found initrd image: /boot/initrd-5.10.29-std-def-alt1.img Found linux image: /boot/vmlinuz-5.4.91-std-def-alt1 Found initrd image: /boot/initrd-5.4.91-std-def-alt1.img Found linux image: /boot/vmlinuz-5.4.80-std-def-alt1 Found initrd image: /boot/initrd-5.4.80-std-def-alt1.img Found memtest image: memtest-5.31b.bin done Завершено. ldconfig: /etc/libnvidiacurrent/libEGL.so не является файлом в формате ELF — неправильная сигнатура в начале. ldconfig: /etc/libnvidiacurrent/libEGL.so.1 не является файлом в формате ELF — неправильная сигнатура в начале. $ ls -l /etc/libnvidiacurrent/libEGL.so -rw-r--r-- 1 root root 987736 мая 16 11:43 /etc/libnvidiacurrent/libEGL.so $ hexdump /etc/libnvidiacurrent/libEGL.so|head 0000000 0000 0000 0000 0000 0000 0000 0000 0000 * 00f1250 0000 0000 0000 0000 00f1258 Файлы легко восстанавливаются после $ sudo apt-get reinstall nvidia_glx_340.108
Вообще конкретно достало, что регулярно ломается изображение в Google Chrome и Skype после срабатывания хранителя экрана, либо засыпания и дальнейшего просыпания. После перезапуска все хорошо до следующего хранителя экрана или засыпания. А иногда отваливается и сам хранитель, экран тупо перестает гаснуть по времени. Грешил на все: на сам Хром, на его плагины, на аппаратуру, на версию ядра. Сегодня решил попробовать таки перейти на nouveau, и сразу обнаружил вот это. Теперь уже точно nvidia не запустится.
И да, после перехода на nouveau проблемы в самом деле ушли
Но перестало работать выключение экрана :-)
> ldconfig: /etc/libnvidiacurrent/libEGL.so не является файлом в формате ELF — > неправильная сигнатура в начале. Я вообще слабо понимаю, как такое может быть. Я нигде сами файлы не трогаю. Эта проблема иногда вылазит при обновлении vlc и libgdk-pixbuf, когда они в post запускает обновление кэша модулей, которые подгружают и обламываются на том, что слинкован с libGL, который в тот момент от nvidia.
В /etc/libnvidiacurrent/ симлинки все упакованные, непереключаемые и указывают только на соседние файлы. Переключается только сам симлинк на каталог -- /etc/libnvidiacurrent .
(Ответ для Sergey V Turchin на комментарий #5) > В /etc/libnvidiacurrent/ симлинки все упакованные, непереключаемые и > указывают только на соседние файлы. Переключается только сам симлинк на > каталог -- /etc/libnvidiacurrent . а в какой момент переключается этот симлинк на каталог?
(In reply to Anton V. Boyarshinov from comment #6) > (Ответ для Sergey V Turchin на комментарий #5) > > В /etc/libnvidiacurrent/ симлинки все упакованные, непереключаемые и > > указывают только на соседние файлы. Переключается только сам симлинк на > > каталог -- /etc/libnvidiacurrent . > > а в какой момент переключается этот симлинк на каталог? А! Кажется, понял. Возможно, это битые файлы в самом /usr/X11R6/lib64/nvidia_0/, куда переключается libnvidiacurrent. Тогда да, проблема в самом драйвере, получается.
(In reply to Sergey V Turchin from comment #5) > В /etc/libnvidiacurrent/ симлинки все упакованные, непереключаемые и > указывают только на соседние файлы. Переключается только сам симлинк на > каталог -- /etc/libnvidiacurrent . Еще страньше. Только что, на новом ядре, поставил заново драйвера nvidia, все поднялось и без ошибок. Так что воспроизвести ситуацию не получилось. Вечером попробую повторить на экспериментальном ноуте.
(Ответ для Eugine V. Kosenko на комментарий #8) > воспроизвести ситуацию не получилось В этом и есть самая большая проблема.
(Ответ для Anton V. Boyarshinov на комментарий #6) > а в какой момент переключается этот симлинк на каталог? В момент обновления пакетов nvidia, когда в их %post определили, что нужно переключить для _текущего_ ядра. После такого и ldconfig запускается сразу.
> когда в их %post определили, что нужно переключить для _текущего_ ядра. git.altlinux.org/gears/n/nvidia_glx_common.git?p=nvidia_glx_common.git;a=blob;f=set_gl_nvidia/preset.c#l416 Возможно, тут не надо всегда надо пересоздавать /etc/libnvidiacurrent. Делаю на всякий для восстановления. Не особо представляю, как может повлиять. Но, оно и ранее воспроизводилось, когда совсем не было /etc/libnvidiacurrent . > После такого и ldconfig запускается сразу. git.altlinux.org/gears/n/nvidia_glx_common.git?p=nvidia_glx_common.git;a=blob;f=set_gl_nvidia/preset.c#l557
> не надо всегда надо пересоздавать не надо всегда пересоздавать
(In reply to Sergey V Turchin from comment #9) > (Ответ для Eugine V. Kosenko на комментарий #8) > > воспроизвести ситуацию не получилось > В этом и есть самая большая проблема. Да, беда. На экспериментальном ноуте тоже уже были полностью удалены драйвера nvidia, и поставить их можно теперь только для последнего ядра. После установки все работает, как часики. Жаль, я сразу не проверил, куда смотрит сам libnvidiacurrent. Возможно, у меня в самом деле где-то мусор завалялся, и он туда упорно переключался. Пока могу порекомендовать как решение этой проблемы, полный снос всех драйверов nvidia и переустановку их с нуля. Ну и еще есть вариант, что проблема проявится при следующем обновлении ядра.
Каким-то образом иногда портятся файлы библиотек. Например https://t.me/alt_linux/114424 : rpm -V nvidia_glx_340.108 ..5....T. /usr/lib64/nvidia_340.108/libEGL.so ..5....T. /usr/lib64/nvidia_340.108/libGL.so
А не может ли где-то колбасить из-за того, что a) файлы lib*.so, а симлинки lib*.so.X.Y ? b) в /etc/ld.so.cond.d/* указан список каталогов, в которых лежат одноимённые файлы для 64 и для 32-бит?
Если вдруг prelink используется, нужно прекратить.
(Ответ для Sergey V Turchin на комментарий #14) > Каким-то образом иногда портятся файлы библиотек. > > Например https://t.me/alt_linux/114424 : > rpm -V nvidia_glx_340.108 > ..5....T. /usr/lib64/nvidia_340.108/libEGL.so > ..5....T. /usr/lib64/nvidia_340.108/libGL.so Как-то это совсем некрасиво выглядит, да.. Как бы отловить это "иногда"?...