Home

Manual simple crosscompile oscam para sh4

  • Iniciador del tema †LUCIFER†
  • Fecha de inicio

†LUCIFER†

Invitado
Bueno en este pequeño manual simple donde vamos a tratar de como compilar oscam para arquitectura sh4, por ejemplo para receptores:

QBOXHD
GOLDEN MEDIA SPARK/TRIPLEX
IPBOX
AMIKO
FULAN
GI
etc..

de una manera facil bajo ubuntu 12.04, siendo necesario, descargar en primer lugar:

TOOLCHAINS---->Que he preparado añadiendo nuevas librerias
MAKEFILE.LOCAL--->Que he preparado para que os resulte facil luego la compilacion

DESCARGA TOOLCHAINS FULL SH4

DESCARGA MAKEFILE.LOCAL

A continucion vamos a instalar cositas necesarias para la compilacion en ubuntu, para ello abrimos la consola terminal y ponemos:

Código:
[LEFT][COLOR=#333333]sudo apt-get install yum[/COLOR][/LEFT]

Código:
[LEFT][COLOR=#333333]sudo apt-get install subversion[/COLOR][/LEFT]

Bien pues ya tendriamos todo lo necesario, ahora vamos a ver los pasos:

1º El toolchains que hemos descargado lo descomprimimos en /home/usuario que tengamos en ubuntu, en mi caso en /home/gogy

2º Elejimos la carpeta del pc donde vamos a poner los archivos de oscam que vamos a compilar, en mi caso en /usr/local/bin/full

3º Abrimos la consola terminal y ponemos:

Código:
cd /usr/local/bin/full

4º A continuacion ponemos:

Código:
sudo bash

5º A continuacion ponemos:

Código:
[LEFT][COLOR=#333333]sudo svn co http://www.streamboard.tv/svn/oscam/trunk oscam-svn[/COLOR][/LEFT]

Y observaremos que se nos descarga los archivos para compilar de la ultima version de oscam:




6º En el pc en la carpeta /usr/local/bin/full se nos habra creado una carpeta llamada oscam-svn que contiene los archivos oscam para compilar, bien pues ahora le damos permisos a esa carpeta, por lo tanto en la consola terminal ponemos:

Código:
chmod 777 oscam-svn

7º A continuacion descomprimimos Makefile.local en la carpeta oscam-svn que se nos creo.

8º A continuacion le damos permisos al archivo Makefile.local

Código:
cd oscam-svn

Código:
chmod 777 Makefile.local

9º Abrimos con el getedit de ubuntu (editor de textos) el archivo Makefile.local y veremos:

Código:
i386-pc-linux: simplei386-pc-linux-debug: debug
i386-pc-freebsd: simple
hppa1.1-hp-hpux10.20: simple
alpha-dec-osf5.1: simple
linux: simple
freebsd: simple
tuxbox: cross-powerpc-tuxbox-linux
tripledragon: cross-powerpc-405-linux
win: cross-i386-pc-cygwin
cygwin: i386-pc-cygwin
macosx: macosx-native
linux-pcsc: i386-pc-linux-pcsc
#### CAMBIAR GOGY POR VUESTRO USUARIO DE UBUNTU Y CAMBIR CONF_DIR DONDE QUERAIS QUE OSCAM LEA LOS ARCHIVOS CONFIGURACION ###################
 
 
cross-sh4-linux-pcsc:
    $(MAKE) --no-print-directory \
        CROSS=/home/gogy/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu- \
        USE_LIBUSB=1 \
                USE_PCSC=1 \
                EXTRA_FLAGS="-I /home/gogy/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/include/c++/4.3.2/ -I /home/gogy/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/include/PCSC -L /home/gogy/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/lib" \
                CONF_DIR=/var/etc/oscam \
        $(MAKEFLAGS)

Pues cambiais gogy por vuestro usuario ubuntu
Cambiais /var/etc/oscam por la direccion que le querais poner a oscam que lea los archivos de configuracion en vuestro deco.

Una vez editado eso pues guardais cambios en el archivo.

10º A continuacion volvemos a la consola terminal y comprobamos que estemos situados en /usr/local/bin/full/oscam-svn, y ponemos :

Código:
make cross-sh4-linux-pcsc

Y comenzara la compilacion de oscam:






Y si todo ha ido bien pues terminara como muestra la imagen:

sh3.png





Y eso es todo...
 

†LUCIFER†

Invitado
en otro rato veremos como editar ciertas cosillas en oscam, para personalizarlo, antes de realizar la crosscompilacion..
 
  • Me gusta
Reactions: LSL

Mecha

Usuario Destacado
Loco por OpenSPA
Fan de OpenSPA
14 Ene 2010
4.132
819
0
España
Gracias lucifer, es un tema muy interesante, con objeto de poder compilarnos un oscam más o menos liviano a la medida de nuestras necesidades.

Saludos.
 

†LUCIFER†

Invitado
Vamos a ver dos opciones por el momento:

A) Imaginemos que queremos compilar sin librerias pra usb ni lisub ni pcsc, por que solamente vamos a utilzar el tarjetero:

Pues al makefile.local le añadiriamos:

Código:
cross-sh4-linux-simple:	$(MAKE) --no-print-directory \
		CROSS=/home/gogy/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu- \
		EXTRA_FLAGS="-L /home/gogy/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/lib" \
                CONF_DIR=/var/etc/oscam \
		$(MAKEFLAGS)

De esta manera la croosscompilacion la hariamos sin opcion pscs sin opcion lisub y sin añadirle a oscam dichas librerias.

una vez añadido, pues a la hora de compilar pondriamos en el paso 10 en vez de lo que pone en el manual:

Código:
make cross-sh4-linux-simple

B) Imaginemos que queremos compilar pues sin añadir ciertos modulos, por que esos no los vamos a utilizar, en este caso tenemos dos opciones:

o una vez situados en la carpeta donde tenemos los archivos oscam, ponemos por consola terminal:

Código:
./config.sh --disable WEBIF

y luego ya compilariamos con el make, de esta manera hemos deshabilitado en el oscam resultante el WEBIF de oscam, pues podriamos deshbilitar de esta manera cualquier modulo que no quereamos.

esto mismo lo podemos realizar de otra manera:

Le damos permisos 777 al archivo config.mak...

Lo abrimos y nos aparecera:

CONFIG_WEBIF=y
CONFIG_TOUCH=y
CONFIG_HAVE_DVBAPI=y
CONFIG_IRDETO_GUESSING=y
CONFIG_CS_ANTICASC=y
CONFIG_WITH_DEBUG=y
CONFIG_MODULE_MONITOR=y
# CONFIG_WITH_SSL=n
CONFIG_WITH_LB=y
CONFIG_CS_CACHEEX=y
# CONFIG_LCDSUPPORT=n
# CONFIG_LEDSUPPORT=n
# CONFIG_IPV6SUPPORT=n
# CONFIG_MODULE_CAMD33=n
CONFIG_MODULE_CAMD35=y
CONFIG_MODULE_CAMD35_TCP=y
CONFIG_MODULE_NEWCAMD=y
CONFIG_MODULE_CCCAM=y
CONFIG_MODULE_CCCSHARE=y
CONFIG_MODULE_GBOX=y
CONFIG_MODULE_RADEGAST=y
CONFIG_MODULE_SERIAL=y
CONFIG_MODULE_CONSTCW=y
CONFIG_MODULE_PANDORA=y
CONFIG_WITH_CARDREADER=y
CONFIG_READER_NAGRA=y
CONFIG_READER_IRDETO=y
CONFIG_READER_CONAX=y
CONFIG_READER_CRYPTOWORKS=y
CONFIG_READER_SECA=y
CONFIG_READER_VIACCESS=y
CONFIG_READER_VIDEOGUARD=y
CONFIG_READER_DRE=y
CONFIG_READER_TONGFANG=y
CONFIG_READER_BULCRYPT=y
CONFIG_LIB_MINILZO=y
CONFIG_LIB_RC6=y
CONFIG_LIB_SHA1=y
CONFIG_LIB_DES=y
CONFIG_LIB_IDEA=y
CONFIG_LIB_BIGNUM=y

Pues si no queremos el WEBIF, pues pondriamos:

#CONFIG_WEBIF=n

Guardamos cambios al archivo y luego a continuacion ya realizamos el make ...........
 

cgine

Usuario
Amigo OpenSPA
13 Sep 2011
23
1
0
Hola,

he estado intentando compilar una version actualizada para utilizar en un Golden Media Triplex, pero al ejecutar el comando
"make cross-sh4-linux-simple" me da el siguiente error de compilación:

root@localhost:/usr/local/bin/oscam/oscam-svn# make cross-sh4-linux-simple
make --no-print-directory \
CROSS=/home/cgine/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu- \
EXTRA_FLAGS="-L /home/cgine/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/lib" \
CONF_DIR=/var/tuxbox/config \

+-------------------------------------------------------------------------------
| OSCam ver: 1.20-unstable_svn rev: 8963 target:
| Tools:
| CROSS = /home/cgine/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu-
| CC = /home/cgine/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu-gcc
| Settings:
| CONF_DIR = /var/tuxbox/config
| CC_OPTS = -O2 -ggdb -pipe -ffunction-sections -fdata-sections
| CC_WARN = -W -Wall -Wshadow -Wredundant-decls -Wstrict-prototypes -Wold-style-definition
| CFLAGS = -L /home/cgine/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/lib
| LDFLAGS = -Wl,--gc-sections -L /home/cgine/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/lib
| LIBS = -lpthread -ldl
| UseFlags =
| Config:
| Addons : WEBIF TOUCH HAVE_DVBAPI IRDETO_GUESSING CS_ANTICASC WITH_DEBUG MODULE_MONITOR WITH_LB CS_CACHEEX CW_CYCLE_CHECK
| Protocols: CAMD35 CAMD35_TCP NEWCAMD CCCAM CCCSHARE GBOX RADEGAST SERIAL CONSTCW PANDORA GHTTP
| Readers : NAGRA IRDETO CONAX CRYPTOWORKS SECA VIACCESS VIDEOGUARD DRE TONGFANG BULCRYPT GRIFFIN DGCRYPT
| CardRdrs : PHOENIX INTERNAL SC8IN1 MP35 SMARGO DB2COM STAPI STINGER
| Compiler :
| Binary : Distribution/oscam-1.20-unstable_svn8963-
+-------------------------------------------------------------------------------
make[2]: /home/cgine/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu-gcc: Command not found
make[2]: *** [build//cscrypt/aes.o] Error 127
make[1]: *** [all] Error 2
make: *** [cross-sh4-linux-simple] Error 2


He realizado los pasos tal como estan descritos, y si miro el directorio /home/cgine/sh4-unknown-linux-gnu/bin, encuentro lo siguiente:

root@localhost:~/sh4-unknown-linux-gnu/bin# ls -la
total 11912
drwxrwxr-x 2 cgine root 4096 oct 8 18:33 .
drwxrwxrwx 7 cgine root 4096 oct 8 11:32 ..
-rwxrwxrwx 1 cgine root 685320 ago 20 2012 sh4-unknown-linux-gnu-addr2line
-rwxrwxrwx 1 cgine root 713836 ago 20 2012 sh4-unknown-linux-gnu-ar
-rwxrwxrwx 1 cgine root 968812 ago 20 2012 sh4-unknown-linux-gnu-as
-rwxrwxrwx 1 cgine root 236832 ago 20 2012 sh4-unknown-linux-gnu-c++
-rwxrwxrwx 1 cgine root 232736 ago 20 2012 sh4-unknown-linux-gnu-cc
-rwxrwxrwx 1 cgine root 681032 ago 20 2012 sh4-unknown-linux-gnu-c++filt
-rwxrwxrwx 1 cgine root 236832 ago 20 2012 sh4-unknown-linux-gnu-cpp
-rwxrwxrwx 1 cgine root 2340 ago 20 2012 sh4-unknown-linux-gnu-ct-ng.config
-rwxrwxrwx 1 cgine root 236832 ago 20 2012 sh4-unknown-linux-gnu-g++
-rwxrwxrwx 1 cgine root 232736 ago 20 2012 sh4-unknown-linux-gnu-gcc
-rwxrwxrwx 1 cgine root 232736 ago 20 2012 sh4-unknown-linux-gnu-gcc-4.3.2
-rwxrwxrwx 1 cgine root 16576 ago 20 2012 sh4-unknown-linux-gnu-gccbug
-rwxrwxrwx 1 cgine root 30248 ago 20 2012 sh4-unknown-linux-gnu-gcov
-rwxrwxrwx 1 cgine root 755720 ago 20 2012 sh4-unknown-linux-gnu-gprof
-rwxrwxrwx 1 cgine root 1013324 ago 20 2012 sh4-unknown-linux-gnu-ld
-rwxrwxrwx 1 cgine root 10474 ago 20 2012 sh4-unknown-linux-gnu-ldd
-rwxrwxrwx 1 cgine root 693864 ago 20 2012 sh4-unknown-linux-gnu-nm
-rwxrwxrwx 1 cgine root 887560 ago 20 2012 sh4-unknown-linux-gnu-objcopy
-rwxrwxrwx 1 cgine root 989864 ago 20 2012 sh4-unknown-linux-gnu-objdump
-rwxrwxrwx 1 cgine root 10423 ago 20 2012 sh4-unknown-linux-gnu-populate
-rwxrwxrwx 1 cgine root 713868 ago 20 2012 sh4-unknown-linux-gnu-ranlib
-rwxrwxrwx 1 cgine root 299072 ago 20 2012 sh4-unknown-linux-gnu-readelf
-rwxrwxrwx 1 cgine root 685320 ago 20 2012 sh4-unknown-linux-gnu-size
-rwxrwxrwx 1 cgine root 685320 ago 20 2012 sh4-unknown-linux-gnu-strings
-rwxrwxrwx 1 cgine root 887560 ago 20 2012 sh4-unknown-linux-gnu-strip

Si lo consigo compilar, lo pruebo, y si funciona os lo subo.

Saludos

 

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
Hola,

Dale permisos de ejecucion al directorio entero

chmod 777directorio
 

cgine

Usuario
Amigo OpenSPA
13 Sep 2011
23
1
0
Gracias, pero ahora me da otro mensaje distinto...parece como si me faltara alguna libreria ... a ver si me lo puedo mirar esta semana.
 

qsilver83

Usuario Destacado
Amigo OpenSPA
10 Ene 2013
723
56
0
Ok, si te puedo ayudar, dime que libreria, me gusta que haya gente hay detras de estos temas de la compilacion
 

cgine

Usuario
Amigo OpenSPA
13 Sep 2011
23
1
0
Ya está, ya ha compilado bien.

Os dejo el binario para sh4. Es la versión 1.20 revision 8986, la última que hay en Streamboard.
Este es el log de la compilación, he quitado lo que no necesitamos en el Triplex:
+-------------------------------------------------------------------------------
| OSCam ver: 1.20-unstable_svn rev: 8986 target: sh4-unknown-linux-gnu
| Tools:
| CROSS = /home/cgine/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu-
| CC = /home/cgine/sh4-unknown-linux-gnu/bin/sh4-unknown-linux-gnu-gcc
| Settings:
| CONF_DIR = /var/tuxbox/config
| CC_OPTS = -O2 -ggdb -pipe -ffunction-sections -fdata-sections
| CC_WARN = -W -Wall -Wshadow -Wredundant-decls -Wstrict-prototypes -Wold-style-definition
| CFLAGS = -L /home/cgine/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/lib
| LDFLAGS = -Wl,--gc-sections -L /home/cgine/sh4-unknown-linux-gnu/sh4-unknown-linux-gnu/sysroot/usr/lib
| LIBS = -lpthread -ldl
| UseFlags =
| Config:
| Addons : WEBIF TOUCH HAVE_DVBAPI IRDETO_GUESSING CS_ANTICASC WITH_DEBUG MODULE_MONITOR WITH_LB CW_CYCLE_CHECK
| Protocols: NEWCAMD CCCAM CCCSHARE
| Readers : NAGRA IRDETO CONAX CRYPTOWORKS SECA VIACCESS VIDEOGUARD
| CardRdrs : INTERNAL
| Compiler : sh4-unknown-linux-gnu-gcc (crosstool-NG 1.15.3) 4.3.2
| Binary : Distribution/oscam-1.20-unstable_svn8986-sh4-unknown-linux-gnu
+-------------------------------------------------------------------------------
LINK Distribution/oscam-1.20-unstable_svn8986-sh4-unknown-linux-gnu.debug
STRIP Distribution/oscam-1.20-unstable_svn8986-sh4-unknown-linux-gnu

El archivo compilado segun las instrucciones de Lucifer es oscam-1.20-svn8986-Triplex

Luego he instalado también un script llamado Simplebuild que he encontrado en otro foro.
Se simplifica todo el proceso de compilación ya que lo haces por menus, y te permite hacer compilaciones para distintas plataformas, no solo sh4.
Solo teneis que buscar en Google "Simplebuild by Gorgone".

El archivo compilado con Simplebuild es oscam-1.20-svn8986-simplebuild

Creo que los he compilado con las mismas opciones, pero no sé por que motivo el generado por Simplebuild es algo menos pesado.

Los he probado los dos en el Triplex y funcionan correctamente.

Saludos.
 

Adjuntos

  • oscam-1.20-svn8986-Triplex.tar.gz
    443,6 KB · Visitas: 31
  • oscam-1.20-svn8986-simplebuild.tar.gz
    384,1 KB · Visitas: 39
Última edición:
  • Me gusta
Reactions: Mecha