• Hans Verkuil's avatar
    Input: serio - add hangup support · 51db0137
    Hans Verkuil authored
    The Pulse-Eight USB CEC adapter is a usb device that shows up as a ttyACM0
    device.  It requires that you run inputattach in order to communicate with
    it via serio.
    
    This all works well, but it would be nice to have a udev rule to
    automatically start inputattach. That too works OK, but the problem comes
    when the USB device is unplugged: the tty hangup is never handled by the
    serio framework so the inputattach utility never exits and you have to kill
    it manually.
    
    By adding this hangup callback the inputattach utility now properly exits
    as soon as the USB device is unplugged.
    
    The udev rule I used on my Debian sid system is:
    
    SUBSYSTEM=="tty", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="2548", ATTRS{idProduct}=="1002", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="pulse8-cec-inputattach@%k.service"
    
    And /etc/systemd/system/pulse8-cec-inputattach@.service is as follows:
    
    ===============================================================
    [Unit]
    Description=inputattach for pulse8-cec device on %I
    
    [Service]
    Type=simple
    ExecStart=/usr/local/bin/inputattach --pulse8-cec /dev/%I
    KillMode=process
    ===============================================================
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Tested-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
    51db0137
serport.c 7.19 KB