The preinstalled hardkernel image PPSSPP in /opt/ppsspp complains about not having file system access.
strace has strange errors. it does not matter if i start it as root or normal user (just changing the config file locations). is this an app armor problem? the flatpack version works (without gpu acceleration) and can access all files. this is pretty strange. my home folder is mounted from a SD card, but this should most likely not matter.
Code:
odroid@gou:~$ grep / ppsspp.txt
execve("/opt/ppsspp/PPSSPPSDL", ["/opt/ppsspp/PPSSPPSDL"], 0x7fce14a000 /* 37 vars */) = 0
faccessat(AT_FDCWD, "/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libSDL2-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/local/lib/aarch64-linux-gnu/libgs0.so", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/local/lib/aarch64-linux-gnu/libgs0-input.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0\240/\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/local/lib/aarch64-linux-gnu/libgs0-audio.so", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/local/lib/aarch64-linux-gnu/libGLESv2.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/local/lib/aarch64-linux-gnu/libEGL.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libX11.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libstdc++.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libm.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libasound.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libpulse.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXext.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXcursor.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXinerama.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXi.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXrandr.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXss.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXxf86vm.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libwayland-egl.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libwayland-client.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libwayland-cursor.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libxkbcommon.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/local/lib/aarch64-linux-gnu/libmali.so", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libevdev.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libopenal.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libxcb.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/tls/aarch64/libpulsecommon-13.99.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/tls/aarch64", 0x7fc7093c80, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/tls/libpulsecommon-13.99.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/tls", 0x7fc7093c80, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/aarch64/libpulsecommon-13.99.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/aarch64", 0x7fc7093c80, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/libpulsecommon-13.99.so", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/pulseaudio/libdbus-1.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libdbus-1.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXrender.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXfixes.so.3", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libffi.so.7", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libsndio.so.7.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXau.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libXdmcp.so.6", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libsystemd.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libwrap.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libsndfile.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libasyncns.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libapparmor.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0\267\0\1\0\0\0p/\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libbsd.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/liblz4.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libgcrypt.so.20", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libnsl.so.1", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libFLAC.so.8", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libogg.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libvorbis.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libvorbisenc.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libgpg-error.so.0", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/proc/cpuinfo", O_RDONLY) = 3
openat(AT_FDCWD, "/sys/devices/system/cpu/present", O_RDONLY) = 3
openat(AT_FDCWD, "/home/odroid/.pulse/client.conf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/home/odroid/.config/pulse/client.conf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/pulse/client.conf", O_RDONLY|O_CLOEXEC) = 5
readlinkat(AT_FDCWD, "/proc/self/exe", "/opt/ppsspp/PPSSPPSDL", 99) = 21
openat(AT_FDCWD, "/usr/lib/aarch64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 6
openat(AT_FDCWD, "/etc/pulse/client.conf.d", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 6
getdents64(6, /* 3 entries */, 32768) = 96
getdents64(6, /* 0 entries */, 32768) = 0
openat(AT_FDCWD, "/etc/pulse/client.conf.d/01-enable-autospawn.conf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 5
read(5, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 542
newfstatat(AT_FDCWD, "/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=734, ...}, 0) = 0
openat(AT_FDCWD, "/etc/host.conf", O_RDONLY|O_CLOEXEC) = 5
openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 5
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 5
openat(AT_FDCWD, "/lib/aarch64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 5
openat(AT_FDCWD, "/etc/hosts", O_RDONLY|O_CLOEXEC) = 5
openat(AT_FDCWD, "/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 5
faccessat(AT_FDCWD, "/home/odroid/.Xauthority", R_OK) = 0
openat(AT_FDCWD, "/home/odroid/.Xauthority", O_RDONLY) = 6
openat(AT_FDCWD, "/dev/shm/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 5
getdents64(5, /* 2 entries */, 32768) = 48
getdents64(5, /* 0 entries */, 32768) = 0
openat(AT_FDCWD, "/dev/urandom", O_RDONLY|O_NOCTTY|O_CLOEXEC) = 5
openat(AT_FDCWD, "/etc/machine-id", O_RDONLY|O_CLOEXEC) = 6
openat(AT_FDCWD, "/dev/fb0", O_RDWR) = 3
openat(AT_FDCWD, "./.mali_config", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/dev/mali0", O_RDWR|O_NONBLOCK|O_CLOEXEC) = 4
openat(AT_FDCWD, "/proc/16478/cmdline", O_RDONLY) = 5
read(5, "/opt/ppsspp/PPSSPPSDL\0", 1024) = 22
openat(AT_FDCWD, "./override.instr_config", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "./PPSSPPSDL.instr_config", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "./default.instr_config", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/sys/devices/system/cpu", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 5
getdents64(5, /* 21 entries */, 32768) = 616
getdents64(5, /* 0 entries */, 32768) = 0
openat(AT_FDCWD, "/dev/fb0", O_RDWR) = 8
openat(AT_FDCWD, "/dev/fb1", O_RDWR) = 10
openat(AT_FDCWD, "/dev/fb2", O_RDWR) = 12
openat(AT_FDCWD, "/dev/fb3", O_RDWR) = 14
openat(AT_FDCWD, "/dev/fb4", O_RDWR) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/dev/dma_heap/cma_name", O_RDWR) = 17
openat(AT_FDCWD, "/dev/input/", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 17
getdents64(17, /* 9 entries */, 32768) = 256
getdents64(17, /* 0 entries */, 32768) = 0
openat(AT_FDCWD, "/dev/input/event0", O_RDWR) = 17
ioctl(17, EVIOCGPHYS(255), "gpio-keys-polled/input0\0") = 24
openat(AT_FDCWD, "/dev/input/event1", O_RDWR) = 17
ioctl(17, EVIOCGPHYS(255), "rk8xx_pwrkey/input0\0") = 20
openat(AT_FDCWD, "/dev/input/event2", O_RDWR) = 17
openat(AT_FDCWD, "/dev/input/event3", O_RDWR) = 17
ioctl(17, EVIOCGPHYS(255), "odroidgo_joypad/input0\0") = 23
openat(AT_FDCWD, "/dev/input/event3", O_RDWR) = 17
ioctl(17, EVIOCGPHYS(255), "odroidgo_joypad/input0\0") = 23
readlinkat(AT_FDCWD, "/proc/self/exe", "/opt/ppsspp/PPSSPPSDL", 4095) = 21
newfstatat(AT_FDCWD, "/home/odroid/ppsspp.ini", 0x7fc7093cc8, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini", {st_mode=S_IFREG|0664, st_size=7451, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/odroid/controls.ini", 0x7fc7093cc8, 0) = -1 ENOENT (No such file or directory)
newfstatat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini", {st_mode=S_IFREG|0664, st_size=444, ...}, 0) = 0
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini", O_RDONLY) = 20
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_IDENTIFICATION", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_MEASUREMENT", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_TELEPHONE", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_ADDRESS", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_NAME", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_PAPER", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_MONETARY", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_COLLATE", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_TIME", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_NUMERIC", O_RDONLY|O_CLOEXEC) = 20
openat(AT_FDCWD, "/usr/lib/locale/C.UTF-8/LC_CTYPE", O_RDONLY|O_CLOEXEC) = 20
newfstatat(AT_FDCWD, "/opt/ppsspp/assets/lang/en_US.ini", {st_mode=S_IFREG|0777, st_size=35217, ...}, 0) = 0
newfstatat(AT_FDCWD, "/home/odroid", {st_mode=S_IFDIR|0755, st_size=4096, ...}, 0) = 0
openat(AT_FDCWD, "/etc/localtime", O_RDONLY|O_CLOEXEC) = 20
write(2, "59:13:816 Core/Config.cpp:1183 I"..., 12159:13:816 Core/Config.cpp:1183 I[LOADER]: Loading controller config: /home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini", O_RDONLY) = 20
newfstatat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/lang", 0x7fc7093e98, 0) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/opt/ppsspp/assets/lang/en_US.ini", O_RDONLY) = 20
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2326, ...}, 0) = 0
write(2, "59:13:820 UI/NativeApp.cpp:387 E"..., 7059:13:820 UI/NativeApp.cpp:387 E[LOADER]: Failed graphics backends: 0
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2326, ...}, 0) = 0
write(2, "59:13:820 Core/Config.cpp:601 E["..., 8759:13:820 Core/Config.cpp:601 E[LOADER]: Graphics backend failed for 0, trying another
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2326, ...}, 0) = 0
write(2, "59:13:820 Core/Config.cpp:626 E["..., 7059:13:820 Core/Config.cpp:626 E[LOADER]: All graphics backends failed
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini", O_RDONLY) = 20
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 20
write(20, "CurrentDirectory = /home/odroid\n", 32) = 32
write(20, "RemoteISOSubdir = /\n", 20) = 20
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2326, ...}, 0) = 0
write(2, "59:13:844 Core/Config.cpp:1269 I"..., 13359:13:844 Core/Config.cpp:1269 I[LOADER]: Config saved (got storage permission): '/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini", O_RDONLY) = 20
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 20
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2326, ...}, 0) = 0
write(2, "59:13:846 Core/Config.cpp:1282 I"..., 11959:13:846 Core/Config.cpp:1282 I[LOADER]: Controller config saved: /home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini
openat(AT_FDCWD, "/dev/ge2d", O_RDWR) = 20
futex(0x55c5a558d8, FUTEX_WAKE_PRIVATE, 159:14:066 Core/Config.cpp:1269 I[LOADER]: Config saved (clearFailedGPUBackends): '/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
59:14:066 Core/Config.cpp:1282 I[LOADER]: Controller config saved: /home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini
futex(0x55c5a55dd8, FUTEX_WAKE_PRIVATE, 159:22:288 Core/Config.cpp:1269 I[LOADER]: Config saved (MainScreen::OnExit): '/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
59:22:289 Core/Config.cpp:1282 I[LOADER]: Controller config saved: /home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini", O_RDONLY) = 22
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 22
write(22, "CurrentDirectory = /home/odroid\n", 32) = 32
write(22, "RemoteISOSubdir = /\n", 20) = 20
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2326, ...}, 0) = 0
write(2, "59:22:319 Core/Config.cpp:1269 I"..., 12559:22:319 Core/Config.cpp:1269 I[LOADER]: Config saved (NativeShutdown): '/home/odroid/.config/ppsspp/PSP/SYSTEM/ppsspp.ini'
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini", O_RDONLY) = 22
openat(AT_FDCWD, "/home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 22
newfstatat(AT_FDCWD, "/etc/localtime", {st_mode=S_IFREG|0644, st_size=2326, ...}, 0) = 0
write(2, "59:22:321 Core/Config.cpp:1282 I"..., 11959:22:321 Core/Config.cpp:1282 I[LOADER]: Controller config saved: /home/odroid/.config/ppsspp/PSP/SYSTEM/controls.ini
Device: name=/dev/input/event0
Device: name=/dev/input/event1
Device: name=/dev/input/event2
Device: name=/dev/input/event3
AddDevice: adding (0)=(/dev/input/event3)