Difference between pages "Watch digital TV with VDR and a streaming client" and "Xmodmap"

From Linuxintro
(Difference between pages)
imported>Fmherschel
 
 
Line 1: Line 1:
=== Introduction ===
+
Xmodmap allows you to modify your keymap.
This article describes some aspects to setup an enviroment with a VDR server and a xine stream client.
 
  
Here typically should be the obligatory screenshot of my desktop showing the running stream - I add that later on :)
+
You can put a .Xmodmap file into your home directory:
 +
keycode 134 = Multi_key
 +
keycode 98 = Up
 +
keycode 100 = Left
 +
keycode 102 = Right
  
=== The setup as basic for this article ===
 
We need some Hardware - I my case:
 
* a laptop DELL D620
 
* an external USB S2 digtital HD device TeVii S660
 
* a TechnoTrend remote control (because unfortunately the remote control support of TeVii S660 is buggy in my setup)
 
 
And of course some software repositories - in my case:
 
* Base OS is openSUSE 11.4
 
* Additional package repositories: TBD
 
 
We setup the following componets
 
* VDR (http://www.vdr-portal.de/)
 
* LIRC
 
* XINE
 
 
=== Setup Procedure ===
 
* Setup your openSUSE 11.4 to have the following installation channels: '''please note that installing packages from untrusted sources could compromise your system'''
 
  | Alias                | Name                      | Enabled | Refresh | Priority | Type  | URI                                                                       
 
--+----------------------+----------------------------+---------+---------+----------+--------+-----------------------------------------------------------------------------
 
  | openSUSE-11.4-11.4-0 | openSUSE-11.4-11.4-0      | Yes    | No      |  99    | yast2  | cd:///?devices=/dev/disk/by-id/ata-TSSTcorp_DVD+_-RW_TS-U633F_R3476GRSB01273
 
  | packman-essentials  | packman-essentials        | Yes    | Yes    |  99    | rpm-md | http://packman.inode.at/suse/openSUSE_11.4/Essentials                     
 
  | packman-multimedia  | packman-multimedia        | Yes    | Yes    |  99    | rpm-md | http://packman.inode.at/suse/openSUSE_11.4/Multimedia                     
 
  | repo-debug          | openSUSE-11.4-Debug        | No      | Yes    |  99    | NONE  | http://download.opensuse.org/debug/distribution/11.4/repo/oss/             
 
  | repo-debug-update    | openSUSE-11.4-Update-Debug | No      | Yes    |  99    | NONE  | http://download.opensuse.org/debug/update/11.4/                           
 
  | repo-non-oss        | openSUSE-11.4-Non-Oss      | Yes    | Yes    |  99    | yast2  | http://download.opensuse.org/distribution/11.4/repo/non-oss/               
 
  | repo-oss            | openSUSE-11.4-Oss          | Yes    | Yes    |  99    | yast2  | http://download.opensuse.org/distribution/11.4/repo/oss/                   
 
  | repo-source          | openSUSE-11.4-Source      | No      | Yes    |  99    | NONE  | http://download.opensuse.org/source/distribution/11.4/repo/oss/           
 
  | repo-update          | openSUSE-11.4-Update      | Yes    | Yes    |  99    | rpm-md | http://download.opensuse.org/update/11.4/
 
 
* Install VDR and xine packages - sou might need also some dependent packages so use zypper to resolve dependencies
 
Name                  | Version  | Vendor                        | Project Url
 
----------------------+-----------+--------------------------------+------------------------------------------------------
 
vdr-plugin-xine      | 0.9.4    | http://packman.links2linux.de  | http://home.vr-web.de/~rnissl/
 
vdr                  | 1.6.0    | openSUSE                      | http://www.tvdr.de/
 
libxine1-pulse        | 1.1.20.1  | http://packman.links2linux.de  | http://www.xine-project.org/home
 
vdr-plugin-xine      | 0.9.4    | http://packman.links2linux.de  | http://home.vr-web.de/~rnissl/
 
libxine1-codecs      | 1.1.20.1  | http://packman.links2linux.de  | http://www.xine-project.org/home
 
xine-ui              | 0.99.6    | http://packman.links2linux.de  | http://xine.sourceforge.net
 
libxine1              | 1.1.20.1  | http://packman.links2linux.de  | http://www.xine-project.org/home
 
xine-skins            | 1.0.3    | Packman                        | http://xinehq.de/index.php/skins
 
gxine-browser-plugin  | 0.5.907  | http://packman.links2linux.de  | http://www.xine-project.org/home
 
kdebase4-runtime-xine | 4.6.0    | openSUSE                      | http://www.kde.org/
 
libxine2              | 1.2.1    | http://packman.links2linux.de  | http://www.xine-project.org/home
 
gxine                | 0.5.907  | http://packman.links2linux.de  | http://www.xine-project.org/home
 
xinetd                | 2.3.14    | openSUSE                      | http://www.xinetd.org/
 
phonon-backend-xine  | 4.4.4    | openSUSE                      | http://phonon.kde.org/
 
libxine1-gnome-vfs    | 1.1.20.1  | http://packman.links2linux.de  | http://www.xine-project.org/home
 
 
* Install optional VDR packages
 
vdr-plugin-cutalot 0.0.3 openSUSE http://www.vdr-wiki.de/wiki/index.php/Cutalot-plugin
 
vdr-plugin-epgsearch 0.9.24 obs://build.opensuse.org/vdr http://winni.vdr-developer.org/epgsearch/downloads/vdr-epgsearch-0.9.24.tgz
 
vdr-plugin-streamdev 0.0_CVS20080716080048 openSUSE http://streamdev.vdr-developer.org/
 
 
'''Remark:''' Using the xine plugin (from repository PackMan) you could use xine for a complete VDR client (with full control over all menus).
 
 
* Adapt plugin configuration /etc/sysconfig/vdr (the plugin "remote" is optional and can be dropped, if you use lirc)
 
** With plugin remote:
 
VDR_PLUGINS="remote xine"
 
VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
 
VDR_PLUGIN_ARGS_xine=""
 
** Without plugin remote
 
VDR_PLUGINS="remote xine"
 
VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
 
VDR_PLUGIN_ARGS_xine=""
 
* Restart VDR
 
  /etc/init.d/vdr restart
 
* start watching VDR: - You should get a OSD message from VDR that tells you to train VDR to understand your remote control or keyboard sequences
 
xine vdr://
 
 
=== TechnoTrend USB Remote-Control ===
 
==== Low Level Test with mode2 ====
 
To test, if the IR keys are recognized on a very low level test using command mode2. This works also without lircd.
 
furka:~ # mode2 -d /dev/lirc0
 
space 3508766
 
pulse 806
 
space 744
 
pulse 806
 
 
==== lircd configuration ====
 
In openSUSE 11.4 lircd is configured via
 
===== /etc/sysconfig/lirc =====
 
## Description:    lirc (infrared remote control) configuration
 
## Type:          string
 
## Default:        "660"
 
## ServiceRestart: lirc
 
#
 
# permissions for /dev/lircd
 
#
 
LIRCD_DEV_PERMISSIONS="660"
 
 
## Type:        string
 
## Default:    "root:video"
 
#
 
# owner and group for /dev/lircd
 
#
 
LIRCD_DEV_OWNER="root:video"
 
 
## Type:        string
 
## Default:    ""
 
#
 
# use given driver
 
#
 
LIRCD_DRIVER=""
 
 
## Type:        string
 
## Default:    ""
 
#
 
# read from given device
 
#
 
LIRCD_DEVICE="/dev/lirc0"
 
 
## Type:        string(lirc_bt829,lirc_gpio,lirc_i2c,lirc_it87,lirc_parallel,lirc_sir,ir-kbd-i2c,ir-kbd-gpio)
 
## Default:    ""
 
#
 
# load given lirc driver module
 
#
 
LIRC_MODULE="lirc_ttusbir"
 
 
## Type:        string
 
## Default:    ""
 
#
 
# listen for network connections on specified port.
 
# WARNING: don't use this on a machine with an internet
 
# connection as lircd is running as root!
 
#
 
LIRCD_LISTENPORT=
 
 
## Type:        string
 
## Default:    ""
 
#
 
# connect lircd to specified host
 
#
 
LIRCD_CONNECT=
 
===== /etc/lirc/lircd.conf =====
 
/etc/lirc/lircd.conf (enthaelt die definition der Fernbedienungstasten)
 
#
 
# this config file was automatically generated
 
# using lirc-0.8.3(default) on Wed Jul  2 21:51:15 2008
 
#
 
# contributed by
 
#
 
# brand:                                  Technotrend
 
# model no. of remote control:
 
# devices being controlled by this remote: TV-Card
 
#
 
 
 
begin remote
 
 
 
  name      Technotrend
 
  bits                6
 
  flags RC5|CONST_LENGTH
 
  eps                30
 
  aeps                100
 
 
 
  one                889  889
 
  zero                889  889
 
  plead              889
 
  pre_data_bits        7
 
  pre_data          0x55
 
  gap              113792
 
  toggle_bit            2
 
  frequency        36000
 
  duty_cycle          50
 
 
 
      begin codes
 
          Power                    0x01
 
          Mute                    0x18
 
          1                        0x03
 
          2                        0x04
 
          3                        0x05
 
          4                        0x06
 
          5                        0x07
 
          6                        0x08
 
          7                        0x09
 
          8                        0x0A
 
          9                        0x0B
 
          0                        0x0C
 
          Audio                    0x1A
 
          Repeat                  0x02
 
          vol-                    0x26
 
          vol+                    0x25
 
          Text                    0x19
 
          ch-                      0x24
 
          ch+                      0x23
 
          Exit                    0x13
 
          OK                      0x0F
 
          Up                      0x0D
 
          Down                    0x11
 
          Left                    0x0E
 
          Right                    0x10
 
          Red                      0x14
 
          Green                    0x15
 
          Yellow                  0x16
 
          Blue                    0x17
 
          Record                  0x3A
 
          Play                    0x3B
 
          Stop                    0x3C
 
          Info                    0x12
 
          Rew                      0x3D
 
          Pause                    0x3E
 
          Fwd                      0x3F
 
          EPG                      0x22
 
      end codes
 
 
end remote
 
 
==== lircd start and start at boot time ====
 
furka:~ # rclirc start
 
Starting lircd (/dev/lirc0)                                          done
 
furka:~ # chkconfig lirc on
 
 
==== lircd-client Connection Test ====
 
To test, if a client of lircd could recognize key presses use command irw. This command is part of package lirc.
 
furka:~ # irw
 
000000000000154c 00 0 Technotrend
 
000000000000154c 01 0 Technotrend
 
000000000000154c 00 0 Technotrend
 
000000000000154c 01 0 Technotrend
 
 
==== Trouble-Shooting ====
 
* If you do NOT have a valid config file for your remote you might create one interactive using irrecord
 
irrecord -d /dev/lirc0 file
 
** file is the output file here
 
** You should prefer to fetch a config file from http://www.lirc.org/remotes/
 
** I try http://lirc.sourceforge.net/remotes/technotrend/TV-Card
 
 
=== lirc to talk with vdr ===
 
File /etc/vdr/remote.conf needs to contain those additional entries for accepting lircd keys:
 
LIRC.Up        Up
 
LIRC.Down      Down
 
LIRC.Menu      Repeat
 
LIRC.Ok        OK
 
LIRC.Back      Exit
 
LIRC.Left      Left
 
LIRC.Right      Right
 
LIRC.Red        Red
 
LIRC.Green      Green
 
LIRC.Yellow    Yellow
 
LIRC.Blue      Blue
 
LIRC.0          0
 
LIRC.1          1
 
LIRC.2          2
 
LIRC.3          3
 
LIRC.4          4
 
LIRC.5          5
 
LIRC.6          6
 
LIRC.7          7
 
LIRC.8          8
 
LIRC.9          9
 
LIRC.Info      Info
 
LIRC.Play      Play
 
LIRC.Pause      Pause
 
LIRC.Stop      Stop
 
LIRC.Record    Record
 
LIRC.FastFwd    Fwd
 
LIRC.FastRew    Rew
 
LIRC.Power      Power
 
LIRC.Channel+  ch+
 
LIRC.Channel-  ch-
 
LIRC.Volume+    vol+
 
LIRC.Volume-    vol-
 
LIRC.Mute      Mute
 
 
 
=== UNSORTED STUFF ===
 
Auf dem Laptop Latitude D820 habe ich einen vdr installiert mit einer externen USB-Box TVii 660
 
==== Installation of the DVB-S2 USB-Box ====
 
<TBD>
 
==== Installation vdr ====
 
<TBD>
 
==== Plugins ====
 
We need / expore the following VDR plugins:
 
* xine
 
* streamdev
 
* libxineoutput
 
==== Video clients ====
 
===== Remote Streaming: vdr-plugin-streamdev =====
 
vlc - What is already running is that you can watch TV and also switch the programm. But you do not have full control over VDR using that method.
 
vlc http://127.0.0.1:3000/PES/1
 
URL in general:
 
http://<hostip>:<port>/[PES|xx]/<prognummer>
 
You need to setup the file /etc/vdr/streamdev.conf:
 
# streamdev.conf:
 
<TBD>
 
 
Passender /etc/sysconfig/vdr Auszug
 
  VDR_PLUGINS="streamdev"
 
 
===== vdr-plugin-xineliboutput =====
 
With xineliboutput
 
vlc tcp://localhost:37890
 
 
But how to switch the program using this connection?
 
 
===== Best practice local access with <html><acronym title="On Screen Display">OSD</acronym></html>: vdr-plugin-xine =====
 
'''This is the recommended way if you want to watch TV on the computer where VDR is running.'''
 
 
Using the xine plugin (from repository PackMan) you could use xine for a complete VDR client (with full control over all menus).
 
 
* install it:
 
yast -i vdr-plugin-xine
 
 
* Matching line in /etc/sysconfig/vdr (the plugin "remote" is optional and can be dropped, if you use lirc)
 
  VDR_PLUGINS="remote xine"
 
  VDR_PLUGIN_ARGS_remote="-i /dev/input/ir"
 
  VDR_PLUGIN_ARGS_xine=""
 
 
* Restart VDR
 
  /etc/init.d/vdr restart
 
 
* start watching TV:
 
xine vdr://
 
 
==== Remote Control ====
 
===== TeVii S660 remote control is a bit painfull for me =====
 
Translation: <TBD>
 
* Mit dem Update von c.a. Mitte März auf den Herstellerseiten (auf Simplon Download/Tevii) geht nun die Erkennung der Fernbedienung
 
* Kleiner Patch in ./v4l/dw2102.c die Ausgaben von "query RC..." auskommentiert (also nicht aktiv), weil sonst der syslog voll läuft
 
* VDR meldet (ohne Config s.u.) beim Starten, dass er kein lirc findet, allerdings scheint die Fernbedienung als Tastatur zur funktionieren:
 
** Test mit fb bringt messages im syslog (kann ggf später entfallen)
 
** xev zeigt tastaturreaktion, wenn man fb bedient
 
** KDE lautstärke regler funktioniert bereits :)
 
** Cursorbewegungen (auf/ab/rechts/links) funktinieren u.a. hier im wiki :)
 
** war jetzt nach einigen Eingaben nicht stabil - prüfen!
 
 
In den VDR bindet  man die Fernbedienung mit dem plugin remote ein.
 
Passender Auszug aus der /etc/sysconfig/vdr
 
  VDR_PLUGINS="remote"
 
  VDR_PLUGIN_ARGS_remote="-i /dev/input/ir
 
 
Die Berechtigungen für das IR-device (/dev/input/ir) müssen so eingestellt werden,
 
dass der VDR (Benutzer vdr) darauf Zugreifen darf.
 
  chown vdr:users /dev/input/ir
 
 
Die FB muss beim ersten Benutzen im VDR trainiert werden, wenn die Datei /etc/vdr/remote.conf nicht
 
angepasst wird (Datei stelle ich bei Bedarf zur Verfügung :).
 
==== Paketliste ====
 
===== Liste der Xine und VDR Pakete =====
 
gxine-0.5.904-1.pm.2.6.x86_64
 
gxine-browser-plugin-0.5.904-1.pm.2.6.x86_64
 
libdvdread3-0.9.7-5.pm.5.1.x86_64
 
libdvdread4-4.1.3-1.pm.2.1.x86_64
 
libxine1-1.1.18.1-1.pm.36.7.x86_64
 
libxine1-codecs-1.1.18.1-1.pm.36.7.x86_64
 
libxine1-gnome-vfs-1.1.18.1-1.pm.36.7.x86_64
 
libxine1-pulse-1.1.18.1-1.pm.36.7.x86_64
 
phonon-backend-xine-4.3.1-3.3.x86_64
 
vdr-1.6.0-49.1.x86_64
 
vdr-plugin-cutalot-0.0.3-4.1.x86_64
 
vdr-plugin-epgsearch-0.9.24-4.3.x86_64
 
vdr-plugin-remote-0.4.0-4.1.x86_64
 
vdr-plugin-streamdev-0.0_CVS20080716080048-4.3.x86_64
 
vdr-plugin-xine-0.9.3-1.pm.2.1.x86_64
 
vdr-plugin-xineliboutput-1.0.4-2.6.x86_64
 
xine-browser-plugin-1.0.2-1.pm.1.1.x86_64
 
xine-skins-1.0.3-1.pm.1.1.noarch
 
xine-ui-0.99.5cvs20091115-0.pm.1.1.x86_64
 
 
===== Pakete und DISTURL =====
 
* obs://10.8.0.1/main/openSUSE_11.2_Update
 
libdvdread4 obs://10.8.0.1/main/openSUSE_11.2_Update/306059dfe7c2fe75c81463ffdc94b602-libdvdread
 
libdvdread3 obs://10.8.0.1/main/openSUSE_11.2_Update/36bda5a7750dcdd29c15b71d09d30dc5-libdvdread3
 
xine-skins obs://10.8.0.1/main/openSUSE_11.2_Update/a081540ec1b7e330947215723b405cb6-xine-skins
 
xine-ui obs://10.8.0.1/main/openSUSE_11.2_Update/a666d655902a208cd16815381bb904ed-xine-ui
 
xine-browser-plugin obs://10.8.0.1/main/openSUSE_11.2_Update/b4f55cabb13736ad3445f83e562c8eec-xine-browser-plugin
 
gxine obs://10.8.0.1/main/openSUSE_11.2_Update/e7ca26543c8c88e2aad0fd9932000cf1-gxine
 
gxine-browser-plugin obs://10.8.0.1/main/openSUSE_11.2_Update/e7ca26543c8c88e2aad0fd9932000cf1-gxine
 
vdr-plugin-xine obs://10.8.0.1/main/openSUSE_11.2_Update/eca889b371e2a093c15d926ca9aee98a-vdr-plugin-xine
 
* obs://10.8.0.1/main_pm/openSUSE_11.2
 
libxine1 obs://10.8.0.1/main_pm/openSUSE_11.2/4788c3fd626509d2d6a0a206decf0ba7-xine-lib
 
libxine1-codecs obs://10.8.0.1/main_pm/openSUSE_11.2/4788c3fd626509d2d6a0a206decf0ba7-xine-lib
 
libxine1-gnome-vfs obs://10.8.0.1/main_pm/openSUSE_11.2/4788c3fd626509d2d6a0a206decf0ba7-xine-lib
 
libxine1-pulse obs://10.8.0.1/main_pm/openSUSE_11.2/4788c3fd626509d2d6a0a206decf0ba7-xine-lib
 
* obs://build.opensuse.org/openSUSE:11.2/standard
 
xinetd obs://build.opensuse.org/openSUSE:11.2/standard/26ae7516fc8927f0dd79a740c4a5112d-xinetd
 
vdr-plugin-epgsearch obs://build.opensuse.org/openSUSE:11.2/standard/2ff727d44350a87268023d017b0c07c1-vdr-plugin-epgsearch
 
vdr-plugin-cutalot obs://build.opensuse.org/openSUSE:11.2/standard/3756441b40467ca978334fcdd3da5c92-vdr-plugin-cutalot
 
phonon-backend-xine obs://build.opensuse.org/openSUSE:11.2/standard/6903a64ebd71ba3a9821e225ad1b7318-phonon
 
vdr-plugin-remote obs://build.opensuse.org/openSUSE:11.2/standard/82c16937795c5fe821d9a57d5946bc4b-vdr-plugin-remote
 
vdr-plugin-streamdev obs://build.opensuse.org/openSUSE:11.2/standard/886f590ea9d6228ed3de8eac63aae288-vdr-plugin-streamdev
 
vdr obs://build.opensuse.org/openSUSE:11.2/standard/c70699e1e939c603de2b1b636bbf04e3-vdr
 
* obs://build.opensuse.org/vdr/openSUSE_11.2
 
vdr-plugin-xineliboutput obs://build.opensuse.org/vdr/openSUSE_11.2/b2b3714110677b022ab9e75e26f02b33-vdr-plugin-xineliboutput
 
 
===== Pakete und VENDOR =====
 
rpm -qa --queryformat "%{NAME} %{VENDOR}\
 
" | egrep '(vdr|xine)' | sort -k2
 
* Packman
 
gxine Packman
 
gxine-browser-plugin Packman
 
xine-browser-plugin Packman
 
xine-skins Packman
 
* http://packman.links2linux.de
 
libdvdread3 http://packman.links2linux.de
 
libdvdread4 http://packman.links2linux.de
 
libxine1 http://packman.links2linux.de
 
libxine1-codecs http://packman.links2linux.de
 
libxine1-gnome-vfs http://packman.links2linux.de
 
libxine1-pulse http://packman.links2linux.de
 
vdr-plugin-xine http://packman.links2linux.de
 
xine-ui http://packman.links2linux.de
 
* obs://build.opensuse.org/vdr
 
vdr-plugin-xineliboutput obs://build.opensuse.org/vdr
 
* openSUSE
 
phonon-backend-xine openSUSE
 
vdr openSUSE
 
vdr-plugin-cutalot openSUSE
 
vdr-plugin-epgsearch openSUSE
 
vdr-plugin-remote openSUSE
 
vdr-plugin-streamdev openSUSE
 
xinetd openSUSE
 
  
 
= See also =
 
= See also =
* [[watch TV]]
+
* [[compose key]]
* http://packman.links2linux.de/package/vdr-plugin-xine/229857
 

Latest revision as of 18:07, 15 July 2014

Xmodmap allows you to modify your keymap.

You can put a .Xmodmap file into your home directory:

keycode 134 = Multi_key
keycode 98 = Up
keycode 100 = Left
keycode 102 = Right


See also