Hi Pawel, > Am 13.02.2019 um 08:36 schrieb Paweł Chmiel <pawel.mikolaj.chmiel@xxxxxxxxx>: > > Do You have strace of pvrsrvinit run ? They should be almost identical to one which i have. I have digged out a version where pvrsrvinit succeeds on our omap3530 based gta04 board (kernel 4.15.17). oot@letux:~# strace pvrsrvctl --start --no-module execve("/usr/local/bin/pvrsrvctl", ["pvrsrvctl", "--start", "--no-module"], [/* 14 vars */]) = 0 brk(0) = 0x12000 uname({sys="Linux", node="letux", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6efd000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/v7l/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls/v7l/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/v7l/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls/v7l/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/v7l/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls/v7l/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/v7l/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls/v7l", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/tls/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/tls", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/v7l/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/v7l/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/v7l/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/v7l/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/v7l/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/v7l/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/v7l/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/v7l", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/neon/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/neon/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/neon/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/neon", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/vfp/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib/vfp", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/usr/local/XSGX/lib/libsrv_init.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) stat64("/usr/local/XSGX/lib", 0xbeb3d420) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=45046, ...}) = 0 mmap2(NULL, 45046, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6ef2000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/libsrv_init.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0<\7\0\0004\0\0\0"..., 512) = 512 lseek(3, 94656, SEEK_SET) = 94656 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040 lseek(3, 94346, SEEK_SET) = 94346 read(3, "A6\0\0\0aeabi\0\1,\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 55) = 55 fstat64(3, {st_mode=S_IFREG|0755, st_size=95696, ...}) = 0 mmap2(NULL, 127076, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6eb8000 mprotect(0xb6ecf000, 28672, PROT_NONE) = 0 mmap2(0xb6ed6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0xb6ed6000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0Mw\1\0004\0\0\0"..., 512) = 512 lseek(3, 908188, SEEK_SET) = 908188 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2880) = 2880 lseek(3, 904740, SEEK_SET) = 904740 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\3\f"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0755, st_size=911068, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6ef1000 mmap2(NULL, 980392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6dc8000 mprotect(0xb6ea3000, 61440, PROT_NONE) = 0 mmap2(0xb6eb2000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xda000) = 0xb6eb2000 mmap2(0xb6eb5000, 9640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6eb5000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/libsrv_um.so", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\340#\0\0004\0\0\0"..., 512) = 512 lseek(3, 168544, SEEK_SET) = 168544 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120 lseek(3, 168210, SEEK_SET) = 168210 read(3, "A6\0\0\0aeabi\0\1,\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 55) = 55 fstat64(3, {st_mode=S_IFREG|0755, st_size=169664, ...}) = 0 mmap2(NULL, 200992, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d96000 mprotect(0xb6dbe000, 28672, PROT_NONE) = 0 mmap2(0xb6dc5000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x27000) = 0xb6dc5000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240\t\0\0004\0\0\0"..., 512) = 512 lseek(3, 8664, SEEK_SET) = 8664 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 8328, SEEK_SET) = 8328 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0644, st_size=9824, ...}) = 0 mmap2(NULL, 73912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d83000 mprotect(0xb6d85000, 61440, PROT_NONE) = 0 mmap2(0xb6d94000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb6d94000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0EQ\0\0004\0\0\0"..., 512) = 512 lseek(3, 100684, SEEK_SET) = 100684 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1520) = 1520 lseek(3, 65940, SEEK_SET) = 65940 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0755, st_size=102204, ...}) = 0 mmap2(NULL, 139836, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d60000 mprotect(0xb6d70000, 61440, PROT_NONE) = 0 mmap2(0xb6d7f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xb6d7f000 mmap2(0xb6d81000, 4668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6d81000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/librt.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@\30\0\0004\0\0\0"..., 512) = 512 lseek(3, 21260, SEEK_SET) = 21260 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1320) = 1320 lseek(3, 20868, SEEK_SET) = 20868 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0644, st_size=22580, ...}) = 0 mmap2(NULL, 86588, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d4a000 mprotect(0xb6d4f000, 61440, PROT_NONE) = 0 mmap2(0xb6d5e000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0xb6d5e000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\230\321\0\0004\0\0\0"..., 512) = 512 lseek(3, 99900, SEEK_SET) = 99900 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120 lseek(3, 99568, SEEK_SET) = 99568 read(3, "A2\0\0\0aeabi\0\1(\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 51) = 51 fstat64(3, {st_mode=S_IFREG|0644, st_size=101020, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6ef0000 mmap2(NULL, 165160, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d21000 mprotect(0xb6d3a000, 61440, PROT_NONE) = 0 mmap2(0xb6d49000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0xb6d49000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6d20000 set_tls(0xb6d204c0, 0xb6f00058, 0xb6d20ba8, 0xb6d204c0, 0xb6f00058) = 0 mprotect(0xb6eb2000, 8192, PROT_READ) = 0 mprotect(0xb6d7f000, 4096, PROT_READ) = 0 mprotect(0xb6d5e000, 4096, PROT_READ) = 0 mprotect(0xb6d94000, 4096, PROT_READ) = 0 mprotect(0xb6dc5000, 8192, PROT_READ) = 0 mprotect(0xb6ed6000, 4096, PROT_READ) = 0 mprotect(0x10000, 4096, PROT_READ) = 0 mprotect(0xb6eff000, 4096, PROT_READ) = 0 munmap(0xb6ef2000, 45046) = 0 set_tid_address(0xb6d20068) = 2672 set_robust_list(0xb6d20070, 12) = 0 rt_sigaction(SIGRTMIN, {0xb6d64d9d, [], SA_RESTORER|SA_SIGINFO, 0xb6deeb01}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xb6d64cbd, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0xb6deeb01}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 brk(0) = 0x12000 brk(0x33000) = 0x33000 open("/dev/pvrsrvkm", O_RDWR) = 3 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 ioctl(3, 0xc01c670c, 0xbeb3e9bc) = 0 ioctl(3, 0xc01c6744, 0xbeb3e9fc) = 0 ioctl(3, 0xc01c6700, 0xbeb3e8a4) = 0 ioctl(3, 0xc01c6701, 0xbeb3e90c) = 0 ioctl(3, 0xc01c6763, 0xbeb3e614) = 0 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000005000) = 0xb6efb000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000006000) = 0xb6efa000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000007000) = 0xb6ef9000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000008000) = 0xb6ef8000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000009000) = 0xb6ef7000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000a000) = 0xb6ef6000 ioctl(3, 0xc01c6706, 0xbeb3e80c) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7cc) = 0 mmap2(NULL, 28672, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000b000) = 0xb6d19000 open("/etc/powervr.ini", O_RDONLY) = -1 ENOENT (No such file or directory) open("powervr.ini", O_RDONLY) = -1 ENOENT (No such file or directory) ioctl(3, 0xc01c6706, 0xbeb3e80c) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7cc) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000c000) = 0xb6ef5000 ioctl(3, 0xc01c6706, 0xbeb3e80c) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7cc) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000d000) = 0xb6ef4000 ioctl(3, 0xc01c6706, 0xbeb3e7fc) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7bc) = 0 mmap2(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000e000) = 0xb6d13000 ioctl(3, 0xc01c6706, 0xbeb3e7fc) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7bc) = 0 mmap2(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x8000000f000) = 0xb6d0d000 ioctl(3, 0xc01c6706, 0xbeb3e7fc) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7bc) = 0 mmap2(NULL, 20480, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000010000) = 0xb6d08000 ioctl(3, 0xc01c6706, 0xbeb3e7fc) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7bc) = 0 mmap2(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000011000) = 0xb6d02000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000012000) = 0xb6ef3000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000013000) = 0xb6ef2000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000014000) = 0xb6d01000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000015000) = 0xb6d00000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c670b, 0xbeb3e7e4) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0x80000016000) = 0xb6cff000 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c6706, 0xbeb3e824) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6efb000, 8192) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6efa000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef9000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef7000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef8000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef6000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6d19000, 28672) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef5000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef4000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6d13000, 24576) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6d0d000, 24576) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6d02000, 24576) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6d08000, 20480) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef3000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6ef2000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6d01000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6d00000, 4096) = 0 ioctl(3, 0xc01c671b, 0xbeb3e8dc) = 0 munmap(0xb6cff000, 4096) = 0 ioctl(3, 0xc01c6764, 0xbeb3e91c) = 0 ioctl(3, 0xc01c6745, 0xbeb3e9ec) = 0 ioctl(3, 0xc01c670d, 0xbeb3e9c4) = 0 close(3) = 0 exit_group(0) = ? +++ exited with 0 +++ root@letux:~# root@letux:~# ls -l /dev/pvrsrvkm crw------- 1 root root 240, 0 Jan 1 00:06 /dev/pvrsrvkm root@letux:~# uname -a Linux letux 4.15.17-letux+ #3337 SMP PREEMPT Wed Feb 13 16:56:27 CET 2019 armv7l GNU/Linux root@letux:~# ./gpu-demo autodetected driver package: omap3630-sgx530-125 compatible driver: omap3630_sgx530_125 System Version String: SGX revision = 125 ----------------- SGX CLipBlit test ----------------- ---------------------- Start ------------------------ Call PVRSRVConnect with a valid argument: OK Get number of devices from PVRSRVEnumerateDevices: OK .... Reported 1 devices .... Device Number | Device Type 0000 | PVRSRV_DEVICE_ID_SGX Attempt to acquire device 0: OK Getting SGX Client info OK .... ui32ProcessID:2691 Display Class API: enumerate devices OK PVRSRVEnumerateDeviceClass() returns 0 display device(s) FAIL - PVRSRV_ERROR_NO_DC_DEVICES_FOUND(134) ./gpu-demo: line 71: 2691 Aborted sgx_clipblit_test root@letux:~# As you can see the firmware is loaded and connected successfully. Then it just fails to enumerate a display which is the missing/unfixed omaplfb. Some newer kernels did fail with rt_sigaction(SIGRTMIN, {0xb6e07d9d, [], SA_RESTORER|SA_SIGINFO, 0xb6e91b01}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xb6e07cbd, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0xb6e91b01}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 brk(0) = 0x12000 brk(0x33000) = 0x33000 open("/dev/pvrsrvkm", O_RDWR) = -1 ENOMEM (Cannot allocate memory) write(2, "pvrsrvctl: SrvInit failed (alrea"..., 57pvrsrvctl: SrvInit failed (already initialized?) (err=4) ) = 57 exit_group(1) = ? +++ exited with 1 +++ So I have to check what did break in between. And when. Most likely something with memory allocation. Hope this helps! BR, Nikolaus