루트가 아닌 사용자로 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 애플리케이션을 실행할 수 있습니다.