X-Box Xebian Installieren
Hulk (Diskussion | Beiträge) K |
Hulk (Diskussion | Beiträge) K (hat „HowTo: Xebian auf XBOX Installieren“ nach „X-Box Xebian Installieren“ verschoben) |
Version vom 27. Februar 2010, 19:28 Uhr
So hier entsteht im laufe der Tage das fertige Howto, um Xebian mit dem x.org Server auf die XBOX zu bekommen.
Gestartet wird automatisch vdr-sxfe (Xinelibout für X-Server).
Außerdem wird LIRC so umgebaut, dass man mit der XBOX Fernbedienung den VDR normal steuern kann. Es funktioniert also 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 an vdr-sxfe ist, dass dieser 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 lediglich abspielt inkl. OSD-Display usw.
Es verhält sich 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 Clients gleichzeitig startet, sehen die alle das selbe :-)
Step -1: Xineliboutput 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 einen Hardware- oder Softwaremod verfügen, mit dem auch andere als nur original XBOX-Software läuft. Dafür schreibe ich jetzt kein Tutorium. 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 ein normales Debian Linux mit ein paar (wenigen) Änderungen am Kernel und an den Treibern, so dass 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 die Tatsache, dass es auf der XBOX kein richtiges BIOS 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, dass Xebian sich auf der XBOX installieren lässt, ohne dass 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 benötigst die Datei dist-1.1.4-basic.tar.gz Diese Datei mit WinRAR öffnen und die grosse ISO-Datei daraus entpacken sowie 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 dieser CD booten und man sieht nach einer Weile einen Linux Einlogbildschirm.
Dann sich mit z. B. Putty überSSH auf der XBOX einloggen. Die IP ist entweder die selbe wie nach dem Start von XBMC oder ihr findet sie mit einem Broadcast raus:
Ping 192.168.0.255 (ggf. entsprechend eurem Subnetz anpassen) und dann arp -a unter Windows und einfach alle IP-Adressen ausprobieren. Man kann die IP seiner XBOX manchmal auch in seinem Router sehen (z. B. fritz.box).
Alternativ könnte man natürlich mit einem USB-Adapter eine Tastatur an die XBOX anschließen. Aber so etwas hat halt nicht jeder zur Hand. Ich selber habe 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 letzten Zeile seht ihr, dass ich XBOXLinuxInstall eingegeben habe, 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 man so schnell nichts kaputt.
Der Rest sollte jedem Anwender, der ein wenig im Umgang mit Linux geübt ist, keine Probleme bereiten. Ich hab leider zu wenig Zeit für ein ausführlicheres Tutorial :-/
Hier aber ein Link zu einem englischem howto.
Wichtig ist, dass man sich bei der Eingabe von Hostname/IP-Adresse/Gateway und so weiter nicht vertippt und Backspace verwendet.
Irgendwie funktioniert sonst dann nach einem Neustart die Netzwerkverbindung nicht und man kommt nicht mehr mit SSH auf die XBOX.
In solch einem Fall hilft dann nur ein erneutes Installieren oder die Netzwerkeinstellungen /etc/networking? über eine USB-Tastatur zu reparieren. Das muss wohl ein Bug im Debianinstaller sein.
Bei mir startet nach dem Einschalten der XBOX erst einmal das XBMC.
Anschließend 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 anschließend vdr-sxfe. Dieser Start über die xbe im XBMC ist manchmal sehr unzuverlässig. Abhilfe schafft das Erstellen einer Boot-CD, die dann das Linux von der XBOX-Festplatte startet. Dies ist sehr zuverlässig.
Dem Archiv, das ihr runter geladen habt, liegen zwei sehr wenige MB große ISO-CD-Images bei zum Erstellen dieser Boot-CD. Eines ist für den Fall, dass euer XBOX-Xebian in der gamesave Partition liegt und die andere, falls 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 Linux Erfahrung.
Ich lade gerne andere dazu ein, das Folgende 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 leider nicht mehr, ob ich es damals nicht mittels "aptitude install xineliboutput-sxfe" gemacht habe.
Vorher natürlich "apt-get install aptitude" machen. Aptitude ist irgendwie schlauer bei dem Auflösen der Paketabhängigkeiten.
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, dass man später zum Testen den X-Org-Server auch starten kann, wenn man über SSH eingeloggt ist und nicht direkt mit der 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 ich es damals nicht mittels "aptitude install xineliboutput-sxfe" gemacht habe.
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 beim Booten:
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
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 13: 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 ans Laufen kriegen.
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 oder Korrekturen sind immer Willkommen. Hatte dafür heute nicht mehr Zeit. Aber besser als nichts.