Navigation
Bezüglich der Möglichkeiten von Pulseaudio und Mumble-Bots ist diese Anleitung veraltet; siehe stattdessen hier:
Dieses Howto sollte aufgesplittet werden in folgende Teile:
Ich wollte ein Linux-System um den Verbund aus Windows+VirtualAudioCable zu ersetzen mit dem man relativ einfach Musik-Bots bereitstellen kann.
Weiterhin wollte ich ein System mit Jack zum Testen :)
Wer nicht dauerhaft mit VirtualBox auf der Konsole arbeiten mag, der sollte sich folgendes Projekt ansehen: https://code.google.com/p/phpvirtualbox/
Dort wird per PHP ein Webinterface bereit gestellt, welches genauso aussieht, wie der echte Virtualbox-Client.
Bei der Wahl von PulseAudio für die Mumble-Eingabe/-Ausgabe hat man zumindest einen Bot. Das liegt daran, dass bei der Verwendung von PulseAudio zusammen mit Jack insgesamt nur ein Ziel und eine Quelle vorhanden ist für alle Programme, die Pulseaudio verwenden.
Es ist jedoch möglich, mit Hilfe des PulseAudio-Moduls „Null-Sink“/„Null-Ausgang“ mehrere virtuelle Soundkarten zu erstellen, siehe hier: Mumble-Musikbot mit PulseAudio und eigener virtueller Soundkarte
Bei der Wahl von Jack für die Mumble-Eingabe/-Ausgabe hat man beliebig viele unabängige Bots die man auch mit verschiedenen Streams bespielen kann :)
Hier hat nämlich jeder Mumble-Client jeweils einen eigen Quell- und Zielkanal.
Für diesen Abschnitt benötigen wir Root-Rechte.
Zuerst Virtualbox 4.0 auf Squeeze installieren; dazu die Paketquellen von VirtualBox an /etc/apt/sources.list anhängen mit:
echo "deb https://download.virtualbox.org/virtualbox/debian squeeze contrib" >> /etc/apt/sources.list
gefolgt von
sudo apt-get update && sudo apt-get install virtualbox-4.0
Die in Debian Squeeze enthaltene Virtualbox-OSE 3.2.10 hatte bei mir große Probleme mit Tastatureingaben in Verbindung mit VNC…
Z. B. wurden beim Schnell-Schreiben irgendwann Buchstaben gross geschrieben. Manchmal war auch gar keine Eingabe möglich. Alt+Tab usw. funktionierte trotzdem.
Damit vrde funktioniert - wir wollen ja auch eine grafische Ausgabe haben - muss das „Oracle VM VirtualBox Extension Pack“ installiert sein; dies überprüft man mit:
VBoxManage list extpacks Extension Packs: 1 Pack no. 0: Oracle VM VirtualBox Extension Pack Version: 4.0.10 Revision: 72436 Description: USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support. VRDE Module: VBoxVRDP Usable: true Why unusable:
Falls es fehlt (Extension Packs: 0), muss man sich das Extension Pack herunterladen und installieren mittels
VBoxManage extpack install /pfad/zu/Oracle_VM_VirtualBox_Extension_Pack-4.0.10-72436.vbox-extpack
Jetzt erstellen wir schon aus Prinzip einen neuen Benutzer, unter dessen Kennung die VM laufen wird. Nennen wir ihn ubuntustudio:
adduser ubuntustudio
Und fügen den neuen Benutzer in die Gruppe vboxusers hinzu:
usermod -a -G vboxusers ubuntustudio
Nun können wir uns im Wirtssystem als Benutzer ubuntustudio anmelden. Für alles weitere reichen die Benutzerrechte aus.
su - ubuntustudio
VBoxManage createvm --name "UbuntuStudio" --register
Festplatte erstellen (10GB):
VBoxManage createhd --filename UbuntuStudio.vdi --size 10000
Nach der Installation meines Systems waren zum Schluss mit eigens installiertem Mumble genau 3.8 GiB belegt.
VBoxManage storagectl "UbuntuStudio" --name "IDE Controller" --add ide
VBoxManage storageattach "UbuntuStudio" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium UbuntuStudio.vdi
Und nun passen wir die Einstellungen der VM an:
VBoxManage modifyvm UbuntuStudio --memory 1024 --acpi on --boot1 dvd --nic1 nat --audio null --audiocontroller ac97 --vrde on --vrdeaddress 127.0.0.1 --vrdeauthtype null --cpus 1 --vram 16
Wer den RDP Port ändern möchte, kann noch
--vrdeport PORT
mit angeben.
Bei meinen Tests bootete das System in der VM gar nicht erst, wenn es zu wenig (4) VideoRAM (–vram) hatte.
Wer plant, RDP offen zugänglich einzustellen, sollte nicht vrdeauthtype null verwenden, da sich sonst jeder mit der virtuellen Maschine verbinden kann!
Bei der Installation und der Konfiguration hilft viel RAM, in der laufenden VM reichen später 512MiB aus.
Zur Kontrolle kann man sich alle Einstellungen ansehen mit:
VBoxManage showvminfo UbuntuStudio | less
Nun laden wir uns UbuntuStudio herunter (https://cdimage.ubuntu.com/ubuntustudio/releases/11.04/release/) und „legen“ die CD ins virtuelle CD-Laufwerk ein:
VBoxManage storageattach "UbuntuStudio" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /pfad/zu/ubuntustudio-11.04-alternate-amd64.iso
Zum Verbinden auf den Server kann man unter Linux z. B. rdesktop verwenden.
Man kann einen SSH-Tunnel verwenden, wenn der Port auf dem Server nur lokal erreichbar bleiben soll:
ssh -p <SSHPORT> -L <lokalerport>:127.0.0.1:<remoteport> username@ip.ip.ip.ip -N
Diesen Befehl gibt man übrigens auf der lokalen Maschine ein, nicht auf dem Server :)
Der Standardport (hier <remoteport>) für RDP ist 3389.
Zuerst wird die VM gestartet:
VBoxManage startvm UbuntuStudio --type headless
Dann verbinden wir uns mit rdesktop über den Tunnel zur VM:
rdesktop -z -E -a 8 localhost:<lokalerport> -k de
Nun installieren wir UbuntuStudio und restarten nach der Installation die VM.
Bei der Installation wird gefragt, ob Jack mit als Echtzeitanwendung laufen soll; dies ist für unsere Zwecke unnötig, also mit „Nein“ antworten.
Dann anmelden, kurz warten und nach Aufforderung alle Aktualisierungen installieren.
Danach in einem Terminal ausführen:
sudo apt-get install lxde mplayer
Jetzt laden wir uns innerhalb der VM von https://download.virtualbox.org/virtualbox/ das Binärpaket mit den Gast-Treibern für die passende Virtualbox-Version herunter (die .run-Dateien oder je nach System auch .rpm) und installieren diese bzw. führen sie in einem Terminal aus:
sudo sh /ort/zum/Download/VBoxLinuxAdditions.run
Damit sind die GuestAdditions installiert.
Durch diese Treiber wird u.a. die Grafikausgabe beschleunigt und z. B. der Mauszeiger in der VM synchron zum echten Mauszeiger gehalten.
Leider bringt Ubuntu nur den CELT-Codec 0.7.0 mit, der im Gegensatz zum neuen 0.11.x eine etwas schlechtere Qualität hat.
Mumble mit 0.11.x Codec installieren: siehe hier
Wie man einen Mumble-Bot optimal einstellt, ist zusammengefasst unter: Einstellungen für Mumble-Bot optimieren.
PulseAudio so anpassen, dass es auf Jack aufsetzt:
sudo apt-get install pulseaudio-module-jack
und danach wie hier konfigurieren: https://trac.jackaudio.org/wiki/WalkThrough/User/PulseOnJack
Zum Schluss am besten vom Desktop (in der VM) abmelden und wieder anmelden.
Diese Variante hat den Nachteil, dass man nur einen Eingabe- und nur einen Ausgabe-Kanal für PulseAudio-Geräte zur Verfügung hat. Egal wie viele Programme es verwenden. Maximal ist so ein Bot bzw. mehrere Bots mit derselben Musik möglich.
Eine Anleitung, wie man einen oder mehrere Bots auch mit PulseAudio mit mehreren virtuellen Soundkarten versorgt, gibt es hier: Mumble-Musikbot mit PulseAudio und eigener virtueller Soundkarte.
Wie man ein aktuelles Mumble mit dem Jack-Patch ausstattet, steht hier: Mumble mit JACK.
Hier muss man sich nicht ab- und wieder anmelden.
Vorteil dieser Variante ist, dass jede Mumble-Instanz ein eigenes Paar von Eingabe- und Ausgabe-Kanal besitzt; man kann also viele voneinander unabhängige Bots erstellen.
Eventuell Bildschirmauflösung ändern unter LXDE-Startknopf → Einstellungen → Bildschirmeinstellungen und den Bildschirmschoner deaktivieren :)
mplayer -ao jack -playlist https://listen.di.fm/public3/chiptunes.pls
Da die VM für die Netzanbindung NAT verwendet kann man von aussen nicht darauf zugreifen, es sollte also relativ sicher sein. Man sollte aber trotzdem nicht benötigte Dienste deaktivieren.
Um die VM wieder zu stoppen - und deshalb ist acpi an - verwendet man:
VBoxManage controlvm UbuntuStudio acpipowerbutton
Falls das nicht funktionieren sollte kriegt man es auch gezwungen aus (dies kommt jedoch einem Stromausfall gleich, deshalb meiden):
VBoxManage controlvm UbuntuStudio poweroff
VBoxManage snapshot UbuntuStudio take Installiert --description "Installiertes, fertiges System."
Und der Lohn der Arbeit :) ein schöner Bot in einer VM auf einem Rootserver.
Verbraucht beim Abspielen mit dem Jack-Rack Plugin SimpleAmplifier dauerhaft 25-30 % einer CPU auf dem Wirtssystem.
Man kann noch jede Menge an der VM entschlacken und optimieren … aber für den Anfang bin ich erstmal zufrieden :)
Da sich auf dem System keine privaten Daten befinden kann ich das Image der VM gerne an Interessierte weitergeben.