Jump to content

newcode

Full Member
  • Gesamte Inhalte

    685
  • Benutzer seit

Beiträge erstellt von newcode

  1. @niemand0815

     

    Hie die neue Version.

     

    avia-check-0.91

    MD5SUM: 55a722a1f652b1eb0459d3672ef48da4

     

    Du kannst auf der Kommandozeile zwei Parameter angeben:

    avia-check 16 1

     

    Der erste ist die Zeit ab der Zwitschern erkannt werden soll * 10ms.

    Der zweite ist die Pause nach dem Reset in Sekunden.

    16 und 1 sind die Standardwerte in dieser Version.

     

    Hast Du zu viele falsche Resets, den ersten Wert erhöhen.

     

    Die Resets kanst Du im Log (seriell) sehen.

     

    Ich hab noch nicht viel getestet, also noch nicht in ein Startscript einbauen sondern "händisch" starten.

     

    Have fun

  2. @gerry6n

    Ich meinte mit Performance eher wie die Box sich anfühlt. Reagiert sie träge oder normal.

     

    Das mit dem Dauerreset: Habt Ihr dran gedacht vorher das Shellscript zu killen?

    Wenn ja, mache ich Euch eine Version bei der man einen Zeitparameter einstellen kann.

     

    @niemand0815

    Die statische Priorität bei normalen Linux Prozessen (SCHED_OTHER) ist immer 0.

    Man kann nur die dynamische Priorität ändern (nice). Das macht der kernel aber auch.

    Außerdem kann man in seinem Programm die Kontrolle an den scheduler abgeben. Man landet dann am Ende der Liste. Ist die leer, ist man aber sofort wieder dran.

    Eine weitere Methode sind nanosleep Befehle. Du siehst: viele Möglichkeiten :-)

     

    Grüße

     

    P.S. Habe eine neue Version im Test, muß nur wissen ob Ihr den parameter braucht.

  3. Hier noch ne neue Version vom avia-check. Die beseitigt (hoffentlich :-) ) ein Problem bei der Kanalsuche.

    #!/bin/sh
    # avia-check.sh  v0.33
    
    OLDCOUNT=0
    SECS=1
    while sleep $SECS; do
     ZAPIT=$(pidof zapit | grep -e "[0-9]\+ [0-9]\+ [0-9]\+")
     while [[ -n "$ZAPIT" ]]; do
    while [[ -n "$ZAPIT" ]]; do
      sleep 10
      ZAPIT=$(pidof zapit | grep -e "[0-9]\+ [0-9]\+ [0-9]\+")
    done
    sleep 10
     done
     TUNER=$(pidof kdvb-fe-0:0)
     if [ -f /tmp/ecm.info ] && [ -n "$TUNER" ]; then
    COUNT=$(grep avia$ /proc/interrupts)
    if [ "$COUNT" = "$OLDCOUNT" ]; then
      /bin/enxreset 1>/dev/null 2>/dev/null
      AUDIO=$(/bin/pzapit --getpids | grep "*audio" | cut -b 8)
      /bin/pzapit -a $AUDIO
      OLDCOUNT=0
    else
      if [ -n "$(/bin/pzapit --getpids | grep "video")" ]; then SECS=1; else SECS=3; fi
      OLDCOUNT=$COUNT
    fi
     fi
    done

     

    Ich hoffe die nächste Version kriege ich in C hin.

  4. @gerry6n

     

    Du hast zwei Fehler.

    Zum ersten sollte das Script nach /var/plugins.

    Außerdem scheinst Du auch noch beim eintippen des Scripts einen Fehler gemacht zu haben.

     

    Sehen ob das Script läuft kanst Du mit telnet. Ist bei jedem Windows dabei.

    telnet starten, IP der Box eingeben, als root einloggen, und dann der Befehl ps.

     

    Der Name des Scripts muß in der Liste auftauchen, sonst läufts nicht.

     

    P.S. Während ich schreibe hat meine Box 3 mal gezwitschert und wurde resetted.

  5. @niemand0815

     

    Meine ucodes sind die 0014 (built in). Aber mit der 0014 muß man vorsichtig sein. Ich habe 3 verschiedene Versionen davon. Bei allen steht 0014 drin, und trotzdem haben sie verschiedene md5sum.

    Ich kann erst heute Abend wieder was testen. Habe hier keine Box (nur online).

    Ich schicke dann später meine Einstellungen.

     

    Grüße

  6. So, hier nun auch der Radio-Fix. Konnte ich bislang nur online testen.

    #!/bin/sh
    # avia-check.sh  v0.32
    OLDCOUNT=0
    SECS=1
    while sleep $SECS; do
     TUNER=$(pidof kdvb-fe-0:0)
     if [ -f /tmp/ecm.info ] && [ -n "$TUNER" ]; then
       COUNT=$(grep avia$ /proc/interrupts)
       if [ "$COUNT" = "$OLDCOUNT" ]; then
         /bin/enxreset 1>/dev/null 2>/dev/null
         AUDIO=$(/bin/pzapit --getpids | grep "*audio" | cut -b 8)
         /bin/pzapit -a $AUDIO
         OLDCOUNT=0
       else
         if [ -n "$(/bin/pzapit --getpids | grep "video")" ]; then SECS=1; else SECS=3; fi
         OLDCOUNT=$COUNT
       fi
     fi
    done

  7. Hier noch ein Fix, falls der Movieplayer aus einem verschlüsselten Programm heraus gestartet wurde:

    #!/bin/sh
    # avia-check.sh  v0.31
    OLDCOUNT=0
    while sleep 1; do
     TUNER=$(pidof kdvb-fe-0:0)
     if [ -f /tmp/ecm.info ] && [ -n "$TUNER" ]; then
       COUNT=$(grep avia$ /proc/interrupts)
       if [ "$COUNT" = "$OLDCOUNT" ]; then
         /bin/enxreset 1>/dev/null 2>/dev/null
         AUDIO=$(/bin/pzapit --getpids | grep "*audio" | cut -b 8)
         /bin/pzapit -a $AUDIO
         OLDCOUNT=0
       else
         OLDCOUNT=$COUNT
       fi
     fi
    done

     

    TODO: Beachten des Radio-Modus. Bei dem kommen die Avia Interrupts sehr unregelmäßig.

  8. @Fazz

    Es kommen nur 2 Avia Interrupts pro Sekunde. Viel zu tunen ist da mit einem shell script nicht mehr. Man könnte mal die enx interrupts mit einem C-prog untersuchen. Die kommen viel häufiger.

     

    @alle @niemand0815

    Habe noch was eingebaut für alle die Soft 894beta1 benutzen. Außerdem ein delay nach einem Reset.

    #!/bin/sh
    # avia-check.sh  v0.3
    OLDCOUNT=0
    while sleep 1; do
     if [ -f /tmp/ecm.info ]; then
       COUNT=$(grep avia$ /proc/interrupts)
       if [ "$COUNT" = "$OLDCOUNT" ]; then
         /bin/enxreset 1>/dev/null 2>/dev/null
         AUDIO=$(/bin/pzapit --getpids | grep "*audio" | cut -b 8)
         /bin/pzapit -a $AUDIO
         OLDCOUNT=0
       else
         OLDCOUNT=$COUNT
       fi
     fi
    done

    Das Script sollte nach /var/plugins kopiert werden. Gestartet wird es aus dem /var/plugins/operations Script. Dazu fügt man bei Zeile 279 oder 280, je nach Image, folgende Zeile ein:

    	if [ $i -eq $CAMD3_POS ]; then
     if [ -e /var/etc/.kwcamd_3 ];then
    	 if pidof $CAMD3 > /dev/null; then
       echo $CAMD3 laeuft
    	 else
       echo starte $CAMD3 
       $0 check_camd3_socket
       
       [ ! -x /var/bin/$CAMD3 ] && chmod 777 /var/bin/$CAMD3
       $CAMD3
       sleep 3
       [ -e /var/etc/.camd3_prio_h ] && renice -20 `pidof $CAMD3` > /dev/null
       [ ! -e /var/etc/.camd3_prio_h ] && renice 0 `pidof $CAMD3` > /dev/null
       /var/plugins/avia-check.sh &
    	 fi

    Bei Zeile 424 kann noch folgende Zeile einefügt werden:

    #CAMD3_SOCKET=`cat /var/keys/camd3.config | grep SOCKET= | cut -f2 -d= `
    
    pidof $CAMD2 > /dev/null && echo beende $CAMD2 && killall $CAMD2
    pidof $CAMD3 > /dev/null && echo beende $CAMD3 && pcamd -s $CAMD3_SOCKET -kill
    pidof avia-check.sh > /dev/null && echo beende avia-check && killall avia-check.sh
    pidof $NEWCAMD > /dev/null && echo beende $NEWCAMD && kill `cat /tmp/newcamd.pid`

     

    Viel Spaß

  9. @niemand0815

    Ich habe das neue Script seit 2h am laufen. Es gab ca. 8 Zwitscheranfälle. Alle wurden erkannt.

    Jetzt gerade während ich schreibe ist es noch 2 mal passiert (PW 3 | ich habe ein Abo, Karte liegt neben der Box).

    Film läuft immer noch. Gab nur einen kurzen freeze.

    Hast Du das neue Script benutzt ?

     

    Grüße

  10. Hier das neue Script. Läuft viel schneller und macht auch kein Schwarzbild mehr.

     

    #!/bin/sh
    # avia-check.sh  v0.2
    OLDCOUNT=0
    while sleep 1; do
     COUNT=$(grep avia$ /proc/interrupts)
     if [ "$COUNT" = "$OLDCOUNT" ]; then
       /bin/enxreset 1>/dev/null 2>/dev/null
       AUDIO=$(/bin/pzapit --getpids | grep "*audio" | cut -b 8)
       /bin/pzapit -a $AUDIO
     else
       OLDCOUNT=$COUNT
     fi
    done

     

    Grüße

  11. @Fazz

    Habe mein script avia-check.sh genannt.

     

    #!/bin/sh

    OLDCOUNT=0

    while sleep 1; do

    COUNT=$(grep avia$ /proc/interrupts)

    if [ "$COUNT" = "$OLDCOUNT" ]; then

    /bin/enxreset 1>/dev/null 2>/dev/null

    /var/plugins/operations rezap 1>/dev/null 2>/dev/null

    /bin/enxreset 1>/dev/null 2>/dev/null

    else

    OLDCOUNT=$COUNT

    fi

    done

     

    Da fehlt aber noch was und das ist jetzt hier im public Bereich schwierig.

    Ich umschreibe das mal. Bei der descrambler Software die ich benutze könnte nach der "while" Zeile folgende Zeile kommen:

     

    if [ -f /tmp/ecm.info ]; then

     

    und das zugehörige "fi" vor dem "done".

     

    Das bewirkt, daß das Script nur bei bestimmten Sendern aktiv ist.

     

    Vielleicht hat jemand noch eine bessere Idee als "operations rezap" um den Ton wieder zu kriegen.

     

    Grüße

  12. Das Thema mit den Interrupts hat mir keine Ruhe gelassen. Die bleiben tatsächlich weg, aber nur wenn die Box im SPTS Mode ist. Ich habe dann per Script ein enxreset ausgelöst und das zwitschern hört auf. Aber oft bleibt der Ton dann ganz weg. Um ihn wieder zu kriegen muß man dann noch ein rezap machen. Der bewirkt für einen kurzen Moment ein schwarzes Bild und danach ist der Spuk vorbei. Der ganze Vorgang dauert so 2-3 Sekunden.

    Gestreamte Aufnahmen haben nur ein kurzes zwitschern und leichte Ruckler, laufen aber weiter.

    Ist zwar nur ne Krücke, aber besser als der timergesteuerte enxreset.

    Getestet habe ich auf der beta9, sollte aber auch auf dem 2006er Image laufen.

×
×
  • Neu erstellen...