Action Item #147
closedPost request for firmware validation tools
100%
Description
To verify the firmware is working properly (before trying to run XBMC) I need some tools for verifying the installation. Right now xbmc suggests that /dev/vchiq is not configured properly. Here are some selected lines from an strace of the xbmc.bin executable:
open("/dev/vchiq", O_RDWR) = -1 ENOTCONN (Transport endpoint is not connected)
open("/dev/vchiq", O_RDWR) = -1 ENOTCONN (Transport endpoint is not connected)
write(1, "* failed to open vchiq instance\n", 32) = 32
I'd like to have some tool I can run to verify that the firmware is properly configured along with the device driver, which is compiled into the kernel (not a loadable module) at this point.
It's not clear where to ask this question, but I suspect a good place to start is in the Power Users forum.
Updated by Hammel almost 12 years ago
- Status changed from New to In Progress
- % Done changed from 0 to 50
Posted a request to the userland issue tracker this afternoon. I'm watching the userland repo now so I should get emails if anyone responds.
Updated by Hammel almost 12 years ago
Response from list:
Top of tree userland goes with top of tree start.elf/kernel.img so you should have 3.6.x or revert to:
93ae1bc
Does /opt/xbmc-bcm/xbmc-bin/lib/libvchiq_arm.so exist and have correct permissions? strace suggest it doesn't.
"vcgenmd version" would be the first thing I check for to see if userland is built correctly. It talks to GPU so needs compatible userland/kernel/start.elf.
Updated by Hammel almost 12 years ago
popcornmix wrote:
Response from list:
Top of tree userland goes with top of tree start.elf/kernel.img so you should have 3.6.x or revert to:
93ae1bc
Got it. I looked in the firmware logs and found that the apparent match to userland's 93ae1bc is 7beaaffa74159892a03a1c8152588b50d829f6e8 so I'm building using each of those now, until I upgrade my kernel build.
Does /opt/xbmc-bcm/xbmc-bin/lib/libvchiq_arm.so exist and have correct permissions? strace suggest it doesn't.
libvchiq_arm.so was actually under /usr/vc/lib but not /opt/xbmc-bcm/xbmc-bin/lib. So I symlinked the files under /usr/vc/libt to /opt/xbmc-bcm/xbmc-bin/lib but that didn't seem to make a difference.
Here is how it looks:
# ls -l /opt/xbmc-bcm/xbmc-bin/lib/ lrwxrwxrwx 1 root root 21 Feb 3 10:57 libEGL.so -> /opt/vc/lib/libEGL.so lrwxrwxrwx 1 root root 27 Feb 3 10:57 libEGL_static.a -> /opt/vc/lib/libEGL_static.a lrwxrwxrwx 1 root root 24 Feb 3 10:57 libGLESv2.so -> /opt/vc/lib/libGLESv2.so lrwxrwxrwx 1 root root 30 Feb 3 10:57 libGLESv2_static.a -> /opt/vc/lib/libGLESv2_static.a lrwxrwxrwx 1 root root 24 Feb 3 10:57 libOpenVG.so -> /opt/vc/lib/libOpenVG.so lrwxrwxrwx 1 root root 21 Feb 3 10:57 libWFC.so -> /opt/vc/lib/libWFC.so lrwxrwxrwx 1 root root 26 Feb 3 10:57 libbcm_host.so -> /opt/vc/lib/libbcm_host.so lrwxrwxrwx 1 root root 28 Feb 3 10:57 libkhrn_client.a -> /opt/vc/lib/libkhrn_client.a lrwxrwxrwx 1 root root 28 Feb 3 10:57 libkhrn_static.a -> /opt/vc/lib/libkhrn_static.a lrwxrwxrwx 1 root root 22 Feb 3 10:57 libmmal.so -> /opt/vc/lib/libmmal.so lrwxrwxrwx 1 root root 32 Feb 3 10:57 libmmal_vc_client.so -> /opt/vc/lib/libmmal_vc_client.so lrwxrwxrwx 1 root root 27 Feb 3 10:57 libopenmaxil.so -> /opt/vc/lib/libopenmaxil.so lrwxrwxrwx 1 root root 30 Feb 3 10:57 libvcfiled_check.a -> /opt/vc/lib/libvcfiled_check.a lrwxrwxrwx 1 root root 27 Feb 3 10:57 libvchiq_arm.so -> /opt/vc/lib/libvchiq_arm.so lrwxrwxrwx 1 root root 25 Feb 3 10:57 libvchostif.a -> /opt/vc/lib/libvchostif.a lrwxrwxrwx 1 root root 22 Feb 3 10:57 libvcos.so -> /opt/vc/lib/libvcos.so lrwxrwxrwx 1 root root 32 Feb 3 10:57 libvmcs_rpc_client.a -> /opt/vc/lib/libvmcs_rpc_client.a drwxr-xr-x 4 root root 4096 Jan 26 13:58 xbmc # ls -l /opt/vc/lib -rwxr-xr-x 1 root root 163536 Dec 31 12:21 libEGL.so -rw-r--r-- 1 root root 260368 Dec 31 11:02 libEGL_static.a -rwxr-xr-x 1 root root 82968 Dec 31 12:21 libGLESv2.so -rw-r--r-- 1 root root 99568 Dec 31 11:01 libGLESv2_static.a -rwxr-xr-x 1 root root 85652 Dec 31 12:21 libOpenVG.so -rwxr-xr-x 1 root root 63504 Dec 31 12:21 libWFC.so -rwxr-xr-x 1 root root 55176 Dec 31 12:21 libbcm_host.so -rw-r--r-- 1 root root 12256 Dec 31 11:00 libkhrn_client.a -rw-r--r-- 1 root root 450564 Dec 31 11:03 libkhrn_static.a -rwxr-xr-x 1 root root 40488 Dec 31 12:21 libmmal.so -rwxr-xr-x 1 root root 34844 Dec 31 12:21 libmmal_vc_client.so -rwxr-xr-x 1 root root 22368 Dec 31 12:21 libopenmaxil.so -rw-r--r-- 1 root root 2992 Dec 31 11:00 libvcfiled_check.a -rwxr-xr-x 1 root root 22088 Dec 31 12:21 libvchiq_arm.so -rw-r--r-- 1 root root 91560 Dec 31 11:01 libvchostif.a -rwxr-xr-x 1 root root 35120 Dec 31 12:21 libvcos.so -rw-r--r-- 1 root root 31162 Dec 31 11:02 libvmcs_rpc_client.a
"vcgenmd version" would be the first thing I check for to see if userland is built correctly. It talks to GPU so needs compatible userland/kernel/start.elf.
Doesn't seem to work (though this is without the build with the matching commits):
# id uid=0(root) gid=0(root) groups=0(root),10(wheel) # ldd vcgencmd libvcos.so => /opt/xbmc-bcm/xbmc-bin/lib/libvcos.so (0x4013d000) libvchiq_arm.so => /opt/xbmc-bcm/xbmc-bin/lib/libvchiq_arm.so (0x4006f000) libpthread.so.0 => /lib/libpthread.so.0 (0x4014e000) libdl.so.2 => /lib/libdl.so.2 (0x400f4000) librt.so.1 => /lib/librt.so.1 (0x4007d000) libc.so.6 => /lib/libc.so.6 (0x4016d000) /lib/ld-linux.so.3 (0x4002e000) # ./vcgencmd version VCHI initialization failed # strace ./vcgencmd version 2>&1 | grep /dev/vchiq open("/dev/vchiq", O_RDWR) = -1 ENOTCONN (Transport endpoint is not connected)
Maybe its just that the userland and firmware builds were not taken from matching releases. I'll try again with the updated commit ids and see what happens.
Updated by Hammel almost 12 years ago
- Status changed from In Progress to Closed
- % Done changed from 50 to 100
Userland validation can be done using the vgencmd --version command. Rebuilding using the matching userland/firmware repos and trying this succeeded.