• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Hauppauge PVR 150 Fernbedienung SuSE 11.1:

Hi! So gehts!

VORWEG! Ich werde hier und da noch in der nächsten Zeit einige Zeilen Verbessern! Generell bitte -> Wer irgendwas besser machen kann der macht das bitte auf diesem besseren Wege. Ich lasse mich auch gerne korrigieren und: Alles auf eigene Gefahr!

Und ich nutze das ganze in Verbindung mit TV-Viewer:
http://sourceforge.net/projects/tv-viewer/

Es funktioniert nur mit einer bestimmten Version, die es nicht im REPO gibt! (bei mir);

A) IVTV aus dem SuSE repo verwendet

1. YAST:
alles zu lirc suchen und löschen falls Konflikte auftreten beim Löschen im YasT die Konflikte in eine Textdatei speichern.
Dann wieder YasT starten. Die gelöschten Pakete wieder installieren. Die Abhängigkeit zu LIRC IGNORIEREN und LIRC auf TABU setzen. <--- !! :s

LIRC wird von Hand installiert. Ich gehe davon aus (Weiss allerdings nicht ob) aber ich gehe davon aus, dass durch die nachfolgende händische Installation von LIRC eventuelle Abhängigkeiten gelöst wurden.

2. Hier gibt es Anleitung erstens wo man das entsprechende Paket herbekommt und wie man es installiert:
http://www.blushingpenguin.com/mark/blog/?p=24
(Entpackt und Installation ausgeführt habe ich im Verzeichnis "/opt")

3. Die Firmware für die Remote: ("haup-ir-blaster.bin")
Diese habe ich mir händisch heruntergeladen und im TUT aus schritt 2 steht wo diese normalerweise platziert wird. Ich habe sie in allen genannten Verzeichnissen (unsinniger Weise) platziert. Ich hab sie dort gefunden:
https://bugs.launchpad.net/ubuntu/+source/lirc/+bug/275536

4. Nicht vergessen, die originale lircd.conf zu sichern und eine Neue auch in diesem TUT erhältlich:
http://www.blushingpenguin.com/mark/blog/?p=24
in: "/etc/lircd.conf" kopieren (platzieren)

5. Anweisungen und Troubleshooting aus dem TUTORIAL verwenden.

6. das Laden mit:
Code:
modprobe lirc_dev debug=1 && modprobe lirc_pvr150 debug=1
funktionierte bei mir erst nach einem System REBOOT 100 % weil das Firmwarefile erst vom Hotplug Mechanismus angenommen werden musste. Ich weiss nicht wie das händisch machbar ist.

7. Wie startet man (lircd) das ganze automatisch?
Entweder:
Ich habe mir das SuSE RPM von LIRC heruntergeladen, entpackt mithilfe "MC". Darin fand ich die RC Scripte, welche sich leicht anpassen liessen. Ich musste lediglich die Dateiliste vergleichen. Also habe ich Symlinks für die Binarys angelegt und den RCscript platziert. Dazu außerdem die Manpages korrekt platziert und weiter noch das Sysconfig template. (Weitere Informationen kann ich dazu leider nicht geben.)
Code:
chkconfig lirc on

(Jeweiliges lässt das andere Obsolet werden. Also entweder RC script oben oder den unteren)

Oder:
http://linux.derkeiler.com/Mailing-Lists/SuSE/2005-07/1773.html
Dem Tutorial folgen.

Im YasT hab ich rclocal als Runlevel 3 gewählt; Der runleveleditor trägt dabei auch automatisch zusätzlich runlevel 5 mit ein. Die letzte Zeile der Datei sieht so aus (bei mir):
Code:
# vvvvv Add your commands bellow this line vvvvv
# Daemonmode for lircd
/usr/local/sbin/lircd --device=/dev/lirc0 --logfile=/var/log/lircd
# Daemonmode for lircmd
/usr/local/sbin/lircmd /etc/lircmd.conf
(So wird der Dienst für LIRC gestartet. Und aber auch lircmd, von dem ich mir erhoffe später den Mauszeiger mit der Fernbedienung bedienen zu können. Das Laden von LIRCMD soll meinen recherchen nach, vor dem Start des Xserver erfolgen. deswegen geschieht das auch gleich in dieser Datei. Bitte beachtet, dass ihr vorher in der Zeile lirc0 mit euerer Devicenode abgleicht.) [ ls -al /dev/lirc* ] (nach besagtem Neustart:)
Code:
lrwxrwxrwx 1 root root     5 19. Mai 23:40 /dev/lirc -> lirc0
crw-rw---- 1 root root 61, 0 19. Mai 23:40 /dev/lirc0
srw-rw-rw- 1 root root     0 19. Mai 23:41 /dev/lircd
prw-r--r-- 1 root root     0 19. Mai 23:41 /dev/lircm
Die Nodes werden automatisch erstellt.

8. Das Laden des Kernelmoduls muss noch sichergestellt werden:
Ich Editierte die:
Code:
/etc/init.d/boot.local
Und ergänzte am Ende um folgendes (die Debugschalter braucht man nicht. Diese erzeugen eventuell unnötiges Aufkommen von vielen vielen Meldungen in /var/log/messages):
Code:
# Haupauge PVR 150 LIRCD CVS:
# Debugmode:
#modprobe lirc_dev debug=1 && modprobe lirc_pvr150 debug=1
# Noneverbose:
modprobe lirc_dev && modprobe lirc_pvr150

Damit ist der Autostart bei mir funktional.

9. TESTEN
Nach einem Reboot:
Code:
ps ax | grep lirc
Code:
1287 pts/1    S+     0:00 grep lirc
 2064 ?        S<     6:08 [lirc_pvr150]
 5140 ?        Ss     0:00 /usr/local/sbin/lircd --device=/dev/lirc0 --logfile=/var/log/lircd
 5151 ?        Ss     0:00 /usr/local/sbin/lircmd /etc/lircmd.conf
 5423 ?        Ss     0:00 /usr/local/bin/irexec --daemon /home/disk/.lircrc
Code:
ls -al /dev/lirc*
Code:
lrwxrwxrwx 1 root root     5 19. Mai 23:40 /dev/lirc -> lirc0
crw-rw---- 1 root root 61, 0 19. Mai 23:40 /dev/lirc0
srw-rw-rw- 1 root root     0 19. Mai 23:41 /dev/lircd
prw-r--r-- 1 root root     0 19. Mai 23:41 /dev/lircm
Code:
irw
und auf der Remote rumdrücken. Ergebnis:
Code:
wild-thing:/home/disk # irw
00000000000017a0 00 Ch+ Hauppauge_350
00000000000017a0 00 Ch+ Hauppauge_350
00000000000017a0 00 Ch+ Hauppauge_350
00000000000017a0 00 Ch+ Hauppauge_350
00000000000017b0 00 Pause Hauppauge_350
00000000000017b0 01 Pause Hauppauge_350
0000000000001784 00 4 Hauppauge_350
0000000000001785 00 5 Hauppauge_350
0000000000001785 01 5 Hauppauge_350
0000000000001788 00 8 Hauppauge_350
0000000000001795 00 Down Hauppauge_350
0000000000001795 01 Down Hauppauge_350

Jetzt noch zu LIRCMD:
(Achtung das habe ich bisher noch nicht hinbekommen); Dennoch poste ich hier weitere Vorbereitungen. Weiter oben habe ich schon beschrieben, dass LIRCMD via rclocal (rc.local) gestartet wird, bevor der Xserver startet.

In meiner Xorg.conf habe ich folgende Zeilen ergänzt:
In [ "Section "ServerLayout" ]
Code:
InputDevice  "Mouse[2]" # LIRC MOUSE

Und eine Neue Maussektion:
Code:
Section "InputDevice" # LIRC MOUSE
  Driver      "mouse"
  Identifier  "Mouse[2]"
  Option      "Device" "/dev/lircm"
  Option      "Protocol" "IntelliMouse"
  Option      "SendCoreEvents"
  Option      "Buttons" "5"
  Option      "ZAxisMapping" "4 5"
EndSection
Diese Maussektion spiegelt das selbe Protokoll wieder, dass in der Konfigurationsdatei für die Maus via LIRCD verwendet werden soll. Auch spiegelt die Sektion für die xorg.conf (oben) das "/dev/lircm" wieder, welches wiederum vom daemon und von X zum Einbuchen der Maus, herangezogen wird. Hier also eine vorläufige Konfigurationsdatei /etc/lircmd.conf:
Code:
#
# lircmd config file
#

PROTOCOL IntelliMouse

# ACCELERATOR start max multiplier

ACCELERATOR 2 30 5

ACTIVATE * RESERVED
#TOGGLE_ACTIVATE * Asterix

MOVE_N * Up
#MOVE_NE * 3
MOVE_E * Right
#MOVE_SE * 9
MOVE_S * Down
#MOVE_SW * 7
MOVE_W * Left
#MOVE_NW * 1
#MOVE_IN * CH+
#MOVE_OUT * CH-

BUTTON1_TOGGLE * #
#BUTTON1_TOGGLE * RADIO
#BUTTON2_TOGGLE * VOL+
#BUTTON3_TOGGLE * SOURCE

BUTTON1_CLICK * OK
#BUTTON1_CLICK * VOL-
#BUTTON3_CLICK * MUTE

# BUTTONx_CLICK, BUTTONx_UP, BUTTONx_DOWN are also possible


Danke fürs Zuhören!

Hier noch mehr Ausgaben:

Die geladenen Module:
Code:
wild-thing:/home/disk # lsmod | grep irc
lirc_pvr150            14004  0
lirc_dev               11268  1 lirc_pvr150
ivtv                  133988  1 lirc_pvr150
i2c_core               29900  10 lirc_pvr150,tuner_simple,wm8775,cx25840,tuner,ivtv,i2c_algo_bit,v4l2_common,tveeprom,i2c_i801

Der verwendete Kernel:
Code:
wild-thing:/home/disk # uname -rio
2.6.27.21-0.1-pae i386 GNU/Linux

Gruß,

R
 
Mit diesem Treiber wird meine silberne Fernbedienung in der lircd.conf als:
"Hauppauge_350" erkannt.

Also konnte ich meine /etc/lircd.conf auf folgenden Inhalt kürzen:
(Im Deckel vom Batteriefach steht: A415 OH/S 1-1)
Code:
#
# this config file was automatically generated
# using lirc-0.7.0(any) on Sun Nov 28 20:25:09 2004
#
# contributed by 
#
# brand:   Hauppauge 350
# Created: G.J. Werler (The Netherlands)
# Project: Mythtv Fedora Pundit-R www.mythtvportal.com
# Date:    2004/11/28
# model no. of remote control: Hauppauge A415-HPG
# devices being controlled by this remote: PVR-350
#

begin remote

  name  Hauppauge_350
  bits           13
  flags RC5|CONST_LENGTH
  eps            30
  aeps          100

  one           969   811
  zero          969   811
  plead        1097
  gap          114605
#  gap		200000
  toggle_bit      2


      begin codes
          Go                       0x00000000000017BB
          Power                    0x00000000000017BD
          TV                       0x000000000000179C
          Videos                   0x0000000000001798
          Music                    0x0000000000001799
          Pictures                 0x000000000000179A
          Guide                    0x000000000000179B
          Radio                    0x000000000000178C
          Up                       0x0000000000001794
          Left                     0x0000000000001796
          Right                    0x0000000000001797
          Down                     0x0000000000001795
          OK                       0x00000000000017A5
          Back/Exit                0x000000000000179F
          Menu/i                   0x000000000000178D
          Vol+                     0x0000000000001790
          Vol-                     0x0000000000001791
          Prev.Ch                  0x0000000000001792
          Mute                     0x000000000000178F
          Ch+                      0x00000000000017A0
          Ch-                      0x00000000000017A1
          Record                   0x00000000000017B7
          Stop                     0x00000000000017B6
          Rewind                   0x00000000000017B2
          Play                     0x00000000000017B5
          Forward                  0x00000000000017B4
          Replay/SkipBackward      0x00000000000017A4
          Pause                    0x00000000000017B0
          SkipForward              0x000000000000179E
          1                        0x0000000000001781
          2                        0x0000000000001782
          3                        0x0000000000001783
          4                        0x0000000000001784
          5                        0x0000000000001785
          6                        0x0000000000001786
          7                        0x0000000000001787
          8                        0x0000000000001788
          9                        0x0000000000001789
          Asterix                  0x000000000000178A
          0                        0x0000000000001780
          #                        0x000000000000178E
          Red                      0x000000000000178B
          Green                    0x00000000000017AE
          Yellow                   0x00000000000017B8
          Blue                     0x00000000000017A9
      end codes

Wie ihr wisst nutze ich den TV-Viewer. Für diesen habe ich ein .lircrc im Homeverzeichnis erstellt:
(Updated for tv-viewer 0.8.1a1 )
Code:
begin
      remote = Hauppauge_350
      prog = irexec
      button = Go
      config = tv-viewer &
      mode = tv-viewer
      repeat = 0
    end

begin tv-viewer 

begin
      remote = Hauppauge_350
      prog = irexec
      button = Ch+
      config = tv-viewer_lirc station_up
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Ch-
      config = tv-viewer_lirc station_down
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Prev.Ch
      config = tv-viewer_lirc station_jump
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = TV
      config = tv-viewer_lirc fullscreen
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Power
      config = tv-viewer_lirc quit
      flags = mode
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Vol-
      config = tv-viewer_lirc volume_decr
      repeat = 1
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Vol+
      config = tv-viewer_lirc volume_incr
      repeat = 1
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Mute
      config = tv-viewer_lirc mute
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Record
      config = tv-viewer_lirc record
      repeat = 0
    end
#####

begin
      remote = Hauppauge_350
      prog = irexec
      button = Pause
      config = tv-viewer_lirc pause
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Stop
      config = tv-viewer_lirc stop
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Play
      config = tv-viewer_lirc start
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = SkipForward
      config = tv-viewer_lirc forward_end
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Replay/SkipBackward
      config = tv-viewer_lirc rewind_start
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Rewind
      config = tv-viewer_lirc rewind_10s
      repeat = 1
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Forward
      config = tv-viewer_lirc forward_10s
      repeat = 1
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Red
      config = tv-viewer_lirc zoom_wide
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Green
      config = tv-viewer_lirc zoom_incr
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Yellow
      config = tv-viewer_lirc zoom_decr
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = Blue
      config = tv-viewer_lirc zoom_stnd
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 0
      config = tv-viewer_lirc key_0
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 1
      config = tv-viewer_lirc key_1
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 2
      config = tv-viewer_lirc key_2
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 3
      config = tv-viewer_lirc key_3
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 4
      config = tv-viewer_lirc key_4
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 5
      config = tv-viewer_lirc key_5
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 6
      config = tv-viewer_lirc key_6
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 7
      config = tv-viewer_lirc key_7
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 8
      config = tv-viewer_lirc key_8
      repeat = 0
    end

begin
      remote = Hauppauge_350
      prog = irexec
      button = 9
      config = tv-viewer_lirc key_9
      repeat = 0
    end

end tv-viewer

Das aus den derzeit verfügbaren kommandos in der US readme zum tv-viewer;

irexec im Autostart: (/home/deinUsername/.kde4/Autostart/irexec.sh)
Code:
#!/bin/bash
# Save this script in a file, give it executable permissions, and put it
# in your ~/.kde/Autostart folder.
/usr/local/bin/irexec --daemon /home/disk/.lircrc
/usr/local/bin/irxevent -d &
kdialog --passivepopup "IREXEC und irxevent gestartet!" 3
exit 0;
Diese beiden Dienste benötigt man einmal Zur Steuerung des TV-Viewer. Mit dem Anderen soll es mir später möglich sein, amarok und andere Dienste steuern zu können.

Hier noch ein Überblick der aus der Hilfe zum TV-VIEWER eingebundenen Funktionen:
Code:
    * teleview (Start/Stop TV playback.)
    * station_up (Zap one station up.)
    * station_down (Zap one station down.)
    * station_jump (Jump between the last two stations)
    * fullscreen (Toggle fullscreen)
    * quit (Close TV-Viewer)
    * zoom_incr (Increase zoom)
    * zoom_decr (Decrease zoom)
    * zoom_stnd (Standard zoom.)
    * record (Start recording of current station.)
    * volume_incr (Increase volume)
    * volume_decr (Decrease volume)
    * mute (Toggle mute)

The following actions can only be used if you are watching a recording.

    * pause (Toggle pause)
    * stop (Stop file playback - Meanwhile recording will continue.)
    * start (Start file playback)
    * forward_10s (10 seconds fast forward)
      (nicht eingebunden) * forward_1m (1 minute fast forward)
      (nicht eingebunden) * forward_10m (10 minutes fast forward)
    * forward_end (End of the file)
    * forward_start (Beginning of the file)
    * rewind_10s (10 seconds rewind)
      (nicht eingebunden) * rewind_1m (1 minute rewind)
      (nicht eingebunden) * rewind_10m (10 minutes rewind)
    * rewind_start (Beginning of the file)

Wenn man also auf GO (Ganz links oben mit dem Häuschen) drückt, startet TV Viewer;

Abermals vielen Dank! Ich hoffe das könnte jemandem helfen!

Grüße,

R
 
Probleme die ich noch irgendwie lösen möchte:
Für die Maussteuerung (Müsste ich hier noch erklähren wie ich es hinbekommen habe...)
http://www.linux-club.de/viewtopic.php?f=18&t=103479&p=638056#p633977
( Ungelöst: )
Die Maussteuerung mit der Fernbedienung via LIRCMD funktioniert nicht. Die Dienste werden richtig? vor dem Start des Xservers gestartet. Die devicenode : /dev/lircm existiert auch:
Code:
ls -al /dev/lircm
prw-r--r-- 1 root root 0 19. Mai 23:41 /dev/lircm
Dennoch wird in /var/log/Xorg.0.log gemeldet: ( grep EE /var/log/Xorg.0.log )
Code:
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(II) Loading extension MIT-SCREEN-SAVER
(EE) xf86OpenSerial: Cannot open device /dev/lircm
(EE) xf86OpenSerial: Cannot open device /dev/lircm
(EE) config/hal: NewInputDeviceRequest failed (8)
(EE) config/hal: NewInputDeviceRequest failed (8)
Heisst so viel wie, die Node würde nicht gefunden. Wenn man den Xserver nun mit CRTL + ALT + Backspace abschiessen würde. Und erneut das Xorg.0.log nach dieser Meldung durchsucht, wird man erstaunlicher Weise an dieser Stelle kein Problem mehr feststellen können.

Dennoch funktioniert die Maus noch nicht. Über etwäige Hilfe bezüglich der Maussteuerung würde ich mich sehr freuen!
( Gelöst )
Code:
May 11 12:49:27 wild-thing kernel: lirc_pvr150: key (0x00/0x00)
erscheint im Sekundentakt in /var/log/messages und haut das Logfile voll!
Wenn man wärend das passiert in IRW schaut, ist die Ausgabe dort sauber. (keine sich wiederholenden Kommandos).
/var/log/messages wächst und wächst...

Ich möchte noch schauen, ob die debugschalter beim modprobebefehl notwendig sind.

Das mit dem Logfile liegt vermutlich am debugschalter der in der boot.local verwendet werden kann. Ich editiere oben die änderung hinein. Mit debugschalter sah der Befehl zum laden der Module so aus:
Code:
#modprobe lirc_dev debug=1 && modprobe lirc_pvr150 debug=1
Den Daemonmode würde ich deaktivieren, weil /var/log/messages binnen weniger Stunden um folgende Anzahl an Zeilen gewachsen ist:
Code:
grep "kernel: lirc_pvr150" /var/log/messages | wc -l
4137

Zur Sicherheit habe ich in der rclocal zum starten für den lircd den Pfad für das Logfile angegeben:
Code:
/usr/local/sbin/lircd --device=/dev/lirc0 --logfile=/var/log/lircd
Die Änderung füge ich oben einfach ein.
 
Oben