[Comm] AL4 & kernel-2.6.22 & AverTV 50x
    Алексей Шенцев 
    =?iso-8859-1?q?ashen_=CE=C1_nsrz=2Eru?=
       
    Пт Ноя 16 11:54:34 MSK 2007
    
    
  
В сообщении от Friday 16 November 2007 11:26:26 Maxim Ivanov написал(а):
> У меня абсолютно тоже самое.
Угу ...
> Запустился!
> lircd-0.8.2[4914]: lircd(userspace) ready
Для начала хорошо. А теперь пробуйте в другой консоле запустить irw и по 
нажимать кнопки на пульте. Все 34 кнопки у вас отображаются? У меня пульт 
RM-HA
> Так-с... Его что, в /etc/rc.d засунуть может?
А он там и есть:
[root на oasu3 /]# ls /etc/rc.d/init.d/lir*
/etc/rc.d/init.d/lircd
[root на oasu3 /]#
Вот здесь http://linux.org.ua/cgi-bin/yabb/YaBB.pl?num=1193373582
предлагается переписать оригинальный /etc/rc.d/init.d/lircd, сохранив права 
оригинального файла. Утверждается, что по неизвестным автору причинам 
оригинальный /etc/rc.d/init.d/lircd не работает.
Я его поправил следующим образом:
[root на oasu3 init.d]# cat lircd
#!/bin/sh
#
# lircd         Linux Infrared Remote Control daemon
#
# chkconfig:    2345 65 35
# description:  LIRC is a package that allows you to decode and send
#               infrared signals of many (but not all) commonly used
#               remote controls.
#
# processname:  lircd
# pidfile:      /var/run/lircd.pid
# config:       /etc/lircd.conf
# config:       /etc/sysconfig/lircd
### BEGIN INIT INFO
# Provides: lircd
# Should-Start: $syslog
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Short-Description: Linux Infrared Remote Control daemon
# Description: LIRC is a package that allows you to decode and send
#              infrared signals of many (but not all) commonly used
#              remote controls.
### END INIT INFO
# Source function library
. /etc/rc.d/init.d/functions
# Get service config
[ -f /etc/sysconfig/lircd ] && . /etc/sysconfig/lircd
# See how we were called.
case "$1" in
  start)    # Check if the service is already running?
            if [ ! -f /var/lock/subsys/lircd ]; then
                # Release serial port.
                if [ "${HWMOD}" = "lirc_serial" ]; then
                    if lsmod | grep -q ^serial; then
                        modprobe -r serial
                    else
                        setserial ${COM_PORT} uart none
                    fi
                fi
                # Load the hardwaredriver
                #if [ -z "$HWMOD" ] || lsmod | grep -q ${HWMOD} ; then
                #    true
                #else
                #    modprobe ${HWMOD} ${DRIVER_OPTS} > /dev/null
                #fi
                gprintf "Starting Linux Infrared Remote Control daemon:"
                OPTIONS=""
                DRIVER="dev/input"
#               DEVICE="/dev/input/event2"
                DEVICE="/dev/input/by-path/pci-0000:02:02.0--event-ir"
                [ -n "${DRIVER}" ] && OPTIONS="--driver=${DRIVER}"
                [ -n "${DEVICE}" ] && OPTIONS="${OPTIONS} --device=${DEVICE}"
                daemon lircd ${OPTIONS}
                RETVAL=$?
                [ ${RETVAL} -eq 0 ] && touch /var/lock/subsys/lircd
            else
                gprintf "Starting Linux Infrared Remote Control daemon:"
                failure
            fi
            echo
            ;;
  stop)     # Stop daemons.
            if [ -f /var/lock/subsys/lircd ]; then
                gprintf "Stopping Linux Infrared Remote Control daemon:"
                killproc lircd
                rm -f /var/lock/subsys/lircd >/dev/null 2>&1
                # Unload the hardwaredriver
                if [ -z "$HWMOD" ] || lsmod | grep -q ${HWMOD} ; then
                    modprobe -r ${HWMOD} > /dev/null
                fi
                echo
            else
                gprintf "Stopping Linux Infrared Remote Control daemon:"
                failure
                echo
                exit 1
            fi
            ;;
  status)   status lircd
            ;;
  restart)  test -f /var/lock/subsys/irexec && RESTART_IREXEC=yes
            test -n "${RESTART_IREXEC}" && /etc/rc.d/init.d/irexec stop
            test -f /var/lock/subsys/lircmd && RESTART_LIRCMD=yes
            test -n "${RESTART_LIRCMD}" && /etc/rc.d/init.d/lircmd stop
            $0 stop
            $0 start
            test -n "${RESTART_LIRCMD}" && /etc/rc.d/init.d/lircmd start
            test -n "${RESTART_IREXEC}" && /etc/rc.d/init.d/irexec start
            ;;
  reload)   gprintf "Reloading Linux Infrared Remote Control daemon:"
            killproc lircd -HUP
            echo
            ;;
  *)        gprintf "$0 {start|stop|status|restart|reload}\n"
            exit 1
            ;;
esac
exit ${RETVAL}
Вроде стартанул, но с руганью:
[root на oasu3 init.d]# service lircd restart
/etc/init.d/lircd: line 91: gprintf: command not found
                                                                                           
[ DONE ]
/etc/init.d/lircd: line 64: gprintf: command not found
                                                                                           
[ DONE ]
[root на oasu3 init.d]# service lircd status
lircd is running
[root на oasu3 init.d]#
В этом я не силён, кто бы подсказал в чём косяк?
PS: мне не нравится такое решение, может расскажут более изящное и элегантное 
решение? Буду пре много благодарен.
-- 
С уважением Шенцев Алексей Владимирович.
E-mail: ashen на nsrz.ru
XMPP: ashen на altlinux.org, AlexShen на jabber.ru
ICQ: 271053845
    
    
Подробная информация о списке рассылки community