Instalace OSCAMu do Turris 1.0/1.1 s Turris OS 3.10

Kompilace OSCAMu pro Turris (OpenWrt)

Neprve je nutné na nějaký počítač instalovat 32bit linux debian v aktuální verzi. Doporučuji skutečně 32bit protože toolchain, který si vytvoříme a přes který probíhá překlad ze zdrojových kódů do spustitelného binárního souboru je přeložen pro 32bit linux a pokud se jej pokusíte spustit na 64bitové verzi tak se to nezdaří a systém se bude tvářit, že spustitelné soubory např. gcc vůbec neexistují. Po čerstvé instalaci je potřeba doinstalovat přes aplikaci správce balíků další potřebné komponenty jako
gcc, gcc++, ncurses, make, automake, svn, git, openssl, a případně další o tom jaké se dozvíte v průběhu konfigurace pomocí autoconf a ./configure, v takovém případě pomůže spustit správce balíčku debianu a po vyhledání chybějícího balíčku dle názvu potvrdit jeho instalaci a znovu spustit ./configure
Pokud máme připraveno tak spustíme terminál, přepneme se do home adresáře např. cd /home/uživatel/ a spustíme svn následovně :
svn checkout http://www.streamboard.tv/svn/oscam/trunk oscam-turris
nebo určitou verzi Oscamu
svn checkout http://www.streamboard.tv/svn/oscam/tags/1.10 oscam-1.10

Dále si budeme muset přeložit toolchain pro kompilaci turrisu, zde uvádím toolchain pro Turris 1.0 a 1.0, který obsahuje gcc a další nástroje pro cílovou platformu powerpc. Pokud budete překládat pro Turris Omnia na platformě ARM, bude potřeba vzít jiný toolchain. Vlastní překlad toolchainu může trvat až několik hodin dle výkonnosti počítače na kterém překlad provádíte.

mkdir turris
cd turris/
export TURRIS=$PWD
git clone --depth 1 https://gitlab.labs.nic.cz/turris/openwrt.git

cd openwrt

cp -f configs/turris .config
make defconfig

Poznámka: máte-li vícejádrový procesor, můžete si zapnout kompilaci na více jádrech pomocí “-j<počet_jader>” - tedy make -j4 pro kompilaci ve čtyřech vláknech najednou.

make tools/install
make toolchain/install

make –j4 tools/install
make -j4 toolchain/install

Dále pro zprovoznění USB čtečky Smargo Smartreader budeme potřebovat stáhnout z http://www.libusb.org/wiki/libusb-1.0 ještě knihovnu libusb následovně :
git clone git://git.libusb.org/libusb.git
KPo stažení libusb nám v /home/user adresáři vznikl podadresář /libusb se zdrojovými soubory, které musíme nejprve přeložit. Knihovnu libusb bude nutné po kompilaci nahrát do toolchainu (include soubor a statickou a dynamickou knihovnu) Dále pokračujeme těmito příkazy :

cd libusb

autoreconf –install

autoconf

env CC=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/powerpc-openwrt-linux-gcc
LD=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/powerpc-openwrt-linux-ld
RANLIB=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/powerpc-openwrt-linux-ranlib
CFLAGS="-I/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/include"
LDFLAGS="-L/homeuživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/lib"
STAGING_DIR=/home/uživatel/turris/openwrt/staging_dir
./configure
–host=powerpc-uclibc-linux
–target=powerpc-uclibc-linux
–build=i686-pc-linux
–prefix=/home/uživatel/turris/

Tímto máme připravenu knihovnu ke kompilaci a spustíme ji tedy příkazem
make

make CROSS=powerpc-openwrt-linux- CROSS_DIR=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/ STAGING_DIR=/home/uživatel/turris/openwrt/staging_dir/

Nyní máme v adresáři /home/uživatel/libusb/libusb/.libs vytvořeny statické i dynamické verze knihovny libusb, které nyní překopírujeme do toolchainu aby bylo možné libusb knihovnu přikompilovat ke zdrojákům vlastního oscamu.

Nyní provedeme překlad vlastního oscamu, mělo by postačit
Přepneme se do adresáře
cd /home/uživatel/oscam-turris

Provedeme konfiguraci pro toolchain v oscamu, pozor jedná se o jeden velmi dlouhý příkaz.
env CC=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/powerpc-openwrt-linux-gcc
LD=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/powerpc-openwrt-linux-ld
RANLIB=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/powerpc-openwrt-linux-ranlib
CFLAGS="-I/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/include"
LDFLAGS="-L/homeuživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/lib"
STAGING_DIR=/home/uživatel/turris/openwrt/staging_dir
./configure
–host=powerpc-uclibc-linux
–target=powerpc-uclibc-linux
–build=i686-pc-linux
–prefix=/home/uživatel/turris/

A spustíme vlastní kompilaci
make USE_LIBUSB=1
make USE_LIBUSB=1 CROSS=powerpc-openwrt-linux- CROSS_DIR=/home/uživatel/turris/openwrt/staging_dir/toolchain-powerpc_8540_gcc-4.8-linaro_uClibc-0.9.33.2/bin/ STAGING_DIR=/home/uživatel/turris/openwrt/staging_dir/

Výsledek je uložen v adresáři : /home/uživatel/oscam-turris/Distribution
Stačí jen přejmenovat na oscam, nakopírovat do /bin a konfiguráky si umístit do /etc/oscam a do /etc/init.d/ přidat soubor oscam s násleujícím obsahem:

#!/bin/sh /etc/rc.common

START=85

start() {
logger “Starting Oscam”
[ -d /var/log/oscam ] || mkdir -p /var/log/oscam
/bin/oscam -b -c /etc/oscam &
}

stop() {
logger "Stopping Oscam"
export pid=ps | grep /bin/oscam | awk 'NR==1{print $1}' | cut -d' ' -f1;kill $pid
}

restart() {
logger "Restart Oscam"
echo Stopping Oscam
export pid=ps | grep /bin/oscam | awk 'NR==1{print $1}' | cut -d' ' -f1;kill $pid
echo Starting Oscam
/bin/oscam -b -c /etc/oscam &
}

Pozor je potřeba v souboru odstranit konce řádků z windows, pokud si soubor připravíte na windows počítači a do turrisu jej nahrajete

Nakonec je nutné změnit oprávnéní pro spouštění jak uvedeného skriptu tak vlastní binárky příkazy :

chmod +x /etc/init.d/oscam
chmod +x /bin/oscam

A nyní ještě povolit spouštění oscamu po zapnutí turrisu nebo rebootu :
/etc/init.d/oscam enable

A okamžitě spustit :
/etc/init.d/oscam start

2 Likes