[Решено]: Гибридная графика и bumblebee

Автор intervision, 23 июля 2019, 15:35:32

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

intervision

Не получается завести на ноуте поддержку гибридной графики под debian 10.

Имеем следующее:

ОСь
Debian 10


> cat /etc/*release*
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"


Подключенные репы


# deb cdrom:[Debian GNU/Linux 10.0.0 _Buster_ - Official amd64 NETINST 20190706-10:23]/ buster main

deb http://deb.debian.org/debian/ stable main non-free contrib
deb-src http://deb.debian.org/debian/ stable main non-free contrib

deb http://security.debian.org/debian-security/ stable/updates main contrib non-free
deb-src http://security.debian.org/debian-security/ stable/updates main contrib non-free

deb http://deb.debian.org/debian/ stable-updates main contrib non-free
deb-src http://deb.debian.org/debian/ stable-updates main contrib non-free

deb http://deb.debian.org/debian/ buster-backports main non-free contrib
deb-src http://deb.debian.org/debian/ buster-backports main non-free contrib


# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.


На бэкпорты не обращайте внимания - мне оттуда нужен был evolution-ews по работе.

Граф. среда

Cinnamon

> cinnamon --version
Cinnamon 3.8.8


Оборудование
Графика

lspci | egrep -i "3d|vga"
00:02.0 VGA compatible controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display (rev 0e)
01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev a1)



"Уже не актуально"
С проприетарными дровами, которые ставятся по зависимостям с bumblebee-nvidia крашится cinnamon после ввода логина и пароля с ошибкой о том, что работает в резервном режиме и предложением перезапустить. Естественно не помогает ему перезапуск.

С открытыми дровами стартится, но...
При попытке вызвать optirun выдает следующее:


optirun glxinfo
[  932.907258] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) NOUVEAU(0): [drm] failed to set drm interface version.

[  932.907370] [ERROR]Aborting because fallback start is disabled.


вывод cat /etc/bumblebee/xorg.conf.nvidia

Section "ServerLayout"
    Identifier  "Layout0"
    Option      "AutoAddDevices" "false"
    Option      "AutoAddGPU" "false"
EndSection

Section "Device"
    Identifier  "DiscreteNvidia"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"

    Option "NoLogo" "true"
    Option "UseEDID" "false"
    Option "UseDisplayDevice" "none"
EndSection


Добавление туда


Section "Screen"
    Identifier "Default Screen"
    Device "DiscreteNvidia"
EndSection


Не помогает и ошибка остается абсолютно такой же

libdrm установлен (libdrm2, libdrm-common, libdrm-nouveau2)

dmesg | grep -i drm
[    4.002908] [drm] Replacing VGA console driver
[    4.003620] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    4.003621] [drm] Driver supports precise vblank timestamp query.
[    4.110514] [drm] Initialized i915 1.6.0 20180719 for 0000:00:02.0 on minor 0
[    4.125057] fbcon: inteldrmfb (fb0) is primary device
[    5.420198] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
[  125.327798] nouveau 0000:01:00.0: DRM: VRAM: 1024 MiB
[  125.327810] nouveau 0000:01:00.0: DRM: GART: 1048576 MiB
[  125.327828] nouveau 0000:01:00.0: DRM: Pointer to TMDS table invalid
[  125.327852] nouveau 0000:01:00.0: DRM: DCB version 4.0
[  125.332165] nouveau 0000:01:00.0: DRM: MM: using COPY0 for buffer copies
[  125.332190] [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 1


syslog постоянно раздувают ошибки:


Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390398] [ERROR][XORG] (EE) NOUVEAU(0): [drm] error opening the drm
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390431] [ERROR][XORG] (EE) NOUVEAU(0): 910:
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390468] [ERROR][XORG] (EE) Screen(s) found, but none have a usable configuration.
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390498] [ERROR][XORG] (EE)
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390545] [ERROR][XORG] (EE) no screens found(EE)
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390577] [ERROR][XORG] (EE)
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390613] [ERROR][XORG] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390642] [ERROR][XORG] (EE)
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.390676] [ERROR][XORG] (EE) Server terminated with error (1). Closing log file.
Jul 23 15:49:09 TWR-NB bumblebeed[4417]: [ 1896.392158] [ERROR]X did not start properly



/var/log/Xorg.8.log

[  1812.355] (EE)
Fatal server error:
[  1812.355] (EE) no screens found(EE)
[  1812.355] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
[  1812.355] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
[  1812.355] (EE)
[  1812.356] (EE) Server terminated with error (1). Closing log file.
[свернуть]

Актуальные данные

С момента прошлого поста было вкинуто в ноут:

  • оперативки с 2 до 8 ггов
  • Заменен хард на SSD
  • переустановлена система с х32 на х64 (из netinstall)

Ставим все с нуля. следов нвидии нет.
Проверяем:

[~] root@twrnb > dpkg -l | grep -i nvidia
[~] root@twrnb >


Ставим


> apt-get install nvidia-driver
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
  dkms glx-alternative-mesa glx-alternative-nvidia glx-diversions libegl-nvidia0 libgl1-nvidia-glvnd-glx libgles-nvidia1 libgles-nvidia2 libgles1 libglx-nvidia0
  libnvidia-cbl libnvidia-cfg1 libnvidia-eglcore libnvidia-fatbinaryloader libnvidia-glcore libnvidia-glvkspirv libnvidia-ml1 libnvidia-ptxjitcompiler1 libnvidia-rtcore
  libopengl0 libxnvctrl0 linux-headers-amd64 nvidia-alternative nvidia-driver-bin nvidia-driver-libs nvidia-egl-common nvidia-egl-icd nvidia-installer-cleanup
  nvidia-kernel-common nvidia-kernel-dkms nvidia-kernel-support nvidia-legacy-check nvidia-modprobe nvidia-persistenced nvidia-settings nvidia-support
  nvidia-vdpau-driver nvidia-vulkan-common nvidia-vulkan-icd update-glx xserver-xorg-video-nvidia
Предлагаемые пакеты:
  python3-apport menu
Рекомендуемые пакеты:
  nvidia-driver-libs-i386
Следующие НОВЫЕ пакеты будут установлены:
  dkms glx-alternative-mesa glx-alternative-nvidia glx-diversions libegl-nvidia0 libgl1-nvidia-glvnd-glx libgles-nvidia1 libgles-nvidia2 libgles1 libglx-nvidia0
  libnvidia-cbl libnvidia-cfg1 libnvidia-eglcore libnvidia-fatbinaryloader libnvidia-glcore libnvidia-glvkspirv libnvidia-ml1 libnvidia-ptxjitcompiler1 libnvidia-rtcore
  libopengl0 libxnvctrl0 linux-headers-amd64 nvidia-alternative nvidia-driver nvidia-driver-bin nvidia-driver-libs nvidia-egl-common nvidia-egl-icd
  nvidia-installer-cleanup nvidia-kernel-common nvidia-kernel-dkms nvidia-kernel-support nvidia-legacy-check nvidia-modprobe nvidia-persistenced nvidia-settings
  nvidia-support nvidia-vdpau-driver nvidia-vulkan-common nvidia-vulkan-icd update-glx xserver-xorg-video-nvidia
Обновлено 0 пакетов, установлено 42 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 49,3 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 175 MB.
Хотите продолжить? [Д/н] y


Ага...


Настраивается xserver-xorg-video-nvidia ├────────────────────────────────────────┐
                      │                                                                                                                           │
                      │ Загружен конфликтующий модуль ядра nouveau                                                                                │
                      │                                                                                                                           │
                      │ В данный момент в систему загружен свободный модуль ядра nouveau, который конфликтует с несвободным модулем ядра nvidia.  │
                      │                                                                                                                           │
                      │ Чтобы исправить это, просто перезапустите компьютер после завершения установки.                                           │
                      │                                                                                                                           │
                      │                                                          <Ok>   


Норм..

В процессе установки видим следующее:
Это и станет будущей проблемой

Job for nvidia-persistenced.service failed because the control process exited with error code.
See "systemctl status nvidia-persistenced.service" and "journalctl -xe" for details.


Там же далее получаем вот такой неприятный момент

DKMS: install completed.
Настраивается пакет nvidia-driver (418.74-1) ...
Обрабатываются триггеры для libc-bin (2.28-10) ...
Обрабатываются триггеры для initramfs-tools (0.133) ...
update-initramfs: Generating /boot/initrd.img-4.19.0-5-amd64
W: Possible missing firmware /lib/firmware/nvidia/gv100/sec2/sig.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/sec2/image.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/sec2/desc.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/nvdec/scrubber.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/sw_method_init.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/sw_bundle_init.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/sw_nonctx.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/sw_ctx.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/gpccs_sig.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/gpccs_data.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/gpccs_inst.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/gpccs_bl.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/fecs_sig.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/fecs_data.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/fecs_inst.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/gr/fecs_bl.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/acr/ucode_unload.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/acr/ucode_load.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/acr/unload_bl.bin for module nouveau
W: Possible missing firmware /lib/firmware/nvidia/gv100/acr/bl.bin for module nouveau


Следом за этим делаем


> apt-get install bumblebee-nvidia primus
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  libopengl0 nvidia-egl-common nvidia-egl-icd
Для их удаления используйте «apt autoremove».
Будут установлены следующие дополнительные пакеты:
  bbswitch-dkms bumblebee libegl1-nvidia libgl1-nvidia-glx nvidia-driver-libs-nonglvnd nvidia-nonglvnd-vulkan-common nvidia-nonglvnd-vulkan-icd primus-libs socat
Рекомендуемые пакеты:
  nvidia-driver-libs-nonglvnd-i386 primus-libs-ia32
Следующие пакеты будут УДАЛЕНЫ:
  libgl1-nvidia-glvnd-glx nvidia-driver-libs nvidia-vulkan-common nvidia-vulkan-icd
Следующие НОВЫЕ пакеты будут установлены:
  bbswitch-dkms bumblebee bumblebee-nvidia libegl1-nvidia libgl1-nvidia-glx nvidia-driver-libs-nonglvnd nvidia-nonglvnd-vulkan-common nvidia-nonglvnd-vulkan-icd primus
  primus-libs socat
Обновлено 0 пакетов, установлено 11 новых пакетов, для удаления отмечено 4 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 1 922 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 3 236 kB.
Хотите продолжить? [Д/н]


Удивляемся этому:

Следующие пакеты будут УДАЛЕНЫ:
  libgl1-nvidia-glvnd-glx nvidia-driver-libs nvidia-vulkan-common nvidia-vulkan-icd


Правим /etc/bumblebee/xorg.conf.nvidia,
раскомментируем строку:
BusID "PCI:01:00:0"

Уходим в ребут

Возвращаемся и проверяем, сначала дефолт


> glxinfo | grep -i vendor:
    Vendor: Intel Open Source Technology Center (0x8086)


Потом пробуем с optirun


> optirun glxinfo | grep -i vendor:
[  258.862282] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

[  258.862349] [ERROR]Aborting because fallback start is disabled.


Всё плохо...
Пинаем трупик


> service nvidia-persistenced restart
Job for nvidia-persistenced.service failed because the control process exited with error code.
See "systemctl status nvidia-persistenced.service" and "journalctl -xe" for details.


Смотрим некрологи


> systemctl status nvidia-persistenced.service
● nvidia-persistenced.service - NVIDIA Persistence Daemon
   Loaded: loaded (/lib/systemd/system/nvidia-persistenced.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2019-08-12 18:43:36 MSK; 59s ago
  Process: 2409 ExecStart=/usr/bin/nvidia-persistenced --user nvpd (code=exited, status=1/FAILURE)
  Process: 2421 ExecStopPost=/bin/рм -рф /var/run/nvidia-persistenced (code=exited, status=0/SUCCESS)

авг 12 18:43:36 twrnb systemd[1]: Starting NVIDIA Persistence Daemon...
авг 12 18:43:36 twrnb nvidia-persistenced[2410]: Started (2410)
авг 12 18:43:36 twrnb nvidia-persistenced[2410]: Failed to query NVIDIA devices. Please ensure that the NVIDIA device files (/dev/nvidia*) exist, and that user 114 has re
авг 12 18:43:36 twrnb nvidia-persistenced[2410]: Shutdown (2410)
авг 12 18:43:36 twrnb nvidia-persistenced[2409]: nvidia-persistenced failed to initialize. Check syslog for more details.
авг 12 18:43:36 twrnb systemd[1]: nvidia-persistenced.service: Control process exited, code=exited, status=1/FAILURE
авг 12 18:43:36 twrnb systemd[1]: nvidia-persistenced.service: Failed with result 'exit-code'.
авг 12 18:43:36 twrnb systemd[1]: Failed to start NVIDIA Persistence Daemon.


Please ensure that the NVIDIA device files (/dev/nvidia*) exist
А не дровали должны это создавать? Не вручную же?


> journalctl -xe
-- An ExecStart= process belonging to unit nvidia-persistenced.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 1.
авг 12 18:43:36 twrnb systemd[1]: nvidia-persistenced.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The unit nvidia-persistenced.service has entered the 'failed' state with result 'exit-code'.
авг 12 18:43:36 twrnb systemd[1]: Failed to start NVIDIA Persistence Daemon.
-- Subject: Ошибка юнита nvidia-persistenced.service
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Произошел сбой юнита nvidia-persistenced.service.
--
-- Результат: failed.


Поминаем...
Я уже без понятия почему оно так себя ведет

intervision

Обновил вводные. Ситуация несколько изменилась, но лучше не стало. Скорее только хуже...

intervision

Короче, посоны... оно завелось, хз как.

Суть в следующем: до этого момента по мануалу, в котором написано не ребутаться после установки дров и сразу ставить шмеля и примус оно как-то заводилось.

К написанию этого поста сподвигло то, что на x64 на новой системе заводиться перестало. Решил поставить снова каноничным способом + подглядел отсюда то, о чем забыл - мультиарч.

Итак, воркфлоу который сработал у меня и, возможно, поможет остальным:

На систему без каких либо признаков нвидии делаем следующее:


  • dpkg --add-architecture i386 (если 64битная система. Если нет - пропускаем этот пункт)
  • apt-get install nvidia-legacy-XXX-driver (тут важно указать правильный, из метапакета nvidia-driver ставится последний доступный, но не факт, что он взлетит. Более того, nvidia-detect может вообще не предложить рекомендуемый драйвер - придется методом тыка, сносить и переставлять На моей 820M завелся 340й драйвер)
  • В процессе установки nvidia-persistenced может не завестись и ругнуться на это, но после ребута вроде поднялся
  • Ребутаемся (после ребута упадет cinnamon в fallback (возможно и другие DWM тоже, хз) - не страшно, со вторым ребутом починится)
  • Ставим bumblebee-nvidia и primus
  • Проверяем на каком BUSID висит дескретка: lspci | grep -i nvidia (обычно на 01:00.0, но чем черт не шутит)
  • В /etc/bumblebee/xorg.conf.nvidia раскомментируем строку BusID "PCI:01:00:0" или, если в предыдущем пункт другое значение - меняем на него
  • Ребутаемся снова
  • Проверяем

Результат:

[~] lord@twrnb > glxinfo | grep -i vendor
server glx vendor string: SGI
client glx vendor string: Mesa Project and SGI
    Vendor: Intel Open Source Technology Center (0x8086)
OpenGL vendor string: Intel Open Source Technology Center
[~] lord@twrnb > optirun glxinfo | grep -i vendor
server glx vendor string: NVIDIA Corporation
client glx vendor string: primus
OpenGL vendor string: NVIDIA Corporation


[attach=1]

Centr0AS

Благодарю, возможно пригодится в будущем. Сам сегодня еле как зовел свою дискретку с 390xx legacy драйвером.