XBMCBuntu and CrystalHD driver problems
#1
Hi,

I've an old Asus B202 box that I've taken the wireless card out of and put a CrystalHD BCM70015 in. I've been trying to get it to replace my Mac mini as htpc. I first installed openelec and got most things to work, but there were two issues, the rtmp version broke most livestreams streams and the sound made very annoying clicking noises/pops at the start and end of most videos. So on to XBMCBuntu.

I installed it on the box and it seemed to work fine, but video (even SD) was very choppy, to the point of being unwatchable. The CrystalHD card was not recognized. Which leads to my first question:

Why isn't the broadcom crystalhd driver included by default in XBMCBUNTU? I bought the broadcom card specifically because of XBMC.

Nagging aside, my next step was to get the driver installed. So I installed from the livecd, ran apt-get update/apt-get upgrade.

My system is as follows:
user@tv:/lib/modules$ uname -a
Linux tv 3.0.0-25-generic #41-Ubuntu SMP Mon Aug 13 17:59:54 UTC 2012 i686 i686 i386 GNU/Linux

The Asus b202 has an N270 Atom @1.6ghz, 2GB RAM, 80GB hdd, GMA 950 graphics, gigabit ethernet and the bcm70015.

After much searching I found http://code.google.com/p/indicator-cryst...talHDHowTo and followed the instructions. During the "make" of the driver part, this error comes up:

Code:
WARNING: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'

During the making of the lib the following messages (quite a few warnings, most seem harmless) come up
Code:
user@tv:~/crystalhd/linux_lib/libcrystalhd$ make
OBJFILES = libcrystalhd_if.o libcrystalhd_int_if.o libcrystalhd_fwcmds.o libcrystalhd_priv.o libcrystalhd_fwdiag_if.o libcrystalhd_fwload_if.o libcrystalhd_parser.o
SRCFILES = libcrystalhd_if.cpp libcrystalhd_int_if.cpp libcrystalhd_fwcmds.cpp libcrystalhd_priv.cpp libcrystalhd_fwdiag_if.cpp libcrystalhd_fwload_if.cpp libcrystalhd_parser.cpp
LNM = libcrystalhd.so.3.6 libcrystalhd.so.3
g++  -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2  -c -o libcrystalhd_if.o libcrystalhd_if.cpp
In file included from /usr/include/string.h:642:0,
                 from ../../include/bc_dts_glob_lnx.h:37,
                 from libcrystalhd_priv.h:33,
                 from libcrystalhd_if.cpp:39:
In function ‘char* strncat(char*, const char*, size_t)’,
    inlined from ‘BC_STATUS DtsGetFWVersionFromFile(HANDLE, uint32_t*, uint32_t*, char*)’ at libcrystalhd_if.cpp:716:52:
/usr/include/i386-linux-gnu/bits/string3.h:152:71: warning: call to char* __builtin___strncat_chk(char*, const char*, unsigned int, unsigned int) might overflow destination buffer [enabled by default]
g++  -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2  -c -o libcrystalhd_int_if.o libcrystalhd_int_if.cpp
libcrystalhd_int_if.cpp: In function ‘BC_STATUS DtsDevMemRd(HANDLE, uint32_t*, uint32_t, uint32_t)’:
libcrystalhd_int_if.cpp:741:15: warning: variable ‘IOcCode’ set but not used [-Wunused-but-set-variable]
libcrystalhd_int_if.cpp: In function ‘BC_STATUS DtsDevMemWr(HANDLE, uint32_t*, uint32_t, uint32_t)’:
libcrystalhd_int_if.cpp:879:10: warning: passing NULL to non-pointer argument 8 of ‘BOOL DtsDrvIoctl(HANDLE, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, BOOL)’ [-Wconversion-null]
libcrystalhd_int_if.cpp:824:15: warning: variable ‘IOcCode’ set but not used [-Wunused-but-set-variable]
libcrystalhd_int_if.cpp: In function ‘BC_STATUS DtsCopyRawDataToOutBuff(DTS_LIB_CONTEXT*, BC_DTS_PROC_OUT*, BC_DTS_PROC_OUT*)’:
libcrystalhd_int_if.cpp:1218:33: warning: variable ‘srcHeightInPixels’ set but not used [-Wunused-but-set-variable]
libcrystalhd_int_if.cpp: In function ‘BC_STATUS DtsCopyNV12ToYV12(DTS_LIB_CONTEXT*, BC_DTS_PROC_OUT*, BC_DTS_PROC_OUT*)’:
libcrystalhd_int_if.cpp:1283:29: warning: variable ‘srcHeightInPixels’ set but not used [-Wunused-but-set-variable]
libcrystalhd_int_if.cpp: In function ‘BC_STATUS DtsCopyNV12(DTS_LIB_CONTEXT*, BC_DTS_PROC_OUT*, BC_DTS_PROC_OUT*)’:
libcrystalhd_int_if.cpp:1366:31: warning: variable ‘srcHeightInPixels’ set but not used [-Wunused-but-set-variable]
libcrystalhd_int_if.cpp: At global scope:
libcrystalhd_int_if.cpp:1472:18: warning: ‘BC_STATUS DtsCopy422ToYV12(uint8_t*, uint8_t*, const uint8_t*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)’ defined but not used [-Wunused-function]
libcrystalhd_int_if.cpp:1675:18: warning: ‘BC_STATUS DtsCopy420ToYV12(uint8_t*, uint8_t*, const uint8_t*, const uint8_t*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t)’ defined but not used [-Wunused-function]
g++  -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2  -c -o libcrystalhd_fwcmds.o libcrystalhd_fwcmds.cpp
g++  -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2  -c -o libcrystalhd_priv.o libcrystalhd_priv.cpp
g++  -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2  -c -o libcrystalhd_fwdiag_if.o libcrystalhd_fwdiag_if.cpp
In file included from /usr/include/string.h:642:0,
                 from ../../include/bc_dts_glob_lnx.h:37,
                 from libcrystalhd_int_if.h:33,
                 from libcrystalhd_fwdiag_if.cpp:31:
In function ‘char* strncat(char*, const char*, size_t)’,
    inlined from ‘BC_STATUS DtsDownloadFWDIAGToLINK(HANDLE, char*)’ at libcrystalhd_fwdiag_if.cpp:171:56:
/usr/include/i386-linux-gnu/bits/string3.h:152:71: warning: call to char* __builtin___strncat_chk(char*, const char*, unsigned int, unsigned int) might overflow destination buffer [enabled by default]
g++  -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2  -c -o libcrystalhd_fwload_if.o libcrystalhd_fwload_if.cpp
g++  -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2  -c -o libcrystalhd_parser.o libcrystalhd_parser.cpp
libcrystalhd_parser.cpp: In function ‘BC_STATUS DtsAddH264SCode(HANDLE, uint8_t**, uint32_t*, uint64_t*)’:
libcrystalhd_parser.cpp:542:11: warning: variable ‘pNALU’ set but not used [-Wunused-but-set-variable]
libcrystalhd_parser.cpp:543:11: warning: variable ‘ulNalSize’ set but not used [-Wunused-but-set-variable]
g++ -D__LINUX_USER__ -I./ -I/usr/include -I../../include -I../../include/link -O2 -Wall -fPIC -shared -fstrict-aliasing -msse2 -Wl,-soname,libcrystalhd.so.3 -pthread -o libcrystalhd.so.3.6 libcrystalhd_if.o libcrystalhd_int_if.o libcrystalhd_fwcmds.o libcrystalhd_priv.o libcrystalhd_fwdiag_if.o libcrystalhd_fwload_if.o libcrystalhd_parser.o
ln -sf libcrystalhd.so.3.6 libcrystalhd.so
ln -sf libcrystalhd.so.3.6 libcrystalhd.so.3

But after the sudo make install, when I go to the modprobe, it fails and dmesg gives the following:
Code:
user@tv:~/crystalhd/linux_lib/libcrystalhd$ sudo modprobe crystalhd
FATAL: Error inserting crystalhd (/lib/modules/3.0.0-25-generic/updates/dkms/crystalhd.ko): Invalid module format
user@tv:~/crystalhd/linux_lib/libcrystalhd$ dmesg | grep crystalhd
[    7.994510] crystalhd: disagrees about version of symbol module_layout
[ 1404.594872] crystalhd: disagrees about version of symbol module_layout

So now I'm stuck, and this thread doesn't work for me. (or it's not clear to me what I should do)

What do I do next?
Reply
#2
I should have looked at this thread: http://forum.xbmc.org/showthread.php?tid=137176

It didn't have crystalhd, it mentions crystal hd. Duh.
Reply

Logout Mark Read Team Forum Stats Members Help
XBMCBuntu and CrystalHD driver problems0