Auf Anregung hab ich mich mal an nem kleinen Howto zur Oscam Kompillierung mit dem easy-build-script versucht.
Ist mein erster Versuch daher bitte milde walten lassen :emoticon-0111-blush
Das ganze läuft unter ubuntu 10.4 LTS (bei mir in ner virtuellen Maschine mit dem VMWare Player sollte aber auch auf anderen Linux Betriebssystemen funktionieren).
Da das Skript nicht von hier ist bitte Tante Google danach fragen
Falls jemand Fragen zum Howto hat werde ich gerne versuchen die zu beantworten, bin aber wahrlich kein Meister auf dem Gebiet
Anregungen zur Verbesserung oder Ergänzung werden gerne entgegengenommen :dfingers:
das oscam-easy-build.v0.1.6c script hat leider noch ein paar bugs.
solange man aber nur ein stink normales oscam compilieren möchte brauch man eigentlich kein aufwendiges script. das sind nur ein paar zeilen die man sich auch selber in eine textdatei einfügen und diese dann ausführbar machen kann
benötigte pakete installieren: (nur ein mal erforderlich)
svn co http://streamboard.tv/svn/oscam/trunk oscam-svn
oscam-svn ist das verzeichniss in dem die geladenen dateien gespeichert werden
wenn streamboard offline sein sollte kann man auch den mirror "http://www.oscam.to/svn/oscam/trunk" nutzen
wenn du die letzte stable laden möchtest lautet die url "http://streamboard.tv/svn/oscam/tags/1.10" beziehungsweise "http://www.oscam.to/svn/oscam/tags/1.10"
wenn du eine bestimmte revision laden möchtest fügst du der svn zeile noch ein "-r <revision#>" an also zum beispiel:
Code:
svn co http://streamboard.tv/svn/oscam/trunk oscam-svn -r 6654
dann in das verzeichniss oscam-svn wechseln und konfigurieren welche features einkompiliert werden sollen
Code:
cd oscam-svn
./config.sh
ein verzeichniss erstellen in dem kompiliert wird und dann das kompilieren starten
Code:
mkdir build
cd build
cmake ..
make
wenn alles glatt geht liegt dann dort die fertig kompilierte oscam binary. aber bevor du deine derzeit verwendete damit überschreiben kannst musst du oscam erst stoppen
und wie mach ich davon nun ein script?
ganz einfach: nano compile.sh
Code:
#!/bin/bash
svn co http://streamboard.tv/svn/oscam/trunk oscam-svn
cd oscam-svn
./config.sh
mkdir build
cd build
cmake ..
make
chmod 755 compile.sh && ./compile.sh
geht das auch so das er mich nach der revision fragt?
ja. hier ein etwas umfangreicheres aber trotzdem einfach gehaltenes script
Code:
#!/bin/bash
echo "welche revision moechtest du kompilieren? []aktuelle"
read key
case $key in
[0-9][0-9][0-9]) echo ""; revision=$key ;;
*) revision="" ;;
esac
if [ -z "$revision" ]; then
svn co http://streamboard.tv/svn/oscam/trunk oscam-svn
else
svn co http://streamboard.tv/svn/oscam/trunk oscam-svn -r $revision
fi
[ ! -d "oscam-svn" ] && echo "fehler beim laden" && exit 1
cpucores=`grep ^processor /proc/cpuinfo | wc -l`
cd oscam-svn
./config.sh
mkdir build
cd build
cmake ..
make -j$cpucores
wenn es aber um cross-compile geht ist es leider ein wenig komplizierter aber hat man es ein mal verstanden lernt man möglicherweise auch noch was dabei
kann ich gleich wenn ich Ubuntu 10.04 installiert habe nach den Howto loslegen oder muss ich vorher noch was updaten?
ich habe es nämlich schon mit Ubuntu 11.04 versucht und leider funktioniert die erstellte Oscam nicht auf meiner 7390.
Edit: So nun läuft alles. @blackmagic Du solltest in das HowTo noch die Befehle aufnehmen um das System erst mal auf den aktuellen Stand zu bringen damit es mit dem backen auch klappt.
leider ist streamboard.gmc.to nun schon länger nicht mehr erreichbar und somit funktioniert das Tutorial nicht mehr.
Hat einer von euch eine andere Source die man zum updaten von OSCAM verwenden kann?
EDIT// ok neue Domain streamboard.de.vu muss man erstmal wissen, das die umgezogen sind.
ich versuchs grad unter ubuntu 12.04 hin zu bekommen, aber irgendwie findet cmake oder die libusb nicht, hab aber libusb 1.0 und libusb 1.0 dev installiert :/
ich versuchs grad unter ubuntu 12.04 hin zu bekommen, aber irgendwie findet cmake oder die libusb nicht, hab aber libusb 1.0 und libusb 1.0 dev installiert :/
-- pthread found. Adding pthread support
-- openssl found.
-- librt found (needed by libusb).
-- static libusb 1.0 not found (not in /usr/local/lib/ or /usr/lib/) . No smartreader support
--
-- operating system: Linux
-- system type: i686-pc-linux
-- system: linux
-- cpu: i686
-- hw: pc
-- use libcrypto functions
-- use system pthread functions
--
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/src/oscam/build
static? dann zeig mir mal bitte auch die anderen zeilen/befehle mit dem du das kompilieren startest
und sonst such mal nach der libusb.h datei die scheint nämlich bei dir nicht da zu liegen wo sie normalerweise liegen sollte..
wenn du auf die fehlermeldung achtest siehst du das er das auch schreibt: not in /usr/local/lib/ or /usr/lib/
bei mir sähe der teil den du gepostet hast so aus:
Code:
-- librt found (needed by libusb).
-- Looking for libusb-1.0/libusb.h
-- Looking for libusb-1.0/libusb.h - found
-- Looking for libusb-1.0/libusb.h
-- Looking for libusb-1.0/libusb.h - found
-- libusb 1.0 found . Adding smartreader support
-- Looking for PCSC/wintypes.h
-- Looking for PCSC/wintypes.h - found
-- PCSC headers found (/usr/include/PCSC). Adding PCSC support
-- The CXX compiler identification is GNU
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- librt found (needed by libusb).
-- Utils: pthread found. Adding pthread support
-- Looking for libusb-1.0/libusb.h
-- Looking for libusb-1.0/libusb.h - found
-- Utils: libusb 1.0 found. Adding smartreader support
-- Utils: operating system: Linux
-- Utils: target system: x86_64-linux-gnu
-- Utils: use libusb functions
--
--
-- operating system: Linux
-- target system: x86_64-linux-gnu
-- revision: 7606
-- use system libcrypto functions
-- use system pcsc functions
-- use system pthread functions
-- use libusb functions
der letzte abschnitt sieht bei mir anders aus als bei dir. benutzt du vielleicht cross-compile toolchains? ansonsten machst du vermutlich nicht einfach nur "cmake .." sondern noch mehr und dann wäre es gut zu wissen was du überhaupt machst nicht nur den teil wo der fehler kommt..
und zu guter letzt kann man auch noch in die datei CMakeCache.txt rein gucken wo er überhaupt nach libusb sucht (ab zeile 269):
Code:
if( HAVE_LIBRT OR HAVE_LIBRT_STATIC)
if (LIBUSBDIR)
check_include_file ("${LIBUSBDIR}/include/libusb-1.0/libusb.h" HAVE_LIBUSB)
if (HAVE_LIBUSB AND HAVE_PTHREAD)
if (EXISTS ${LIBUSBDIR}/lib/libusb-1.0.a)
if (NOT STATIC_LIBUSB EQUAL 0)
message(STATUS " libusb 1.0 found (${LIBUSBDIR}/lib/libusb-1.0.a). Adding smartreader support ")
add_definitions ("-DWITH_LIBUSB")
add_definitions ("-I${LIBUSBDIR}/include/")
add_library(imp_libusb STATIC IMPORTED)
set_property(TARGET imp_libusb PROPERTY IMPORTED_LOCATION ${LIBUSBDIR}/lib/libusb-1.0.a)
else (NOT STATIC_LIBUSB EQUAL 0)
set (CMAKE_FIND_ROOT_PATH ${LIBUSBDIR})
find_library (LIBUSB_LIBRARY NAMES usb-1.0)
message(STATUS "libusb 1.0 found (${LIBUSB_LIBRARY}). Adding smartreader support ")
add_definitions ("-DWITH_LIBUSB")
add_definitions ("-I${LIBUSBDIR}/include/")
add_library(imp_libusb SHARED IMPORTED)
set_property(TARGET imp_libusb PROPERTY IMPORTED_LOCATION ${LIBUSB_LIBRARY} )
endif (NOT STATIC_LIBUSB EQUAL 0)
else (EXISTS ${LIBUSBDIR}/lib/libusb-1.0.a)
message(STATUS " libusb 1.0 not found (${LIBUSBDIR}/lib/libusb). No smartreader support ") r.
set (HAVE_LIBUSB False)
set (HAVE_LIBRT False)
set (HAVE_LIBRT_STATIC False)
endif (EXISTS ${LIBUSBDIR}/lib/libusb-1.0.a)
else (HAVE_LIBUSB AND HAVE_PTHREAD)
message(STATUS " no libusb 1.0 found. No smartreader support")
set (HAVE_LIBUSB False)
set (HAVE_LIBRT False)
set (HAVE_LIBRT_STATIC False)
endif (HAVE_LIBUSB AND HAVE_PTHREAD)
else (LIBUSBDIR)
if (NOT HAVE_LIBUSB EQUAL 0)
check_include_file ("libusb-1.0/libusb.h" HAVE_LIBUSB)
check_include_file ("libusb-1.0/libusb.h" PRESENT)
endif(NOT HAVE_LIBUSB EQUAL 0)
if (OSCamOperatingSystem MATCHES "Mac OS X")
if (NOT HAVE_LIBUSB EQUAL 0 AND NOT PRESENT)
find_file (USBINCL_LOC "libusb-1.0/libusb.h")
if (EXISTS ${USBINCL_LOC})
add_definitions ("-I/usr/local/include -L/usr/local/lib -I/usr/include -L/usr/lib")
set (HAVE_LIBUSB True)
set (PRESENT True)
endif (EXISTS ${USBINCL_LOC})
endif (NOT HAVE_LIBUSB EQUAL 0 AND NOT PRESENT)
endif (OSCamOperatingSystem MATCHES "Mac OS X")
if (STATIC_LIBUSB EQUAL 0)
check_include_file ("libusb-1.0/libusb.h" HAVE_LIBUSB)
check_include_file ("libusb-1.0/libusb.h" PRESENT)
endif(NOT HAVE_LIBUSB EQUAL 0)
if (OSCamOperatingSystem MATCHES "Mac OS X")
if (NOT HAVE_LIBUSB EQUAL 0 AND NOT PRESENT)
find_file (USBINCL_LOC "libusb-1.0/libusb.h")
if (EXISTS ${USBINCL_LOC})
add_definitions ("-I/usr/local/include -L/usr/local/lib -I/usr/include -L/usr/lib")
set (HAVE_LIBUSB True)
set (PRESENT True)
endif (EXISTS ${USBINCL_LOC})
endif (NOT HAVE_LIBUSB EQUAL 0 AND NOT PRESENT)
endif (OSCamOperatingSystem MATCHES "Mac OS X")
if (STATIC_LIBUSB EQUAL 0)
if(HAVE_LIBUSB AND HAVE_PTHREAD AND PRESENT)
message(STATUS " libusb 1.0 found (libusb-1.0.so) Adding smartreader support ")
add_definitions ("-DWITH_LIBUSB")
set (STATICLIBUSB False)
endif(HAVE_LIBUSB AND HAVE_PTHREAD AND PRESENT)
else(STATIC_LIBUSB EQUAL 0)
if (HAVE_LIBUSB AND HAVE_PTHREAD AND PRESENT)
if (WSSP EQUAL 1)
message(STATUS " static libusb 1.0 found (libusb-1.0.a). Adding smartreader support ")
else (WSSP EQUAL 1)
message(STATUS " libusb 1.0 found . Adding smartreader support ")
endif (WSSP EQUAL 1)
add_definitions ("-DWITH_LIBUSB")
set (STATICLIBUSB True)
else (HAVE_LIBUSB AND HAVE_PTHREAD AND PRESENT)
message(STATUS " no libusb 1.0 found. No smartreader support")
set (HAVE_LIBUSB False)
endif (HAVE_LIBUSB AND HAVE_PTHREAD AND PRESENT)
endif(STATIC_LIBUSB EQUAL 0)
endif (LIBUSBDIR)
endif( HAVE_LIBRT OR HAVE_LIBRT_STATIC)
also irgendwas muss du beim cmake befehl angegeben haben vermute ich mal und deshalb wäre es wie gesagt schön wenn bei problemen auch verraten wird was man gemacht hat aber nicht nur die fehlermeldung zu posten sonst macht das helfen nach mehrmaligem raten nämlich irgendwann kein spass mehr
Cmake benötigt man seit ein paar hundert Builds nicht mehr. Man kann jetzt alles mit make bauen (geh einfach nach der Anleitung im Oscam-Wiki vor, dann klappt das auch)
Zum libusb-Problem: am besten du installierst nochmal libusb-dev