나는 용기를 잃고 있기 때문에 누군가가 나를 도울 수 있기를 바랍니다. F37 Silverblue + Wayland/X11을 개발 중입니다. 시스템에는 독점 nVidia 드라이버(Nouveau 아님)가 포함된 nVidia Optimus가 있습니다.
최근 설정을 돕기 위해 외부 터치 스크린 모니터를 구입했습니다. 모니터는 명목상 HDMI 또는 USB-C를 통해 최대 1080p의 해상도를 지원합니다(하지만 USB-C를 지원하는 비디오 출력이 없어서 HDMI를 사용해야 했습니다). 터치스크린 출력은 USB 케이블을 통해 전송되고 전원은 동일한 케이블을 통해 수신됩니다.
====== HDMI를 통한 강제 특정(60Hz) 재생률 ======
이 모니터에서 제가 발견한 가장 지속적인 문제는 59 또는 60Hz 이외의 새로 고침 빈도로 자체 설정을 거부한다는 것입니다(비록 최대 120Hz를 지원한다고 보고되지만 Gnome 설정에서 이 설정을 선택할 수 있습니다). 그러나 헛된 것입니다).
내가 시도할 때를 제외하고는 이것은 나에게 잘 작동합니다.거울노트북 디스플레이(역시 1080p)를 보면 모니터가 꺼지고 입력 장치를 찾을 수 없다는 메시지가 나타납니다. 이제 동일한 문제가 발생합니다.연장하다120/100/50/30/29/etcHz로 설정하려고 하면.
문제는 디스플레이를 미러링하려고 할 때 Fedora/Gnome/누구든지 디스플레이를 120Hz로 되돌리려고 시도한다는 것입니다(이론적으로 최대 지원 신호이기 때문입니다). 이로 인해 입력 신호가 거부되고 아무것도 표시되지 않습니다. 또는 Gnome이 내 통합 노트북 모니터의 새로 고침 빈도를 복제하려고 할 수도 있습니다. 이상하게도 이 빈도는 60.02Hz로 설정되어 있어 60Hz보다 높기 때문에 역시 거부됩니다.
불행하게도 미러링할 때 (60Hz) 새로 고침 빈도를 설정할 수 없습니다. Gnome 설정에는 그러한 옵션이 없습니다. 디스플레이를 확장하기 위해 외부 모니터를 사용하는 경우에만 이 작업을 수행할 수 있습니다.
제가 알아차린 또 다른 이상한 점은 외부 터치스크린 모니터의 해상도(예: 1440 x 900)를 낮추면 이제 모니터를 복제하여 터치스크린으로 사용할 수 있다는 것입니다. 하지만 물론 이미지가 형편없어 보입니다.
모니터가 지원하는 신호에 관계없이 HDMI 출력을 60Hz로만 강제/제한하는 등 이 문제를 어떻게 진단합니까?
====== 터치스크린 출력의 지속적인 재매핑 ======
두 번째 문제는 터치 스크린에 관한 것입니다. 항상 작동하고(디스플레이 자체에 아무것도 표시되지 않는 경우에도 터치 출력을 내보냄) 여러 손가락 등을 감지합니다. 문제는 그것이 어떻게든 내 노트북 화면에 항상 매핑된다는 것입니다. 그래서 노트북의 메인 디스플레이에 나타나는 창 등을 무작정 터치하고 드래그할 수 있지만 외부 터치스크린 디스플레이에서는 볼 수 없습니다. 그리고 외부 터치스크린 디스플레이에 나타나는 창은 터치의 영향을 받지 않습니다(즉, 메인 디스플레이에 매핑되어 있기 때문입니다).
Gnome 설정에서 외부 터치스크린 모니터를 어디에 배치하든(노트북 화면의 왼쪽, 오른쪽, 위, 아래) 기본 또는 보조 모니터로 선택하더라도 터치스크린 출력은 계속해서 노트북 모니터에 매핑됩니다. 노트북 모니터를 끄는 경우에만 이미지가 외부 터치스크린 모니터에만 표시되고 터치 장치로 사용할 수 있습니다. 하지만 모니터는 아무 용도로 사용하지 않습니다.
물론 해상도를 낮추면 디스플레이를 복제할 수 있으며 터치 출력은 화면에 표시된 것과 일치하지만 보기에는 좋지 않습니다.
Fedora/Wayland가 중얼거림을 사용하여 터치 입력을 보내는 곳을 찾았지만 xinput과 같은 중얼거를 구성하는 방법을 찾을 수 없습니다.
내 생각에 질문은 다음과 같습니다.터치스크린을 적절한 모니터에 일관되게 다시 매핑하려면 어떻게 해야 합니까?
====== X11 ======
Xorg로 로그인하면 외부 터치스크린에 아무 것도 출력할 수 없습니다. 아무것도 작동하지 않으며 해상도를 낮추거나 새로 고침 빈도를 낮추거나 설정하는 것도 없습니다. 터치스크린 손가락 출력만 작동합니다. 아마도 별도의 장치이기 때문일 것입니다.
이것은 다음의 출력입니다 xrandr
.
[username]@fedora37 ~]$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 16384 x 16384
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
1920x1080 60.02*+ 60.01 59.97 59.96 59.93
1680x1050 59.95 59.88
1400x1050 59.98
1600x900 59.99 59.94 59.95 59.82
1280x1024 60.02
1400x900 59.96 59.88
1280x960 60.00
1440x810 60.00 59.97
1368x768 59.88 59.85
1280x800 59.99 59.97 59.81 59.91
1280x720 60.00 59.99 59.86 59.74
1024x768 60.04 60.00
960x720 60.00
928x696 60.05
896x672 60.01
1024x576 59.95 59.96 59.90 59.82
960x600 59.93 60.00
960x540 59.96 59.99 59.63 59.82
800x600 60.00 60.32 56.25
840x525 60.01 59.88
864x486 59.92 59.57
700x525 59.98
800x450 59.95 59.82
640x512 60.02
700x450 59.96 59.88
640x480 60.00 59.94
720x405 59.51 58.99
684x384 59.88 59.85
640x400 59.88 59.98
640x360 59.86 59.83 59.84 59.32
512x384 60.00
512x288 60.00 59.92
480x270 59.63 59.82
400x300 60.32 56.34
432x243 59.92 59.57
320x240 60.05
360x202 59.51 59.13
320x180 59.84 59.32
DP-1-0 disconnected (normal left inverted right x axis y axis)
DP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
1920x1080 60.00 + 120.00* 100.00 60.00 59.94 50.00 29.97 25.00 23.98
1440x900 59.89
1400x1050 59.98
1280x1024 75.02 60.02
1280x960 60.00
1280x720 60.00 59.94 50.00
1024x768 75.03 70.07 60.00
800x600 75.00 72.19 60.32 56.25
640x480 75.00 72.81 59.94
1280x1024 (0x50) 108.000MHz +HSync +VSync
h: width 1280 start 1328 end 1440 total 1688 skew 0 clock 63.98KHz
v: height 1024 start 1025 end 1028 total 1066 clock 60.02Hz
1280x960 (0x53) 108.000MHz +HSync +VSync
h: width 1280 start 1376 end 1488 total 1800 skew 0 clock 60.00KHz
v: height 960 start 961 end 964 total 1000 clock 60.00Hz
1024x768 (0x61) 65.000MHz -HSync -VSync
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock 48.36KHz
v: height 768 start 771 end 777 total 806 clock 60.00Hz
800x600 (0x70) 40.000MHz +HSync +VSync
h: width 800 start 840 end 968 total 1056 skew 0 clock 37.88KHz
v: height 600 start 601 end 605 total 628 clock 60.32Hz
800x600 (0x71) 36.000MHz +HSync +VSync
h: width 800 start 824 end 896 total 1024 skew 0 clock 35.16KHz
v: height 600 start 601 end 603 total 625 clock 56.25Hz
640x480 (0x7d) 25.175MHz -HSync -VSync
h: width 640 start 656 end 752 total 800 skew 0 clock 31.47KHz
v: height 480 start 490 end 492 total 525 clock 59.94Hz
저는 이러한 문제를 해결하기 위해 Wayland를 선호하지만 X11이 차선책입니다. 이런 종류의 문제를 해결할 수 있는 GUI 도구가 있습니까? 나는 아직 초보자입니다.
답변1
상상해 보세요. 하지만 저는 그것을 해결했습니다. 불행하게도 이 문제는 X11을 통해서만 해결될 수 있습니다.
X11의 솔루션:
1. 전환 및 검은색 화면/외부 화면에 입력 정보 없음을 방지하려면 nVidia를 기본 그래픽 카드로 설정하십시오.
먼저 X11로 전환해야 합니다. 로그아웃한 후 로그인 화면에서 사용자 이름을 클릭하면 오른쪽 하단에 작은 기어가 나타납니다. 그것을 클릭하고 선택하십시오 GNOME on Xorg
.
그런 다음 편집해야합니다nvidia.conf문서. Silverblue에서 이 작업을 수행하는 것은 루트가 잠겨 있기 때문에 약간 어렵습니다. 그러나 터미널에 가서 를 입력하여 루트 파일 시스템을 편집할 수 있습니다 sudo rpm-ostree admin unlock --hotfix
. 이 --hotfix
태그는 루트 파일 시스템에 대한 변경 사항을 "영구적으로" 보존합니다. 즉, rpm-ostree는 이전 스냅샷으로 되돌리지 않으며 nvidia.conf의 수정되지 않은 버전으로 되돌리지도 않습니다.
루트 파일 시스템을 편집하는 습관을 들이지 마십시오. 당신의 인생이 달려 있는 것처럼 그것을 피하십시오. 불변 배포판은 정당한 이유로 이를 잠급니다.
그런 다음 nvidia.conf를 /usr에서 /etc로 복사합니다.sudo cp -p /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/nvidia.conf
새로 복사된 파일을 찾아서 편집하세요 sudo nano nvidia.conf
. 다음과 같아야 합니다.
#This file is provided by xorg-x11-drv-nvidia
#Do not edit
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "SLI" "Auto"
Option "BaseMosaic" "on"
EndSection
Section "ServerLayout"
Identifier "layout"
Option "AllowNVIDIAGPUScreens"
EndSection
각 섹션에 다음을 추가하세요 Option "PrimaryGPU" "yes"
.
그래서:
#This file is provided by xorg-x11-drv-nvidia
#Do not edit
Section "OutputClass"
Identifier "nvidia"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "AllowEmptyInitialConfiguration"
Option "SLI" "Auto"
Option "BaseMosaic" "on"
Option "PrimaryGPU" "yes"
EndSection
Section "ServerLayout"
Identifier "layout"
Option "AllowNVIDIAGPUScreens"
Option "PrimaryGPU" "yes"
EndSection
저장하고 종료한 후 다시 시작하세요. 이렇게 하면 X11이 nVidia를 기본 그래픽 카드로 사용하게 됩니다. 터미널에 다음을 입력하여 확인할 수 있습니다 glxinfo | egrep "OpenGL vendor|OpenGL renderer"
. nVidia가 OpenGL Provider와 Renderer 모두에 표시되면 잘 진행된 것입니다.
2. 외부 모니터 새로 고침 빈도를 강제로 설정합니다.
이제 nVidia 드라이버를 강제로 사용했으므로 외부 모니터를 사용하는 것이 훨씬 쉬워졌습니다. 예상대로 표시되고 작동할 수도 있습니다.
하지만 그렇지 않은 경우에는 수정이 가능할 수도 있습니다 xrandr
. 입력(또는 도구 상자/터미널/distros/dnf 사용/apt 사용/rpm-ostree/등 사용)에 먼저 설치하면 xrandr
기본 컴퓨터/노트북 화면과 외부 화면이 HDMI에 연결되어 있어야 합니다. 내 경우에는 다음과 같이 나타납니다.HDMI-0.
해상도와 새로 고침 빈도를 강제하려면 다음과 같이 xrandr을 사용할 수 있습니다 xrandr --output HDMI-0 --mode 1920x1080 --rate 60
. --mode
해상도를 다루고 --rate
새로 고침 빈도를 다룹니다. 화면이 59.94 또는 기타 이상한 새로 고침 빈도를 지원할 수 있습니다. 인수 없이 xrandr을 입력하면 (이론적으로) 지원됨이 표시됩니다.
성공하면 이제 외부 화면에 데스크탑이 표시되고 제대로 작동할 것입니다. 남은 문제는 터치스크린입니다. 터치스크린이 자체가 아닌 노트북 화면에 계속 매핑되기 때문입니다.
3. 터치스크린 입력을 외부 화면으로 다시 매핑합니다.
터치 스크린을 다시 매핑하려면 이라는 또 다른 X11 유틸리티가 필요합니다 xinput
. 터미널 에 들어가 xinput
거나 먼저 설치하면 입력 장치 목록이 표시됩니다. 그중에는 터치스크린 장치가 있어야 합니다. ELAN 터치스크린이나 Wacom 터치스크린 또는 이와 유사한 것. 오른쪽의 ID번호를 기억하세요.
이제 xinput
이를 사용하여 입력을 다시 매핑할 수도 있습니다. 다음을 입력하여 이를 수행합니다 xinput map-to-output 10 HDMI-0
.10내 터치스크린의 ID 번호이며 다를 수 있습니다.HDMI-0앞서 제공한 외부 화면의 이름입니다 xrandr
.
4. 웨일랜드?
불행히도 Gnome(Fedora 또는 기타)의 Wayland에서는 이 작업을 취소할 수 없습니다. 그 이유는 Gnome이중얼거리다(Wayland 신디사이저) 중얼거림이 너무 제한적이었습니다. 재매핑을 위한 도구가 없으며 모든 작업을 자체적으로 수행하려고 시도하지만 실패하므로 사용자가 거의 완전히 서비스할 수 없게 됩니다. 더 나은 옵션(예: sway, sddm 등)이 있으면 Mutter를 선택할 수 없습니다.
따라서 GNOME에서 이 작업을 수행하려면 X11을 사용하세요.
답변2
외부 터치스크린 모니터에 두 가지 문제가 있는 것 같습니다. 첫 번째는 모니터가 59 또는 60Hz 이외의 새로 고침 빈도로 자체 설정을 거부한다는 것이고, 두 번째는 터치스크린 출력이 항상 모니터에 매핑된다는 것입니다. 노트북 화면.
첫 번째 질문과 관련하여 Fedora/Gnome은 디스플레이에서 방출되는 최대 지원 주파수인 120Hz로 디스플레이를 복원하려고 시도할 수 있습니다. 파일에 다음 줄을 추가하여 HDMI가 60Hz에서만 출력되도록 강제할 수 있습니다 /etc/X11/xorg.conf
.
Section "Monitor"
Identifier "HDMI-1-0"
Option "PreferredMode" "1920x1080_60.00"
EndSection
이렇게 하면 HDMI 출력이 120Hz가 아닌 60Hz로 강제됩니다.
두 번째 질문에 대해서는 명령을 사용하여 터치스크린을 적절한 모니터에 다시 매핑해 볼 수 있습니다 xinput
. 이 xinput list
명령을 사용하여 입력 장치 및 해당 ID 목록을 가져온 다음 이 xinput map-to-output
명령을 사용하여 터치 스크린을 적절한 디스플레이에 다시 매핑할 수 있습니다. 예를 들어 터치스크린 장치 ID가 12이고 표시 이름이 HDMI-1-0인 경우 다음 명령을 실행할 수 있습니다.
xinput map-to-output 12 HDMI-1-0
이렇게 하면 터치스크린이 HDMI-1-0 디스플레이로 다시 매핑됩니다. 시스템 구성에 맞게 장치 ID와 표시 이름을 조정해야 할 수도 있습니다.
Wayland를 사용하는 경우 이 wlr-touch
유틸리티를 사용하여 터치스크린을 적절한 모니터에 다시 매핑할 수 있습니다. 다음 명령을 사용하여 설치할 수 있습니다.
sudo dnf install wlr-touch
설치한 후에는 다음 명령을 실행하여 터치스크린을 적절한 모니터에 다시 매핑할 수 있습니다.
wlr-touch output HDMI-1-0
마찬가지로 시스템 구성에 맞게 모니터 이름을 조정해야 할 수도 있습니다.