Simple cross compiling & update OSCAM in one step for mipsel box for experts on Linux-PC
I'm not Portuguese. If my post is discourage, just delete. I have more useful professional tourials
__________________________________________________ ___________________________________
Hi,
For non root users (Desktop enviroment), otherwise use commands without sudo:
1. OSCam config files exist already in your home folder (oscam.conf, oscam.server, oscam.user, etc.)
2. open termial (gnome-terminal, xterm, etc.)
3. Type necessary dependencies & create folders with following commands:
Código:
sudo apt-get install automake make cmake cmake-curses-gui subversion libusb-dev libssl-dev libssh-dev libusb-1.0-0-dev gdb dialog g++ gcc patch
sudo mkdir ~/oscam &&
sudo mkdir ~/oscam/cross
4. Download toolchain and type with following commands:
Código:
cd /tmp
wget http://www.streamboard.tv/wbb2/tut-pics/toolchains/Toolchain_mipsel-tuxbox-linux.Dreambox.tar.bz2
sudo tar -xf Toolchain_mipsel-tuxbox-linux.Dreambox.tar.bz2 -C ~/oscam/cross
cd ~
Or with SSL support:
Código:
cd /tmp
wget http://www.streamboard.tv/wbb2/tut-pics/toolchains/Toolchain_mipsel-tuxbox-linux.Dreambox.SSL.tar.bz2
sudo tar -xf Toolchain_mipsel-tuxbox-linux.Dreambox.SSL.tar.bz2 -C ~/oscam/cross
cd ~
PS: You may get errors, just ignore it.
5. Optional copy this code lines & paste with editor (xed, leafpad, gedit, etc.) a start/stop cam script and save as oscam_cam.sh in your home folder:
Código:
#!/bin/sh
CAMNAME="OScam 1.20"
OSD="OSCam"
remove_tmp () {
rm -rf /tmp/cainfo.* /tmp/camd.* /tmp/sc.* /tmp/*.info* /tmp/*.tmp* /tmp/oscam*
[ -e /tmp/.oscam ] && rm -rf /tmp/.oscam
[ -e /tmp/.emu.info ] && rm -rf /tmp/.emu.info
[ -e /tmp/oscam.mem ] && rm -rf /tmp/oscam.mem
}
case "$1" in
start)
echo "[SCRIPT] $1: $CAMNAME"
remove_tmp
touch /tmp/.emu.info
echo "OScam 1.20" > /tmp/.emu.info
/usr/bin/OSCam_1.20.bin -b &
;;
stop)
echo "[SCRIPT] $1: $CAMNAME"
kill `pidof OSCam_1.20.bin`
remove_tmp
;;
restart)
$0 stop
sleep 2
$0 start
exit
;;
*)
$0 stop
exit 0
;;
esac
exit 0
Gemini Project, VTi, etc.: FTP to Box -->/usr/script/oscam_cam.sh (see step 6)
Merlin image: FTP to Box --> /usr/script/cam/oscam_cam.sh (see step 6)
For Open-ATV image, use this start/stop script (oscam.emu):
Código:
emuname = OSCam
binname = OSCam_1.20.bin
startcam = /usr/bin/OSCam_1.20.bin -b
stopcam = killall -q -9 OSCam_1.20.bin
FTP to Box --> /etc/oscam.emu (see step 6)
6. open editor (xed, leafpad, gedit, etc.) copy and paste the binary oscam build script and save to your home directory.
Código:
#!/bin/sh
# Dependent packages: sudo apt-get install automake make cmake cmake-curses-gui subversion libusb-dev libssl-dev libssh-dev libusb-1.0-0-dev gdb dialog g++ gcc patch
# Set this script with: chmod +rwx scriptfile.sh
# Run this script with: sudo ./scriptfile.sh
# Before run this script, stop OSCam SoftCam in your Box
echo
echo "#####################################################################################"
echo "### Building custom OSCam 1.20 binary for mipsel box. Please wait, downloading... ###"
echo "#####################################################################################"
echo
rm -r ~/oscam/1.20_mipsel 2> /dev/null
#For specific version:
#svn checkout http://www.streamboard.tv/svn/oscam/trunk ~/oscam/1.20_mipsel -r 11420 | grep '[0-9][0-9][0-9][0-9][0-9]' | awk '{print $3}' > /tmp/svn.txt
#Latest version
svn checkout http://www.streamboard.tv/svn/oscam/trunk ~/oscam/1.20_mipsel | grep '[0-9][0-9][0-9][0-9][0-9]' | awk '{print $3}' > /tmp/svn.txt
svn=$(awk '{print $1}' /tmp/svn.txt | sed -e "s/[.]//g")
echo
echo Build-Version:$svn
echo
sleep 4
cd ~/oscam/1.20_mipsel
#Optional: https://github.com/oscam-emu/oscam-emu Emulator-Plugin (WITH_EMU), has to match with the right version!!!
#wget -O ~/oscam/oscam-emu.patch https://github.com/oscam-emu/oscam-emu/raw/master/oscam-emu.patch
#sleep 2
#patch -p0 < ../oscam-emu.patch
#Customize necessary modules (WITH_SSL use only toolchain with SSL support)
~/oscam/1.20_mipsel/config.sh --disable all --enable WEBIF WEBIF_LIVELOG WEBIF_JQUERY TOUCH HAVE_DVBAPI WITH_SSL IRDETO_GUESSING CS_ANTICASC WITH_DEBUG MODULE_MONITOR WITH_LB CS_CACHEEX CW_CYCLE_CHECK CLOCKFIX WITH_EMU MODULE_CAMD35 MODULE_CAMD35_TCP MODULE_NEWCAMD MODULE_CCCAM MODULE_CCCSHARE MODULE_GBOX MODULE_RADEGAST MODULE_SCAM MODULE_zerial MODULE_CONSTCW MODULE_PANDORA MODULE_GHTTP READER_NAGRA READER_NAGRA_MERLIN READER_IRDETO READER_CONAX READER_CRYPTOWORKS READER_SECA READER_VIACCESS READER_VIDEOGUARD READER_DRE READER_TONGFANG READER_BULCRYPT READER_GRIFFIN READER_DGCRYPT Disable CARDREADER_PHOENIX CARDREADER_INTERNAL CARDREADER_SC8IN1 CARDREADER_MP35 CARDREADER_SMARGO CARDREADER_DB2COM CARDREADER_STAPI CARDREADER_STAPI5 CARDREADER_STINGER CARDREADER_DRECAS
export TOOLCHAIN=~/oscam/cross/mipsel-unknown-linux-gnu
export PATH="$TOOLCHAIN/bin:$PATH"
# -jx: x = numbers of cpu cores (for faster compiling). Dual core = -j2 or less, Quad Core= -j4 or less, etc.
make CROSS=$TOOLCHAIN/bin/mipsel-unknown-linux-gnu- CONF_DIR=/var/keys -jx
echo
rm -v ~/oscam/1.20_mipsel/Distribution/*.debug
### FTP transfer to the box (binary name, camscript name & directories may differs from varius images, please customized) ###
# Customize IP-address & password
hostname="192.168.1.100"
username="root"
password="password"
ftp -pinv $hostname <<EOF
quote USER $username
quote PASS $password
binary
### Standard
put ~/oscam/1.20_mipsel/Distribution/oscam-1.20*_$svn_* /usr/bin/OSCam_1.20.bin
chmod 775 /usr/bin/OSCam_1.20.bin
put ~/oscam_cam.sh /usr/script/oscam_cam.sh
chmod 775 /usr/script/oscam_cam.sh
### Merlin
#put ~/oscam/1.20_mipsel/Distribution/oscam-1.20*_$svn_* /usr/bin/cam/OSCam_1.20.bin
#chmod 775 /usr/bin/cam/OSCam_1.20.bin
#put ~/oscam_cam.sh /usr/script/cam/oscam_cam.sh
#chmod 775 /usr/script/cam/oscam_cam.sh
### OpenATV
#put ~/oscam/1.20_mipsel/Distribution/oscam-1.20*_$svn_* /usr/bin/OSCam_1.20.bin
#chmod 775 /usr/bin/OSCam_1.20.bin
#put ~/oscam.emu /etc/oscam.emu
#chmod 775 /etc/oscam.emu
# Optional (remove '#' only what you need necessary)
#mkdir /var/keys
#put ~/oscam.conf /var/keys/oscam.conf
#put ~/oscam.server /var/keys/oscam.server
#put ~/oscam.user /var/keys/oscam.user
#put ~/oscam.dvbapi /var/keys/oscam.dvbapi
#put ~/oscam.services /var/keys/oscam.services
#put ~/oscam.srvid /var/keys/oscam.srvid
#put ~/oscam.provid /var/keys/oscam.provid
#put ~/oscam.provid /var/keys/constant.cw
#put ~/oscam.whitelist /var/keys/oscam.whitelist
#put ~/oscam.ac /var/keys/oscam.ac
#put ~/oscam.guess /var/keys/oscam.guess
#put ~/oscam.ird /var/keys/oscam.ird
#put ~/oscam.tiers /var/keys/oscam.tiers
quit
EOF
exit 0
PS: With '#' at the FTP section, you will get 'Invalid commands', just ignore it, it doesn't hurt.
7. chmod scriptfile:
Código:
sudo chmod +rwx ~/scriptfile.sh
8. Stop OSCam SoftCam in your Box if it's running
9. execute scriptfile with:
Código:
sudo ~/scriptfile.sh
10. Start OSCam SoftCam
For future binary update only, repeat only step 8 to 10 (make sure the /user/script & /var/keys/ files copy commands are disabled with '#').
Sample of sceenshot of full binary compiling:
Código:
+-------------------------------------------------------------------------------
| OSCam ver: 1.20_svn rev: 11432 target: mipsel-unknown-linux-gnu-ssl
| Tools:
| CROSS = ~/oscam/cross/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-
| CC = ~/oscam/cross/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-gcc
| Settings:
| CONF_DIR = /var/keys
| CC_OPTS = -O2 -ggdb -pipe -ffunction-sections -fdata-sections
| CC_WARN = -W -Wall -Wshadow -Wredundant-decls -Wstrict-prototypes -Wold-style-definition
| CFLAGS = -DWITH_SSL=1 -DWITH_LIBCRYPTO=1
| LDFLAGS = -Wl,--gc-sections -DWITH_SSL=1 -DWITH_LIBCRYPTO=1
| LIBS = -lssl -lcrypto -lm -lpthread -ldl -lrt
| UseFlags = USE_SSL=1 USE_LIBCRYPTO=1
| Config:
| Addons : WEBIF WEBIF_LIVELOG WEBIF_JQUERY TOUCH WITH_SSL HAVE_DVBAPI IRDETO_GUESSING CS_ANTICASC WITH_DEBUG MODULE_MONITOR WITH_LB CS_CACHEEX CW_CYCLE_CHECK CLOCKFIX
| Protocols: CAMD35 CAMD35_TCP NEWCAMD CCCAM CCCSHARE GBOX RADEGAST SCAM CONSTCW PANDORA GHTTP
| Readers : NAGRA NAGRA_MERLIN IRDETO CONAX CRYPTOWORKS SECA VIACCESS VIDEOGUARD DRE TONGFANG BULCRYPT GRIFFIN DGCRYPT
| CardRdrs : PHOENIX INTERNAL SC8IN1 MP35 SMARGO DB2COM STAPI STAPI5 STINGER DRECAS
| Compiler : mipsel-unknown-linux-gnu-gcc (crosstool-NG-1.3.3) 4.3.2
| Config : build/mipsel-unknown-linux-gnu-ssl/config.mak
| Binary : Distribution/oscam-1.20_svn11432-mipsel-unknown-linux-gnu-ssl
+-------------------------------------------------------------------------------
Greez...