Migration von VirtualBox zu VMWare

Wie gegen Ende dieses Artikels geschrieben, habe ich eine wunderbar funktionierende Kubuntu-Installation auf einer VirtualBox am laufen. Dummerweise scheint VirtualBox ausgerechnet mit dem RTL SDR Stick den ich einsetzen will Probleme zu machen und es wird empfohlen VMWare zu verwenden. VMWare Player ist schnell installiert, doch wollte ich nicht das gesamte Kubuntu-System nochmal neu aufsetzen. Kurzes googeln liefert dann die Lösung. Ich habe mein bestehendes VirtualBox Disc Image (*.vdi) mittels

VBoxManage.exe clonehd "vb_Win8_64.vdi” win8_64.vmdk  –format vmdk –variant standard

von der Windows Kommandozeile aus konvertiert. Das gleiche musste ich auch noch mit meiner „home“-Platte machen um auch alle bisherigen Einstellungen und Daten zu VMWare übertragen zu können. In VMware erstellt man nun einfach eine neue Virtuelle Maschine und gibt an dass man schon ein Festplattenimage hat. Danach fügt man in den Einstellungen über „add“ noch eine weitere Festplatte mit dem schon vorhandenen home-Festplattenimage hinzu. Und schon kann die Kiste gestartet werden. Screenshot 2014-07-23 10.25.30 Bei mir ist die Virtuelle Maschine auch brav hoch gefahren, nur war irgendwie alles im default-Zustand (Programme und Einstellungen fehlten). Ich habe dann einen kompletten Abend verschwendet bis ich dahinter kam was das Problem war: VirtualBox bietet die Möglichkeit Sicherungspunkte einer virtuellen Maschine zu erstellen. Damit kann man den Zustand in welchem sich das System zu einem bestimmten Zeitpunkt befindet zwischenspeichern (und wenn nötig wieder herstellen). Bei meiner Kubuntu-VM habe ich das ziemlich am Anfang mal gemacht gehabt. Die Folge: Das *.vdi Image das ich konvertiert habe beinhaltete eben den alten Zustand zum Zeitpunkt des Sicherungspunktes. Alles was sich seither an dem Image verändert hat wurde differentiell im Image des Sicherungspunktes gespeichert. Um nun tatsächlich den aktuellen Zustand in das zu konvertierende Image zu bekommen ist der einfachste Weg alle Sicherungspunkte zu löschen sodass nur noch der aktuelle Zustand existiert: Screenshot 2014-07-23 10.31.17

Das Löschen kann recht lange dauern da er in diesem Schritt alle Änderungen in das ursprüngliche Image übernimmt. Nach einem erneuten konvertieren und Einbinden in VMWare hatte ich meine VM am Laufen. Damit alles wie gewünscht funktioniert müssen noch die „Guest Tools“ von VMWare installiert werden. Von der Konsole aus klappte das aber auch ohne Probleme. Das Äquivalent zu „Als Administrator ausführen“ habe ich in KDE leider noch nicht gefunden. Jetzt wo die VM endlich lief konnte ich mich weiter an das gnuradio Thema machen, doch fiel mir noch eine echt nervige Kleinigkeit auf: Scrollen mit meinem Touchpad funktioniert nicht 🙁

Tochpad Scroll in VMWare

Also mir ist es schleierhaft wieso VirtualBox das kann, VMWare jedoch nicht. In VBox werden wohl alle Eingaben von Windows an das Gastbetriebssystem weitergegeben, so wie sie auch eine Windows-Anwendung sieht. (keine Ahnung wie genau das eigentlich von statten geht) Also nicht nur das Scrollen, sondern auch die ganzen Shortcuts die ich unter Windows auf den verschiedenen Tasten meiner Maus habe. VMWare hingegen scheint nur die elementaren Mausbewegungen zu übertragen und das wars dann. Etwas googeln brachte folgende Lösungen [1] [2]. Erstere läuft nicht unter einen 64 bit Host und die Toolchain aufzusetzen nur um das Teil zu kompilieren ist mir gerade zu blöd. Letzteres ist einfacher: In der vmx-Datei der Virtuellen Maschine müssen folgende Zeilen hinzugefügt werden:

usb.generic.allowHID = "TRUE"
mouse.vusb.enable = "TRUE"
mouse.vusb.useBasicMouse = "FALSE"

Danach sollte es angeblich möglich sein den USB Mausempfänger mit dem Gast zu verbinden. VMWare verhindert dies mit einer Fehlermeldung man würde dadurch dem Host sein Eingabegerät entziehen. Wieder eine Runde google. Damit es trotzdem klappt muss noch die folgende Zeile in die vmx Config:

usb.generic.allowLastHID = "TRUE"

Endlich lässt sich der Mausempfänger über das kleine Symbol am oberen Bildschirmrand mit dem Gast verbinden: LogitechHIDVMWare Tatsächlich ist dadurch die Logitech Maus am Host nicht mehr existent. Also muss ich unter Windows das Touchpad an meinem Notebook verwenden. Irgendwie wird das glaube ich alles nicht so angenehm wie in VirtualBox – schade. Nunja, der Logitech Empfänger ist nun direkt mit dem Gast verbunden, mehr Funktionalität habe ich aber nicht. Also nochmal google. Und ubuntu liefert auch noch eine ganz tolle Anleitung. Dummerweise habe ich eine MX Revolution Maus bei der einfach wieder alles anders ist als bei den Leuten die diese Artikel schreiben. Also: scheiß drauf! Habe ich halt keine gescheite Mausunterstützung in VMWare. Weiter geht’s mit dem eigentlichen Vorhaben in meinem nächsten Artikel

Nachtrag

Kurz nachdem ich diesen Artikel veröffentlicht habe bin ich dann doch noch über etwas gestolpert. Und zwar diesen Blog-Eintrag. Nur wo befindet sich in Kubuntu die xorg.conf? Irgendwie ist die nonexistent. Dieser Beitrag erläutert dass es inzwischen einen Ordner (/usr/share/X11/xorg.conf.d/) gibt in dem verschiedene Konfigurationsdateien liegen die beim Anstöpseln eines Geräts an den Rechner abgearbeitet werden. Ich habe also dort eine Datei (60-logitech.conf) mit folgendem Inhalt angelegt:

Section "InputClass"
  Identifier "AlensMouse"
  Driver "mouse"
  Option "Device" "/dev/input/mice"
  Option "Protocol" "IMPS/2"
  Option "Buttons" "7"
  Option "ButtonMapping" "1 2 3 6 7"
EndSection

Nach einem erneuten virtuellen Abstöpseln und wieder Anstöpseln des Mausempfängers bekam ich plötzlich eine Reaktion auf die Zusatztasten meiner Maus in xev:

leo@VirtualBox:~$ xev | grep button
    state 0x0, button 10, same_screen YES

Yay!

Also konnte ich wieder zurück zu diesem Artikel und mich mit der Zuweisung der Shortcuts beschäftigen. Mittels xev habe ich die button codes der verschiedenen Tasten meiner Maus ermittelt:

2014-07-23 12.28.38

Diesen Buttons habe ich dann mit Hilfe von xbindkeys bzw. dem zusätzlichen tool xte aus dem xautomation Paket meine von Windows her gewohnten Shortcuts zugewiesen. Hier der relevante Teil aus ~/.xbindkeysrc

# vorheriger Tab im Browser
"xte 'keydown Control_L' 'keydown Shift_L' 'key Tab' 'keyup Shift_L' 'keyup Control_L'"            
b:11 #Maustaste 11 (Scroll left)

# nächster Tab im Browser
"xte 'keydown Control_L' 'key Tab' 'keyup Control_L'"         
b:12 #Maustaste 12 (Scroll right)

# Tab im Browser schließen
"xte 'keydown Control_L' 'key W' 'keyup Control_L'"      
b:10 #Maustaste 10 (Search)

# Seite aktualisieren
"xte 'key F5'"   
b:12 #Maustaste 13 (sw fwd)

# Enter drücken
"xte 'key Return'"   
b:15 #Maustaste 15 (sw back)

Die restlichen Maustasten erledigen in meinem Fall schon das was sie sollen. Ein Neustart von xbindkeys mittels

killall -HUP xbindkeys && xbindkeys

führt dann zur gewünschten Funktionalität der Maustasten. YAY!

Jetzt kann es endlich wirklich weiter gehen mit dem gnuradio Thema 🙂

Nachtrag 2

Nach einem Neustart der virtuellen Maschine funktionierte die Tastatur nicht mehr und die Maus drehte völlig durch. Irgendwie scheint die von mir in /usr/share/X11/xorg.conf.d/ angelegte config-Datei da etwas durcheinander zu bringen. Ich habe vorübergehend diese Datei wieder entfernt. Dadurch funktioniert die search-Taste meiner Maus wieder nicht… bzw. funktionieren tut sie schon. Und zwar öffnet sie google.com im browser. Aber welches Programm oder Modul an welcher Stelle den Tastendruck abfängt und dann die Aktion ausführt konnte ich noch nicht herausfinden. Ich lass es jetzt vorübergehend einfach bleiben.

Schreibe hier deinen Kommentar