Как заставить сценарий резюме ожидать ivtv инициализации

У меня есть карта ТВ-тюнера с инфракрасным датчиком. Я сделал сценарий, чтобы удалить/начать ivtv модуль ядра и завершить работу/перезапустить, lirc сервис на приостанавливают/возобновляют.

Проблема состоит в том, что lirc сервис запускает выполнения команды, прежде чем ivtv нашел и инициализировал аппаратные средства, таким образом, он перестал работать.

Существует ли способ задержать lirc сервис, запускаются, пока аппаратные средства не были инициализированы?

Файл сценария:

/etc/pm/sleep.d/30_ivtv

и его содержание:

#!/bin/sh
#
# Hauppauge PVR250 TV-card and TBS6680 DVB-card are dead after resume, fix it

. /usr/lib/pm-utils/functions

case "$1" in
    hibernate|suspend)
        # VLC prevents sleep
        killall vlc
        # LIRC...
        service lirc stop
        # Disable ivtv to prevent Hauppauge from being dead on resume
        rmmod ivtv
        # Disable TBS6680 dvb card to prevent it from being dead on resume
        rmmod saa716x_tbs_dvb

;;

    thaw|resume)
        modprobe saa716x_tbs_dvb
        modprobe ivtv

        # Here we need to wait until IR sensor device initialization is done!

        service lirc start
;;

    *)
;;
esac

exit

Отрывок из системного журнала после резюме:

lircd-0.9.0[13717]: lircd(devinput) ready, using /var/run/lirc/lircd
lircd-0.9.0[13717]: accepted new client on /var/run/lirc/lircd
lircd-0.9.0[13717]: initializing '/dev/input/event'
lircd-0.9.0[13717]: unable to open '/dev/input/event'
lircd-0.9.0[13717]: Failed to initialize hardware
kernel: [34425.580877] init: Handling lirc-device-added event
...
kernel: [34426.032906] ivtv: Start initialization, version 1.4.3
...
kernel: [34426.093966] ivtv0: Autodetected Hauppauge WinTV PVR-250
...
kernel: [34426.273807] init: Handling i2c-device-added event
kernel: [34426.274758] Registered IR keymap rc-hauppauge
kernel: [34426.274801] input: i2c IR (Hauppauge) as /devices/virtual/rc/rc13/input71
kernel: [34426.274854] rc13: i2c IR (Hauppauge) as /devices/virtual/rc/rc13
kernel: [34426.274856] ir-kbd-i2c: i2c IR (Hauppauge) detected at i2c-2/2-0018/ir0 [ivtv i2c driver #0]
kernel: [34426.275080] init: Handling i2c-device-added event
kernel: [34426.275135] init: Handling rc-device-added event
...
0
задан 25 December 2014 в 15:52

1 ответ

Вы можете добавить sleep здесь:

thaw|resume)
    modprobe saa716x_tbs_dvb
    modprobe ivtv

    # Here we need to wait until IR sensor device initialization is done!
    sleep 20
    service lirc start

Теперь, вы хотите сделать что-то действительно умное, вы можете использовать выскочку.

0
ответ дан 25 December 2014 в 15:52

Другие вопросы по тегам:

Похожие вопросы: