easyVDR Kopie des easyVDR-Forums zum Nachschlagen
Serielle Schnittstellenkarte Logilink PCIe > 2x RS232 (Moschip MCS9922)

easyVDR - >VARforumsname - >Serielle Schnittstellenkarte Logilink PCIe > 2x RS232 (Moschip MCS9922)

rad  30.Jan.2016 17:07:40
Hi Leute,

ich möchte die Schnittstellenkarte ans Laufen bringen, in Verbindung mit dem Wakeup Modul von K-Data (Software von Frank J.)

[url=http://www.logilink.org/Produkte_LogiLink/Interface_Karten/Express_Karten/PCI_Express_Karte-2x_Seriell.htm]http://www.logilink.org/Produkte_LogiLink/Interface_Karten/Express_Karten/PCI_Express_Karte-2x_Seriell.htm

Die Karte habe ich nur gesteckt und gehofft, das sie ootb funktioniert!:

03:00.0 Serial controller : MosChip Semiconductor Technology Ltd. MCS9922 PCIe Multi-I/O Controller [9710:9922]
03:00.1 Serial controller : MosChip Semiconductor Technology Ltd. MCS9922 PCIe Multi-I/O Controller [9710:9922]

0.538106] 0000:03:00.0: ttyS4 at I/O 0xd010 (irq = 17, base_baud = 115200) is a ST16650V2
0.559505] 0000:03:00.1: ttyS5 at I/O 0xd000 (irq = 18, base_baud = 115200) is a ST16650V2

Auf Versuche, ttyS4 mit setserial zu initialisieren und (manuell) Befehle zum testen der Verbindung zu übertragen, reagiert das Modul gar nicht:

stopvdr
killall lircd
modprobe 8250
setserial /dev/ttyS4 uart 16550A
echo RTS1501240507041 > /dev/ttyS4 (setzt die Uhrzeit/Wochentag)

Ich habe ich schon im Internet umgeguckt, Infos zu Schnittstellenkarten in Verbindung mit VDR/Easyvdr findet man praktisch keine...
Ich frage mich gerade, ob der Ansatz an sich, eine serielle Schnittstelle nachzurüsten vielleicht der falsche Weg ist. Auch weil meine Linux kentnisse dürftig sind.

Das Wakeup-Modul würde ich auf jeden Fall nur ungerne aufgeben, über Kommentare und einen möglichen Ansatz, die Karte ans Laufen zu bekommen freue ich mich!













 
easyinfo.zip
MB: Asus H81M-Plus RAM: 8 GB HDD: 750 GB S-ATA - DVB: CineS2 v6.5 - EasyVDR 2.5
zzzözzz  30.Jan.2016 17:55:33
Laut kernel läuft deine Schnittstellenkarte doch?
rad  31.Jan.2016 16:42:57
Das Übertragen von Befehlen zum Wakeupmodul klappt jetzt! es lag an einem IRQ-Konflikt, wie ich in den logs gelesen habe:

Jan 30 15:54:48 easyVDR2 kernel: [  27.346219] genirq: Flags mismatch irq 17. 00000000 (lirc_serial) vs. 00000080 (snd_hda_intel)
Jan 30 15:54:48 easyVDR2 kernel: [  27.346222] lirc_serial lirc_serial.0: IRQ 17 busy

Nach umstecken der Karte (IRQ 19) hat der "Modemmanager", den ich mittlerweile deaktiviert habe, auch die korrekte Funktion verhindert.

Da die Übertragung jetzt klappt würde ich im zum HW-Wakeup passenden Skipt gern die neue Schnittstelle (ttyS4 anstatt ttyS0 ) angeben ...nur finde ich unter etc/vdr/shutdown-hooks die Passage nicht.


    ##############################################################################################
    "JepsenHWWakeup")
      if [ -e /etc/vdr/vdr-addon-hw-wakeup.conf ]; then
        . /etc/vdr/vdr-addon-hw-wakeup.conf
      fi
#set >/jplog/log.txt
export LANG=C
      # Defaults:
      [ -z "$ENABLED" ]          && export ENABLED="no"
      [ -z "$WAKEUP_PORT" ]      && export WAKEUP_PORT="/dev/ttyS0"
      [ -z "$KILL_LIRC" ]        && export KILL_LIRC="no"
      [ -z "$KILL_LCDD" ]        && export KILL_LCDD="yes"
      [ -z "$MIN_PRE_TIMER" ]    && export MIN_PRE_TIMER=5
      [ -z "$MAX_POWEROFF_TIME" ] && export MAX_POWEROFF_TIME=0
      [ -z "$MAX_TRY_AGAIN" ]    && export MAX_TRY_AGAIN=0
      # Const
      NEVER=2147483647
      if [ $MAX_TRY_AGAIN -gt 0 ]; then
        # another script wants to retry shutdown later
        ERR_MSG="Shutdown abgebrochen"
        $SVDRPCMD MESG "$ERR_MSG" &
    $LOGGERCMD "$ERR_MSG - Sutdown abgebrochen"
        EXITCODE=0
      else
        if [ $ENABLED = "no" ]; then
          # vdr-addon-hw-wakeup is disabled, so just exit
          ERR_MSG="hw-wakeup functionality is disabled"
          $SVDRPCMD MESG "$ERR_MSG - Shutdown abgebrochen" &
      $LOGGERCMD "$ERR_MSG - Sutdown abgebrochen"
          $LOGGERCMD "hw-wakeup functionality is disabled"
          EXITCODE=0
        else
          # calculate, at what time the machine should be powered on
          # VDR-Timer
          NOW=$((`date +%s`))
              echo "NOW          " `date -d "1970-01-01 $NOW seconds UTC" "+%H:%M %d.%m.%Y"` $NOW
          if [ -z $TIMER ] || [ $TIMER -eq 0 ]; then
            NEXTTIMER=$NEVER
          else
            NEXTTIMER=`expr $TIMER - $MIN_PRE_TIMER \* 60`
          fi
              echo "TIMER        " `date -d "1970-01-01 $NEXTTIMER seconds UTC" "+%H:%M %d.%m.%Y"` $NEXTTIMER
          # Daily Timer
          if [ -z $DAILY_TIMER_STD ] || [ -z $DAILY_TIMER_MIN ]; then
            NEXTDAILYTIMER=$NEVER
          else
            NEXTDAILYTIMER=`date +"%d %b %Y"`
            NEXTDAILYTIMER=`date -d "$NEXTDAILYTIMER $DAILY_TIMER_STD:$DAILY_TIMER_MIN" +%s`
            if [ $NOW -gt $NEXTDAILYTIMER ]; then
              NEXTDAILYTIMER=`expr $NEXTDAILYTIMER + 86400`
            fi
          fi
              echo "DAILYTIMER    " `date -d "1970-01-01 $NEXTDAILYTIMER seconds UTC" "+%H:%M %d.%m.%Y"` $NEXTDAILYTIMER
          # MaxPowerOff Time
          if [ $MAX_POWEROFF_TIME -eq 0 ]; then
            WAKEUPTIME=$NEVER
          else
            WAKEUPTIME=`expr $NOW + $MAX_POWEROFF_TIME \* 60`
          fi
              echo "MAXPOWEROFF  " `date -d "1970-01-01 $WAKEUPTIME seconds UTC" "+%H:%M %d.%m.%Y"` $WAKEUPTIME
          # Who comes first?
          if [ $WAKEUPTIME -gt $NEXTTIMER ] && [ $NEXTDAILYTIMER -gt $NEXTTIMER ]; then
            WAKEUPTIME=$NEXTTIMER
          else
            if [ $WAKEUPTIME -gt $NEXTDAILYTIMER ]; then
              WAKEUPTIME=$NEXTDAILYTIMER
            fi
          fi
              echo "WAKEUPTIME    " `date -d "1970-01-01 $WAKEUPTIME seconds UTC" "+%H:%M %d.%m.%Y"` $WAKEUPTIME   
          if [ $WAKEUPTIME -eq $NEVER ]; then
            WAKEUPSTR=""
          else
            WAKEUPSTR=`date -d "1970-01-01 $WAKEUPTIME seconds UTC" +%H%M%d%m`
          fi
          TIMESTR=`date +%H%M%S%d%m%y%w`
          # Kill LIRC
          if [ $KILL_LIRC = "yes" ]; then
            $LOGGERCMD "Starting Module 8250"
            killall lircd
            sleep 4
            modprobe -r lirc_serial
            sleep 8
            modprobe 8250
            setserial $WAKEUP_PORT uart 16550A
            sleep 8
          fi
          # Kill LCDd
          if [ $KILL_LCDD = "yes" ]; then
            killall LCDd
            sleep 1
            echo -n -e "\317" > $WAKEUP_PORT
          fi
          $LOGGERCMD "echo ATS$WAKEUPSTR > $WAKEUP_PORT"
          echo ATS$WAKEUPSTR > $WAKEUP_PORT
          $LOGGERCMD "echo RTS$TIMESTR > $WAKEUP_PORT"
          echo RTS$TIMESTR > $WAKEUP_PORT
          EXITCODE=0
          poweroff
        fi
      fi
    ;;
    ##############################################################################################






MB: Asus H81M-Plus RAM: 8 GB HDD: 750 GB S-ATA - DVB: CineS2 v6.5 - EasyVDR 2.5