Howto: Oscam debug: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Die Seite wurde neu angelegt: „ie Anleitung basiert auf folgendem System : 1. System Hardware: Alix 3D2 x86 OS:Ubuntu 10.10 / 2.6.35-24-generic 2. Benötigte Pakete mit apt-get install…“
 
links zu oscam
 
(11 dazwischenliegende Versionen derselben Benutzerin werden nicht angezeigt)
Zeile 1: Zeile 1:
ie Anleitung basiert auf folgendem System :
<div style="margin: 10px 10px 0pt 0pt; border: 1px solid rgb(51, 51, 51); padding: 0em 1em 1em; background-color: rgb(27, 28, 45);"><br><center>[[Image:ZD-Logo.png]]</center> <center><big><span style="color: rgb(181, 181, 181);">'''''Das Board mit Freiheiten'''''</span></big></center>
<font color="white"></font>


1. System
----


Hardware: Alix 3D2 x86
<br>
OS:Ubuntu 10.10 / 2.6.35-24-generic
<div style="margin: 0px 20px 15pt 15pt; padding: 0em 1em 1em; background-color: rgb(48, 49, 64); border: 1px solid rgb(0, 0, 0);">
<br>


Die Anleitung basiert auf folgendem System&nbsp;:


2. Benötigte Pakete mit apt-get installieren
==Benötigte Pakete mit apt-get installieren==
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
apt-get update


apt-get update
apt-get install -y htop automake make cmake cmake-curses-gui subversion libusb-dev libssl-dev libssh-dev gdb dialog g++ gcc
apt-get install -y htop automake make cmake cmake-curses-gui subversion libusb-dev libssl-dev libssh-dev gdb dialog g++ gcc
</div>


3. Zusätzlich sollte man mindestens die libusb-1.0.6 wie folgt installieren :
==libusb installieren==
(Hier wird die libusb-1.0.8 installiert)
*libusb-1.0.6 wie folgt installieren&nbsp;: (Hier wird die libusb-1.0.8 installiert)
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
cd /tmp


cd /tmp
wget http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.8/libusb-1.0.8.tar.bz2/download
wget http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.8/libusb-1.0.8.tar.bz2/download
tar xjf libusb-1.0.8.tar.bz2
cd libusb-1.0.8
./configure
make
make install


tar xjf libusb-1.0.8.tar.bz2


4. Die Konfigurationsdateien von OScam sind hier abgelegt
cd libusb-1.0.8
(Falls bei euch wo anderst, dann im run Script den Pfad anpassen)
/var/etc


./configure


5. In der oscam.config sollte folgendes vorhanden sein
make


logfile                      = /var/log/oscam.log
make install
disablelog                    = 0
</div>


==Die Konfigurationsdateien von OScam sind hier abgelegt (ggfs im run Script den Pfad anpassen)==
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
/var/etc
</div>


6. Wenn man als User ohne Admin Rechte die Scripte ausführt bekommt man mit dem
==In der oscam.config sollte folgendes vorhanden sein==
Eintrag "ulimit -n 4096" eine Fehlermeldung.
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
--> ulimit: open files: Kann die Grenze nicht ändern: Die Operation ist nicht erlaubt
logfile                      = /var/log/oscam.log


Deshalb verwende ich unter Punkt 4.0 den root als User!
disablelog                    = 0
</div>


1.0 Einen User anlegen
==Fehlermeldung. --&gt; ulimit: open files: ==
*Wenn man als User ohne Admin Rechte die Scripte ausführt bekommt man mit dem Eintrag "ulimit -n 4096" eine Fehlermeldung. --&gt; ulimit: open files: Kann die Grenze nicht ändern: Die Operation ist nicht erlaubt


Mit dem Programm Putty (für Windows) als root zum Server verbinden,
Deshalb verwenden wir unter Punkt 4.0 den root als User!
folgendes eingeben und dann die Abfragen durchführen:


adduser oscam_doctor
*User anlegen
dannach mit
logout
die Verbindung beenden.


2.0 OScam files herunterladen
*Mit dem Programm Putty (für Windows) als root zum Server verbinden, folgendes eingeben und dann die Abfragen durchführen:
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
adduser oscam_doctor
</div>
dannach mit
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
logout
</div>
*die Verbindung beenden.  


Mit dem Programm Putty (für Windows) als oscam_doctor zum Server verbinden.
*OScam files herunterladen
Jetzt sind wir im Home-Verzeichnis des Users oscam_doctor, Kontrolle mit
pwd


Falls ihr nachschauen möchtet ob eine OScam gerade läuft dann könnt ihr das
Mit dem Programm Putty (für Windows) als oscam_doctor zum Server verbinden. Jetzt sind wir im Home-Verzeichnis des Users oscam_doctor, Kontrolle mit
mit htop prüfen und ggf. killen
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
htop
pwd
</div>
Falls ihr nachschauen möchtet ob eine OScam gerade läuft dann könnt ihr das mit htop prüfen und ggf. killen  
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
htop
</div>


2.1 Wenn ihr die letzte Version auschecken wollt dann folgendes eingeben
*auschecken
svn co http://streamboard.gmc.to/svn/oscam/trunk oscam-svn
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
svn co http://streamboard.tv/svn/oscam/trunk oscam-svn
</div>


*Bestimmte Revision auschecken
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
svn co http://streamboard.tv/svn/oscam/trunk oscam-svn -r xxxx
</div>
*Module auswählen
Wenn ihr nur bestimmte Module (Add-Ons/Protocols/Reader) in der OScam haben möchtet, dann folgendes eingeben (Zu mindestens sollte unter "Add-ons" Debug messages und Log History gewählt werden)
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
cd oscam-svn


2.2 Wenn ihr eine bestimmte Version auschecken wollt dann folgendes eingeben
./config.sh
und xxxx mit der gewünschten Versionsnummer ändern
</div>
svn co http://streamboard.gmc.to/svn/oscam/trunk oscam-svn -r xxxx
und es öffnet sich folgendes Dialogfenster


2.3 Wenn ihr nur bestimmte Module (Add-Ons/Protocols/Reader) in der OScam
[[Image:Oscamdebug1.jpg]]
haben möchtet, dann folgendes eingeben
(Zu mindestens sollte unter "Add-ons" Debug messages und Log History gewählt werden)


cd oscam-svn
[[Image:Oscamdebug2.jpg]]
./config.sh


und es öffnet sich folgendes Dialogfenster
[[Image:Oscamdebug3.jpg]]


[externes Bild: http://s1.directupload.net/images/110405/h8djzon5.jpg]
[[Image:Oscamdebug4.jpg]]  
[externes Bild: http://s7.directupload.net/images/110405/adla74vp.jpg]
[externes Bild: http://s1.directupload.net/images/110405/lupxjikc.jpg]
[externes Bild: http://s7.directupload.net/images/110405/bqrt9qcc.jpg]


Anleitung:
*Anleitung:  
Mit der Enter Taste könnt ihr in die Hauptmodule und mit Leertaste wählt man die Module aus.
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
Zum Schluß auf "Save" und dann mit "Enter" bestätigen nicht vergessen !
Mit der Enter Taste könnt ihr in die Hauptmodule und mit Leertaste wählt man die Module aus. Zum Schluß auf "Save" und dann mit "Enter" bestätigen nicht vergessen&nbsp;!
</div>
*Scripte erstellen PS: Wir sind im /home/oscam_doctor/oscam-svn/build Verzeichnis&nbsp;!


*Folgendes eingeben
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
mkdir build


3.0 Scripte erstellen
cd build
PS: Wir sind im /home/oscam_doctor/oscam-svn/build Verzeichnis !
</div>
*Dann im Ordner drei Dateien mit z.B. vi erstellen  
*Ohne cmake im Scrpit
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
vi gdb-start
</div>
*Hier nur i eingeben nicht ENTER drücken&nbsp;!
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
i
</div>
*Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
#/bin/sh


Folgendes eingeben
ulimit -n 4096
mkdir build
cd build


Dann im Ordner drei Dateien mit z.B. vi erstellen
killall -9 oscam


3.2.0 Ohne cmake im Scrpit
echo "oscam killed"


3.2.1
sleep 1
vi gdb-start


3.2.2 Hier nur i eingeben nicht ENTER drücken !
gdb -ex "set logging on" -ex "show logging" oscam -x run
i


3.2.3 Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
echo "oscam exit debug"
#/bin/sh
</div>
ulimit -n 4096
*Dann einmal die ESC Taste drücken und
killall -9 oscam
echo "oscam killed"
sleep 1
gdb -ex "set logging on" -ex "show logging" oscam -x run
echo "oscam exit debug"


*Folgendes eingeben
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
:wq
</div>
und ENTER drücken


3.2.4 Dann einmal die ESC Taste drücken und
*Dann die Rechte ändern mit
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
chmod 755 gdb-start
</div>
*Fertig


3.2.5 Folgendes eingeben
*Mit cmake im Script
:wq
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
und ENTER drücken
vi gdb-cmake-start
</div>
*Hier nur i eingeben nicht ENTER drücken&nbsp;!
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
i
</div>
*Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
<div style="margin: 0; margin-top:10px; margin-right:10px; border: 2px solid #ffffff; padding: 0em 1em 1em 1em; background-color:#000000; align:right; ">
#/bin/sh
ulimit -n 4096
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
killall -9 oscam
echo "oscam killed"
sleep 1
gdb -ex "set logging on" -ex "show logging" oscam -x run
echo "oscam exit debug"
</div>
*Dann einmal die ESC Taste drücken und


3.2.6 Dann die Rechte ändern mit
*Folgendes eingeben
chmod 755 gdb-start


3.2.7 Fertig
  :wq
 
3.1.0 Mit cmake im Script
 
3.1.1
  vi gdb-cmake-start
 
3.1.2 Hier nur i eingeben nicht ENTER drücken !
i


3.1.3 Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
und ENTER drücken
#/bin/sh
ulimit -n 4096
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
killall -9 oscam
echo "oscam killed"
sleep 1
gdb -ex "set logging on" -ex "show logging" oscam -x run
echo "oscam exit debug"


3.1.4 Dann einmal die ESC Taste drücken und
*Dann die Rechte ändern mit


3.1.5 Folgendes eingeben
:wq
und ENTER drücken
3.1.6 Dann die Rechte ändern mit
  chmod 755 gdb-cmake-start
  chmod 755 gdb-cmake-start


3.1.7 Fertig
*Fertig  


3.3.0 Script für Konfigurationspfad erstellen
*Script für Konfigurationspfad erstellen  


3.3.1
  vi run
  vi run


3.3.2 Hier nur i eingeben nicht ENTER drücken !
*Hier nur i eingeben nicht ENTER drücken&nbsp;!  
 
  i
  i


3.3.3 Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
*Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken  
 
  run -d1 -r0 -c/var/etc/
  run -d1 -r0 -c/var/etc/


3.3.4 Dann einmal die ESC Taste drücken und
*Dann einmal die ESC Taste drücken und  
*Folgendes eingeben


3.3.5 Folgendes eingeben
  :wq
  :wq
und ENTER drücken


3.3.6 Dann die Rechte ändern mit
und ENTER drücken
 
*Dann die Rechte ändern mit  
 
  chmod 755 run
  chmod 755 run


3.3.7 Anschließend melden wir uns vom Server ab
*Anschließend melden wir uns vom Server ab  
 
  logout
  logout


4.0.0 OScam mit Hilfe der Scripte im Debug-Modus starten
*OScam mit Hilfe der Scripte im Debug-Modus starten  
 
*Mit dem Programm Putty (für Windows) als root zum Server verbinden. Dann geben wir folgendes ein


Mit dem Programm Putty (für Windows) als root zum Server verbinden.
Dann geben wir folgendes ein
  cd /home/oscam_doctor/oscam-svn/build
  cd /home/oscam_doctor/oscam-svn/build


4.1.0 Beim ersten Start verwenden wir den gdb-cmake-start Script damit wird die OScam Binary zum ersten Mal kompiliert!
*Beim ersten Start verwenden wir den gdb-cmake-start Script damit wird die OScam Binary zum ersten Mal kompiliert!  
 
  ./gdb-cmake-start
  ./gdb-cmake-start


Dann solltet ihr folgendes in der Ausgabe sehen
*Dann solltet ihr folgendes in der Ausgabe sehen  
 
  .
  .
  .
  .
Zeile 208: Zeile 244:
  GNU gdb (GDB) 7.2-ubuntu
  GNU gdb (GDB) 7.2-ubuntu
  Copyright (C) 2010 Free Software Foundation, Inc.
  Copyright (C) 2010 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
  This is free software: you are free to change and redistribute it.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
Zeile 214: Zeile 250:
  This GDB was configured as "i686-linux-gnu".
  This GDB was configured as "i686-linux-gnu".
  For bug reporting instructions, please see:
  For bug reporting instructions, please see:
  <http://www.gnu.org/software/gdb/bugs/>...
  &lt;http://www.gnu.org/software/gdb/bugs/&gt;...
  Reading symbols from /home/oscam_doctor/oscam-svn/build/oscam...done.
  Reading symbols from /home/oscam_doctor/oscam-svn/build/oscam...done.
  Copying output to gdb.txt.
  Copying output to gdb.txt.
Zeile 230: Zeile 266:
  [New Thread 0xb5fdcb70 (LWP 2762)]
  [New Thread 0xb5fdcb70 (LWP 2762)]


4.2.0 Falls ihr die OScam Binary schon habt, dann könnt ihr den gdb-start Script verwenden
*Falls ihr die OScam Binary schon habt, dann könnt ihr den gdb-start Script verwenden  
 
  ./gdb-start
  ./gdb-start


Dann solltet ihr folgendes in der Ausgabe sehen
*Dann solltet ihr folgendes in der Ausgabe sehen  


  root@Alix:/home/oscam_doctor/oscam-svn/build# ./gdb-start
  root@Alix:/home/oscam_doctor/oscam-svn/build# ./gdb-start
Zeile 240: Zeile 277:
  GNU gdb (GDB) 7.2-ubuntu
  GNU gdb (GDB) 7.2-ubuntu
  Copyright (C) 2010 Free Software Foundation, Inc.
  Copyright (C) 2010 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
  This is free software: you are free to change and redistribute it.
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
  There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
Zeile 246: Zeile 283:
  This GDB was configured as "i686-linux-gnu".
  This GDB was configured as "i686-linux-gnu".
  For bug reporting instructions, please see:
  For bug reporting instructions, please see:
  <http://www.gnu.org/software/gdb/bugs/>...
  &lt;http://www.gnu.org/software/gdb/bugs/&gt;...
  Reading symbols from /home/oscam_doctor/oscam-svn/build/oscam...done.
  Reading symbols from /home/oscam_doctor/oscam-svn/build/oscam...done.
  Copying output to gdb.txt.
  Copying output to gdb.txt.
Zeile 262: Zeile 299:
  [New Thread 0xb5fdcb70 (LWP 2779)]
  [New Thread 0xb5fdcb70 (LWP 2779)]


5.0.0 Das Wichtigste an der ganzen Sache
*Das Wichtigste an der ganzen Sache  


Mit beiden Scripten werden die Log Dateien für gdb automatisch erstellt
Mit beiden Scripten werden die Log Dateien für gdb automatisch erstellt --&gt; /home/oscam_doctor/oscam-svn/build/gdb.txt  
--> /home/oscam_doctor/oscam-svn/build/gdb.txt


Wenn nun OScam abstürzen sollte würde man als Ausgabe im Putty folgendes sehen
Wenn nun OScam abstürzen sollte würde man als Ausgabe im Putty folgendes sehen  


  Reading symbols from /home/proto/oscam-svn/build/oscam...done.
  Reading symbols from /home/proto/oscam-svn/build/oscam...done.
Zeile 283: Zeile 319:
  [New Thread 0xb67ddb70 (LWP 2810)]
  [New Thread 0xb67ddb70 (LWP 2810)]
  [New Thread 0xb5fdcb70 (LWP 2811)]
  [New Thread 0xb5fdcb70 (LWP 2811)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7b602a0 (LWP 16480)]
0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
3897 struct s_client *cl = rdr-&gt;client; (gdb)


Program received signal SIGSEGV, Segmentation fault.
<br>  
[Switching to Thread 0xb7b602a0 (LWP 16480)]
0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
3897 struct s_client *cl = rdr->client;
(gdb)
 
 
 
!!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!! !!!WICHTIG!!!


Jetzt erwartet "gdb" eine Eingabe damit der Backtrace angezeigt wird das sollten wir auch machen damit es in die gdb.txt Log-Datei geschrieben wird
!!!WICHTIG!!!
Jetzt erwartet "gdb" eine Eingabe damit der Backtrace angezeigt wird das sollten wir auch machen damit es in die gdb.txt Log-Datei geschrieben wird  


<br> Also geben wir einfach folgendes ein


Also geben wir einfach folgendes ein
  bt
  bt


Und bekommen dann den Backtrace angezeigt
Und bekommen dann den Backtrace angezeigt  


  Program received signal SIGSEGV, Segmentation fault.
  Program received signal SIGSEGV, Segmentation fault.
  [Switching to Thread 0xb7b602a0 (LWP 16480)]
  [Switching to Thread 0xb7b602a0 (LWP 16480)]
  0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
  0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
  3897 struct s_client *cl = rdr->client;
  3897 struct s_client *cl = rdr-&gt;client;
  (gdb) bt
  (gdb) bt
  #0 0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
  #0 0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
Zeile 323: Zeile 356:
  (gdb)
  (gdb)


#Und jetzt erst wird die Ausgabe in die gdb.txt geschrieben!


Und jetzt erst wird die Ausgabe in die gdb.txt geschrieben!
Quellenangabe: Streamboard
 
6.0.0 Den Abturz im Forum melden
 
6.1.0 Nach mehrmaligem Hinweis von schlocke und admin solltet ihr bitte keine Abstürze melden die so anfangen
 
Program received signal SIGPIPE, Broken pipe.
Program received signal SIGHUP, Hangup.
Program received signal SIGABRT, Aborted.
 
nur solche sollten gemeldet werden
Program received signal SIGSEGV, Segmentation fault.




6.2.0 Am Besten ist es wenn ihr den Inhalt der beiden Dateien hier Postet und zum Schluß noch eine Bermerkung hinzufügt.
[[Hauptseite|<font color=yellow>[ Zurück zu Hauptseite ]<font>]]<br>
Da hier die Informationen über OScam Version + die gebauten Module + Backtrace drin stehen


/tmp/.oscam/oscam.version
/home/oscam_doctor/oscam-svn/build/gdb.txt




Info:
[[Category:Emu&keys]]
Und man sollte wie schlocke schon geschrieben hat die
OScam Version
Logdatei
und evtl. was man zu letzt im Webinterface oder OScam gemacht hat beschreiben.

Aktuelle Version vom 1. August 2012, 12:50 Uhr


Das Board mit Freiheiten




Die Anleitung basiert auf folgendem System :

Benötigte Pakete mit apt-get installieren

apt-get update

apt-get install -y htop automake make cmake cmake-curses-gui subversion libusb-dev libssl-dev libssh-dev gdb dialog g++ gcc

libusb installieren

  • libusb-1.0.6 wie folgt installieren : (Hier wird die libusb-1.0.8 installiert)

cd /tmp

wget http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.8/libusb-1.0.8.tar.bz2/download

tar xjf libusb-1.0.8.tar.bz2

cd libusb-1.0.8

./configure

make

make install

Die Konfigurationsdateien von OScam sind hier abgelegt (ggfs im run Script den Pfad anpassen)

/var/etc

In der oscam.config sollte folgendes vorhanden sein

logfile = /var/log/oscam.log

disablelog = 0

Fehlermeldung. --> ulimit: open files:

  • Wenn man als User ohne Admin Rechte die Scripte ausführt bekommt man mit dem Eintrag "ulimit -n 4096" eine Fehlermeldung. --> ulimit: open files: Kann die Grenze nicht ändern: Die Operation ist nicht erlaubt

Deshalb verwenden wir unter Punkt 4.0 den root als User!

  • User anlegen
  • Mit dem Programm Putty (für Windows) als root zum Server verbinden, folgendes eingeben und dann die Abfragen durchführen:

adduser oscam_doctor

dannach mit

logout

  • die Verbindung beenden.
  • OScam files herunterladen

Mit dem Programm Putty (für Windows) als oscam_doctor zum Server verbinden. Jetzt sind wir im Home-Verzeichnis des Users oscam_doctor, Kontrolle mit

pwd

Falls ihr nachschauen möchtet ob eine OScam gerade läuft dann könnt ihr das mit htop prüfen und ggf. killen

htop

  • auschecken
  • Bestimmte Revision auschecken

svn co http://streamboard.tv/svn/oscam/trunk oscam-svn -r xxxx

  • Module auswählen

Wenn ihr nur bestimmte Module (Add-Ons/Protocols/Reader) in der OScam haben möchtet, dann folgendes eingeben (Zu mindestens sollte unter "Add-ons" Debug messages und Log History gewählt werden)

cd oscam-svn

./config.sh

und es öffnet sich folgendes Dialogfenster

  • Anleitung:

Mit der Enter Taste könnt ihr in die Hauptmodule und mit Leertaste wählt man die Module aus. Zum Schluß auf "Save" und dann mit "Enter" bestätigen nicht vergessen !

  • Scripte erstellen PS: Wir sind im /home/oscam_doctor/oscam-svn/build Verzeichnis !
  • Folgendes eingeben

mkdir build

cd build

  • Dann im Ordner drei Dateien mit z.B. vi erstellen
  • Ohne cmake im Scrpit

vi gdb-start

  • Hier nur i eingeben nicht ENTER drücken !

i

  • Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
  1. /bin/sh

ulimit -n 4096

killall -9 oscam

echo "oscam killed"

sleep 1

gdb -ex "set logging on" -ex "show logging" oscam -x run

echo "oscam exit debug"

  • Dann einmal die ESC Taste drücken und
  • Folgendes eingeben
wq

und ENTER drücken

  • Dann die Rechte ändern mit

chmod 755 gdb-start

  • Fertig
  • Mit cmake im Script

vi gdb-cmake-start

  • Hier nur i eingeben nicht ENTER drücken !

i

  • Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
  1. /bin/sh

ulimit -n 4096 cmake -DCMAKE_BUILD_TYPE=Debug .. make killall -9 oscam echo "oscam killed" sleep 1 gdb -ex "set logging on" -ex "show logging" oscam -x run echo "oscam exit debug"

  • Dann einmal die ESC Taste drücken und
  • Folgendes eingeben
:wq

und ENTER drücken

  • Dann die Rechte ändern mit
chmod 755 gdb-cmake-start
  • Fertig
  • Script für Konfigurationspfad erstellen
vi run
  • Hier nur i eingeben nicht ENTER drücken !
i
  • Dann das hier kopieren und in den Putty-Fenster mit der Rechten-Maustaste reinklicken
run -d1 -r0 -c/var/etc/
  • Dann einmal die ESC Taste drücken und
  • Folgendes eingeben
:wq

und ENTER drücken

  • Dann die Rechte ändern mit
chmod 755 run
  • Anschließend melden wir uns vom Server ab
logout
  • OScam mit Hilfe der Scripte im Debug-Modus starten
  • Mit dem Programm Putty (für Windows) als root zum Server verbinden. Dann geben wir folgendes ein
cd /home/oscam_doctor/oscam-svn/build
  • Beim ersten Start verwenden wir den gdb-cmake-start Script damit wird die OScam Binary zum ersten Mal kompiliert!
./gdb-cmake-start
  • Dann solltet ihr folgendes in der Ausgabe sehen
.
.
.
.
[ 97%] Built target cscrypt
Scanning dependencies of target svnversion
[ 97%] Built target svnversion
Scanning dependencies of target oscam
[ 98%] Building C object CMakeFiles/oscam.dir/oscam.o
Linking C executable oscam
[ 98%] Built target oscam
Scanning dependencies of target list_smargo
[100%] Building C object utils/CMakeFiles/list_smargo.dir/list_smargo.o
Linking C executable list_smargo
[100%] Built target list_smargo
oscam: Kein Prozess gefunden
oscam killed
GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/oscam_doctor/oscam-svn/build/oscam...done.
Copying output to gdb.txt.
Currently logging to "gdb.txt".
Logs will be appended to the log file.
Output will be logged and displayed.
[Thread debugging using libthread_db enabled]
[New Thread 0xb7ff5280 (LWP 2755)]
[New Thread 0xb7fee280 (LWP 2756)]
[New Thread 0xb7fe7280 (LWP 2757)]
[New Thread 0xb7fe0b70 (LWP 2758)]
[New Thread 0xb77dfb70 (LWP 2759)]
[New Thread 0xb6fdeb70 (LWP 2760)]
[New Thread 0xb67ddb70 (LWP 2761)]
[New Thread 0xb5fdcb70 (LWP 2762)]
  • Falls ihr die OScam Binary schon habt, dann könnt ihr den gdb-start Script verwenden
./gdb-start
  • Dann solltet ihr folgendes in der Ausgabe sehen
root@Alix:/home/oscam_doctor/oscam-svn/build# ./gdb-start
oscam: Kein Prozess gefunden
oscam killed
GNU gdb (GDB) 7.2-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/oscam_doctor/oscam-svn/build/oscam...done.
Copying output to gdb.txt.
Currently logging to "gdb.txt".
Logs will be appended to the log file.
Output will be logged and displayed.
[Thread debugging using libthread_db enabled]
[New Thread 0xb7ff5280 (LWP 2772)]
[New Thread 0xb7fee280 (LWP 2773)]
[New Thread 0xb7fe7280 (LWP 2774)]
[New Thread 0xb7fe0b70 (LWP 2775)]
[New Thread 0xb77dfb70 (LWP 2776)]
[New Thread 0xb6fdeb70 (LWP 2777)]
[New Thread 0xb67ddb70 (LWP 2778)]
[New Thread 0xb5fdcb70 (LWP 2779)]
  • Das Wichtigste an der ganzen Sache

Mit beiden Scripten werden die Log Dateien für gdb automatisch erstellt --> /home/oscam_doctor/oscam-svn/build/gdb.txt

Wenn nun OScam abstürzen sollte würde man als Ausgabe im Putty folgendes sehen

Reading symbols from /home/proto/oscam-svn/build/oscam...done.
Copying output to gdb.txt.
Currently logging to "gdb.txt".
Logs will be appended to the log file.
Output will be logged and displayed.
[Thread debugging using libthread_db enabled]
[New Thread 0xb7ff5280 (LWP 2804)]
[New Thread 0xb7fee280 (LWP 2805)]
[New Thread 0xb7fe7280 (LWP 2806)]
[New Thread 0xb7fe0b70 (LWP 2807)]
[New Thread 0xb77dfb70 (LWP 2808)]
[New Thread 0xb6fdeb70 (LWP 2809)]
[New Thread 0xb67ddb70 (LWP 2810)]
[New Thread 0xb5fdcb70 (LWP 2811)]
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 0xb7b602a0 (LWP 16480)]
0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
3897 struct s_client *cl = rdr->client; (gdb) 


!!!WICHTIG!!! Jetzt erwartet "gdb" eine Eingabe damit der Backtrace angezeigt wird das sollten wir auch machen damit es in die gdb.txt Log-Datei geschrieben wird


Also geben wir einfach folgendes ein

bt

Und bekommen dann den Backtrace angezeigt

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7b602a0 (LWP 16480)]
0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
3897 struct s_client *cl = rdr->client;
(gdb) bt
#0 0x080a4f59 in cc_available (rdr=0x0, checktype=0) at module-cccam.c:3897
#1 0x080b0afc in matching_reader (er=0x8296da8, rdr=0x815cbbcool at oscam-chk.c:409
#2 0x080527c1 in get_cw (client=0xb7a23628, er=0x8296dacool at oscam.c:2491
#3 0x0809f228 in cc_parse_msg (cl=0xb7a23628, buf=0x82a33a0 "k\001", l=164) at module-cccam.c:2124
#4 0x080a057e in cc_recv (cl=0xb7a23628,
buf=0xb7b5f210 "PARTNER: OSCam v1.00-unstable_svn, build #4581 (i686-pc-linux-debug) [EXT,SID]", l=1024)
at module-cccam.c:2533
#5 0x08053df7 in process_input (
buf=0xb7b5f210 "PARTNER: OSCam v1.00-unstable_svn, build #4581 (i686-pc-linux-debug) [EXT,SID]", l=1024, timeout=10)
at oscam.c:2844
#6 0x080a3994 in cc_srv_connect (cl=0xb7a2362cool at module-cccam.c:3514
#7 0x080a3cf4 in cc_srv_init (cl=0xb7a2362cool at module-cccam.c:3583
#8 0xb7dd71b5 in start_thread () from /lib/libpthread.so.0
#9 0xb7d4662e in clone () from /lib/libc.so.6
(gdb)
  1. Und jetzt erst wird die Ausgabe in die gdb.txt geschrieben!

Quellenangabe: Streamboard


[ Zurück zu Hauptseite ]