XBMC mit der X10 Funkfernbedienung fernzusteuern war bei Ubuntu recht schnell eingerichtet. Bei Arch Linux hingegen habe ich mich etwas schwer getan – nicht zuletzt weil die Konfigurationsdateien an einem anderen Ort liegen. Auch die Kernelmodule des neuen Linux-Kernels wie ati_remote, lirc_atiusb & lirc_dev haben mich 4 Stunden meines Lebens gekostet. 🙁
Zuerst installieren wir den Linux Infrared Remote Control, …
pacman -S lirc
oder
yaourt -S lirc
Yet AnOther User Repository Tool – yaourt
„Yet AnOther User Repository Tool“. yaourt ist eine Erweiterung für pacman, welche die Benutzung des AURs direkt aus dem Paketmanager heraus erlaubt. Die meisten Installationsanfragen werden direkt an pacman weitergeleitet, yaourt unterstützt auch die selbe Syntax wie pacman. Es ist möglich, mit yaourt Software direkt aus dem AUR zu bauen und zu installieren. (Quelle: )
… dann passen wir die lircd.conf unter /etc/conf.d unseren Bedürfnissen an.
vi /etc/conf.d/lircd.conf
LIRC_DEVICE="/dev/lirc0" LIRC_DRIVER="atilibusb" #REMOTE_MODULES="lirc_atiusb" LIRC_EXTRAOPTS="" LIRC_CONFIGFILE="/etc/lirc/X10.conf"
In rc.conf müssen wir 3 Kernelmodule auf die Blacklist (!) setzen und einen neuen Dienst automatisch starten lassen.
UPDATE: Die Module werden jetzt nicht mehr über die /etc/rc.conf geblacklistet sondern über die /etc/modprobe.d/blacklist.conf. (Quelle) [Danke – an die Kommentatoren]
vi /etc/rc.conf
... MODULES=(... !ati_remote !lirc_atiusbi !lirc_dev) ... DAEMONS=(syslog-ng dbus hal network netfs crond sshd alsa lircd)
Zu guter Letzt müssen wir noch die X10.conf, Lircmap.xml & Keyboard.xml erstellen, diese gibt es hier zum Download. 😉
vi /etc/lirc/X10.conf
# Please make this file available to others
# by sending it to <lirc@bartelmus.de>
#
# this config file was automatically generated
# using lirc-0.8.4a(atilibusb) on Mon Apr  6 08:53:57 2009
#
# contributed by 
#
# brand: PC-Funkfernbedienung X10
# model no. of remote control: 
# devices being controlled by this remote:
#
begin remote
  name  x10
  bits           16
  eps            30
  aeps          100
  one             0     0
  zero            0     0
  pre_data_bits   8
  pre_data       0x14
  post_data_bits  16
  post_data      0x0
  gap          139990
  min_repeat      2
  toggle_bit_mask 0x80800000
      begin codes
          livetv                   0xF11C
          rectv                    0x6D98
          photo                    0xDA05
          music                    0x5B86
          dvdmenu                  0xD904
          video                    0x82AD
          audio                    0x0732
          angle                    0x89B4
          title                    0x0A35
          subtitle                 0x88B3
          up                       0xEF1A
          down                     0x77A2
          left                     0xF21D
          right                    0x749F
          ok                       0xF31E
          1                        0x628D
          2                        0xE30E
          3                        0x648F
          4                        0xE510
          5                        0x6691
          6                        0xE712
          7                        0x6893
          8                        0xE914
          9                        0x6A95
          0                        0xEC17
          asterisk                 0x8CB7
          hash                     0x0D38
          world                    0x709B
          rewind                   0xF924
          play                     0x7AA5
          forward                  0xFB26
          pause                    0x7EA9
          previous                 0xF621
          next                     0x78A3
          stop                     0xFD28
          record                   0x7CA7
          off                      0xD702
          guide                    0x86B1
          text                     0xEB16
          volume+                  0x5E89
          volume-                  0xDD08
          mute                     0x5580
          program+                 0xE00B
          program-                 0x618C
          back                     0xF520
          info                     0x84AF
      end codes
end remote
vi /home/USERNAME/.xbmc/userdata/Lircmap.xml
<lircmap> <remote device="x10"> <obc1>livetv</obc1> <obc2>rectv</obc2> <obc3>photo</obc3> <obc4>music</obc4> <obc5>dvdmenu</obc5> <obc6>video</obc6> <obc7>audio</obc7> <obc8>angle</obc8> <obc9>title</obc9> <obc10>subtitle</obc10> <obc11>up</obc11> <obc12>down</obc12> <obc13>left</obc13> <obc14>right</obc14> <obc15>ok</obc15> <obc16>1</obc16> <obc17>2</obc17> <obc18>3</obc18> <obc19>4</obc19> <obc20>5</obc20> <obc21>6</obc21> <obc22>7</obc22> <obc23>8</obc23> <obc24>9</obc24> <obc25>0</obc25> <obc26>asterisk</obc26> <obc27>hash</obc27> <obc28>world</obc28> <obc29>rewind</obc29> <obc30>play</obc30> <obc31>forward</obc31> <obc32>pause</obc32> <obc33>previous</obc33> <obc34>next</obc34> <obc35>stop</obc35> <obc36>record</obc36> <obc37>off</obc37> <obc38>guide</obc38> <obc39>text</obc39> <obc40>volume+</obc40> <obc41>volume-</obc41> <obc42>mute</obc42> <obc43>program+</obc43> <obc44>program-</obc44> <obc45>back</obc45> <obc46>info</obc46> </remote> </lircmap>
vi /home/USERNAME/.xbmc/userdata/keymaps/Keyboard.xml
<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
<!-- The <global> section is a fall through - they will only be used if the button is not          -->
<!-- used in the current window's section.  Note that there is only handling                       -->
<!-- for a single action per button at this stage.                                                 -->
<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox       -->
<!-- gamepads.                                                                                     -->
<!-- The format is:                      -->
<!--    <device>                         -->
<!--      <button>action</button>        -->
<!--    </device>                        -->
<!-- To map keys from other remotes using the RCA protocol, you may add <universalremote> blocks -->
<!-- In this case, the tags used are <obc#> where # is the original button code (OBC) of the key -->
<!-- You set it up by adding a <universalremote> block to the window or <global> section:       -->
<!--    <universalremote>             -->
<!--       <obc45>Stop</obc45>         -->
<!--    </universalremote>            -->
<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->
<!-- Note that the action can be a built-in function.                 -->
<!--  eg <B>XBMC.ActivateWindow(MyMusic)</B>                         -->
<!-- would automatically go to My Music on the press of the B button. -->
<!-- Joysticks / Gamepads:                                                                    -->
<!--   See the sample PS3 controller configuration below for the format.                      -->
<!--                                                                                          -->
<!--  Joystick Name:                                                                          -->
<!--   Do 'cat /proc/bus/input/devices' or see your xbmc log file  to find the names of       -->
<!--   detected joysticks. The name used in the configuration should match the detected name. -->
<!--                                                                                          -->
<!--  Button Ids:                                                                             -->
<!--   'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear   -->
<!--   in xbmc.log when they are pressed. Use your log to map custom buttons to actions.      -->
<!--                                                                                          -->
<!--  Axis Ids / Analog Controls                                                              -->
<!--   Coming soon.                                                                           -->
<keymap>
<global>
<universalremote>
<obc25>number0</obc25>
<obc16>number1</obc16>
      <obc17>number2</obc17>
      <obc18>number3</obc18>
      <obc19>number4</obc19>
      <obc20>number5</obc20>
      <obc21>number6</obc21>
      <obc22>number7</obc22>
      <obc23>number8</obc23>
      <obc24>number9</obc24>
      <obc30>Play</obc30>
      <obc32>Pause</obc32>
      <obc35>Stop</obc35>
      <obc31>FastForward</obc31>
      <obc29>Rewind</obc29>
      <obc13>Left</obc13>
      <obc14>Right</obc14>
      <obc11>Up</obc11>
      <obc12>Down</obc12>
      <obc15>Select</obc15>
      <obc43>PageUp</obc43>
      <obc44>PageDown</obc44>
      <obc45>ParentDir</obc45>
      <obc5>PreviousMenu</obc5>
      <obc9>ContextMenu</obc9>
      <obc46>Info</obc46>
      <obc34>SkipNext</obc34>
      <obc33>SkipPrevious</obc33>
      <obc28>FullScreen</obc28>
      <obc8>AspectRatio</obc8>
      <obc36>Screenshot</obc36>
      <obc40>VolumeUp</obc40>
      <obc41>VolumeDown</obc41>
      <obc42>Mute</obc42>
      <obc37>ActivateWindow(shutdownmenu)</obc37>
      <obc6>XBMC.ActivateWindow(MyVideos)</obc6>
      <obc4>XBMC.ActivateWindow(MyMusic)</obc4>
      <obc3>XBMC.ActivateWindow(MyPictures)</obc3>
      <obc1>XBMC.ActivateWindow(MyTV)</obc1>
      <obc2>ToggleWatched</obc2>
    </universalremote>
  </global>
  <Home>
    <universalremote>
      <obc5>XBMC.Skin.ToggleSetting(HomeViewToggle)</obc5>
      <obc46>XBMC.ActivateWindow(SystemInfo)</obc46>
      <obc26>XBMC.ActivateWindow(Weather)</obc26>
      <obc27>XBMC.ActivateWindow(Settings)</obc27>
    </universalremote>
  </Home>
  <MyFiles>
    <universalremote>
      <obc25>Delete</obc25>
      <obc16>Highlight</obc16>
      <obc19>Copy</obc19>
      <obc22>Move</obc22>
      <obc20>Delete</obc20>
      <obc18>VolumeUp</obc18>
      <obc21>VolumeDown</obc21>
      <obc24>Mute</obc24>
    </universalremote>
  </MyFiles>
  <MyMusicPlaylist>
    <universalremote>
      <obc45>Playlist</obc45>      <!-- Close playlist -->
      <obc25>Delete</obc25>
      <obc17>MoveItemUp</obc17>
      <obc20>MoveItemDown</obc20>
      <obc18>VolumeUp</obc18>
      <obc21>VolumeDown</obc21>
      <obc24>Mute</obc24>
    </universalremote>
  </MyMusicPlaylist>
  <MyMusicPlaylistEditor>
    <universalremote>
      <obc25>Queue</obc25>
    </universalremote>
  </MyMusicPlaylistEditor>
  <MyMusicFiles>
    <universalremote>
      <obc25>Queue</obc25>
      <obc26>Queue</obc26>
      <obc18>VolumeUp</obc18>
      <obc21>VolumeDown</obc21>
      <obc24>Mute</obc24>
    </universalremote>
  </MyMusicFiles>
  <MyMusicLibrary>
    <universalremote>
      <obc25>Queue</obc25>
      <obc26>Queue</obc26>
      <obc18>VolumeUp</obc18>
      <obc21>VolumeDown</obc21>
      <obc24>Mute</obc24>
    </universalremote>
  </MyMusicLibrary>
  <FullscreenVideo>
    <universalremote>
      <obc13>StepBack</obc13>
      <obc14>StepForward</obc14>
      <obc11>BigStepForward</obc11>
      <obc12>BigStepBack</obc12>
      <obc5>OSD</obc5>
      <obc9>CodecInfo</obc9>
      <obc8>AspectRatio</obc8>
      <obc10>ShowSubtitles</obc10>
      <obc7>AudioNextLanguage</obc7>
      <obc46>Info</obc46>
      <obc15>Playlist</obc15>
      <obc38>XBMC.ActivateWindow(TVOSDGuide)</obc38>
      <obc39>XBMC.ActivateWindow(Teletext)</obc39>
    </universalremote>
  </FullscreenVideo>
  <FullscreenInfo>
    <universalremote>
      <obc9>CodecInfo</obc9>
      <obc38>XBMC.ActivateWindow(TVOSDGuide)</obc38>
      <obc39>XBMC.ActivateWindow(Teletext)</obc39>
      <obc45>Close</obc45>
      <obc46>Close</obc46>
      <obc5>OSD</obc5>
    </universalremote>
  </FullscreenInfo>
  <PlayerControls>
    <universalremote>
      <obc15>Close</obc15>
    </universalremote>
  </PlayerControls>
  <Visualisation>
    <universalremote>
      <obc13>PreviousPreset</obc13>
      <obc14>NextPreset</obc14>
      <obc11>IncreaseRating</obc11>
      <obc12>DecreaseRating</obc12>
      <obc45>LockPreset</obc45>
      <obc9>CodecInfo</obc9>
      <obc15>XBMC.ActivateWindow(VisualisationPresetList)</obc15>
      <obc5>XBMC.ActivateWindow(MusicOSD)</obc5>
      <obc46>Info</obc46>
    </universalremote>
  </Visualisation>
  <MusicOSD>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>Close</obc45>
      <obc46>Info</obc46>
    </universalremote>
  </MusicOSD>
  <VisualisationSettings>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>Close</obc45>
    </universalremote>
  </VisualisationSettings>
  <VisualisationPresetList>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>Close</obc45>
    </universalremote>
  </VisualisationPresetList>
  <SlideShow>
    <universalremote>
      <obc25>ZoomNormal</obc25>
      <obc16>ZoomLevel1</obc16>
      <obc17>ZoomLevel2</obc17>
      <obc18>ZoomLevel3</obc18>
      <obc19>ZoomLevel4</obc19>
      <obc20>ZoomLevel5</obc20>
      <obc21>ZoomLevel6</obc21>
      <obc22>ZoomLevel7</obc22>
      <obc23>ZoomLevel8</obc23>
      <obc24>ZoomLevel9</obc24>
      <obc46>CodecInfo</obc46>
      <obc34>NextPicture</obc34>
      <obc33>PreviousPicture</obc33>
      <obc9>Info</obc9>
      <obc15>Rotate</obc15>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </SlideShow>
  <ScreenCalibration>
    <universalremote>
      <obc15>NextCalibration</obc15>
      <obc25>ResetCalibration</obc25>
      <obc34>NextResolution</obc34>
    </universalremote>
  </ScreenCalibration>
  <GUICalibration>
    <universalremote>
      <obc15>NextCalibration</obc15>
      <obc25>ResetCalibration</obc25>
    </universalremote>
  </GUICalibration>
  <SelectDialog>
    <universalremote>
      <obc45>Close</obc45>
    </universalremote>
  </SelectDialog>
  <VideoOSD>
    <universalremote>
      <obc5>PreviousMenu</obc5>
      <obc45>Close</obc45>
    </universalremote>
  </VideoOSD>
  <VideoMenu>
    <universalremote>
      <obc5>OSD</obc5>
      <obc45>PreviousMenu</obc45>
      <obc46>Info</obc46>
      <obc9>CodecInfo</obc9>
      <obc25>Number0</obc25>
      <obc16>Number1</obc16>
      <obc17>Number2</obc17>
      <obc18>Number3</obc18>
      <obc19>Number4</obc19>
      <obc20>Number5</obc20>
      <obc21>Number6</obc21>
      <obc22>Number7</obc22>
      <obc23>Number8</obc23>
      <obc24>Number9</obc24>
    </universalremote>
  </VideoMenu>
  <OSDVideoSettings>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>Close</obc45>
    </universalremote>
  </OSDVideoSettings>
  <OSDAudioSettings>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>Close</obc45>
    </universalremote>
  </OSDAudioSettings>
  <VideoBookmarks>
    <universalremote>
      <obc45>Close</obc45>
      <obc5>Close</obc5>
      <obc25>Delete</obc25>
    </universalremote>
  </VideoBookmarks>
  <MyVideoLibrary>
    <universalremote>
      <obc26>Queue</obc26>
      <obc25>Delete</obc25>
      <obc18>VolumeUp</obc18>
      <obc21>VolumeDown</obc21>
      <obc24>Mute</obc24>
      <obc2>ToggleWatched</obc2>
    </universalremote>
  </MyVideoLibrary>
  <MyVideoFiles>
    <universalremote>
      <obc26>Queue</obc26>
      <obc18>VolumeUp</obc18>
      <obc21>VolumeDown</obc21>
      <obc24>Mute</obc24>
    </universalremote>
  </MyVideoFiles>
  <MyVideoPlaylist>
    <universalremote>
      <obc45>Playlist</obc45>      <!-- Close playlist -->
      <obc25>Delete</obc25>
      <obc17>MoveItemUp</obc17>
      <obc20>MoveItemDown</obc20>
      <obc18>VolumeUp</obc18>
      <obc21>VolumeDown</obc21>
      <obc24>Mute</obc24>
    </universalremote>
  </MyVideoPlaylist>
  <VirtualKeyboard>
    <universalremote>
      <obc45>BackSpace</obc45>
      <obc26>Shift</obc26>
      <obc27>Symbols</obc27>
      <obc25>Number0</obc25>
      <obc16>Number1</obc16>
      <obc17>Number2</obc17>
      <obc18>Number3</obc18>
      <obc19>Number4</obc19>
      <obc20>Number5</obc20>
      <obc21>Number6</obc21>
      <obc22>Number7</obc22>
      <obc23>Number8</obc23>
      <obc24>Number9</obc24>
      <obc44>CursorLeft</obc44>
      <obc43>CursorRight</obc43>
    </universalremote>
  </VirtualKeyboard>
  <ContextMenu>
    <universalremote>
      <obc45>Close</obc45>
    </universalremote>
  </ContextMenu>
  <FileStackingDialog>
    <universalremote>
      <obc45>Close</obc45>
    </universalremote>
  </FileStackingDialog>
  <Scripts>
    <universalremote>
      <obc46>XBMC.ActivateWindow(ScriptsDebugInfo)</obc46>
    </universalremote>
  </Scripts>
  <ScriptsDebugInfo>
    <universalremote>
      <obc46>Info</obc46>      <!-- clears debug python info -->
    </universalremote>
  </ScriptsDebugInfo>
  <NumericInput>
    <universalremote>
      <obc25>Number0</obc25>
      <obc16>Number1</obc16>
      <obc17>Number2</obc17>
      <obc18>Number3</obc18>
      <obc19>Number4</obc19>
      <obc20>Number5</obc20>
      <obc21>Number6</obc21>
      <obc22>Number7</obc22>
      <obc23>Number8</obc23>
      <obc24>Number9</obc24>
      <obc45>BackSpace</obc45>
    </universalremote>
  </NumericInput>
  <Weather>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </Weather>
  <Settings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </Settings>
  <MyPicturesSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </MyPicturesSettings>
  <MyProgramsSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </MyProgramsSettings>
  <MyWeatherSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </MyWeatherSettings>
  <MyMusicSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </MyMusicSettings>
  <SystemSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </SystemSettings>
  <MyVideosSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </MyVideosSettings>
  <NetworkSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </NetworkSettings>
  <AppearanceSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </AppearanceSettings>
  <Profiles>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </Profiles>
  <systeminfo>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </systeminfo>
  <shutdownmenu>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </shutdownmenu>
  <submenu>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </submenu>
  <MusicInformation>
    <universalremote>
      <obc45>Close</obc45>
    </universalremote>
  </MusicInformation>
  <MovieInformation>
    <universalremote>
      <obc45>Close</obc45>
    </universalremote>
  </MovieInformation>
  <LockSettings>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </LockSettings>
  <ProfileSettings>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </ProfileSettings>
  <PictureInfo>
    <universalremote>
      <obc34>NextPicture</obc34>
      <obc33>PreviousPicture</obc33>
      <obc46>Close</obc46>
      <obc45>Close</obc45>
    </universalremote>
  </PictureInfo>
  <Favourites>
    <universalremote>
      <obc45>Close</obc45>
    </universalremote>
  </Favourites>
  <EPGProgInfo>
    <universalremote>
      <obc45>Close</obc45>
      <obc5>Close</obc5>
      <obc38>Close</obc38> 
    </universalremote>
  </EPGProgInfo>
  <TVOSDChannels>
    <universalremote>
      <obc5>Close</obc5>
      <obc45>Close</obc45>
      </universalremote>
  </TVOSDChannels>
  <TVOSDGuide>
    <universalremote>
      <obc45>Close</obc45>
      <obc5>Close</obc5>
      <obc38>Close</obc38>
    </universalremote>
  </TVOSDGuide>
  <MyTVSettings>
    <universalremote>
      <obc45>PreviousMenu</obc45>
    </universalremote>
  </MyTVSettings>
  <Teletext>
    <universalremote>
     <obc25>number0</obc25>
     <obc16>number1</obc16>
     <obc17>number2</obc17>
     <obc18>number3</obc18>
     <obc19>number4</obc19>
     <obc20>number5</obc20>
     <obc21>number6</obc21>
     <obc22>number7</obc22>
     <obc23>number8</obc23>
     <obc24>number9</obc24>
     <obc7>Red</obc7>
     <obc10>Green</obc10>
     <obc8>Yellow</obc8>
     <obc9>Blue</obc9>
     <obc46>Info</obc46>
     <obc45>Close</obc45>
     <obc5>Close</obc5>
     <obc39>Close</obc39>
    </universalremote>
  </Teletext>
</keymap>
Info
X10.conf – hier werden die Codes des jeweiligen Tastendrucks einem Alias zugewiesen
Lircmap.xml – hier werden den Aliases aus der X10.conf ein XBMC-Ereignis zugeordnet
Keyboard.xml – hier wird dem XBMC-Ereignis aus der Lircmap.xml eine XBMC-Aktion zugeordnet
Fertig – viel Spaß mit eurer X10
Weiterführende Links
Arch Linux – Installation
 Arch Linux – Installation mit verschlüsseltem LVM
 Arch Linux – Installation mit WLAN-Verbindung – wireless_tools & wpa_supplicant
Schreibe einen Kommentar zu Florian Antwort abbrechen