X-Box Xebian Installieren
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 /etc/vdr/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:
#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 #Debian Multimedia deb http://www.debian-multimedia.org etch main deb-src http://debian-multimedia.org etch main # 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 <pr>DisplayManager*authorize: false</pre> (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
# /etc/X11/xorg.conf (xorg X Window System server configuration file) # # This file was generated by dexconf, the Debian X Configuration tool, using # values from the debconf database. # # Edit this file with caution, and see the /etc/X11/xorg.conf manual page. # (Type "man /etc/X11/xorg.conf" at the shell prompt.) # # This file is automatically updated on xserver-xorg package upgrades *only* # if it has not been modified since the last upgrade of the xserver-xorg # package. # # If you have edited this file but would like it to be automatically updated # again, run the following command: # 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
# /etc/lirc/hardware.conf # # Arguments which will be used when launching lircd LIRCD_ARGS="" #Don't start lircmd even if there seems to be a good config file START_LIRCMD=false #Try to load appropriate kernel modules LOAD_MODULES=true # Run "lircd --driver=help" for a list of supported drivers. DRIVER="" # If DEVICE is set to /dev/lirc and devfs is in use /dev/lirc/0 will be # automatically used instead DEVICE="/dev/lirc/0" MODULES="lirc_dev lirc_xir"
/etc/lirc/lircd.conf
# Default configuration files for your hardware if any LIRCD_CONF="lircd.conf" LIRCMD_CONF="lircmd.conf" # # this config file was automatically generated # using lirc-0.8.0(serial) on Fri Jun 9 23:24:26 2006 # # contributed by Jak Spalding 10 July 2006 # # brand: Microsoft # model no. of remote control: Xbox # 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.