śr., 13 lut 2019 o 17:33 H. Nikolaus Schaller hns@goldelico.com napisał(a):
Hi Pawel,
Am 13.02.2019 um 08:36 schrieb Paweł Chmiel pawel.mikolaj.chmiel@gmail.com:
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:~#
Where i could find that SGX_ClipBlit test (source or binary)?
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.
For mainline You will probably need https://github.com/PabloPL/linux/commit/de0f7e299d94f5dfdcf15375ec2d3ace54ac... because powervr is using some strange pointers.
I'm building my kernel and will get strace output of pvrsrvinit on my device (where it's working) in few minutes. For me it fails when trying to use egl programs (egl configurations = 0). Of course on mainline (5.0-rc4).
Hope this helps!
BR, Nikolaus