Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Oscam selbst kompillieren

    Nobody is reading this thread right now.

blackmagic

Hacker
Registriert
9. März 2009
Beiträge
377
Reaktionspunkte
226
Punkte
123
Ort
Hessen
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:
 
Gleich mal probiert klappt super Vielen Dank! Bitte in How Tos aufnehmen!
 
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)
Code:
apt-get update
apt-get install build-essential autoconf automake cmake make patch gcc g++ pkg-config subversion
apt-get install libccid libtool libglib2.0-dev libssl-dev libssl0.9.8 libpcsclite1 libpcsclite-dev libusb-dev
apt-get install gettext libncurses5-dev flex bison libpng3 zlib1g-dev
letzte unstable auschecken (laden)
Code:
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
 
Zuletzt bearbeitet von einem Moderator:
Hi,

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.

MfG

latte
 
Zuletzt bearbeitet:
AW: Oscam selbst kompillieren

Hi,

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.

Danke und Grüße
 
Zuletzt bearbeitet:
AW: Oscam selbst kompillieren

Ist das so schwer das Script an die neue Domän anzupassen!!!:fie::fie::fie:
 
AW: Oscam selbst kompillieren

wo finde ich die make.sh???? oder den easy script ordner?
 
AW: Oscam selbst kompillieren

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 :/
 
AW: Oscam selbst kompillieren

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 :/

ob ubuntu oder debian ist eigentlich relativ egal..

zum compilieren von oscam benötigst du folgende pakete:
Code:
apt-get update
apt-get install build-essential autoconf automake cmake make patch gcc g++ pkg-config subversion libccid libtool libglib2.0-dev libssl-dev libpcsclite1 libpcsclite-dev libusb-1.0-0-dev gettext tar bzip2 gzip ncurses-bin flex bison wget libpng3 zlib1g-dev
 
AW: Oscam selbst kompillieren

bekomme immer wieder dieselbe antwort von cmake

-- 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
 
AW: Oscam selbst kompillieren

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..

die manuelle suche nach libusb.h auf dem system:
Code:
root@debian64 ~ > find / -name libusb.h
/usr/include/libusb-1.0/libusb.h
/usr/local/include/libusb-1.0/libusb.h
root@debian64 ~ >
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
 
AW: Oscam selbst kompillieren

also ich hab einfach oscam ausgecheckt
dann alles nötige mit installiert mit apt-get und dann einfach im build verz.
sudo cmake .. ausgeführt.

sonst nichts, das die lib dort liegen sollte ist mir auch klar, dort ist sie eigentlich auch
Code:
mantus@nagafen:/$ sudo find . -name libusb.h
./usr/include/libusb-1.0/libusb.h
mantus@nagafen:/$
dort liegt sie bei mir

die cmake txt schaut so aus wie bei dir :/
 
AW: Oscam selbst kompillieren

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
Code:
sudo apt-get update && sudo apt-get install --reinstall libusb-1.0-0 libusb-dev
wechselst anschließend ins oscam-svn, updatest das svn und setzt dann ein
Code:
sudo make distclean && sudo make config
ab und wählst das aus was du habe möchtest und speicherst ab.
Dann einfach nur ein
Code:
make libusb
und wenn der Buildvorgang durchgelaufen ist, findest du die kompilierte Oscam in "Distribution"
 
Zuletzt bearbeitet:
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…