Images von X-Box 360 Spielen unter Linux entpacken

Mittels eines netten Hacks kann ich Spiele per USB Stick oder FTP auf die X-Box kopieren. Dafür muß jedoch das Image korrekt extrahiert werden. Dafür benötigt man das Tool extract-xiso (Achtung – Link geht zu Sourceforge).

Nun mit

extract-xiso -x fallout-3-game-of-the-year.iso

entpacken und im Anschluss kopieren

Debian Wheezy auf dem Raspberry Pi installieren

Seit etwa einem Jahr nutze ich einen Raspberry Pi um mir damit Filme und Serien anzuschauen.Läuft ganz gut und mit OpenElec etwas flüssiger in der Menüführung als Raspbmc.Wenn weitere Dienste laufen wird das Filmvergnügen leider ein wenig ausgebremst weshalb ich mir ein zweites Gerät zugelegt habe.Auf dem neuen Raspberry Pi soll nun Debian seine Dienste verrichten und mir als Pyload Server und digitales Tor zu meiner Bude via sshd dienen.

Ich habe keine Lust den Pi mit Monitor und Tastatur zu schmücken, deshalb wird das System als Image auf eine SD Karte geschrieben und gut ist.

Die Debian Version für den Pi nennt sich Raspbian und läßt sich auf der Homepage des Projekts downloaden.

Eine Variante von Debian für den Pi nennt sich Raspbian und läßt sich auf der Homepage des Projekts downloaden.

1. Image auf die SD Karte schreiben, Pi starten

Die Blocksize war in der offiziellen Anleitung leider falsch angegeben.

root@debian:/home/ms/Downloads# dd bs=1M if=2014-01-07-wheezy-raspbian.img of=/dev/mmcblk0
root@debian:/home/ms/Downloads# sync

Pi vom Stromnetz trennen, Karte einstecken. Wenn nur eine rote LED leuchtet ist etwas schief gegangen
Nun dem Pi ein wenig Zeit zum booten geben und per nmap nach neuen Geräten suchen

ms@debian:~$ nmap -sP 192.168.0/24

2. Initiale Konfiguration

Per SSH einloggen, Konfiguration ausführen

#default password raspberry
ms@debian:~/Downloads$ ssh pi@192.168.0.110
pi@raspberrypi ~ $ sudo raspi-config

Erstmal Vim und Screen installieren

pi@raspberrypi ~ $ sudo su
root@raspberrypi:/home/pi# apt-get update
root@raspberrypi:/home/pi# apt-get install vim screen

Swap anpassen

root@raspipy:/home/pi# echo "CONF_SWAPSIZE=512" > /etc/dphys-swapfile
root@raspipy:/home/pi# dphys-swapfile setup
want /var/swap=512MByte, checking existing: deleting wrong size file (104857600), generating swapfile ... of 512MBytes
root@raspipy:/home/pi# dphys-swapfile swapon

3. NFS Freigaben einrichten

Ich nutze für Dateifreigaben nur noch nfs, das ist schneller als Samba und man hält sich den M$ Mist aus dem Netz. Mußte den Daemon ein wenig anpassen (Kernel Version 3.10 vom 2014-01-07).

NEED_STATD auf YES setzen in /etc/init.d/nfs-common
Einmal alles bezüglich NFS neustarten oder rebooten.

Die Shares einrichten und mounten (die uninteressanten Dinge aus fstab habe ich entfernt):

root@raspipy:/home/pi# cat /etc/fstab
192.168.0.50:/media_movies /media/nfs_movies nfs auto,rw 0 0 
192.168.0.50:/media_serien /media/nfs_serien nfs auto,rw 0 0
192.168.0.50:/downloads /media/downloads nfs auto,rw 0 0
root@raspipy:/home/pi# mkdir /media/nfs_movies
root@raspipy:/home/pi# mkdir /media/nfs_serien
root@raspipy:/home/pi# mkdir /media/downloads
root@raspipy:/home/pi# mount -a

Das wars soweit mit der Einrichtung von Debian. Ich habe zusätzlich den Port 22 am Router auf den Pi weitergeleitet und in /etc/ssh/sshd_config Logins mit Passwort verboten. Demnächst gehts weiter mit der Einrichtung von Pyload oder was Anderem wenn es mir nicht taugt :).

Mehrere Bildschirme mit dem Thinkpad W530

Eines der nervigsten Bastelthemen die mich jemals beschäftigt haben war die Konfiguration dieses Laptops für den Linuxbetrieb. Die Installation von Debian verlief problemlos – das Thinkpad wollte jedoch auf Gedeih und Verderb nicht mit mehreren Displays arbeiten. In dem Thinkpad arbeiten 2 Grafikkarten, eine von Intel und eine NVIDIA Optimus. Da mir das Umschalten mit Bumblebee zu umständlich war habe ich im BIOS die NVIDIA Karte als Default ausgewählt – siehe Screenshots und den proprietären NVIDIA Treiber installiert.

Diese Konfiguration läuft jedoch nur bedingt – ab und an bootet das System und manchmal leider nicht. Das Stichwort lautet waiting for /dev to be fully populated. Die Lösung ist dieses Problems ist absolut logisch und selbst für den Laien verständlich – im BIOS einfach die Virtualisierung deaktivieren und alles ist gut.

Da ich die letzten 12 Monate wenig Zeit und noch mehr Arbeit hatte begleitete mich dieses Problem wirklich sehr lange – zeitweise mußte ich sogar einen sehr bizarren KDE Klon zum Arbeiten verwenden.

Die Früchte dieser merkwürdigen Konfigurationsarbeit sehen dann so aus:

 

4 mal Slayer

 

2 Displays sind via DisplayPort angeschlossen und eines über VGA. Einen sinnvollen Verwendungszweck habe ich für soviele Displays noch nicht gefunden. Aber auf 3 Screens läßt sich wunderbar Java schreiben:)

Tastenbelegung der Maus ändern unter Debian

Ich habe auf meinem Laptop 3 Möglichkeiten den Cursor über den Screen zu schubsen – via Touchpad, Trackpoint und meiner ergonomischen Linkshändermaus. Leider hat sich der Hersteller dieses edlen Geräts überlegt den Rechtsklick auf die Linke Taste zu legen und umgekehrt. Um diese Verhalten nur für die Maus zu ändern benötigt man das Kommando xpinput.

Vorgehen

Eingabegerät mit xinput identifizieren:

root@debian:~# xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Razer Razer DeathAdder                  	id=10	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=16	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=9	[slave  keyboard (3)]
    ↳ Integrated Camera                       	id=11	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=14	[slave  keyboard (3)]
    ↳ ACPI Virtual Keyboard Device            	id=15	[slave  keyboard (3)]

Nun die Belegung für die Maus setzen:
xinput set-button-map 10 3 2 1

fertig. 🙂

Gnome 3 – Guake automatisch starten

Eins meiner liebsten Tools ist zweifelsfrei guake – idealerweise sobald die grafische Benutzeroberfläche geladen ist. Normal reicht es aus in den „Startprogrammeinstellungen“ (cooles Wort) einen Eintrag dafür anzulegen. Leider klappt das nicht unter Gnome3 weil der D-BUS Daemon noch nicht da ist wenn Guake gestartet wird

(guake:6631): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
Traceback (most recent call last):
  File "/usr/bin/guake", line 1417, in 
    if not test_gconf():
  File "/usr/lib/python2.7/dist-packages/guake/common.py", line 54, in test_gconf
    return c.dir_exists('/apps/guake')
glib.GError: D-BUS-Hintergrunddienst läuft nicht

Das Problem läßt sich leicht mit dem Entfernen eines Häckchens in den guake-prefs beheben:

 

Guake Prefs

Und noch ein Rechner in der Bude – Raspberry Pi

Ich mag ja kleine Rechner mit und auch ohne Linux drauf, egal ob das Ding jetzt Pogoplug,Nslu2 oder mbed heißt. Inzwischen habe ich mehr Rechner – mit ARM Cpu am laufen als klassische x86. Deshalb habe ich das Erscheinen des Raspberry Pi sehr entspannt verfolgt. Es gibt hier einfach zuviele davon…

Meine Meinung änderte sich jedoch mit dem Erscheinen einer stabilen Version von Raspbmc, einer Linux Distribution mit der XBMC Software. Das wollte ich schon immer haben und wartete eigentlich nur auf den Hack der aktuellen AppleTV Generation.

Der Pi war schneller und für den Preis einer mittelschweren Zecherei  ~ 60 Eur hab ich nun so ein Teil, inklusive Netzteil, Gehäuse und Kühlrippen (wer’s denn braucht).

Gekauft habe ich beim PI3g Shop (kein subventionierter Link).

Die Installation ging leicht von der Hand – Image auf eine SD-Karte schreiben, rein in den Pi, Netzwerk dran, HDMI, Spannung anlegen und einen Kaffee trinken.

Kaffee grabben

Im Anschluss erstmal ein xvid und einen mkv (1080p DTS) Container getestet – läuft tadellos. Die ARD Mediathek ist einfach zu installieren und  läßt sich sehr gut bedienen. Youtube streikt, aber das scheint bekannt zu sein und leicht behebbar. Damit kann das Gerät schon mehr als mein jetziger Player, der mir in seiner Beschissenheit echt die Lust am Basteln geraubt hat. Bedienen tue ich den Spaß mit der Official XBMC Remote. Geht gut von der Hand. Um Texteingaben vom Mobiltelefon an das  Xbmc zu senden mußte ich Username + Passwort festelegen. Das manifestiert sich praktischerweise in einem .htaccess Zugriffsschutz, womit ich den Port sorgenlos in die Weiten des Netzes forwarden kann.  Per ssh kommt man per usr=pwd=raspberry auf den Rechner. Hier ein paar interessante Ausgaben:

 

pi@raspbmc:~$ uname -a
Linux raspbmc 3.6.11 #1 PREEMPT Sun Feb 3 04:42:21 UTC 2013 armv6l GNU/Linux
pi@raspbmc:~$ cat /etc/issue
Raspbmc by Sam Nazarko
http://www.raspbmc.com
pi@raspbmc:~$ cat /proc/cpuinfo
Processor       : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 531.66
Features        : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7
 
Hardware        : BCM2708
Revision        : 000e
Serial          : 0000000063099a57
pi@raspbmc:~$ ssh
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
           [-D [bind_address:]port] [-e escape_char] [-F configfile]
           [-I pkcs11] [-i identity_file]
           [-L [bind_address:]port:host:hostport]
           [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
           [-R [bind_address:]port:host:hostport] [-S ctl_path]
           [-W host:port] [-w local_tun[:remote_tun]]
           [user@]hostname [command]

Ich habe noch die Skriptsprache meiner Wahl in der Cli Version installiert – dank Wheezy sogar in Version 5.4.4-12. Samba läuft bereits und gibt /home/pi sowie USB Laufwerke lesend wie schreibend frei.

Unterm Strich habe ich mit 0 Aufwand ein funktionierendes System zum Abspielen von Webinhalten und Sachen die ich aus dem Internet gezogen habe eingerichtet. Als Nächstes werde ich schauen, wie es mit DVB-* aussieht und ob die kleine Kiste auch noch Pyload schafft. Sehr interessant scheint webiopi damit lassen sich die I/O Pins des PI sehr leicht per Web ansteuern was sehr zum Basteln motiviert.

Double Layer mit Linux börnen

Laser light
Attribution License by Shayan (USA)

Aus gegebenem Anlass habe ich heute zum 1. Mal in meinem Leben eine DVD per Commandline gebrannt. Da ich normalerweise maximal 3 CD’s im Jahr für den MP3 Spieler im Auto brenne, war mir das immer zu hart. Für diese Fälle nutzte ich einst K3B und seid geraumer Zeit den Gnome Baker.

Heute war jedoch Bedarf für eine Double Layer DVD. Wenn ich es recht verstanden habe, sind da quasi 2 Brennschichten übereinander. Gebrannt wird von natürlich von unten. Ein Drehen der Scheibe wie bei Schallplatten oder alten Video DVD’s ist nicht erforderlich. Der Laser brennt die obere Schicht wohl mit mehr Power.

Aber egal. Sinn und Zweck der Geschichte ist meine XBox. Da mir schon mehr als ein optischer Datenträger im Laufe meines Lebens um die Ohren geflogen ist, will ich meine teuer erkauften Orginale natürlich sichern. Der Flash, also das Feature gebranntes in der XBox zu verarbeiten wurde günstig von einem „Internetbekannten“ durchgeführt, da mir das Programmiergerät fehlt. Der Vorgang scheint jedoch sehr interessant und spaßig zu sein. Unter anderem muß auf der Steuerplatine des XBox DVD-Laufwerks gelötet werden.

Das Coole am double oder dual Layer brennen ist der Line Break. Dies ist der Übergang zwischen den Schichten (L0 und L1). Der will bei XBox Spielen immer am selben Platz sein (1913760). Das habe ich mit Gnomebaker leider nicht hinbekommen. Die Konsole erkennt zwar das Game, findet es aber Scheiße und will nichts abspielen. Die Lösung liegt wie Eingangs schon erwähnt in einem netten Konsolentool. Das Programm heißt growisofs und der Aufruf ist spektakulär:

growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913760  -dvd-compat -speed=2 -Z /dev/sr0=IMAGE.
Mein Brenner heißt sr0 und das Image IMAGE. Mehr will ich davon auch nicht wissen.
Simon hat mich in den Kommentaren auf ein Frontend namens QISOBurn für growisofs hingewiesen.
Um es zu verwenden wird zuerst das PPA hinzugefügt
sudo add-apt-repository ppa:ferramroberto/extra
sudo apt-get update
und anschließend QISOBurn installiert.
sudo apt-get install qisoburn
Das Tool funktioniert bei mir einwandfrei. Hier noch ein Screenshot:
phpISr1zb
Zur Dauer: 7,9 GB mit 2 facher Geschwindigkeit dauert eine Ewigkeit. Da hat man auch noch Zeit für anderes. Aber solche Images wollen mit Liebe und Geduld gebrannt sein.
Zu den Banngeschichten.:Wer Raubkopiertes auf der XBox spielt, kann aus dem Online Dienst von Microsoft rausfliegen. Wie die das merken weiß ich nicht, aber da ich ja nichts böses tu fühle ich mich doch sehr sicher. Über Korrekturen, Tipps oder ein wenig Fachwissen würde ich mich natürlich sehr freuen 🙂

apt-get mit Log- und Reversefunktion

Es gibt schlimme Dinge auf dieser Erde. Dazu gehört – zumindest für mich – das Aufspielen von PC’s. Das OS Setup muß durchgeklickt werden, etliche Programme wollen neu installiert werden. Isos von meinem Betriebssystem möchte ich nicht anlegen, weil dann der alte Murks wieder auf der HD ist. Unter Linux hab ich dieses Leid nun ein wenig gemindert. Ich protokolliere einfach meine Installtionen mit einem Perlskript. Falls ich neu aufspielen muß, lass ich Aptitude den geloggten Kram einfach installieren.Vorteile gegenüber einem Image wären der Zeitaufwand (Image erstellen zieht sich hin) und daß man  sofort die aktuellen Versionen installiert hat; da ist normalerweise ein wenig Nacharbeit (update) erforderlich.

Klingt gut, klappt prima, bis auf den Fakt, dass die Completion mit TAB nicht klappt. (für mich ist das gut, da es mich davon abhält irgendeinen Sinnloskram in das Log zu schreiben, der mir dann später wieder an der Backe hängt:-).)

Was nun noch fehlt ist ein kleines Perl Skript, welches interessante Configfiles für mich sichert (in Arbeit). Danach wird mich eine Neuinstalltion wohl nicht mehr schocken. Der nächste Idiotengriff zu einem Developerrepository kann also kommen…

Hier noch die Skripte

#!/usr/bin/perl
###################
#authr:schmie
#log-get
#Ruft apt-get install auf und loggt die installationen in eine datei
###################

my $file=“$ENV{HOME}/.apt-getlog“;

my $exec = „apt-get -y  install “ .$ARGV[0];
my $log= „echo $ARGV[0] >> $file“;

if (system ($exec)  == 0)
{
system („touch $file“);
system ($log);
system („sudo chmod 777 $file“);
}

und das „Reversescript“

#!/usr/bin/perl
###################
#authr:schmie
#log-get-reverse
#Installiert alle App’s die in apt-getlog geschrieben sind:)
###################

my $file=“$ENV{HOME}/.apt-getlog“;
my @appnames;

open (FILE, „<$file“) || die „.apt-getlog nicht gefunden!n“;
while (<FILE>)
{
push (@appname,$_);
}#while
close (FILE);

my $y;
while (@appname)
{
$x=pop(@appname);
$x=~s/n/ /;
$y.=$x;
}
my $exec = „apt-get -y  install $y“;
system ($exec);

Für Anregungen und Kommentare wäre ich sehr empfänglich 🙂