Cross compiling for old ARM-box

Support forum for minisatip
digihoe
Posts: 15
Joined: Tue Apr 12, 2016 9:07 am

Cross compiling for old ARM-box

Post by digihoe »

Hi I would very much like to make a static compilation of Minisatip that could run on a Hypercube/D-Cube/Prismcube/CST Coolstream Tank box.
Also some Qnap nas boxes uses same type of CPU or atleast Oscam can run with a Coolstream compilation https://rodezio.wordpress.com/2014/05/16/oscam-on-qnap/ so might work with some ARM routers too.

In my case I have an old Hypercube that runs Enigma2, Oscam compilations for the PrismCube runs fine on the HyperCube (Compiled with arm-marvell-linux-gnueabi cross compiler that I have not found), however the Coolstream compilations of Oscam also runs fine provided I put http://www.streamboard.tv/oscam/attachment/wiki/crosscompiling/libnxp.so.gz in /usr/lib in the box, so I guess a compilation with the Coolstream cross compiler ( http://streamboard.de.vu/wbb2/tut-pics/toolchains/Toolchain-cross-arm-cx2450x-linux-gnueabi.tar.bz2 ) should work for Minisatip too.

So far I've setup the cross compiler and tried to make a compilation.

Code: Select all

xxx@lubuntu:/minisatip# ./configure CC=/opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc --host=arm --enable-static
checking for arm-gcc... /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc accepts -g... yes
checking for /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc option to accept ISO C89... none needed
checking for main in -lrt... yes
checking how to run the C preprocessor... /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for int16_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for size_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... no
checking for bzero... yes
checking for clock_gettime... yes
checking for dup2... yes
checking for gethostbyname... yes
checking for gettimeofday... yes
checking for inet_ntoa... yes
checking for memset... yes
checking for munmap... yes
checking for socket... yes
checking for strchr... yes
checking for strerror... yes
checking for strncasecmp... yes
checking for strstr... yes
configure:  == Checking LINUX DVB ==
checking linux/dvb/frontend.h usability... yes
checking linux/dvb/frontend.h presence... yes
checking for linux/dvb/frontend.h... yes
configure:  == Checking DVBEN50221 ==
checking libdvben50221/en50221_app_dvb.h usability... no
checking libdvben50221/en50221_app_dvb.h presence... no
checking for libdvben50221/en50221_app_dvb.h... no
configure:  == Checking OpenSSL ==
checking openssl/aes.h usability... yes
checking openssl/aes.h presence... yes
checking for openssl/aes.h... yes
configure:  == Checking Embedded ==
checking for backtrace... yes
configure:  == Checking DVBCSA ==
checking dvbcsa/dvbcsa.h usability... no
checking dvbcsa/dvbcsa.h presence... no
checking for dvbcsa/dvbcsa.h... no
configure:  == Checking NETCVCLIENT ==
checking netceiver.h usability... cat: confdefs.h: No such file or directory
no
checking netceiver.h presence... cat: confdefs.h: No such file or directory
no
checking for netceiver.h... no
configure: creating ./config.status
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating Makefile

minisatip configuration


Linux DVB:                                enabled
Common Interface (needs DVBEN50221):      disabled
OpenSSL (AES as part of DVBAPI):          enabled
Embedded system:                          disabled
DVBCSA (needs libdvbcsa):                 disabled
Netceiver support:                        disabled
SatIP Client:                             enabled
Static:                                   enabled
dvbapi:                                   enabled
axe:                                      disabled
enigma:                                   disabled
All this seem ok but running make returns errors, how can I resolve these errors?

Code: Select all

xxx@lubuntu:/minisatip# make
make -C src
make[1]: Entering directory `/minisatip/src'
In file included from dvb.c:39:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from adapter.h:3,
                 from dvbapi.h:5,
                 from satipc.c:43:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from tables.c:41:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from pmt.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from dvbapi.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from aes.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from utils.c:50:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from adapter.c:33:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from stream.c:40:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from socketworks.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from minisatip.c:21:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
make[1]: Leaving directory `/minisatip/src'
make[1]: Entering directory `/minisatip/src'
/opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c minisatip.c -o ../build/minisatip.o
In file included from stream.h:6,
                 from minisatip.h:6,
                 from minisatip.c:21:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from minisatip.c:21:
dvb.h:206: error: expected specifier-qualifier-list before 'fe_delivery_system_t'
dvb.h:260: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'dvb_delsys'
In file included from minisatip.c:43:
adapter.h:25: error: expected declaration specifiers or '...' before '*' token
adapter.h:26: error: expected declaration specifiers or '...' before 'fe_delivery_system_t'
adapter.h:26: warning: type defaults to 'int' in declaration of 'fe_delivery_system_t'
adapter.h:26: error: 'fe_delivery_system_t' declared as function returning a function
adapter.h:48: error: declaration of 'sys' as array of functions
adapter.h:96: error: expected specifier-qualifier-list before 'Dvb_delsys'
make[1]: *** [../build/minisatip.o] Error 1
make[1]: Leaving directory `/minisatip/src'
make: *** [minisatip] Error 2
The dvb.h/dvb.c files can be updated, right?

Also how do I enable DVBEN50221 and DVBCSA, I guess I do that in the cross compiler?

The Oscam cross compiler for MIPS (dm800hd/VU/gigablue), does work to compile a working static version (no DVBEN50221 or DVBCSA though) of Minisatip without any problems...

Any clues how to make this compile for the ARM?

Thanks in advance and best regards!
digihoe
Posts: 15
Joined: Tue Apr 12, 2016 9:07 am

Re: Cross compiling for old ARM-box

Post by digihoe »

Update:

Placing libdvben50221 and dvbcsa source folders in /opt/cross_arm/arm-cx2450x-linux-gnueabi/arm-cx2450x-linux-gnueabi/sys-root/usr/include/ enables those options in configure.

Code: Select all

txxx@lubuntu:/minisatip# ./configure CC=/opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc --host=arm --enable-static --enable-dvbcsa
checking for arm-gcc... /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc accepts -g... yes
checking for /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc option to accept ISO C89... none needed
checking for main in -lrt... yes
checking how to run the C preprocessor... /opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for int16_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for size_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... no
checking for bzero... yes
checking for clock_gettime... yes
checking for dup2... yes
checking for gethostbyname... yes
checking for gettimeofday... yes
checking for inet_ntoa... yes
checking for memset... yes
checking for munmap... yes
checking for socket... yes
checking for strchr... yes
checking for strerror... yes
checking for strncasecmp... yes
checking for strstr... yes
configure:  == Checking LINUX DVB ==
checking linux/dvb/frontend.h usability... yes
checking linux/dvb/frontend.h presence... yes
checking for linux/dvb/frontend.h... yes
configure:  == Checking DVBEN50221 ==
checking libdvben50221/en50221_app_dvb.h usability... yes
checking libdvben50221/en50221_app_dvb.h presence... yes
checking for libdvben50221/en50221_app_dvb.h... yes
configure:  == Checking OpenSSL ==
checking openssl/aes.h usability... yes
checking openssl/aes.h presence... yes
checking for openssl/aes.h... yes
configure:  == Checking Embedded ==
checking for backtrace... yes
configure:  == Checking DVBCSA ==
checking dvbcsa/dvbcsa.h usability... yes
checking dvbcsa/dvbcsa.h presence... yes
checking for dvbcsa/dvbcsa.h... yes
configure:  == Checking NETCVCLIENT ==
checking netceiver.h usability... no
checking netceiver.h presence... no
checking for netceiver.h... no
configure: creating ./config.status
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating Makefile

minisatip configuration


Linux DVB:                                enabled
Common Interface (needs DVBEN50221):      enabled
OpenSSL (AES as part of DVBAPI):          enabled
Embedded system:                          disabled
DVBCSA (needs libdvbcsa):                 enabled
Netceiver support:                        disabled
SatIP Client:                             enabled
Static:                                   enabled
dvbapi:                                   enabled
axe:                                      disabled
enigma:                                   disabled

But placing libdvbv5 in the same folder however does not solve any compile issues

Code: Select all

xxx@lubuntu:/minisatip# make
make -C src
make[1]: Entering directory `/minisatip/src'
In file included from dvb.c:39:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from adapter.h:3,
                 from dvbapi.h:5,
                 from satipc.c:43:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from tables.c:41:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from pmt.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from ca.c:53:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from dvbapi.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from csa.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from aes.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from utils.c:51:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from adapter.c:33:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from stream.c:40:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from socketworks.c:42:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from minisatip.c:21:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
make[1]: Leaving directory `/minisatip/src'
make[1]: Entering directory `/minisatip/src'
/opt/cross_arm/arm-cx2450x-linux-gnueabi/bin/arm-cx2450x-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c minisatip.c -o ../build/minisatip.o
In file included from stream.h:6,
                 from minisatip.h:6,
                 from minisatip.c:21:
dvb.h:32:2: error: #error minisatip requires Linux DVB driver API version 5.0 or higher!
In file included from stream.h:6,
                 from minisatip.h:6,
                 from minisatip.c:21:
dvb.h:206: error: expected specifier-qualifier-list before 'fe_delivery_system_t'
dvb.h:260: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'dvb_delsys'
In file included from minisatip.c:43:
adapter.h:25: error: expected declaration specifiers or '...' before '*' token
adapter.h:26: error: expected declaration specifiers or '...' before 'fe_delivery_system_t'
adapter.h:26: warning: type defaults to 'int' in declaration of 'fe_delivery_system_t'
adapter.h:26: error: 'fe_delivery_system_t' declared as function returning a function
adapter.h:48: error: declaration of 'sys' as array of functions
adapter.h:96: error: expected specifier-qualifier-list before 'Dvb_delsys'
make[1]: *** [../build/minisatip.o] Error 1
make[1]: Leaving directory `/minisatip/src'
make: *** [minisatip] Error 2
Best regards!
digihoe
Posts: 15
Joined: Tue Apr 12, 2016 9:07 am

Re: Cross compiling for old ARM-box

Post by digihoe »

Update 2:

Running configure with --disable-linuxdvb made it compile (without libdvben50221 and dvbcsa, though)...
digihoe
Posts: 15
Joined: Tue Apr 12, 2016 9:07 am

Re: Cross compiling for old ARM-box

Post by digihoe »

Update 3:

minisatip, does run on the HyperCube (so should work on all other boxes too), but does not find any tuners (2XDVBS2, 1XDVBT), must be as a result of not being able to use linuxdvb in the compilation... Any help would be nice on how to setup the cross-compiler to have them working. :oops:

Thanks in advance!
Shprot
Posts: 11
Joined: Wed Sep 13, 2017 4:45 pm

Re: Cross compiling for old ARM-box

Post by Shprot »

Hi! Can upload the resulting file here?
cata
Site Admin
Posts: 768
Joined: Tue May 12, 2015 1:01 am

Re: Cross compiling for old ARM-box

Post by cata »

If you add --disable-linuxdvb you will not have the hardware tuners present on the box.

What can you do is replace opt/cross_arm/arm-cx2450x-linux-gnueabi/arm-cx2450x-linux-gnueabi/sys-root/usr/include/linux/dvb/ with /usr/include/linux/dvb/

This will provide the headers of DVB > 5.0

Thanks
digihoe
Posts: 15
Joined: Tue Apr 12, 2016 9:07 am

Re: Cross compiling for old ARM-box

Post by digihoe »

Update 4:

Thanks to cata I could now enable linuxdvb again, however minisatip does still not find any tuners on the HyperCube (SU980)

Code: Select all

root@hypercube:/var/volatile/tmp# ./minisatip -f
[29/09 23:19:13.476 main]: Initializing with 0 devices

root@hypercube:/dev/dvb/adapter0# ls
audio0     ca2        demux1     dvr0       dvr4       frontend0  video1
audio1     ca3        demux2     dvr1       fe_sat0    frontend1
ca0        ca4        demux3     dvr2       fe_sat1    frontend2
ca1        demux0     demux4     dvr3       fe_ter0    video0

Maybe Coolstream uses diffrent way to detect tuner/fronends, but I think they maybe both are DVBAPI V3?

Also I have also found a second compiler more specific for the HyperCube (at least when it comes to Oscam) via simplebuild

Code: Select all

xxx@lubuntu:/minisatip# ./configure CC=/opt/simplebuild/toolchains/arm_cortex_a9/bin/arm-cortex-linux-gnueabi-gcc --host=arm --enable-static --enable-dvbcsa
checking for arm-gcc... /opt/simplebuild/toolchains/arm_cortex_a9/bin/arm-cortex-linux-gnueabi-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether /opt/simplebuild/toolchains/arm_cortex_a9/bin/arm-cortex-linux-gnueabi-gcc accepts -g... yes
checking for /opt/simplebuild/toolchains/arm_cortex_a9/bin/arm-cortex-linux-gnueabi-gcc option to accept ISO C89... none needed
checking for main in -lrt... yes
checking how to run the C preprocessor... /opt/simplebuild/toolchains/arm_cortex_a9/bin/arm-cortex-linux-gnueabi-gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking for unistd.h... (cached) yes
checking for int16_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for size_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... no
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... yes
checking for getpagesize... yes
checking for working mmap... no
checking for bzero... yes
checking for clock_gettime... yes
checking for dup2... yes
checking for gethostbyname... yes
checking for gettimeofday... yes
checking for inet_ntoa... yes
checking for memset... yes
checking for munmap... yes
checking for socket... yes
checking for strchr... yes
checking for strerror... yes
checking for strncasecmp... yes
checking for strstr... yes
configure:  == Checking LINUX DVB ==
checking linux/dvb/frontend.h usability... yes
checking linux/dvb/frontend.h presence... yes
checking for linux/dvb/frontend.h... yes
configure:  == Checking DVBEN50221 ==
checking libdvben50221/en50221_app_dvb.h usability... no
checking libdvben50221/en50221_app_dvb.h presence... no
checking for libdvben50221/en50221_app_dvb.h... no
configure:  == Checking OpenSSL ==
checking openssl/aes.h usability... yes
checking openssl/aes.h presence... yes
checking for openssl/aes.h... yes
configure:  == Checking Embedded ==
checking for backtrace... yes
configure:  == Checking DVBCSA ==
checking dvbcsa/dvbcsa.h usability... no
checking dvbcsa/dvbcsa.h presence... no
checking for dvbcsa/dvbcsa.h... no
configure:  == Checking NETCVCLIENT ==
checking netceiver.h usability... no
checking netceiver.h presence... no
checking for netceiver.h... no
configure: creating ./config.status
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating Makefile

minisatip configuration


Linux DVB:                                enabled
Common Interface (needs DVBEN50221):      disabled
OpenSSL (AES as part of DVBAPI):          enabled
Embedded system:                          disabled
DVBCSA (needs libdvbcsa):                 disabled
Netceiver support:                        disabled
SatIP Client:                             enabled
Static:                                   enabled
dvbapi:                                   enabled
axe:                                      disabled
enigma:                                   disabled
But running make return errors again

Code: Select all

xxx@lubuntu:/minisatip# make
make -C src
make[1]: Entering directory `/minisatip/src'
make[1]: Leaving directory `/minisatip/src'
make[1]: Entering directory `/minisatip/src'
/opt/simplebuild/toolchains/arm_cortex_a9/bin/arm-cortex-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c minisatip.c -o ../build/minisatip.o
/opt/simplebuild/toolchains/arm_cortex_a9/bin/arm-cortex-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c socketworks.c -o ../build/socketworks.o
/tmp/ccuwLJ6A.s: Assembler messages:
/tmp/ccuwLJ6A.s:5285: Error: operation combines symbols in different segments
/tmp/ccuwLJ6A.s:5287: Error: operation combines symbols in different segments
/tmp/ccuwLJ6A.s:5293: Error: operation combines symbols in different segments
make[1]: *** [../build/socketworks.o] Error 1
make[1]: Leaving directory `/minisatip/src'
make: *** [minisatip] Error 2

@Shprot

The resulting files (even when compressed) are too big to upload to the forum I'm sorry to say, will look into other solution later though.
digihoe
Posts: 15
Joined: Tue Apr 12, 2016 9:07 am

Re: Cross compiling for old ARM-box

Post by digihoe »

Update 5:

I found the marvell compiler, it compiled without problems, making a slightly bigger file than the coolstream one.

Code: Select all

xxx@lubuntu:/home/lubuntu/minisatip# make
make -C src
make[1]: Entering directory `/minisatip/src'
make[1]: Leaving directory `/minisatip/src'
make[1]: Entering directory `/minisatip/src'
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c minisatip.c -o ../build/minisatip.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c socketworks.c -o ../build/socketworks.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c stream.c -o ../build/stream.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c adapter.c -o ../build/adapter.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c utils.c -o ../build/utils.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c aes.c -o ../build/aes.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c dvbapi.c -o ../build/dvbapi.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c pmt.c -o ../build/pmt.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c tables.c -o ../build/tables.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c satipc.c -o ../build/satipc.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c dvb.c -o ../build/dvb.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_DVBCSA -DDISABLE_DVBCA -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -o ../minisatip  ../build/minisatip.o  ../build/socketworks.o  ../build/stream.o  ../build/adapter.o  ../build/utils.o  ../build/aes.o  ../build/dvbapi.o  ../build/pmt.o  ../build/tables.o  ../build/satipc.o  ../build/dvb.o -lpthread  -lrt -l:libcrypto.a -ldl
make[1]: Leaving directory `/minisatip/src'
However this minisatip doesn't find any tuners in the HyperCube (Enigma2 killed with init 4).

Code: Select all

root@hypercube:/var/volatile/tmp/minitest# ./minisatip -f
[29/09 23:53:15.088 main]: Initializing with 0 devices
Best regards!
digihoe
Posts: 15
Joined: Tue Apr 12, 2016 9:07 am

Re: Cross compiling for old ARM-box

Post by digihoe »

Update 6:

Trying to add DVBCSA and DVBCA to the marvell compilation.

Code: Select all

minisatip configuration


Linux DVB:                                enabled
Common Interface (needs DVBEN50221):      enabled
OpenSSL (AES as part of DVBAPI):          enabled
Embedded system:                          disabled
DVBCSA (needs libdvbcsa):                 enabled
Netceiver support:                        disabled
SatIP Client:                             enabled
Static:                                   enabled
dvbapi:                                   enabled
axe:                                      disabled
enigma:                                   disabled

Code: Select all

xxx@lubuntu:/home/lubuntu/minisatip# make
make -C src
make[1]: Entering directory `/minisatip/src'
make[1]: Leaving directory `/minisatip/src'
make[1]: Entering directory `/minisatip/src'
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c minisatip.c -o ../build/minisatip.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c socketworks.c -o ../build/socketworks.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c stream.c -o ../build/stream.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c adapter.c -o ../build/adapter.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c utils.c -o ../build/utils.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c aes.c -o ../build/aes.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c csa.c -o ../build/csa.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c dvbapi.c -o ../build/dvbapi.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c ca.c -o ../build/ca.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c pmt.c -o ../build/pmt.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c tables.c -o ../build/tables.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c satipc.c -o ../build/satipc.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -c dvb.c -o ../build/dvb.o
/opt/simplebuild/toolchains/arm_v7/bin/arm-marvell-linux-gnueabi-gcc -Wall -Wno-switch -ggdb -fPIC   -DDISABLE_NETCVCLIENT -DDISABLE_DDCI  -o ../minisatip  ../build/minisatip.o  ../build/socketworks.o  ../build/stream.o  ../build/adapter.o  ../build/utils.o  ../build/aes.o  ../build/csa.o  ../build/dvbapi.o  ../build/ca.o  ../build/pmt.o  ../build/tables.o  ../build/satipc.o  ../build/dvb.o -lpthread  -lrt -l:libcrypto.a -l:libdvbcsa.a -l:libdvben50221.a -l:libdvbapi.a -l:libucsi.a -ldl
/opt/simplebuild/toolchains/arm_v7/bin/../lib/gcc/arm-marvell-linux-gnueabi/4.6.4/../../../../arm-marvell-linux-gnueabi/bin/ld: cannot find libdvbcsa.a
/opt/simplebuild/toolchains/arm_v7/bin/../lib/gcc/arm-marvell-linux-gnueabi/4.6.4/../../../../arm-marvell-linux-gnueabi/bin/ld: cannot find libdvben50221.a
/opt/simplebuild/toolchains/arm_v7/bin/../lib/gcc/arm-marvell-linux-gnueabi/4.6.4/../../../../arm-marvell-linux-gnueabi/bin/ld: cannot find libdvbapi.a
/opt/simplebuild/toolchains/arm_v7/bin/../lib/gcc/arm-marvell-linux-gnueabi/4.6.4/../../../../arm-marvell-linux-gnueabi/bin/ld: cannot find libucsi.a
collect2: ld returned 1 exit status
make[1]: *** [../minisatip] Error 1
make[1]: Leaving directory `/minisatip/src'
make: *** [minisatip] Error 2

Code: Select all

xxx@lubuntu: ls /opt/simplebuild/toolchains/arm_v7/arm-marvell-linux-gnueabi/include
c++     libdvbapi  libdvben50221  libusb-1.0  PCSC
dvbcsa  libdvbcsa  libucsi        openssl     wintypes.h
What am I missing?

Best regards!
cata
Site Admin
Posts: 768
Joined: Tue May 12, 2015 1:01 am

Re: Cross compiling for old ARM-box

Post by cata »

Run:

./minisatip -f -l dvb,http,adapter

and provide the output.

The detection should work even if the device is DVBAPI 3.

Thanks
Post Reply