X-Box Xebian Installieren

Aus VDR Wiki
Wechseln zu: Navigation, Suche

So hier entsteht im laufe der Tage das fertige Howto, um Xebian auf die XBOX zu bekommen mit dem x.org Server, gestartet wird vdr-sxfe (Xinelibout für X-Server) automatisch, LIRC wird so umgebaut, dass man mit der XBOX Fernbedienung den VDR normal steuern kann. Es geht auch die Noname-Nachbau FB mit der USB Bus ID ffff:ffff.

Laufen tut das ganze schon bei mir seit 2 Monaten :-) Schreibt mir im VDR-Portal (Phr0zenPhara0) wenn ich etwas vergessen hab.

Der schöne Vorteil von vdr-sxfe ist, dass der einfach die Tastatur und LIRC (Infrarot) Eingaben entgegen nimmt und diese zum eigentlichen VDR-Server (bei mir im Keller) schickt. vdr-sxfe erhält die ganze Zeit eigentlich einen fertigen MPEG2 Stream, welchen er nur abspielt mit OSD-Display usw. Es ist praktisch so, als hätte man eine Remotedesktopverbindung zu seinem VDR. Man kann ganz normal das EPG durchsuchen, Aufnahmen steuern und abspielen, einfach auf Pause drücken ohne Angst zu haben, dass die kleine XBOX-Festplatte sofort voll wird, da alle Aktionen auf dem eigentlichen VDR stattfinden. Der Nachteil: Wenn man mehrere vdr-sxfe Clienten gleichzeitig startet, sehen die alle das selbe :-)

Step -1: Xinelinoutput Serverplugin auf dem eigentlichen VDR-Server installieren

Diese Einstellungen hab ich in der /etc7vdr/setup.conf für das Plugin

xineliboutput.Audio.Driver = alsa
xineliboutput.Audio.Port = default
xineliboutput.DisplayAspect = automatic
xineliboutput.Frontend = sxfe
xineliboutput.Fullscreen = 0
xineliboutput.Media.BrowseFilesDir = /var/lib/video.00
xineliboutput.Media.BrowseImagesDir = /var/lib/video.00
xineliboutput.Media.BrowseMusicDir = /var/lib/video.00
xineliboutput.Media.CacheImplicitPlaylists = 1
xineliboutput.Media.EnableID3Scanner = 1
xineliboutput.Modeline =
xineliboutput.OSD.AlphaCorrection = 0
xineliboutput.OSD.AlphaCorrectionAbs = 0
xineliboutput.OSD.Downscale = 1
xineliboutput.OSD.HideMainMenu = 0
xineliboutput.OSD.Prescale = 1
xineliboutput.OSD.SpuAutoSelect = 0
xineliboutput.OSD.SpuLang0 = en
xineliboutput.OSD.SpuLang1 = fi
xineliboutput.OSD.SpuLang2 = de
xineliboutput.OSD.SpuLang3 =
xineliboutput.OSD.UnscaledAlways = 0
xineliboutput.OSD.UnscaledLowRes = 0
xineliboutput.OSD.UnscaledOpaque = 0
xineliboutput.Post.pp.Enable = 0
xineliboutput.Post.pp.Mode = de
xineliboutput.Post.pp.Quality = 3
xineliboutput.Remote.AllowHttp = 1
xineliboutput.Remote.AllowHttpCtrl = 1
xineliboutput.Remote.AllowRtsp = 1
xineliboutput.Remote.AllowRtspCtrl = 1
xineliboutput.Remote.Keyboard = 1
xineliboutput.Remote.ListenPort = 37890
xineliboutput.Remote.Rtp.Address = 224.0.1.9
xineliboutput.Remote.Rtp.AlwaysOn = 0
xineliboutput.Remote.Rtp.Port = 37890
xineliboutput.Remote.Rtp.SapAnnouncements = 1
xineliboutput.Remote.Rtp.TTL = 1
xineliboutput.Remote.UseBroadcast = 1
xineliboutput.Remote.UseHttp = 1
xineliboutput.Remote.UsePipe = 0
xineliboutput.Remote.UseRtp = 1
xineliboutput.Remote.UseTcp = 1
xineliboutput.Remote.UseUdp = 1
xineliboutput.RemoteMode = 1
xineliboutput.Video.AutoCrop = 0
xineliboutput.Video.AutoCrop.AutoDetect = 1
xineliboutput.Video.AutoCrop.DetectSubs = 1
xineliboutput.Video.AutoCrop.FixedSize = 1
xineliboutput.Video.AutoCrop.SoftStart = 1
xineliboutput.Video.Brightness = -1
xineliboutput.Video.Contrast = -1
xineliboutput.Video.Deinterlace = tvtime
xineliboutput.Video.DeinterlaceOptions = method=Linear,cheap_mode=1,pulldown=none,framerate_mode=full,judder_correction=1,use_progressive_frame_flag=1,chroma_filter=0,enable=1
xineliboutput.Video.Driver = opengl
xineliboutput.Video.FieldOrder = 0
xineliboutput.Video.HUE = -1
xineliboutput.Video.Overscan = 0
xineliboutput.Video.Port = 0.0
xineliboutput.Video.Saturation = -1
xineliboutput.Video.Scale = 0
xineliboutput.VideoModeSwitching = 1
xineliboutput.X11.UseKeyboard = 1
xineliboutput.X11.WindowHeight = 576
xineliboutput.X11.WindowWidth = 720

Step 0: Die XBOX MUSS über ein Hardware- oder Softwaremod verfügen (kopierte Spiele müssen bereits laufen)

       dafür schreibe ich jetzt kein Tutorial. Ich schau mal ob ich da evtl für ganz neue einen Link finde.

Step 1: Wir müssen Xebian auf die Festplatte installieren. Xebian ist praktisch normales Debian Linux mit ein paar (wenigen) änderungen am Kernel und an den Treibern

       das es auf der XBOX läuft. Ich kenn mich da auch nicht so aus aber ich glaube die größten Änderungen sind am PCI-BUS und das es kein richtigen BIO gibt.
       Leider ist Xebian ganz schön veraltet (Der X-Server usw.) Man kann xebian aber auf den Stand des aktuellen Debian Etch bringen (bis auf den Kernel).
       Das schöne ist das Xebian sich auf der XBOX installieren lässt ohne das das M$ Dashboard kaputt geht oder andere Dashboards wie das XBMC zum Beispiel.

Hier bekommst du Xebian 1.1.4 Basic: http://sourceforge.net/project/showfiles.php?group_id=54192

Du brauchst die Datei dist-1.1.4-basic.tar.gz Diese Datei mit WinRAR öffnen und die grosse ISO Datei daraus entpacken und mit Nero auf eine CD (am besten keine CD-RW) brennen.

Diese CD in die XBOX einlegen und die XBOX neu starten. Die XBOX sollte dann anschliessend von diese CD booten und man sieht nach einer Weile einen Linux einlogbildschirm.

Dann mit Putty über SSH auf die XBOX verbinden. Die IP ist entweder die selbe wie als wenn ihr XBMC startet oder ihr findet sie mit einem Broadcast raus Ping 192.168.0.255 und dann arp -a unter windows und alle IP-Adressen ausprobieren. Man kann die IP seiner XBOX manchmal auch in seinem Router sehen (fritz.box).

Alternativ könnte man natürlich mit einem USB Adapter eine Tastatur an die XBOX anschliessen aber sowas hat halt nicht jeder grad zur Hand. Ich hab selber alles über SSH gemacht.


root/xebian sind die Einlogdaten.

So sieht das dann aus

login as: root [0m[H[J [0;37;1m

 Welcome to the : Xebian
 Version : 1.1.4-basic
 Author : Edgar Hucek (hostmaster@ed-soft.at)
 Hostname : xebian.localdomain.local
 Linux Ver. : 2.4.31-xbox


[0m Using keyboard-interactive authentication. Password: Last login: Fri Sep 7 13:22:34 2007 xebian:~# XBOXLinuxInstall


In der letzen Zeile sieht ihr das ich XBOXLinuxInstall eingegeben hab damit die Boot-CD sich auf der Festplatte installiert

Der erste Punkt "Install XBOX Linux inside the Gamesave Partition" ist meiner Meinung nach der beste. Da macht mann nichts kaputt. Der rest sollte jeden Anwender der ein wenig mit Linux macht keine Probleme bereiten. ICh hab leider zu wenig Zeit für ein ausführlicheres Tutorial :-/

Wichtig ist das man sich bei der Eingabe von Hastname/IP-Adresse/Gateway und so weiter nicht vertippt und Backspace verwendet. Irgendwie funktioniert dann nach einem neustart die Netzwerkverbindung nicht und man kommt nicht mit SSH auf die XBOX. Da hilft dann nur erneut installieren oder die Netzwerkeinstellungen /etc/networking? über eine USB-Tastatur reparieren. Das muss wohl ein Bug im Debianinstaller sein.


Bei mir startet nach dem einschalten der X-BOX ersteinmal das XBMC. Anschliessend lässt sich das Xebian Linux mit einem klick auf eine E:\debian\default.xbe unter Dateien starten. Das Xebian startet automatisch den X-Server und anschliessend vdr-sxfe. Der start über die xbe im XBMC ist manchmal sehr unzuverlässig. Abhilft schafft das erstellen einer boot-cd die dann das Linux von der XBOX Festplatte startet. Dies ist sehr zuverlässig. Dem Archiv das ihr runtergeladen habt liegen zwei sehr wenige MB grosse ISO CD-Images bei zum erstellen diese Boot-CD. Eines ist für den fall das euer XBOX-Xebian in der gamesave Partition liegt und die andere wenn euer XBOX-Linux eine eigene Partition hat.

(Hier muss mal einer mehr Details posten)


So jetzt erstmal alles in kurzform für leute mit ein paar Wochen Linuxerfahrung. Ich lade gerne andere ein das ausführlichst zu ergänzen :-)

Step 2: /etc/apt/sources.list anpassen:

  1. Etch Normal

deb http://ftp.uni-bayreuth.de/linux/Debian/debian/ etch main deb-src http://ftp.uni-bayreuth.de/linux/Debian/debian/ etch main deb http://security.debian.org/ etch/updates main contrib deb-src http://security.debian.org/ etch/updates main contrib

  1. Debian Multimedia

deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main

  1. VDR

deb http://e-tobi.net/vdr-experimental etch base addons vdr-multipatch

Step 3: apt-get update

Step 4: den aktuellen xorg 7.1 installeren apt-get install xserver-xorg

Hier aufpassen. Er sollte alle abhängigkeiten erfoglreich auflösen. Ich weiss nicht mehr ob ichs damals nicht mehr "aptitude install xineliboutput-sxfe" gemacht hab. Vorher natürlich "apt-get install aptitude" machen. Aptitude ist irgendwie schlauer bei dem Auflösen von den Paketen.

Step 5: apt-get install xfonts-base nachinstallieren <- musste ich merkwürdigerweise machen Step 6: apt-get install xdm installieren

modprobe input modprobe xpad modprobe mousedev

Step 7: /etc/X11/xdm/xdm-config editieren DisplayManager*authorize: false (Bewirkt das man später zum testen den X-Org server auch starten kann wenn man über SSH eingeloggt ist und nicht direkt mit USB tastatur an der XBOX sitzt.

Step 8: xorg.conf anpassen

  1. /etc/X11/xorg.conf (xorg X Window System server configuration file)
  2. This file was generated by dexconf, the Debian X Configuration tool, using
  3. values from the debconf database.
  4. Edit this file with caution, and see the /etc/X11/xorg.conf manual page.
  5. (Type "man /etc/X11/xorg.conf" at the shell prompt.)
  6. This file is automatically updated on xserver-xorg package upgrades *only*
  7. if it has not been modified since the last upgrade of the xserver-xorg
  8. package.
  9. If you have edited this file but would like it to be automatically updated
  10. again, run the following command:
  11. sudo dpkg-reconfigure -phigh xserver-xorg

Section "Files"

       RgbPath         "/usr/lib/X11/rgb"
       FontPath        "/usr/share/fonts/X11/misc"
       FontPath        "/usr/X11R6/lib/X11/fonts/misc"
       FontPath        "/usr/share/fonts/X11/cyrillic"
       FontPath        "/usr/X11R6/lib/X11/fonts/cyrillic"
       FontPath        "/usr/share/fonts/X11/100dpi/:unscaled"
       FontPath        "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
       FontPath        "/usr/share/fonts/X11/75dpi/:unscaled"
       FontPath        "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
       FontPath        "/usr/share/fonts/X11/Type1"
       FontPath        "/usr/X11R6/lib/X11/fonts/Type1"
       FontPath        "/usr/share/fonts/X11/100dpi"
       FontPath        "/usr/X11R6/lib/X11/fonts/100dpi"
       FontPath        "/usr/share/fonts/X11/75dpi"
       FontPath        "/usr/X11R6/lib/X11/fonts/75dpi"
       # path to defoma fonts
       FontPath        "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"

EndSection

Section "Module"

  Load        "dbe"
  SubSection  "extmod"
      Option  "omit xfree86-dga"
  EndSubSection
  Load        "type1"
  Load        "freetype"

EndSection

Section "ServerFlags"

  Option "PciProbe1" "false"
  Option "PciProbe2" "false"
  Option "PciForceConfig1" "false"
  Option "PciForceConfig2" "false"
  Option "PciOsConfig" "true"
  Option "AllowMouseOpenFail" "true"

EndSection

Section "InputDevice"

       Identifier      "Generic Keyboard"
       Driver          "kbd"
       Option          "CoreKeyboard"
       Option          "XkbRules"      "xorg"
       Option          "XkbModel"      "pc104"
       Option          "XkbLayout"     "de"

EndSection

Section "InputDevice"

       Identifier      "Configured Mouse"
       Driver          "mouse"
       Option          "CorePointer"
       Option          "Device"                "/dev/input/mice"
       Option          "Protocol"              "ExplorerPS/2"
       Option          "Emulate3Buttons"       "true"

EndSection

Section "Device"

  Identifier      "Fb"
  Driver          "fbdev"
  Option          "fbdev" "/dev/fb/0"
  Option          "UseFBDev"

EndSection

Section "Device"

  Identifier      "Nv"
  Driver          "nvxbox"
  Option          "UseFBDev" "1"
  Option          "HWCursor" "0"

EndSection

Section "Monitor"

       Identifier      "SDTV Screen"
       Option          "DPMS"
       HorizSync       30-55
       VertRefresh     45-65

EndSection

Section "Screen"

       Identifier      "Default Screen"
       Device          "Nv"
       Monitor         "SDTV Screen"
       DefaultDepth    24
       SubSection "Display"
               Depth           1
               Modes           "1024x768" "800x600" "640x480"
       EndSubSection
       SubSection "Display"
               Depth           4
               Modes           "1024x768" "800x600" "640x480"
       EndSubSection
       SubSection "Display"
               Depth           8
               Modes           "1024x768" "800x600" "640x480"
       EndSubSection
       SubSection "Display"
               Depth           15
               Modes           "1024x768" "800x600" "640x480"
       EndSubSection
       SubSection "Display"
               Depth           16
               Modes           "1024x768" "800x600" "640x480"
       EndSubSection
       SubSection "Display"
               Depth           24
               Modes           "640x480"
       EndSubSection

EndSection

Section "ServerLayout"

       Identifier      "Default Layout"
       Screen          "Default Screen"
       InputDevice     "Generic Keyboard"
       InputDevice     "Configured Mouse"

EndSection

Section "DRI"

       Mode    0666

EndSection

Step 9: nvxbox X.Org 7.1 treiberdateien auf die XBOX kopieren

Löschen der Datei /usr/lib/xorg/modules/drivers/nvxbox_drv.o nvxbox_drv.so.bz2 runterladen: http://home.surewest.net/dopey69/nvxbox_drv.so.bz2 Inhalt nach /usr/lib/xorg/modules/drivers/ entpacken


Step 10: xhost + eingeben. Erlaubt dir Zugriff auf den X-Server über deine SSH Konsole.

das eingeben von /etc/init.d/xdm start sollte nun auf dem Fernseher einen Debian - Loginbildschirm erzeugen.

Step 11: VDR-Client installieren

apt-get install xineliboutput-sxfe.

Hier aufpassen. Er sollte alle abhängigkeiten erfoglreich auflösen. Ich weiss nicht mehr ob ichs damals nicht mehr "aptitude install xineliboutput-sxfe" gemacht hab. Vorher natürlich "apt-get install aptitude" machen. Aptitude ist irgendwie schlauer bei dem Auflösen von den Paketen.


Step 12: Hiermit sorgt ihr für den Autostart des VDR-SXFE bei dem booten

xdm deinstallieren (apt-get remove xdm) apt-get install rungetty

/etc/inittab in einem Editor bearbeitet. Hier ersetzt man die Zeile

"1:2345:respawn:/sbin/getty 38400 tty1" durch "1:2345:respawn:/sbin/rungetty tty1 --autologin root"

Anschliessend "sxfe:2345:respawn:vdr-sxfe -f xvdr:tcp://ip.des.vdr:37890" als neue Zeile einfügen


So jetzt hat man nach einem "shutdown -r now" Neustart eine XBOX die einem entweder NO-Signal oder sogar ein TV-Bild anzeigt. Wenn eins von beiden passiert ist man schon sehr weit.

Bei No-Singal oder keinem Bild: Mit SSH wieder einloggen, mit "killall -9 vdr" alles mit VDR killen. Mit "vdr-sxfe -f xvdr:tcp://ip.des.vdr:37890" den Clienten wieder starten und schauen was er für Logmeldungen rausgibt. Das können wir dann im VDR-Portal besprechen was da los ist.

Step 12: Infrarot Adapter zum laufen bringen.

jetzt hat man evtl ein VDR-Bild aber keine möglichkeit den VDR zu steuern. Also müssen wir die Fernbedienung zum laufen bekommen.

Ich hoffe ich bekomme das noch zusammen:

Zuerst diese Dateien http://www.gossamer-threads.com/lists/mythtv/users/156984#156984 ganz am Ende des Threads xir.o und xpad.o nach /lib/modules/2.4.31-xbox/kernel/drivers/usb/ schieben. BACKUP NICHT VERGESSEN.

auf dem VDR-!!Server!!


/etc/vdr/remote.conf um folgendes ergänzen:


LIRC.Up UP LIRC.Down DOWN LIRC.Menu MENU LIRC.Ok SELECT LIRC.Back BACK LIRC.Left LEFT LIRC.Right RIGHT LIRC.Red SKIP- LIRC.Green STOP LIRC.Yellow PAUSE LIRC.Blue SKIP+ 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.Power Power LIRC.Volume+ FORWARD LIRC.Volume- REVERSE LIRC.Mute Mute

Auf der XBOX folgende Dateien anpassen


/etc/lirc/hardware.conf


  1. /etc/lirc/hardware.conf
  2. Arguments which will be used when launching lircd

LIRCD_ARGS=""

  1. Don't start lircmd even if there seems to be a good config file

START_LIRCMD=false

  1. Try to load appropriate kernel modules

LOAD_MODULES=true

  1. Run "lircd --driver=help" for a list of supported drivers.

DRIVER=""

  1. If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be
  2. automatically used instead

DEVICE="/dev/lirc/0" MODULES="lirc_dev lirc_xir"


/etc/lirc/lircd.conf


  1. Default configuration files for your hardware if any

LIRCD_CONF="lircd.conf" LIRCMD_CONF="lircmd.conf"

  1. this config file was automatically generated
  2. using lirc-0.8.0(serial) on Fri Jun 9 23:24:26 2006
  3. contributed by Jak Spalding 10 July 2006
  4. brand: Microsoft
  5. model no. of remote control: Xbox
  6. devices being controlled by this remote: Original Xbox

begin remote

 name  Microsoft_Xbox
 bits           24
 flags SPACE_ENC|CONST_LENGTH
 eps            30
 aeps          100
 header       4095  3916
 one           591  1909
 zero          591   905
 ptrail        591
 gap          64590
 toggle_bit      0


     begin codes
         DISPLAY                  0x52AAD5
         REVERSE                  0x51DAE2
         PLAY                     0x515AEA
         FORWARD                  0x51CAE3
         SKIP-                    0x522ADD
         STOP                     0x51FAE0
         PAUSE                    0x519AE6
         SKIP+                    0x520ADF
         TITLE                    0x51AAE5
         INFO                     0x53CAC3
         MENU                     0x508AF7
         BACK                     0x527AD8
         UP                       0x559AA6
         DOWN                     0x558AA7
         LEFT                     0x556AA9
         RIGHT                    0x557AA8
         SELECT                   0x5F4A0B
         1                        0x531ACE
         2                        0x532ACD
         3                        0x533ACC
         4                        0x534ACB
         5                        0x535ACA
         6                        0x536AC9
         7                        0x537AC8
         8                        0x538AC7
         9                        0x539AC6
         0                        0x530ACF
     end codes

end remote


Das sollte es gewesen sein. Am Ende hab ich bestimmt was vergessen. Fragen, ergänzungen, korrekturen sind immer Willkommen. Hatte dafür heute nicht mehr Zeit. Aber besser als nichts.