startx -- :1 vt1
아래 답변에 따라 기본적으로 XFCE를 사용하여 Debian 10에 로그인한 표준 사용자(stduser라는)를 사용하여 tty에서 실행하려고 합니다 .https://unix.stackexchange.com/a/85384
그러면 디스플레이도 깜박이는 것처럼 보이지만 이는 결국 실패합니다.
(==) Log file: "/var/log/Xorg.1.log"
(==) Using config directory: "/etc/X11/xorg.conf.d"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
xinit: connection to X server lost
에 따르면 /var/log/Xorg.1.log
다음 줄까지는 모든 것이 괜찮아 보입니다.
[ 3585.25] (++) using VT number 1
[ 3585.25] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 3585.26] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 3585.26] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
이는 완벽하게 작동하므로 소프트웨어 문제에 적합하고 이를 확인하는 것 같습니다 sudo startx -- :1 vt1
. 하지만 그것은 내가 원하는 것이 아닙니다. 루트로 로그인한 동안에는 일부 소프트웨어를 실행할 수 없기 때문입니다.
대부분의 단서는 Optimus(Intel iGPU + Nvidia GPU)가 탑재된 PC와 관련되어 있기 때문에 여기서 막히게 됩니다.
일부 세부정보:
- 나는 약 10년 전의 Intel HD 그래픽만 가지고 있습니다(Intel Iris 및 eDRAM/L4 캐시/HBM과 같은 멋진 제품도 없고 AMD, Nvidia 및 형편없는 오래된 Intel GMA GPU도 없습니다).
- 데스크탑 관리자는
lightdm
. /home/stduser/.profile
내보내기로 설정DISPLAY=:0.0
하고XAUTHORITY=/home/stduser/.Xauthority
환경 변수로 설정합니다.- 일부 디스플레이/세션 문제가 해결되었으므로(여전히 도움이 되지 않음) 이 수정 사항도 적용되었습니다."루트": "지정된 프로토콜 없음"에서 GUI 응용 프로그램을 실행할 수 없는 이유는 무엇입니까?
startx -- :1 vt1
AntiX(경량 시스템이 없는 Debian)에 적합합니다.
따라서 문제는 동일한 표준 사용자를 사용하여 다른 X 세션을 성공적으로 시작하는 방법입니다.
업데이트 1:자이엔느 팁 적용
X :1
"더 잘" 작동하는 것 같지만 검은색 화면만 표시됩니다.xinit -- :1
"더 잘" 작동하고 검은 화면에 창 없는 xterm이 표시되며 이제 마우스 커서를 이동할 수 있습니다.
그러나 /var/log/Xorg.1.log
.systemd-logind
업데이트 2: 이것은 실제로 주로 시스템 문제입니다.평소처럼.
다음을 수행해야 합니다.
초기 KMS 활성화
i915
파일/etc/initramfs-tools/modules
및 끝 줄 문자(간단한 빈 새 줄) 에 추가(예: 초기 KMS를 지원하는 경우 GPU 드라이버) 합니다 . 이를 저장한 다음 이를 사용하여update-initramfs -u
initramfs를 업데이트하십시오.파일 을 생성한
/etc/modprobe.d/i915-kms.conf
다음options i915 modeset=1
일반적인 줄 끝 문자를 추가하고 변경 사항을 저장합니다.컴퓨터를 다시 시작하십시오.
이제 다음 명령을 실행하면 다음이 제공됩니다. (곧 업데이트 중, 지금 테스트 중)
그러나 경험상 데비안에서 문제가 발생하면 AntiX를 사용해 보고 시스템 문제인지 확인하세요.
i915 modeset=1
업데이트 2.1: 어떤 이유로 update-initramfs -u
.
update-initramfs -u -k all
, 그 다음에grub-customizer
>General settings
탭 > 상자를 사용하여 편집 내용을kernal parameters
추가i915.modesetting=1
하고 저장합니다.- 재시작,
- 시작할 커널을 선택하고 를 눌러
e
커널 매개변수를 편집하십시오. - 다시 배치한 다음
i915.modeset=1
(거기 있는지 확인하세요) - 시작하려면 F10을 누르세요.
- 확인해 보고
cat /sys/module/i915/parameters/modeset
반품했는데1
정말 그랬습니다.
답변1
이 알려진 오류를 해결하기 위해 약간 다른 접근 방식을 발견했을 수도 있습니다.https://gitlab.freedesktop.org/xorg/xserver/-/issues/1021
기본적으로 장치를 여는 첫 번째 프로세스는 자동으로 DRM "마스터" 기능을 부여받으므로 루트 없이 drmSetInterfaceVersion()
및 drmGetBusId()
(전자의 후자 전제 조건)과 같은 작업을 수행할 수 있습니다. 하지만 어떤다른동일한 작업을 수행하려는 프로세스에는 DRM 마스터 기능 또는 CAP_SYS_ADMIN(일반적으로 CAP_SYS_ADMIN 과 동일 root
)이 이미 있어야 합니다. 이는 X 서버 하드웨어 검색 루틴 작성자가 예상하지 못한 것입니다.
이 버그로 인해 다음 두 가지가 수정되었습니다.
drmSetInterfaceVersion()
X 서버는 올바른 장치를 찾을 때까지 사용해서는 안 됩니다.- 커널은 DRM SET_MASTER 및 DROP_MASTER 권한에 대해 더 똑똑해야 합니다.그리고 "CAP_SYS_ADMIN(실제로는 루트)이 필요하거나 장치를 가장 먼저 여는 것이 필요합니다"가 아닙니다.
하지만 이러한 수정 사항은 데비안 10에는 (적어도 아직은) 나오지 않는 것 같습니다. 귀하의 경우 첫 번째 수정 사항이 중요합니다.
아마도 수정해야 할 세 번째 수정 사항이 있을 수 있습니다 drmSetInterfaceVersion()
. 먼저 수정하지 않으면 실제 버스 ID를 사용할 수 없다는 사실입니다.