SDL은 권한이 없는 X11 서버에서 작동하지 않습니다.

SDL은 권한이 없는 X11 서버에서 작동하지 않습니다.

루트가 아닌 사용자로 X 서버를 시스템 서비스로 시작했습니다.

    systemd.services."autovt@tty1".enable = lib.mkForce false;
    systemd.services = {
      startx = {
        enable = true;
        restartIfChanged = true;
        description = "startx";
        wantedBy = [ "multi-user.target" ];
        serviceConfig = {
          User = config.primaryUser.name;
          WorkingDirectory = "~";
          PAMName = "login";
          TTYPath = "/dev/tty1";
          UtmpIdentifier = "tty1";
          UtmpMode = "user";
          UnsetEnvirnment = "TERM";
          ExecStart = "${pkgs.xorg.xinit}/bin/startx -- -keeptty -verbose 3 -depth 16";
          StandardInput = "tty";
          StandardOutput = "journal";
        };
      };
    };

권한이 부족하여 SDL 애플리케이션이 시작되지 않는 것 같습니다.

$ dosbox
DOSBox version 0.74-3
Copyright 2002-2019 DOSBox Team, published under GNU GPL.
---
CONFIG:Loading primary settings from config file /user/.dosbox/dosbox-0.74-3.conf
X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  149 ()
  Minor opcode of failed request:  7
  Serial number of failed request:  253
  Current serial number in output stream:  254

$ qemu-system-x86_64 -display sdl
X Error of failed request:  BadAlloc (insufficient resources for operation)
  Major opcode of failed request:  149 ()
  Minor opcode of failed request:  7
  Serial number of failed request:  168
  Current serial number in output stream:  169

루트에서 새 Xepyr 세션을 시작하면 모든 것이 잘 작동합니다.

답변1

문제는 이 매개변수가 있다는 것입니다.

-depth 16

제거 후 SDL 애플리케이션을 실행할 수 있습니다.

관련 정보