lo scopo è di installare l'ambiente di sviluppo STLinux 2.4 per compilare i sorgenti dell'emulatore Oscam per il processore SH4 del QboxHD
La prima cosa da fare è avere un ambiente linux pulito e funzionante, io ho scelto la distribuzione Ubuntu 10.04. Per comodità e per evitare danneggiamenti in caso di errore nella procedura mi sono installato Ubuntu su di una VM (Virtual Machine) di VirtualBox. Tralascio la parte di creazione di una macchina virtuale, operazione per niente complicata. Appena pronti con la VM bisogna installare l'rpm, il gestore dei pacchetti delle distribuzioni Red Hat, Fedora, Suse, Mandriva e loro derivati, utilizzato per installare le dipendenze, lo yum, un ulteriore gestore di pacchetti utilizzato invece dall'installer principale, e infine il make che serve a compilare i sorgenti. Eseguiamo quindi questo comando:
Adesso dobbiamo scaricarci il file rpm, che contiene tutte le dipendenze da installare per far funzionare correttamente l'ambiente di sviluppo, dall'FTP del produttore (quì il link diretto) e la ISO di installazione (quì il link diretto) poi diamo questi comandi:# sudo apt-get install rpm
# sudo apt-get install yum
# sudo apt-get install make
Adesso montiamo la ISO precedentemente scaricata su una cartella in questo modo:# sudo rpm -ivh --force-debian stlinux24-host-STLinux_deps-20100427-1.i386.rpm
# sudo apt-get upgrade
e poi procediamo con l'installazione lanciando questo comando:# sudo mkdir -p /mnt/st
# sudo mount -t iso9660 -o loop STLinux-2.4-sh4-20100401.iso /mnt/st
Dopo l'ultimo comando avremo finalmente l'ambiente di sviluppo installato, la directory principale dove sono presenti i binari che ci servono per le varie compilazioni è la seguente:# sudo ./install all-sh4-glibc --debian
Passiamo adesso alla download dei sorgenti e alla compilazione vera e propria. Per prima cosa dobbiamo installare sul nostro sistema l'svn, un programma che permette di scaricare e controllare le versioni di un progetto OpenSource:/opt/STM/STLinux-2.3/devkit/sh4/bin/
Da questo momento lanciando il comando:# sudo apt-get install subversion
scarichiamo l'ultima release pubblicata del sorgente Oscam dal server principale e la copiamo nella cartella oscam-svn sotto la $HOME. Adesso che abbiamo i nostri sorgenti prima di procedere con la compilazione dobbiamo modificare il Makefile (è un file che contiene le specifiche per la compilazione come i percorsi dei compilatori e i vari parametri da utilizzare). Oscam è possibile compilarlo con o senza il WebIF (l'interfaccia web per gestire la emu), quindi modificheremo il Makefile affinchè sia possibile compilare la versione con WebIF oppure quella senza WebIF, oppure entrambe.# svn co http://streamboard.gmc.to/svn/oscam/trunk oscam-svn
Cerchiamo la stringa "cross-sh4-linux:", e modifichiamo come segue, da:
a:######################################################################
#
# sh4 crosscompiler
#
######################################################################
cross-sh4-linux:
@-$(MAKE) --no-print-directory \
-f Maketype TYP=$(subst cross-,,$@) \
OS_LIBS="-lcrypto -lm" \
OS_CULI="-lncurses" \
OS_PTLI="-lpthread" \
DS_OPTS="-O2 -DOS_LINUX -DSH4 -DTUXBOX -DCS_CONFDIR='\"/var/tuxbox/config\"' -D'CS_SVN_VERSION="\"$(SVN_REV)\""'" \
DS_CFLAGS="-c" \
DS_LDFLAGS="" \
DS_ARFLAGS="-rvsl" \
DS_CC=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-gcc \
DS_AR=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ar \
DS_LD=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ld \
DS_RL=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-ranlib \
DS_ST=/opt/STM/STLinux-2.0/devkit/sh4/bin/sh4-linux-strip
Adesso possiamo, ovviamente prima spostandoci in /mnt/st, lanciare con questo comando la nostra compilazione, per la versione con WebIF:######################################################################
#
# sh4 crosscompiler
#
######################################################################
cross-sh4-linux:
@-$(MAKE) --no-print-directory \
-f Maketype TYP=$(subst cross-,,$@) \
OS_LIBS="-lcrypto -lm" \
OS_CULI="-lncurses" \
OS_PTLI="-lpthread" \
DS_OPTS="-O2 -DOS_LINUX -DSH4 -DTUXBOX -DCS_CONFDIR='\"/var/tuxbox/config\"' -D'CS_SVN_VERSION="\"$(SVN_REV)\""'" \
DS_CFLAGS="-c" \
DS_LDFLAGS="" \
DS_ARFLAGS="-rvsl" \
DS_CC=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc \
DS_AR=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ar \
DS_LD=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld \
DS_RL=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ranlib \
DS_ST=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-strip
cross-sh4-qboxhd-webif.sh4:
@-$(MAKE) --no-print-directory \
-f Maketype TYP=$(subst cross-,,$@) \
OS_LIBS="-lcrypto -lm" \
OS_CULI="-lncurses" \
OS_PTLI="-lpthread" \
DS_OPTS="-O2 -DOS_LINUX -DWEBIF -DSH4 -DTUXBOX -DCS_CONFDIR='\"/var/tuxbox/config\"' -D'CS_SVN_VERSION="\"$(SVN_REV)\""'" \
DS_CFLAGS="-c" \
DS_LDFLAGS="" \
DS_ARFLAGS="-rvsl" \
DS_CC=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc \
DS_AR=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ar \
DS_LD=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld \
DS_RL=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ranlib \
DS_ST=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-strip
cross-sh4-qboxhd-nowebif.sh4:
@-$(MAKE) --no-print-directory \
-f Maketype TYP=$(subst cross-,,$@) \
OS_LIBS="-lcrypto -lm" \
OS_CULI="-lncurses" \
OS_PTLI="-lpthread" \
DS_OPTS="-O2 -DOS_LINUX -DSH4 -DTUXBOX -DCS_CONFDIR='\"/var/tuxbox/config\"' -D'CS_SVN_VERSION="\"$(SVN_REV)\""'" \
DS_CFLAGS="-c" \
DS_LDFLAGS="" \
DS_ARFLAGS="-rvsl" \
DS_CC=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-gcc \
DS_AR=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ar \
DS_LD=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ld \
DS_RL=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-ranlib \
DS_ST=/opt/STM/STLinux-2.4/devkit/sh4/bin/sh4-linux-strip
e per la versione senza WebIF:# cd /mnt/st
# make cross-sh4-qboxhd-webif.sh4
Infine se vogliamo fare un'unica compilazione per entrambe le versioni dobbiamo modificare ulteriormente il Makefile all'inizio aggiungendo dopo "macosx: macosx-native" questo:# make cross-sh4-qboxhd-nowebif.sh4
Potete trovare il mio Makefile quì.qboxhd: cross-sh4-qboxhd-webif.sh4 \
cross-sh4-qboxhd-nowebif.sh4
Finalmente ho terminato la mia prima guida su questo blog, spero che vi piaccia e soprattutto che vi sia utile.
Non esitate a lasciare commenti, positivi o negativi che siano, o a lasciare suggerimenti e o correzioni.
Buona compilazione a tutti
Ciao , per caso sai quali altri parametri si possono dare al makefile della oscam e ovviamente a cosa servono grazie
RispondiEliminaCiao Silvano,
RispondiEliminatutti i parametri li trovi nel README che scarichi con i sorgenti, ti copio l'estratto:
CS_ANTICASC - enable anti-cascading (default)
CS_LOGHISTORY - enable log history (default)
CS_WITH_GBOX - enable gbox support
CS_LED - enable LED trigger support (currently only working on NSLU2)
DWEBIF - enable web interface
IRDETO_GUESSING - enable irdeto guessing support
WITH_STAPI - enbale DVBAPI support for STAPI
Ciao
Grazie per la risposta ,
RispondiEliminasto cercando di compilare una oscam ad hoc per un amico ,
dato che sono un po più ferrato di lui dell'ambiente Linux ,
un'altra domanda è possibile avviare due o più oscam sulla stessa macchina mips ?
credo di si basterebbe dare indirizzi di installazione diversi o sbaglio ?
Si è possibile,
RispondiEliminama a cosa ti servono più versioni sulla stessa macchina?
Per far in modo che ogni oscam punti a parametri e configurazioni diverse
RispondiEliminaPerò mi sa che qui si esce dai "binari" del post (sia figurativi che informatici), potremmo avviare un nuovo passo-passo sull'argomento
RispondiEliminaOttima guida , grazie :)
RispondiEliminaCiao , utilizzando la oscam 2979 compilata da te ,mi da questo errore /var/oscam/oscam.sh4: /lib/libc.so.6: version `GLIBC_2.7' not found (required by /var/oscam/oscam.sh4)
RispondiEliminaCiao nirvanapoli, devi effettuare l'aggiornamento delle librerie sul tuo qboxhd (utilizzo l'STlinux 2.4 mentre sul qboxhd allo stato attuale c'è l'STlinux 2.3, probabilmente con il prossimo firmware l'aggiorneranno e non ci saranno più problemi), aggiorna l'ultima versione della oscam che offre boubaris e poi sostituisci gli eseguibili con quelli che scarichi da quì.
RispondiEliminaFammi sapere
Ciao