그래픽 카드가 2개 있고 nvidia
드라이버를 설치했습니다.
❯ lspci -nnk | grep -iA3 -E "(vga|NVIDIA).*(controller|GeForce)"
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 620 [8086:5916] (rev 02)
DeviceName: Onboard IGD
Subsystem: Hewlett-Packard Company HD Graphics 620 [103c:82c1]
Kernel driver in use: i915
--
01:00.0 3D controller [0302]: NVIDIA Corporation GM108M [GeForce 940MX] [10de:134d] (rev a2)
Subsystem: Hewlett-Packard Company GM108M [GeForce 940MX] [103c:82c1]
Kernel driver in use: nvidia
Kernel modules: nouveau, nvidia_drm, nvidia
그리고 로드된 모듈:
❯ lsmod | grep -iE '(iris|965|915|nouveau|nvidia)'
nvidia_drm 94208 4
nvidia_modeset 1556480 2 nvidia_drm
nvidia_uvm 3481600 2
nvidia 62734336 87 nvidia_uvm,nvidia_modeset
i915 4108288 39
i2c_algo_bit 20480 1 i915
drm_buddy 20480 1 i915
ttm 110592 1 i915
intel_gtt 28672 1 i915
drm_display_helper 229376 1 i915
video 77824 2 i915,nvidia_modeset
cec 86016 2 drm_display_helper,i915
가지다:
❯ sudo lshw -c video | grep 'configuration'
configuration: depth=32 driver=i915 latency=0 resolution=3840,2160
configuration: driver=nvidia latency=0
어떤 이유로 OpenGL(EGL)은 충돌하지만 OpenGL(GLX)은 다음을 제공합니다.:
❯ glxinfo | grep "OpenGL renderer"
libGL error: glx: failed to create dri3 screen
libGL error: failed to load driver: nouveau
OpenGL renderer string: Mesa Intel(R) HD Graphics 620 (KBL GT2)
Qt5(예 kwalletd5
: )는 다음과 같이 실패합니다.
❯ kwalletd5
kf.wallet.kwalletd: Lacking a socket, pipe: 0 env: 0
libGL error: glx: failed to create dri3 screen
libGL error: failed to load driver: nouveau
nouveau
libGL이 설치되지 않았을 때 무엇을 찾고 있는지 이해할 수 없습니다 . nouveau
내가 아는 한, 이것은 nouveau
이전 버전의 NVIDIA용이며 이 NVIDIA 카드(함께 제공됨 GM108M [GeForce 940MX]
) NV118
는 nvidia 드라이버를 사용해야 합니다.
eglinfo
드라이버가 해당 커널에 대해 올바르게 컴파일되지 않았다는 추측으로 이어지는 크래시 덤프를 생성하십시오...? ! ? (궁금해...)
❯ coredumpctl info eglinfo
PID: 3006 (eglinfo)
UID: 1026 (alex)
GID: 1000 (alex)
Signal: 6 (ABRT)
Timestamp: Sun 2023-10-08 10:50:39 EDT (1h 3min ago)
Command Line: /usr/bin/eglinfo
Executable: /usr/bin/eglinfo
Control Group: /user.slice/user-1026.slice/[email protected]/app.slice/app-org.kde.kinfocenter-1e5614d213e84a2fac7e745b95873f3b.scope
Unit: [email protected]
User Unit: app-org.kde.kinfocenter-1e5614d213e84a2fac7e745b95873f3b.scope
Slice: user-1026.slice
Owner UID: 1026 (alex)
Boot ID: 0e078812604c40b896a2926936fed0ed
Machine ID: 5e088a0fd5f24ea3ba800ad0886bc587
Hostname: azx360
Storage: /var/lib/systemd/coredump/core.eglinfo.1026.0e078812604c40b896a2926936fed0ed.3006.1696776639000000.zst (present)
Size on Disk: 2.0M
Message: Process 3006 (eglinfo) of user 1026 dumped core.
Stack trace of thread 3006:
#0 0x00007f8f4878483c n/a (libc.so.6 + 0x8e83c)
#1 0x00007f8f48734668 raise (libc.so.6 + 0x3e668)
#2 0x00007f8f4871c4b8 abort (libc.so.6 + 0x264b8)
#3 0x00007f8f4871d390 n/a (libc.so.6 + 0x27390)
#4 0x00007f8f4878e7b7 n/a (libc.so.6 + 0x987b7)
#5 0x00007f8f4878f30e n/a (libc.so.6 + 0x9930e)
#6 0x00007f8f4878f480 n/a (libc.so.6 + 0x99480)
#7 0x00007f8f48791a38 n/a (libc.so.6 + 0x9ba38)
#8 0x00007f8f48793dc1 __libc_calloc (libc.so.6 + 0x9ddc1)
#9 0x00007f8f46733bb1 n/a (libnvidia-eglcore.so.535.113.01 + 0x1533bb1)
#10 0x00007f8f46741a91 n/a (libnvidia-eglcore.so.535.113.01 + 0x1541a91)
#11 0x00007f8f46741b12 n/a (libnvidia-eglcore.so.535.113.01 + 0x1541b12)
#12 0x00007f8f46741ce0 n/a (libnvidia-eglcore.so.535.113.01 + 0x1541ce0)
#13 0x00007f8f48242f72 n/a (libEGL_nvidia.so.0 + 0x42f72)
#14 0x00007f8f482485a4 n/a (libEGL_nvidia.so.0 + 0x485a4)
#15 0x000055846b68f824 n/a (eglinfo + 0x8824)
#16 0x000055846b6932f5 n/a (eglinfo + 0xc2f5)
#17 0x000055846b68b2b6 n/a (eglinfo + 0x42b6)
#18 0x00007f8f4871dcd0 n/a (libc.so.6 + 0x27cd0)
#19 0x00007f8f4871dd8a __libc_start_main (libc.so.6 + 0x27d8a)
#20 0x000055846b68b6e5 n/a (eglinfo + 0x46e5)
ELF object binary architecture: AMD x86-64
더 알고 싶습니다 inxi
:
❯ inxi -Gx
Graphics:
Device-1: Intel HD Graphics 620 vendor: Hewlett-Packard driver: i915
v: kernel arch: Gen-9.5 bus-ID: 00:02.0
Device-2: NVIDIA GM108M [GeForce 940MX] vendor: Hewlett-Packard
driver: nvidia v: 535.113.01 arch: Maxwell bus-ID: 01:00.0
Device-3: Suyin HP TrueVision FHD RGB-IR driver: uvcvideo type: USB
bus-ID: 1-5:2
Display: x11 server: X.Org v: 21.1.8 driver: X: loaded: intel,nvidia
unloaded: modesetting dri: i965 gpu: i915 resolution: 3840x2160
API: EGL Message: No EGL data available.
API: OpenGL v: 4.6 vendor: intel mesa v: 23.2.1-arch1.2 glx-v: 1.4
direct-render: yes renderer: Mesa Intel HD Graphics 620 (KBL GT2)
API: Vulkan v: 1.3.264 drivers: nvidia surfaces: xcb,xlib devices: 1
다음은 비디오 드라이버용으로 설치된 패키지입니다.
❯ pacman -Q | grep -iE '(nvidia|mesa|intel|cuda|vulkan|vdpau)'
intel-gmmlib 22.3.11-1
intel-gpu-tools 1.27-2
intel-media-driver 23.3.3-1
intel-media-sdk 23.2.2-2
libvdpau 1.5-2
mesa 1:23.2.1-2
mesa-utils 9.0.0-3
nvidia 535.113.01-4
nvidia-settings 535.113.01-1
nvidia-utils 535.113.01-2
vulkan-headers 1:1.3.264-2
vulkan-icd-loader 1.3.263-1
vulkan-tools 1.3.263-1
xf86-video-intel 1:2.99.917+923+gb74b67f0-1
OpenGL 수정에 대한 안내는 크게 감사하겠습니다!
업데이트: 몇 가지 문제 해결 후 Nvidia 드라이버를 설치할 때 발생하지만 문제가 Nvidia와 직접적인 관련이 없다는 것을 발견했습니다.
pinentry
또는 장치를 사용하는 데 문제가 있을 때 gpg-agent
암호 대화 상자가 나타날 수 있다는 것을 발견했습니다 . 이 문제에 대해 기록하십시오.X
plasmashell
[USER@MACHINE ~]$ Unsupported return type 65 QPixmap in method "grab"
Unsupported return type 65 QPixmap in method "grab"
Unsupported return type 65 QPixmap in method "grab"
Unsupported return type 65 QPixmap in method "grab"
[USER@MACHINE ~]$ journalctl -xe
Oct 13 17:00:17 MACHINE systemd-timesyncd[279]: Contacted time server [REDACTED]:123 ([REDACTED].arch.pool.ntp.org).
Oct 13 17:04:55 MACHINE plasmashell[976]: Could not find the Plasmoid for Plasma::FrameSvgItem(0x562417c320e0) QQmlContext(0x562413f2ad10) QUrl("file:///usr/share/pla>
Oct 13 17:04:55 MACHINE plasmashell[976]: Could not find the Plasmoid for Plasma::FrameSvgItem(0x562417c320e0) QQmlContext(0x562413f2ad10) QUrl("file:///usr/share/pla>
Oct 13 17:09:04 MACHINE systemd-timesyncd[279]: Timed out waiting for reply from [REDACTED]:123 ([REDACTED].arch.pool.ntp.org).
Oct 13 17:09:07 MACHINE plasmashell[976]: trying to show an empty dialog
Oct 13 17:09:07 MACHINE plasmashell[976]: file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:286: Unable to assign [undefined] to QStr>
Oct 13 17:09:07 MACHINE plasmashell[976]: file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:286: Unable to assign [undefined] to QStr>
Oct 13 17:09:07 MACHINE systemd[828]: Started System Settings - System Settings.
-- Subject: A start job for unit UNIT has finished successfully
-- Defined-By: systemd
-- Support: [REDACTED]
--
-- A start job for unit UNIT has finished successfully.
--
-- The job identifier is 590.
Oct 13 17:09:08 MACHINE systemsettings[11476]: file:///usr/lib/qt/qml/org/kde/kirigami.2/ScrollablePage.qml:200:9: QML MouseArea: Binding loop detected for property ">
Oct 13 17:09:08 MACHINE systemsettings[11476]: file:///usr/lib/qt/qml/org/kde/kirigami.2/ScrollablePage.qml:200:9: QML MouseArea: Binding loop detected for property ">
Oct 13 17:09:08 MACHINE systemsettings[11476]: QQmlEngine::setContextForObject(): Object already has a QQmlContext
Oct 13 17:09:14 MACHINE systemd-timesyncd[279]: Timed out waiting for reply from [REDACTED]:123 ([REDACTED].arch.pool.ntp.org).
Oct 13 17:09:14 MACHINE systemd-timesyncd[279]: Contacted time server [REDACTED]:123 ([REDACTED].arch.pool.ntp.org).
Oct 13 17:09:20 MACHINE kwalletd5[3655]: kf.wallet.backend: Setting useNewHash to true
Oct 13 17:09:20 MACHINE kwalletd5[3655]: kf.wallet.backend: Wallet new enough, using new hash
Oct 13 17:09:20 MACHINE kwalletd5[3655]: kf.wallet.backend: Error decrypting message: No secret key , code 17 , source GPGME
Oct 13 17:09:24 MACHINE kwin_x11[933]: kwin_core: XCB error: 152 (BadDamage), sequence: 12493, resource id: 8467472, major code: 143 (DAMAGE), minor code: 3 (Subtract)
Oct 13 17:09:28 MACHINE kwalletd5[3655]: kf.wallet.backend: Setting useNewHash to true
Oct 13 17:09:28 MACHINE kwalletd5[3655]: kf.wallet.backend: Wallet new enough, using new hash
Oct 13 17:09:28 MACHINE kwalletd5[3655]: kf.wallet.backend: Error decrypting message: No secret key , code 17 , source GPGME
Oct 13 17:09:31 MACHINE kwalletd5[3655]: kf.wallet.backend: Error decrypting message: No secret key , code 17 , source GPGME
Oct 13 17:09:32 MACHINE kwalletd5[3655]: kf.wallet.backend: Error decrypting message: No secret key , code 17 , source GPGME
Oct 13 17:09:32 MACHINE kwalletd5[3655]: kf.wallet.backend: Error decrypting message: No secret key , code 17 , source GPGME
Oct 13 17:09:32 MACHINE kwin_x11[933]: kwin_core: XCB error: 152 (BadDamage), sequence: 15002, resource id: 8467610, major code: 143 (DAMAGE), minor code: 3 (Subtract)
Oct 13 17:09:33 MACHINE kwin_x11[933]: kwin_core: XCB error: 152 (BadDamage), sequence: 15530, resource id: 8467635, major code: 143 (DAMAGE), minor code: 3 (Subtract)
Oct 13 17:09:33 MACHINE kwalletd5[3655]: kf.wallet.backend: Error decrypting message: No secret key , code 17 , source GPGME
Oct 13 17:09:33 MACHINE kwin_x11[933]: kwin_core: XCB error: 152 (BadDamage), sequence: 16073, resource id: 8467650, major code: 143 (DAMAGE), minor code:
고쳐 쓰다:
- HP 드라이버를 F.10에서 F.42로 업그레이드했습니다.
- ,,, 을(를) 다시 설치했습니다
X
.nvidia
gnupg
pinentry
- 드라이버로 X를 시작할 때마다
nvidia
실패합니다. 그래서 인텔로 눈을 돌렸습니다.xorg.conf
일하는 것과 실패하는 것의 차이점 은 다음과 같습니다nvidia
.
$ diff xorg.conf xorg.conf.2023-10-23-a-failure.bak
38a39
> Driver "nvidia"
40,43c41
< # Driver "nvidia"
< ChipId 0x0
< ChipRev 0x0
< IRQ 0
---
> BusID "PCI:1:0:0"
48a47
> Option "AllowEmptyInitialConfiguration"
53a53,63
> EndSection
>
> Section "Device"
> Identifier "intel"
> Driver "modesetting"
> BusID "PCI:0:2.0" # e.g. PCI:0:2:0
> EndSection
>
> Section "Screen"
> Identifier "intel"
> Device "intel"
고쳐 쓰다:
eglinfo -B
코어 덤프를 생성한 문제는 다음과 같이 추적할 수 있습니다 .
$ eglinfo -B
GBM platform:
EGL API version: 1.5
EGL vendor string: NVIDIA
EGL version string: 1.5
EGL client APIs: OpenGL_ES OpenGL
OpenGL core profile vendor: NVIDIA Corporation
OpenGL core profile renderer: NVIDIA GeForce 940MX/PCIe/SSE2
OpenGL core profile version: 4.6.0 NVIDIA 535.113.01
OpenGL core profile shading language version: 4.60 NVIDIA
OpenGL compatibility profile vendor: NVIDIA Corporation
OpenGL compatibility profile renderer: NVIDIA GeForce 940MX/PCIe/SSE2
OpenGL compatibility profile version: 4.6.0 NVIDIA 535.113.01
OpenGL compatibility profile shading language version: 4.60 NVIDIA
malloc(): invalid next size (unsorted)
coredumpctl info
(...)
Signal: 6 (ABRT)
(...)
Command Line: eglinfo -B
Executable: /usr/bin/eglinfo
(...)
Size on Disk: 2.1M
Message: Process 3735 (eglinfo) of user 1026 dumped core.
#0 0x00007fc48d23083c n/a (libc.so.6 + 0x8e83c)
#1 0x00007fc48d1e0668 raise (libc.so.6 + 0x3e668)
#2 0x00007fc48d1c84b8 abort (libc.so.6 + 0x264b8)
#3 0x00007fc48d1c9390 n/a (libc.so.6 + 0x27390)
#4 0x00007fc48d23a7b7 n/a (libc.so.6 + 0x987b7)
#5 0x00007fc48d23db04 n/a (libc.so.6 + 0x9bb04)
#6 0x00007fc48d23fdc1 __libc_calloc (libc.so.6 + 0x9ddc1)
#7 0x00007fc48b133bb1 n/a (libnvidia-eglcore.so.535.113.01 + 0x1533bb1)
#8 0x00007fc48b141ccc n/a (libnvidia-eglcore.so.535.113.01 + 0x1541ccc)
#9 0x00007fc48cc42f72 n/a (libEGL_nvidia.so.0 + 0x42f72)
#10 0x00007fc48cc485a4 n/a (libEGL_nvidia.so.0 + 0x485a4)
#11 0x0000555f5f076c7d n/a (eglinfo + 0x6c7d)
#12 0x0000555f5f07c279 n/a (eglinfo + 0xc279)
#13 0x0000555f5f0742b6 n/a (eglinfo + 0x42b6)
#14 0x00007fc48d1c9cd0 n/a (libc.so.6 + 0x27cd0)
#15 0x00007fc48d1c9d8a __libc_start_main (libc.so.6 + 0x27d8a)
#16 0x0000555f5f0746e5 n/a (eglinfo + 0x46e5)
ELF object binary architecture: AMD x86-64
노트: 다른 사람도 비슷한 문제 해결을 수행할 수 있고 내 여정이 도움이 될 수 있도록 이 모든 것을 추가하고 있습니다.
답변1
다음과 같이 Xorg 또는 Wayland 패키지를 다시 설치하고 nvidia 드라이버를 제거하면 유사한 문제를 해결할 수 있습니다.
[해결됨] OpenGL/GLX가 nouveau와 작동하지 않습니다
내가 이해한 바로는 libgl이 그 중 하나와 작동하도록 하려면 nvidia 드라이버를 유지하고 싶어합니다.
따라서 재설치 제안이 작동하지 않으면 /etc/x11/xorg.conf와 같은 구성 파일을 테스트하는 것이 좋을 것 같습니다. 그리고 후자의 경우 각 테스트 후에 그래픽 환경을 다시 시작해야 합니다.
답변2
먼저 몇 가지 용어: 그래픽 드라이버에는 다음이 포함됩니다.커널 드라이버그리고사용자 공간 드라이버. 또한 X11의 기본 GPU에서 기본이 아닌 GPU로 렌더링을 오프로드하는 기술을 호출합니다.PRIME
(XWayland가 없는 Wayland와 관련이 있는지는 모르겠지만, 당연히 아닙니다. 아시는 분 댓글 부탁드립니다). 일반적으로 메인 GPU는 NVidia가 아닌 통합 GPU입니다.(경량 작업에 dGPU 전력을 낭비하고 싶지 않기 때문에 이는 의미가 있습니다), 따라서 아래 코드에서는 DRI_PRIME=1
dGPU에 대한 렌더링의 명시적인 오프로드를 사용합니다. 하지만 구성 가능합니다(BIOS/UEFI 등에서), 귀하의 경우 오류에서 볼 수 있듯이 시스템은 먼저 dGPU를 사용하려고 시도합니다.
이를 통해 다음을 추가하면 LIBGL_DEBUG=verbose
무슨 일이 일어나고 있는지 더 자세히 살펴볼 수 있습니다 .
$ LIBGL_DEBUG=verbose DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
[…]
libGL: pci id for fd 5: 10de:25a0, driver nouveau
libGL: MESA-LOADER: dlopen(/usr/lib/dri/nouveau_dri.so)
[…]
libGL error: failed to load driver: nouveau
[…]
libGL: pci id for fd 4: 8086:9bc4, driver iris
libGL: MESA-LOADER: dlopen(/usr/lib/dri/iris_dri.so)
[…]
OpenGL renderer string: Mesa Intel(R) UHD Graphics (CML GT2)
일어나는 일은 사용자 공간 nouveau
드라이버 가(이것 nouveau_dri.so
)nouveau
커널 드라이버를 로드 해야 하기 때문에 로드할 수 없습니다 . 그러나 출력에 표시된 대로 커널 드라이버를 로드했습니다 lsmod
.nvidia
(와 충돌 nouveau
). 결과적으로 iGPU로 돌아왔습니다.
현재 nvidia_dri.so
존재하지 않으므로 DRI_PRIME
렌더링을 GPU로 오프로드하려는 경우 env. nvidia
변수는 작동하지 않습니다 .
그러나 엔비디아는PRIME
버전 435.17부터 지원됩니다.하지만 자체 유틸리티를 통해 이 작업을 수행해야 합니다.prime-run
nvidia-prime
(Archlinux의 경우 패키지 에 있습니다 ).
그래서:
$ prime-run glxinfo | grep "OpenGL renderer"
OpenGL renderer string: NVIDIA GeForce RTX 3050 Ti Laptop GPU/PCIe/SSE2
답변3
나는 "실수"를 깨달을 수 있다할 수 있는(그렇지 않아야 하지만 고칠 수 없습니다)는 무시됩니다.
❯ glxinfo | grep "OpenGL renderer"
libGL error: glx: failed to create dri3 screen
libGL error: failed to load driver: nouveau
GnuPG
깨진 것이 바로 그 것입니다. GnuPG에 관련된 모든 것을 정리하고 완전히 새로운 것을 다시 만들었습니다.kwallet
.
존재하다KDE 시스템 설정->KDE 지갑, 존재하다 Automatic Wallet Selection
: Select wallet to use
:새로운
노트: 거기서부터 대화와 과정을 계속합니다.