Archiv > Development

Runvdr Startet Nicht Immer

(1/8) > >>

MarMic:
hi jungs,

extra nen thread für das problem das mir sehr sehr wichtig ist.

-> der vdr startet unzuverlässig seit der ps änderung im init script! (erst ab da beobachtet)

der 11te reboot (also nicht nur poweroff) hat zum fehler geführt:


--- Code: ---MLD> catsysinit
Tue Feb 21 10:25:03 UTC 2012

Copy initramfs to tmpfs:
===done===
Preparing root as aufs:
===done===
Import system device: /dev/sda1
  Turn on DMA:
===done===
  Checking:
===done===
  Mounting:
===done===
Mounting read-write system directory:
===done===
Setting up logging: level 2
Setting up netware:
===done===
Importing addon: locales
===done===
Importing addon: network
===done===
Importing addon: remote-autodetect
===done===
Importing addon: xorg-autodetect
===done===
Importing addon: addons
===done===
Importing addon: setup
===done===
Importing addon: pango
===done===
Importing addon: wakeup
===done===
Importing addon: acpi
===done===
Importing addon: backup
===done===
Importing addon: fonts
===done===
Importing addon: flashplugin
===done===
Importing addon: lirc
===done===
Importing addon: ntfs
===done===
Importing addon: samba
===done===
Importing addon: ssh
===done===
Importing addon: python
===done===
Importing addon: xbmc
===done===
Importing addon: firefox
===done===
Importing addon: femon
===done===
Importing addon: fritzbox
===done===
Importing addon: lcdproc-server
===done===
Importing addon: lcdproc
===done===
Importing addon: live
===done===
Importing addon: ....................
===done===
Importing addon: text2skin
===done===
Importing addon: perl
===done===
Importing addon: systeminfo
===done===
Importing addon: powersave
===done===
Importing addon: xinelib
===done===
Importing addon: xinelib-drivers
===done===
Importing addon: av-libs
===done===
Importing addon: text2skin-anthra-skins
===done===
Importing addon: xorg-nvidia
===done===
Importing addon: dvb
===done===
Importing addon: dvb-usb
===done===
Importing addon: usb
===done===
Importing addon: alsa
===done===
Importing addon: vdr
===done===
Importing addon: webserver
===done===
Importing addon: xineliboutput
===done===
Importing addon: xorg
===done===
Importing addon: sensors
===done===
Importing addon: config
===done===
Importing addon: system-tools
===done===
Import all further filesystems:
  Turn on DMA:
  Checking:
===done===
  Mounting:
===done===
Setting timezone:
===done===
Load keymap: de-latin1
===done===
Initialisation wakeup:
===done===
alsa:
Loading lirc driver
===done===
Starting lirc daemon
===done===
Starting LCDd Demon:
===done===
Loading network driver
===done===
Connecting to network
===done===
Starting xorg
===done===
Loading sound driver:
===done===

runvdr is already running
Starting VDR
===done===
sensors:

[5963] Feb 21 11:25:29 Running in background
Loading sensors drivers:
===done===
Starting acpi
===done===
Starting sshd:
  Listen on IP: 192.168.0.101
===done===
Starting samba server:
===done===
Start powersave:
===done===
Loading usb driver
===done===
Setting up setup menu:
rm: can't remove '/usr/share/doc/addons/setting': No such file or directory
===done===
Starting webserver:
===done===
Setting up web setup menu:
===done===
[16080] Feb 21 11:26:04 Child connection from 192.168.0.100:50916
[16080] Feb 21 11:26:04 Password auth succeeded for 'root' from 192.168.0.100:50916
[21752] Feb 21 11:29:54 Child connection from 192.168.0.100:50934
[21752] Feb 21 11:29:57 Password auth succeeded for 'root' from 192.168.0.100:50934
MLD>

--- End code ---

wie man sieht: runvdr is already running
Starting VDR

ps:


--- Code: ---MLD> ps -w
  PID USER       VSZ STAT COMMAND
    1 root      2556 S    init
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    5 root         0 SW   [kworker/u:0]
    6 root         0 SW   [migration/0]
    7 root         0 SW   [migration/1]
    8 root         0 SW   [kworker/1:0]
    9 root         0 SW   [ksoftirqd/1]
   10 root         0 SW   [kworker/0:1]
   11 root         0 SW<  [khelper]
   12 root         0 SW   [kworker/u:1]
  209 root         0 SW   [sync_supers]
  211 root         0 SW   [bdi-default]
  212 root         0 SW<  [kblockd]
  319 root         0 SW<  [ata_sff]
  327 root         0 SW   [khubd]
  487 root         0 SW   [kswapd0]
  488 root         0 SW   [fsnotify_mark]
  490 root         0 SW<  [xfs_mru_cache]
  491 root         0 SW<  [xfslogd]
  492 root         0 SW<  [xfsdatad]
  493 root         0 SW<  [xfsconvertd]
 1797 root         0 SW   [scsi_eh_0]
 1801 root         0 SW   [scsi_eh_1]
 1937 root         0 SW   [kworker/1:2]
 2033 root         0 SW<  [kpsmoused]
 2038 root         0 SW<  [exec-osm]
 2422 root      2556 S    klogd -c 1
 2453 root         0 SW   [scsi_eh_2]
 2454 root         0 SW   [usb-storage]
 2538 root         0 SW   [jbd2/sda1-8]
 2539 root         0 SW<  [ext4-dio-unwrit]
 2590 root      2556 S    syslogd -m 0
 2651 root         0 SW<  [loop0]
 2682 root         0 SW<  [loop1]
 2699 root         0 SW<  [loop2]
 2716 root         0 SW<  [loop3]
 2731 root         0 SW<  [loop4]
 2746 root         0 SW<  [loop5]
 2761 root         0 SW<  [loop6]
 2776 root         0 SW<  [loop7]
 2828 root         0 SW<  [loop8]
 2851 root         0 SW<  [loop9]
 2890 root         0 SW<  [loop10]
 2927 root         0 SW<  [loop11]
 2955 root         0 SW<  [loop12]
 2978 root         0 SW<  [loop13]
 3000 root         0 SW<  [loop14]
 3026 root         0 SW<  [loop15]
 3048 root         0 SW<  [loop16]
 3072 root         0 SW<  [loop17]
 3095 root         0 SW<  [loop18]
 3117 root         0 SW<  [loop19]
 3140 root         0 SW<  [loop20]
 3164 root         0 SW<  [loop21]
 3186 root         0 SW<  [loop22]
 3210 root         0 SW<  [loop23]
 3232 root         0 SW<  [loop24]
 3255 root         0 SW<  [loop25]
 3278 root         0 SW<  [loop26]
 3301 root         0 SW<  [loop27]
 3324 root         0 SW<  [loop28]
 3348 root         0 SW<  [loop29]
 3371 root         0 SW<  [loop30]
 3394 root         0 SW<  [loop31]
 3416 root         0 SW<  [loop32]
 3439 root         0 SW<  [loop33]
 3462 root         0 SW<  [loop34]
 3485 root         0 SW<  [loop35]
 3508 root         0 SW<  [loop36]
 3532 root         0 SW<  [loop37]
 3555 root         0 SW<  [loop38]
 3577 root         0 SW<  [loop39]
 3601 root         0 SW<  [loop40]
 3623 root         0 SW<  [loop41]
 3646 root         0 SW<  [loop42]
 3670 root         0 SW<  [loop43]
 3693 root         0 SW<  [loop44]
 3716 root         0 SW   [flush-8:0]
 3731 root         0 SW   [kworker/0:3]
 3739 root         0 SW   [xfsbufd/sda2]
 3740 root         0 SW   [xfsaild/sda2]
 4371 root      3528 S    lircd
 4515 nobody    2336 S    LCDd
 4805 root      4124 S    {runx} /bin/sh /usr/bin/runx
 4830 root      4124 S    {startx} /bin/sh /usr/bin/startx
 4840 root      3380 S    xinit /usr/bin/icewm-session-lite -- -ardelay 250 -arinterval 30 vt7
 4848 root     59100 S <  {Xorg} X :0 -ardelay 250 -arinterval 30 vt7
 5072 root         0 SW<  [hd-audio0]
 5127 root         0 SW<  [hd-audio1]
 5244 root      7560 S    /usr/bin/icewm-session-lite
 5245 root     10448 S N  icewmbg-lite
 5246 root     12340 S    icewm-lite
 5247 root     11660 S    icewmtray-lite
 5272 root      4124 S    {poswindows} /bin/sh /usr/bin/poswindows
 5279 root      3376 S    monitor
 5280 root      4124 S    {poswindows} /bin/sh /usr/bin/poswindows
 5300 root      4124 S    {startup} /bin/sh /etc/X11/icewm/startup
 5304 root      4124 S    {runvdr-sxfe} /bin/sh /usr/bin/runvdr-sxfe -f
 5940 root      2048 S    tcpsvd -l0 0 80 /bin/sh /usr/bin/webserver.sh show
 5945 root      3996 S    logger -t tcpsvd
 5963 root      2428 S    sshd -E
 5993 root     11660 S    nmbd -D
 6017 root      1980 S    acpid
 6146 root     19492 S    smbd -D
 6188 root     19492 S    smbd -D
15636 root      4128 S    -sh
15637 root      4128 S    -sh
15641 root      4128 S    -sh
15650 root      4128 S    -sh
16080 root      2788 S    sshd -E
16093 root      4128 S    -sh
21752 root      2788 R    sshd -E
21843 root      4128 S    -sh
27078 root      3992 S    usleep 100000 #waiting for xineliboutput
27079 root      4032 R    ps -w
MLD>

--- End code ---

komischerweise kommen vdr zeilen in der message:

--- Code: ---Feb 21 11:25:35 (none) user.err vdr: [9480] cTimeMs: using monotonic clock (resolution is 999848 ns)
Feb 21 11:25:35 (none) user.err vdr: [9472] cTimeMs: using monotonic clock (resolution is 999848 ns)
Feb 21 11:25:35 (none) user.debug vdr: [9480] [general.debug] using new 1.7.11+ capture code
Feb 21 11:25:35 (none) user.debug vdr: [9472] [general.debug] using new 1.7.11+ capture code
Feb 21 11:25:35 (none) user.err vdr: [9595] cTimeMs: using monotonic clock (resolution is 999848 ns)
Feb 21 11:25:35 (none) user.err vdr: [9593] cTimeMs: using monotonic clock (resolution is 999848 ns)
Feb 21 11:25:35 (none) user.debug vdr: [9595] [general.debug] using new 1.7.11+ capture code
Feb 21 11:25:35 (none) user.debug vdr: [9593] [general.debug] using new 1.7.11+ capture code
Feb 21 10:25:48 (none) user.info kernel: bootsplash: status on console 0 changed to on
--- End code ---

das ist aber ALLES -> woher kommen die vdr zeilen wenn vdr nicht wirklich startet!?

so nun füge ich mal echoes ein und reproduziere das nochmal

MarMic:
weiter gehts:

runvdr so abgeändert:

[code]
#!/bin/sh
#
# run vdr
echo "starte script"
. /etc/init.d/rc.functions
echo "nach rc.functions"
rm -f /tmp/vdr_stop /tmp/vdr_quick_restart
echo "nach rm -f /tmp..."
case "$1" in
   -k)
  touch /tmp/vdr_stop
  killproc "/usr/bin/vdr" 10
  exit $?
   ;;
   -r)
  killproc "/usr/bin/vdr" 10
  exit $?
   ;;
   -q)
  touch /tmp/vdr_quick_restart
  killproc "/usr/bin/vdr" 0
  exit $?
   ;;
   -n)
  norestart=1
   ;;
   -*)
  echo "Usage $0 {-k | -r | -q}"
  echo "      -k   kill vdr"
  echo "      -r   restart vdr"
  echo "      -q   quick restart vdr"
  echo "      -n   no restart if an error occur"
  exit 1
   ;;
esac
echo "nach case"
ps | grep "{${0##*/}}" | grep -v grep | grep -q -v $$ && { echo "${0##*/} is already running"; exit; }
echo "nach ps"
/etc/vdr/run.d/rc.action start
echo "nach rc.action"
while (true) do
   . /etc/rc.config

   export LANG
   export LC_ALL=$LANG
   export VDR_CHARSET_OVERRIDE

   # check if a remote control must be enabled
   if ps | grep -v "grep" | grep -q "lircd" && (! test -e /usr/bin/vdr-sxfe || ! grep -sqi "^lirc." /etc/vdr/remote.conf); then
  VDR_ARGS="$VDR_ARGS --lirc"
   elif ls /etc/vdr/remote.rc* >/dev/null 2>&1 && [ -e /usr/bin/av7110_loadkeys ]; then
  VDR_ARGS="$VDR_ARGS --rcu"
   fi
echo "nach check if a remote control must be enabled"   
   # update remote configuration file
   cat /etc/vdr/remote.conf.* 2>/dev/null >> /etc/vdr/remote.conf
   rm -f /etc/vdr/remote.conf.*
   mv /tmp/remote.conf.* /etc/vdr 2>/dev/null
echo "nach update remote configuration file"   
   # check if a input device must be train
   if ! grep -sqi "^lirc." /etc/vdr/remote.conf && [ -z "${VDR_ARGS%%* --lirc}" ] ||
    ! grep -sqi "^rcu." /etc/vdr/remote.conf && [ -z "${VDR_ARGS%%* --rcu}" ] ||
    ! grep -sqi "^XKeySym." /etc/vdr/remote.conf ||
    ! grep -sqi "^kbd." /etc/vdr/remote.conf
   then
  echo "xineliboutput.OSD.Size = 720x576" >> /etc/vdr/setup.conf.add
   elif grep "xineliboutput.OSD.Size = 720x576" /etc/vdr/setup.conf; then
  echo "xineliboutput.OSD.Size = automatic" >> /etc/vdr/setup.conf.add
   fi
echo "nach check if a input device must be train"   
   # update vdr configuration file
   while read line; do
  sed "/${line%% *}/d" -i /etc/vdr/setup.conf
  echo "$line" >> /etc/vdr/setup.conf
   done 2>/dev/null < /etc/vdr/setup.conf.add
   rm -f /etc/vdr/setup.conf.add
echo "nach update vdr configuration file"   
   # activate selected channel list
   if [ -n "$VDR_CHANNELLIST" ]; then
  ln -fs /etc/vdr/channels/$VDR_CHANNELLIST.conf /etc/vdr/channels.conf
   fi
echo "nach activate selected channel list"   
   # suche Plugins und Parameter zusammen
   plugins=""
   for plugin in $VDR_PLUGIN_ORDER `ls /usr/lib/vdr/libvdr* 2>/dev/null | sed 's/.*libvdr-([^.]*).*/1/'`; do
  if [ -z "`echo "$plugins" | grep -e "-P[^a-z]$plugin " 2>/dev/null`" -a -n "`ls /usr/lib/vdr/libvdr-$plugin* 2>/dev/null`" ]; then
     eval options=$VDR_PLUGIN_ARGS_$(echo "$plugin" | sed 's/-/_/g')
     plugins="$plugins -P"$plugin $options""
  fi
   done
echo "nach suche Plugins und Parameter zusammen"
   # wait for dvb adapters
   i=0; while [ $i -lt 10 -a ! -e /tmp/vdr_quick_restart -a $(ls -d /dev/dvb/adapter? 2>/dev/null | wc -l) -lt 0$VDR_DVB_ADAPTER_COUNT ]; do i=$(($i+1)); sleep 1 "#waiting for dvb adapters"; done
   update_setting "VDR_DVB_ADAPTER_COUNT" "$(ls -d /dev/dvb/adapter? 2>/dev/null | wc -l)"
   
   starttime=`date +%s`
   
   rm -f /tmp/vdr_quick_restart
echo "nach wait for dvb adapters"   
   # starte vdr
   eval /usr/bin/vdr -s /etc/vdr/shutdown.d/rc.action -r /etc/vdr/recording.d/rc.action -w 60 -L /usr/lib/vdr -c /etc/vdr -v /data/tv/tv0 -g /tmp -u root $VDR_ARGS $plugins >>${VDR_STDOUT-/dev/stderr}
   
   test -e /tmp/vdr_stop && break

   if [ -e /tmp/vdr_quick_restart ]; then
  /etc/vdr/run.d/rc.action quick_restart
   else
  echo -n "VDR exits at "; date

  killproc "/usr/bin/vdr" 0

  test -e /tmp/vdr_stop -o "$norestart" = "1" && break

  # schnelle wiederholte Neustarts verz

clausmuus:
Mysteriös! Wo kommen die VDR log Zeilen her??? Und dann noch nicht einmal die normale VDR startup Logs. Oder hast Du den VDR Log Level doch nicht auf 3 gestellt?
Die Umkehr von
runvdr is already running
Starting VDR
ist übrigens OK. Eigendlich hätte man das ja in anderer Reihenfolge erwarten sollen. Das die Reihenfolge der Ausgaben nicht dem Zeitlichem Ablauf entspricht ist jedoch dem Parallelem Start diverser Addons geschuldet. Die Ausgaben von runvdr werden direkt in die /var/log/sysinit umgelenkt, die Ausgaben vom Initscript werden erst nach dem Beenden des Initscriptes in die sysinit geschrieben.

Ich hab noch nen Vorschlag:
Du solltest noch nen "{ echo $$; ps; } > /var/log/runvdr.log" in Zeile 36 (also vor dem "ps | ...") der runvdr einfügen. Dann lässt sich auch nach dem Start noch schauen wieso es harken konnte.

Claus

clausmuus:
Und dann füge bitte auch noch dies hinzu:
echo $$; ps | grep "{${0##*/}}" | grep -v grep | grep -v $$

Dann sehen wir auch gleich wo drauf der angesprungen ist.

Claus

MarMic:
in zeile 37:


--- Code: ---{ echo $$; ps; } > /var/log/runvdr.log
echo $$; ps | grep "{${0##*/}}" | grep -v grep | grep -v $$
ps | ...

--- End code ---

richtig???

@claus, durch die echoes scheintd as nun stabieler zu laufen :-(

bis jetzt 20ig neustarts und noch kein vdr hänger ABER der letzte neustart war ganz böse:

ladebalken bei 3% -> strg alt f1 ergibt:

setting up logging: level 2
tee: /var/log/sysinit: I/O error
setting up netware:
/etc/init.d/rc.sysinit: line 15: divide by zero

bb v.1.19.4....

hmm reboot weiterhin dieser fehler... SCHEI*E

edit://nach einmaligem reboot und auswhal von more verbose -> boot und nun bootet auch wieder quiet WTF?!

p.s. hatte die neuen zeilen noch nicht drin!

Navigation

[0] Message Index

[#] Next page

Go to full version