[gelöst] Suse 10.2: vdr startet nicht automatisch

  • Moin!


    Das hier ist mein Startscript für den vdr das unter /etc/init.d/ liegt und einen link in rc3.d hat (S12vdr).



    Das Ding startet aber nicht. Starte ich es manuell läuft alles.
    Ich bin ein absoluter Linux Nicht-Experte und frage mich was ich falsch mache und wie ich weiter analysieren kann...


    Ich hoffe mir kann jemand helfen!



    Danke!
    Björn

  • Hallo GrannyB,


    das liegt eventuell daran, das OpenSuse "case" für start, stop,.... verwendet.
    Sprich dein Startskript hat ein unpassendes "Format"


    Vergleich dein Skript einmal mit den anderen Skripten in /etc/init.d
    -> case $1 start) .... ist dort dein Freund.


    Eventuell hat sogar jemand ein OpenSuse Dämon Skript für dich rumliegen. Das wäre ganz nützlich, denn so einfach wie dein Skript gebastelt ist, geht es nicht.


    Gruß
    Wicky


  • Suse (bei mir 10.1) benutzt spezielle Scripte. Ich habe einfach den VDR von Suse installiert und aktiviert (über Yast). Danach kann man das Binary vom VDR und alle Plugins immer noch ersetzen. Etwas gewöhnungsbedürftig sind die Default-Verzeichnisse. Alles was zur Konfiguration gehört, liegt in /etc/vdr. Das Video-Verzeichnis ist /var/spool/video.


    Gruß
    e9hack

  • Zitat

    Original von e9hack


    Suse (bei mir 10.1) benutzt spezielle Scripte. Ich habe einfach den VDR von Suse installiert und aktiviert (über Yast). Danach kann man das Binary vom VDR und alle Plugins immer noch ersetzen. Etwas gewöhnungsbedürftig sind die Default-Verzeichnisse. Alles was zur Konfiguration gehört, liegt in /etc/vdr. Das Video-Verzeichnis ist /var/spool/video.


    Gruß
    e9hack


    Hi e9hack!


    Das Problem ist ja, dass ich schon alles am Laufen habe.
    Will jetzt ungern riskieren alles durcheinander zu bringen wenn ich vdr von der distri installiere.


    Könntest Du mir vielleicht einfach das Script hier posten?
    Dann passe ich mir das entsprechend an....


    Danke!
    Björn

  • 2 Fehler:
    1. ich nehme an, default runlevel ist 5 und nicht 3
    2. so einfach ist ein startskript in suse nicht


    hier ein shellscript das ein korrektes initskript erzeugt und aktiviert (yast aufruf nicht mehr noetig) ersetze einfach einen der lokales aufrufe durch einen aufruf deines scripts



    #!/bin/sh
    #


    cat > /etc/init.d/lokales << EOF
    #!/bin/sh
    # Start/stop local services
    #
    ### BEGIN INIT INFO
    # Provides: lokales
    # Required-Start: $dvb $network $hal $cron $pcscd $network $local_fs
    # Should-Start: $ALL
    # Required-Stop:
    # X-UnitedLinux-Should-Stop:
    # Default-Start: 3 5
    # Default-Stop: 0 1 2 6
    # Short-Description: lokale Dienste
    # Description: Mainly start multimedia funktions
    #
    ### END INIT INFO
    #
    # Shell functions sourced from /etc/rc.status:
    # rc_check check and set local and overall rc status
    # rc_status check and set local and overall rc status
    # rc_status -v ditto but be verbose in local rc status
    # rc_status -v -r ditto and clear the local rc status
    # rc_status -s display "skipped" and exit with status 3
    # rc_status -u display "unused" and exit with status 3
    # rc_failed set local and overall rc status to failed
    # rc_failed <num> set local and overall rc status to <num>
    # rc_reset clear local rc status (overall remains)
    # rc_exit exit appropriate to overall rc status
    # rc_active checks whether a service is activated by symlinks
    # rc_splash arg sets the boot splash screen to arg (if active)
    #
    . /etc/rc.status
    #
    case "\$1" in
    start) echo -n "Starting "
    if [ -e /usr/local/sbin/lokales ] ; then
    /usr/local/sbin/lokales start
    fi
    if [ -e /home/data/sbin/lokales ] ; then
    /home/data/sbin/lokales start
    fi
    if [ -e /usr/local/vdr/scripts/init.d/lokales ] ; then
    /usr/local/vdr/scripts/init.d/lokales start
    fi
    echo "."
    ;;
    stop) echo -n "Stopping "
    if [ -e /usr/local/vdr/scripts/init.d/lokales ] ; then
    /usr/local/vdr/scripts/init.d/lokales stop
    fi
    if [ -e /home/data/sbin/lokales ] ; then
    /home/data/sbin/lokales stop
    fi
    if [ -e /usr/local/sbin/lokales ] ; then
    /usr/local/sbin/lokales stop
    fi
    echo "."
    ;;
    restart) echo -n "Restarting"
    \$0 stop
    \$0 start
    echo "."
    ;;
    *) echo "Usage: \$0 start|stop|restart"
    exit 1
    ;;
    esac
    rc_exit
    EOF


    chmod +x /etc/init.d/lokales


    insserv -d /etc/init.d/lokales


    /etc/init.d/lokales start

  • UUps kleiner fehler bei mir:
    als script gehoeren noch ein paar escape sequenzen rein
    auserdem habt ihr vermutlich keinen pcscleser am laufen
    also die zeilen



    # Required-Start: $dvb $network $hal $cron $pcscd $network $local_fs
    # Should-Start: $ALL


    durch


    # Required-Start: \$dvb \$network \$hal \$cron \$network \$local_fs
    # Should-Start: \$ALL


    ersetzen

  • Zitat

    Original von GrannyB
    Könntest Du mir vielleicht einfach das Script hier posten?
    Dann passe ich mir das entsprechend an....


    Das Script kommt nach /etc/init.d. Bei mir existieren noch folgende Links auf dieses Script:
    /etc/init.d/rc3.d/S02vdr
    /etc/init.d/rc3.d/K20vdr
    /etc/init.d/rc5.d/S02vdr
    /etc/init.d/rc5.d/K20vdr
    /usr/sbin/rcvdr


    Im Script selbst, ist zusätzlich unter 'Required-Start' atd bzw. dvb und unter 'Should-Start' lirc eingetragen.


    An Deiner Stelle würde ich vdr über yast installieren und dann die Binaries mit der gewünschten Version überschreiben. Das Suse-Konfigurationssystem hat allerdings ein paar Gemeinheiten für Plugins: Deren Parameter können nicht mit yast eingegeben bzw. verändert weden. Man muß diese händisch in /etc/sysconfig/vdr ändern. Parameter in Kurzform, z.B. '-C=/dev/hda' beim dvd-Plugin, funktionieren nicht. Man benötigt meistens die Langform, z.B. '--dvd=/dev/hda'.


    Gruß
    e9hack

  • Leider habe ich noch einen Fehler entdeckt
    /usr/local/sbin/lircd geht nicht
    im suse kernel ist lirc enthalten und vertraegt sich mit einem selbstkompilierten lirc nicht
    also entweder den kernel mit deaktiviertem lirc neu kompilieren und lirc module unter /lib/modules/2.6.18 ... loeschen, oder lirc von suse verwenden
    hier ein startscript das mit deinem vdr und suse lirc tun muesste


    #!/bin/sh
    # Start/stop vdr
    #
    ### BEGIN INIT INFO
    # Provides: lokales
    # Required-Start: $dvb $network $hal $cron $network $local_fs
    # Should-Start: $ALL
    # Required-Stop:
    # X-UnitedLinux-Should-Stop:
    # Default-Start: 3 5
    # Default-Stop: 0 1 2 6
    # Short-Description: lokale Dienste
    # Description: Mainly start multimedia funktions
    #
    ### END INIT INFO
    #
    # Shell functions sourced from /etc/rc.status:
    # rc_check check and set local and overall rc status
    # rc_status check and set local and overall rc status
    # rc_status -v ditto but be verbose in local rc status
    # rc_status -v -r ditto and clear the local rc status
    # rc_status -s display "skipped" and exit with status 3
    # rc_status -u display "unused" and exit with status 3
    # rc_failed set local and overall rc status to failed
    # rc_failed <num> set local and overall rc status to <num>
    # rc_reset clear local rc status (overall remains)
    # rc_exit exit appropriate to overall rc status
    # rc_active checks whether a service is activated by symlinks
    # rc_splash arg sets the boot splash screen to arg (if active)
    #
    . /etc/rc.status
    #
    case "$1" in
    start) echo -n "Starting vdr"
    setserial /dev/ttyS0 uart none
    /sbin/modprobe lirc_serial irq=4 io=0x3f8
    /usr/sbin/lircd -p 666 -H default
    /vdr/runvdr &
    echo "."
    ;;
    stop) echo -n "Stopping "
    /usr/bin/killall -q -KILL "runvdr"
    /usr/bin/killall -q -TERM "vdr"
    /usr/bin/killall -q -TERM "vdradmind.pl"
    killproc -TERM /usr/bin/irexec
    killproc -TERM /usr/sbin/lircmd
    killproc -TERM /usr/sbin/lircd
    /sbin/rmmod lirc_serial
    /sbin/rmmod lirc_dev
    echo "."
    ;;
    restart) echo -n "Restarting"
    $0 stop
    $0 start
    echo "."
    ;;
    *) echo "Usage: $0 start|stop|restart"
    exit 1
    ;;
    esac
    rc_exit


  • Hi 7of9!


    Danke für das Script, löppt wunderbar.
    Ich habe lirc selbstkompiliert am laufen, das geht also.


    Komischerweise wird das Script aber immer noch ignoriert, vdr nicht automatisch gestartet.
    Es liegt jetzt unter /etc/init.d/vdr. Ein Link in rc3.d namens S11vdr zeigt auf das Script, auch K12vdr tut dies.
    Der Aufruf von 'runlevel' gibt 'N 3' zurück, also nehme ich mal an, dass das auch mein Runlevel ist.


    In dmesg und dem syslog finde ich keinerlei Fehlermeldung...so langsam wirds komisch.


    Danke für die Hilfe!
    Björn

  • Immer diese DAU`s :-;


    Fuer das susesystem muss natuerlich
    # Provides: lokales
    in
    # Provides: vdr
    geaendert werden wenn du die datei "vdr" nennst


    ausserdem musst du die aenderung ueber yast -> system -> runlevel-editor -> vdr aktivieren
    um sie in die interne datenbank aufnehmen
    oder gib in einer textconsole "insserv -d /etc/init.d/vdr" ein


    Die Start und kill links musst du nicht von hand anlegen, dies geschieht automatisch anhand der informationen im file.


    ausserdem empfehle ich die zeile
    /vdr/runvdr &
    in
    /vdr/runvdr > /var/log/vdr.log 2>&1 &
    zum test zu aendern. Dann hasst du ein logfile.


    zum lirc: dass kann gar nicht sein!!! (:-; ok, i'm kiddin') die einzige lirc version die unter suse 10.2 ohne probleme lauft, wenn sie kompiliert wird ist 8.0, und die ist eh schon vorhanden.
    dann ist der einzige unterschied dass bei SuSE die devicefiles unter /var/run/lirc/lircd statt unter /dev/lircd zu finden sind.


    Ich selbst verwende lirc 8.1 da ich die sourcen geäendert habe um die dynamische maus beschleunigung einer imon Pad fernbedienung zu implementiern. und 8.1 lauft definitiv nicht mit einer suse10,2 ohne den kernel neu zu kompilieren.


    also : obwohl lirc 8.0 unter suse 10.2 zu compilieren ist, was solls ? die seriellen treiber in suse 10.2 sind schon perfekt. und "-P remote -l /dev/lircd" wirst du ja wohl noch in "-P remote -l /var/run/lirc/lircd" aendern koennen


    Gruss
    Bernd

  • Zitat

    Original von 7of9
    Immer diese DAU`s :-;


    Oh wie recht Du hast!
    Ich arbeite im SUpport, ich weiss wovon Du sprichst. ;)



    *räusper* erledigt.


    Zitat


    ausserdem musst du die aenderung ueber yast -> system -> runlevel-editor -> vdr aktivieren
    um sie in die interne datenbank aufnehmen
    oder gib in einer textconsole "insserv -d /etc/init.d/vdr" ein


    Oh man, woher soll man das denn wissen...


    Zitat


    Die Start und kill links musst du nicht von hand anlegen, dies geschieht automatisch anhand der informationen im file.


    Hatte ich schon getan.



    cool, danke für den Tipp!


    Zitat


    also : obwohl lirc 8.0 unter suse 10.2 zu compilieren ist, was solls ? die seriellen treiber in suse 10.2 sind schon perfekt. und "-P remote -l /dev/lircd" wirst du ja wohl noch in "-P remote -l /var/run/lirc/lircd" aendern koennen


    Das hatte ich auch schon getan. Alles gut.



    Danke Bernd!!!



    Gruß
    Björn

  • Zitat

    Original von 7of9
    zum lirc: dass kann gar nicht sein!!! (:-; ok, i'm kiddin') die einzige lirc version die unter suse 10.2 ohne probleme lauft, wenn sie kompiliert wird ist 8.0, und die ist eh schon vorhanden.


    Bei mir läuft ein selbst compiliertes lirc-0.8.2 unter openSuse 10.2 ohne Probleme.


    Guido

    HW: Gigabyte EP41-UD3L | Core2Duo 7400 | 2GB Kingston | MSI N220GT-MD1GZ (passiv) | L4M-Twin S2 ver 6.5 mit Flex S2 | Silverstone LC16M mit iMON VFD | Samsung LE46B750
    SW: Xubuntu 14.04 3.13.0-24 | NVIDIA 304.117 | vdr 2.1.6 | softhddevice | inputlirc | lcdproc

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!