LINUX.ORG.RU

NVIDIA(GPU-0): Failed to acquire modesetting permission

 , , ,


1

3

Всем здравствуйте.

Пытаюсь настроить X11 в современном Devuan Linux 5 (Daedalus), дабы всё работало через закрытый драйвер nVidia.

Видеоплата старая, GeForce GTX 560 Ti. Драйвер, соответственно, тоже старый (v390). Загрузка через BIOS (он же CSM).

В старом Debian Linux (кажется, там был Squeeze, т.е. версия ~2014 года) ровно та же конфигурация с ровно теми же настройками работает.

В новой версии Devuan при запуске X11 вижу следующее:

[   315.961] (II) xfree86: Adding drm device (/dev/dri/card0)
[   315.961] (II) Platform probe for /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0
[   315.961] (II) seatd_libseat try open graphics /dev/dri/card0
[   315.961] (DB) [libseat/backend/logind.c:161] DRM device opened, current total: 1
[   315.961] (II) seatd_libseat opened graphics: /dev/dri/card0 (13:13)
[   315.962] (--) PCI:*(1@0:0:0) 10de:1200:1043:8390 rev 161, Mem @ 0xf2000000/33554432, 0xe0000000/134217728, 0xe8000000/67108864, I/O @ 0x0000e000/128, BIOS @ 0x????????/131072
[   315.962] (II) LoadModule: "glx"
[   315.963] (II) Loading /usr/lib/xorg/modules/linux/libglx.so
[   315.965] (II) Module glx: vendor="NVIDIA Corporation"
[   315.965] 	compiled for 4.0.2, module version = 1.0.0
[   315.965] 	Module class: X.Org Server Extension
[   315.965] (II) NVIDIA GLX Module  390.157  Wed Oct 12 09:19:15 UTC 2022
[   315.965] (II) LoadModule: "nvidia"
[   315.965] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[   315.966] (II) Module nvidia: vendor="NVIDIA Corporation"
[   315.966] 	compiled for 4.0.2, module version = 1.0.0
[   315.966] 	Module class: X.Org Video Driver
[   315.966] (II) NVIDIA dlloader X Driver  390.157  Wed Oct 12 09:21:41 UTC 2022
[   315.966] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[   315.966] (II) Loading sub module "fb"
[   315.966] (II) LoadModule: "fb"
[   315.966] (II) Module "fb" already built-in
[   315.966] (II) Loading sub module "wfb"
[   315.966] (II) LoadModule: "wfb"
[   315.966] (II) Loading /usr/lib/xorg/modules/libwfb.so
[   315.966] (II) Module wfb: vendor="X.Org Foundation"
[   315.966] 	compiled for 1.21.1.7, module version = 1.0.0
[   315.966] 	ABI class: X.Org ANSI C Emulation, version 0.4
[   315.966] (II) Loading sub module "ramdac"
[   315.966] (II) LoadModule: "ramdac"
[   315.966] (II) Module "ramdac" already built-in
[   315.966] (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
[   315.966] (==) NVIDIA(0): RGB weight 888
[   315.966] (==) NVIDIA(0): Default visual is TrueColor
[   315.966] (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
[   315.966] (**) NVIDIA(0): Enabling 2D acceleration
[   315.967] (--) NVIDIA(0): Valid display device(s) on GPU-0 at PCI:1:0:0
[   315.967] (--) NVIDIA(0):     CRT-0
[   315.967] (--) NVIDIA(0):     CRT-1
[   315.967] (--) NVIDIA(0):     DFP-0 (boot)
[   315.967] (--) NVIDIA(0):     DFP-1
[   315.967] (--) NVIDIA(0):     DFP-2
[   315.968] (II) NVIDIA(0): NVIDIA GPU GeForce GTX 560 Ti (GF114) at PCI:1:0:0 (GPU-0)
[   315.968] (--) NVIDIA(0): Memory: 1048576 kBytes
[   315.968] (--) NVIDIA(0): VideoBIOS: 70.24.11.00.01
[   315.968] (II) NVIDIA(0): Detected PCI Express Link width: 16X
[   315.968] (EE) NVIDIA(GPU-0): Failed to acquire modesetting permission.
[   315.968] (EE) NVIDIA(0): Failing initialization of X screen 0

Замена nvidia на fbdev или vesa ни к чему хорошему не приводит.

На старте используется vesafb, но выключение оного с переходом в 80x25 тоже ни на что не влияет:

$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.1.0-38-amd64 root=/dev/mapper/... ro vga=0x31b video=vesafb:mtrr:3,ywrap

Поведение идентично в ядрах версий 6.1 и 5.10, так что это непохоже на проблемы совместимости старых драйверов с новыми ядрами.

Предвосхищая вопросы, добавлю, что

  1. nouveau внесён в чёрный список и
  2. nvidia_drm использует KMS.

Как лечить?

★★★★★

Последнее исправление: Bass (всего исправлений: 3)

6.1.0-38

мля, как я ненавижу эту дебилиановскую нумерацию версий ядра… какая это версия по-человечески?

проверь, не напихали ли туда девуанщики каких левых патчей, как в арче.

anonymous
()
Ответ на: комментарий от anonymous
$ find /dev/dri | xargs ls -ld
drwxr-xr-x 3 root root       100 авг 26 03:40 /dev/dri
drwxr-xr-x 2 root root        80 авг 26 03:40 /dev/dri/by-path
lrwxrwxrwx 1 root root         8 авг 26 03:40 /dev/dri/by-path/pci-0000:01:00.0-card -> ../card0
lrwxrwxrwx 1 root root        13 авг 26 03:40 /dev/dri/by-path/pci-0000:01:00.0-render -> ../renderD128
crw-rw---- 1 root video 226,   0 авг 26 03:40 /dev/dri/card0
crw-rw-rw- 1 root video 226, 128 авг 26 03:40 /dev/dri/renderD128

Пользователь добавлен в группу video (но и при запуске «иксов» от рута ровно та же история), т.е. проблема не в правах.

Bass ★★★★★
() автор топика
Последнее исправление: Bass (всего исправлений: 1)
Ответ на: комментарий от PunkPerson
$ lsmod | grep -E 'nvidia|nouveau'
nvidia_uvm            954368  0
nvidia_drm             53248  0
drm_kms_helper        212992  1 nvidia_drm
drm                   614400  3 drm_kms_helper,nvidia_drm
nvidia_modeset       1060864  1 nvidia_drm
nvidia              15896576  2 nvidia_uvm,nvidia_modeset
ipmi_msghandler        77824  2 ipmi_devintf,nvidia
video                  65536  2 nvidia,asus_wmi

Полностью здесь.

Bass ★★★★★
() автор топика

Failed to acquire modesetting permission вообще эта ошибка означает, что какой-то процесс уже открыл /dev/dri/card0 и стал KMS мастером, а процесс Xorg стать KMS мастером из-за этого не может. Может попробовать поискать процесс открывший /dev/dri/card0? fuser -vu /dev/dri/card0.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

какой-то процесс уже открыл

Это один из вариантов.

LamerOk ★★★★★
()
Ответ на: комментарий от PunkPerson
Tue Aug 26 21:51:58 2025       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 390.157                Driver Version: 390.157                   |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 560 Ti  Off  | 00000000:01:00.0 N/A |                  N/A |
| 14%   28C   P12    N/A /  N/A |      0MiB /   959MiB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0                    Not Supported                                       |
+-----------------------------------------------------------------------------+
Bass ★★★★★
() автор топика
Ответ на: комментарий от iliyap

Ни /dev/dri/card0, ни /dev/dri/renderD128 не используются ни одним из процессов.

Bass ★★★★★
() автор топика

Возможно тебе будет лень, но я бы попробовал сначала найти на какой версии дистра это началось, а потом проверить виновно ли ядро или иксы (ставя разные ядра). Или может быть виновен вообще конфиг.

firkax ★★★★★
()

И кстати откуда 390й драйвер в daedalus-е который bookworm? Если он из unstable то может быть в этом и дело?

firkax ★★★★★
()
Ответ на: комментарий от firkax

Да, сейчас таки буду ставить разные ядра и выяснять бинарным поиском. На 2.6 и 3.2 всё работало.

390-й драйвер установлен из 4-й версии Devuan (Chimaera). Из Daedalus его выкинули, ибо nVidia прекратила поддержку.

Bass ★★★★★
() автор топика
Последнее исправление: Bass (всего исправлений: 1)
Ответ на: комментарий от LongLiveUbuntu

Не подходит.

Там двойной загрузкой стоит Оффтопик XP (потому и BIOS, собственно), и она нужна как раз на голом железе.

А последнее, что XP поддерживала — это GTX 980 Ti.

У меня такая железка тоже есть, поэтому в перспективе буду ставить либо GTX 980, либо GT 730 с пассивным охлаждением.

Но что-то подсказывает мне, что проблемы с X11 в Linux от замены видеоплаты не зависят.

Bass ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Очень весомый аргумент за то чтоб это поделие не покупать. За 30к можно 3-4 компа собрать, а тут один адаптер видеоразъёма почему- то столько стоит.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Адаптер - это ускоритель Voodoo, а тут и кодирование видео и декодирование видео и обработка шейдеров и освещение и искуственный интеллект и поддержка расчетов, чёрта лысого только нет.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Ты у автора спросил нужно ли ему это всё?

Не работающие иксы = не получается вывести гуи картинку на монитор.

firkax ★★★★★
()
Ответ на: комментарий от Bass

По-моему стоит не только ядра проверять но и иксы и nvidia-драйвер (390й из разных релизов).

Если что, у меня на chimaera всё работает

ii  linux-image-5.10.0-31-amd64                    5.10.221-1                         amd64        Linux 5.10 for 64-bit PCs (signed)
ii  nvidia-legacy-390xx-alternative                390.157-1~deb11u1                  amd64        allows the selection of NVIDIA as GLX provider (390xx legacy version)
ii  nvidia-legacy-390xx-driver                     390.157-1~deb11u1                  amd64        NVIDIA metapackage (390xx legacy version)
ii  nvidia-legacy-390xx-driver-bin                 390.157-1~deb11u1                  amd64        NVIDIA driver support binaries (390xx legacy version)
ii  nvidia-legacy-390xx-driver-libs-nonglvnd:amd64 390.157-1~deb11u1                  amd64        NVIDIA metapackage (non-GLVND OpenGL/GLX/EGL/GLES libraries) (390xx legacy)
ii  nvidia-legacy-390xx-driver-libs-nonglvnd:i386  390.157-1~deb11u1                  i386         NVIDIA metapackage (non-GLVND OpenGL/GLX/EGL/GLES libraries) (390xx legacy)
ii  nvidia-legacy-390xx-egl-icd:amd64              390.157-1~deb11u1                  amd64        NVIDIA EGL installable client driver (ICD)
ii  nvidia-legacy-390xx-egl-icd:i386               390.157-1~deb11u1                  i386         NVIDIA EGL installable client driver (ICD)
ii  nvidia-legacy-390xx-kernel-dkms                390.157-1~deb11u1                  amd64        NVIDIA binary kernel module DKMS source (390xx legacy version)
ii  nvidia-legacy-390xx-kernel-support             390.157-1~deb11u1                  amd64        NVIDIA binary kernel module support files (390xx legacy version)
ii  nvidia-legacy-390xx-smi                        390.157-1~deb11u1                  amd64        NVIDIA System Management Interface (390xx legacy version)
ii  nvidia-legacy-390xx-vdpau-driver:amd64         390.157-1~deb11u1                  amd64        Video Decode and Presentation API for Unix - NVIDIA driver (390xx legacy)
ii  nvidia-legacy-390xx-vdpau-driver:i386          390.157-1~deb11u1                  i386         Video Decode and Presentation API for Unix - NVIDIA driver (390xx legacy)
ii  nvidia-modprobe                                470.182.03-1                       amd64        utility to load NVIDIA kernel modules and create device nodes
ii  nvidia-support                                 20151021+13                        amd64        NVIDIA binary graphics driver support files
ii  nvidia-xconfig                                 470.103.01-1~deb11u1               amd64        deprecated X configuration tool for non-free NVIDIA drivers
ii  xserver-xorg-video-nvidia-legacy-390xx         390.157-1~deb11u1                  amd64        NVIDIA binary Xorg driver (390xx legacy version)

Комбинация «nvidia от другого релиза» всё-таки вызывает сомнения. Могли и в юзерспейсе что-то сломать в иксовой части драйвера.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от LongLiveUbuntu

Нет не снята. 390-й драйвер официально и мою GT610 поддерживает.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Спасибо.

Да, здесь несколько степеней свободы.

И, похоже, дело не в ядре (или не только в ядре). Ибо на достаточно старом 4.9 (от ASCII или Beowulf, не помню) не взлетело ровно так же, как и на 5.x/6.x.

Bass ★★★★★
() автор топика
Ответ на: комментарий от Bass

Может просто грузить драйвер nvidia_drm.ko с параметром modeset=0? И будет по старинке, без всяких /dev/dri/card0 и ошибок Failed to acquire modesetting permission.

iliyap ★★★★★
()
Ответ на: комментарий от LamerOk

Спасибо, но обсуждение (и патч) касаются случая загрузки через EFI и отсутствия efifb.

У меня загрузка через BIOS, и /dev/fb0 создаётся средствами vesafb.

Bass ★★★★★
() автор топика
Ответ на: комментарий от iliyap

Илья, спасибо, попробую.

Bass ★★★★★
() автор топика
Ответ на: комментарий от Bass

обсуждение (и патч) касаются случая загрузки через EFI и отсутствия efifb.

Я так понял, проблема несколько в другом:

the kernel is using simpledrm which is not supported with the NVIDIA drivers

Вот похожая история. Там пропатчили драйвера и пришли к успеху.

LamerOk ★★★★★
()
Ответ на: комментарий от firkax

Разве нет?

Если я верно понял тред, simpledrm в ядре искаробки и дистры накатывали патч, чтобы невидия с ним работала.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

В общем, спустя две недели пришёл к успеху и я.

Из коробки работают (чистые, без патчей) ядра следующих версий:

  • 4.9.337
  • 4.19.325
  • 5.10.242
  • 6.1.150

Более ранние ядра (для имитации оргазма Debian Squeeze) — 2.6.32.71, 3.2.102, 3.16.85, 3.18.140 — я собрал (предварительно собрав старые версии GCC), но загрузиться с них не смог.

Что характерно, и в прилетевшем с обновлением штатном дебиановском ядре 6.1.148 всё работает.

И драйвера Nvidia прекрасно совместимы и с текстовой консолью, и с vesafb. В чём была причина исходных проблем – неведомо, ситуацию воспроизвести уже не могу.

Что ксается KMS, то единственным индикатором его включения (помимо /proc/cmdline и параметров загруженного модуля nvidia_drm) является некоторое падение «попугаев» в glmark2 – c 1455 до 1425.

Единственное, что не работает с драйверами 390-й версии – это программы, зависящие от libEGL.so.1, напр., xscreensaver (glsnake: eglCreatePlatformWindowSurface failed: window 0xe00002 visual 0x24). Но это я надеюсь исправить переходом с GTX 560 на GTX 960 и обновлением драйверов.

Однако, проблему можно считать решённой. Всем спасибо.

Bass ★★★★★
() автор топика
Последнее исправление: Bass (всего исправлений: 4)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.