webseite bitswap.de

Server-Status

Aktiver Knoten: janus
Uptime: 70 days, 23:3
Load: : 1,36, 1,53, 1,

janus: ONLINE
bridge: ONLINE
darkmatta: OFFLINE
roland: OFFLINE
raspi: ONLINE

Webcams

Cam0
Cam1
bitswap.de:/Home/Projekte/VMware_Webcam_Howto$

VMware-Server auf Debian GNU/Linux 'Etch', USB-Webcam einbinden

Achtung! Veraltet!

Dieses Howto beschreibt die Installation des VMware-Servers auf Debian GNU/Linux in der Version 4 'Etch', die anschließende Installation des Gastbetriebssystems Windows 2000 und das Einrichten einer Linux-Inkompatiblen Webcam über USB.

Dieses HowTo bitte erst komplett durchlesen und dann handeln. Ich gewähre keine Garantie auf Funktion. Es kann keine Haftung für irgendwelche Schäden übernommen werden!

Bitte die Hinweise am Ende des Dokumentes lesen!

Inhaltsverzeichnis


Vorwort

Irgendwann einmal kam ich auf die Idee, eine kleine Kamera aufzustellen und Bilder ins WWW zu stellen. Einfache USB-Kameras gibts schon unter 30 Euro, aber wenn ein Enthusiast mal in seiner Bastelkiste kramt, findet er auch so solch eine Kamera. Nun, mein damaliger Windows-Server hatte noch einen USB-Slot frei, also Kamera ran und Software installiert - geht!
Jedoch bin ich dann auf Linux gestoßen und ich stelle meinen Server auf Linux um. Dann war es erstmal Asche mit der Webcam. Ich habe schon viele Versuche gehabt, den Webcam-Dienst wieder aufzunehmen, aber es wurde nichts. Meine Linux-Treibereien nützten nichts. Es musste Windows ran, aber nicht direkt auf den Server. Ein weiterer Versuch mit QEMU und Windows 2000 brachte auch keinen Erfolg.
Dann fand die Rettung, ich probierte es mit VMware, installierte Windows, schob den USB-Port in die VM* und es geht! * VM = Virtuelle Maschine

Darum dreht sich dieses HowTo um die Emulation eines Windows-Computers mit der Weitergabe des USB-Devices an diesen Computer.

Ich verwende dem VMware Server 1.4.0 der Firma VMware. Der Server ist für Privaten Einsatz kostenlos, ist aber keine Freie Software.

Systemvorraussetzungen

Für dieses HowTo benötigt man geringe bis mittlere Kenntnis in Linux, genauer etwas Erfahrung mit einer Shell, aber auch Kompetenzen mit Windows umzugehen.
Hardwaremäßig braucht man eine USB-Kamera beliebigens Herstellers mit Unterstützung für Windows, einen relativ leistungsstarken Rechner, ab 1GHz und 256MB RAM liegt man auf der sicheren Seite und auch etwas Speicherplatz auf der Festplatte. Ich empfehle für die VM-Festplatte 4GB zu nehmen. Ein USB-Port wird auch benötigt und ein CDROM oder DVD-Laufwerk.
Auf dem Computer sollte sich ein Debian GNU/Linux installiert sein, dieses HowTo wurde explizit für das aktuelle "Stable" Debian, also Etch geschrieben, das Release ist dabei unerheblich. Es werden kein X-Server und ähnliche Grafischen Oberflächen benötigt. Weiterhin braucht man die zu seinem Kernel passenden Header und den Sourcecode sowie einige Buildutils wie gcc, da VMware eigene Module "bastelt". Die Verwaltung der VM erfolgt von einem Client mit Windows oder Linux. Weiterhin benötigt man ein Windows-Betriebssystem, Windows 2000 Professional ist hier angebracht, aus den Grund, Windows XP ist zu hardwarehungrig und Windows 9x zu instabil sowie eine Webcam-Verwaltungssoftware. Ich habe Privat VisionGS PE in Verwendung. Download auf www.visiongs.de

apt-get oder aptitude?

Etch bietet mehrere Möglichkeiten der Paketverwaltung, ich persönliche habe ich an apt-get gewöhnt und im HowTo werde ich apt-get verwenden. Wer jedoch lieber aptitude mag, der darf selbstverständlich auch dies verwenden, man muss nur die Befehle entsprechend anpassen.

Download und Installation

Zuerst installieren wir alle benötigten Pakete, dazu öffnen wir die Bash. Wie man das machst ist egal, über ssh, xterm oder Terminal/Konsole, alle gehen.
dann tippen wir folgende Zeilen in die Bash mit root-Rechten:

apt-get install perl wget gcc linux-headers-`uname -r` build-essential psmisc sysvinit-utils make libxtst6 libxt6 libxtrender1 libxsm6 libice6 libx11-dev libx11-6

Dies installiert Perl, ein Herunterladetool, die Linux-Sourcen und Compiler sowie Bibliotheken, danach wechseln wir in ein Verzeichnis mit genügend Speicherplatz, mindestens 500MB. Bei mir ist das /tmp

cd /tmp

Jetzt lädt man das VMware-Server-Paket herunter. Bitte ließt die EULA, bevor man saugt ;-) Klickt man auf YES so kommt man zu den Download-Links. Dort gibt es den Windows - und Linuxserver sowie eine Management-Console die man später auf einem Client installiert. Man braucht das Linux-Paket und als .tar.gz. Wechseln wir zur Shell und tippen zum Download des Servers ein:

wget http://tinyurl.com/2aghhw

Ich habe die URL verkürzt, derzeit funktioniert der Link, aber die Versionen bleiben nicht stehen und VMware baut ihre Webseite regelmäßig um, so das der Link bald kaputt sein dürfte. Wget lädt jetzt rund 109MB herunter, je nach Internetanschluss können wir jetzt eine kleine Pinkelpause einlegen.
VMware-Server verlangt eine Seriennummer, die ihr euch anbei bei den Downloads holen müsst . Die Seriennummern sind kostenlos, hier oder über die Downloadseite geht es zum Registrierungsformular.
Fertig heruntergeladen hat man nun die Datei VMware-server-1.0.4-56528.tar.gz oder eine ähnliche, kommt auf VMware an. Diese muss nun entpackt werden, also tun wir dies.

tar xvf VMware-server-1.0.4-56528.tar.gz

Man hat nun den Order vmware-server-distrib, in den wir auch mit cd wechseln ;)

cd vmware-server-distrib

Das Install-Skript heißt vmware-install.pl. Wir müssen es ausführbar machen und starten.

chmod a+x vmware-install.pl
./vmware-install.pl

Jetzt läuft der Installtionsprozess, die Fragen können wir getrost alle mit Enter abknicken, bis zu der Frage

Before running VMware Server for the first time, you need to configure it by invoking the following command: "/usr/bin/vmware-config.pl". Do you want this program to invoke the command for you now? [yes]

Hier zögern wir einen Moment, denn wenn diese Frage kommt, ist der Server erfolgreich installiert, aber nicht konfiguriert. Anbei noch die Konsolenfragen

In which directory do you want to install the binary files? [/usr/bin]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)? [/etc]
What is the directory that contains the init scripts? [/etc/init.d]
In which directory do you want to install the daemon files? [/usr/sbin]
In which directory do you want to install the library files? [/usr/lib/vmware]
The path "/usr/lib/vmware" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes]
In which directory do you want to install the manual files? [/usr/share/man]
In which directory do you want to install the documentation files? [/usr/share/doc/vmware]
The path "/usr/share/doc/vmware" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes]
The installation of VMware Server 1.0.2 build-39867 for Linux completed successfully. You can decide to remove this software from your system at any time by invoking the following command: "/usr/bin/vmware-uninstall.pl".

Konfiguration

Man steht nun vor der Konfiguration und Setup bietet uns an, das Konfigurationsskript zu starten. Nun, nehmen wir es an!

Before running VMware Server for the first time, you need to configure it by invoking the following command: "/usr/bin/vmware-config.pl". Do you want this program to invoke the command for you now? [yes]

Der Konfigurator stoppt nun die VMware-Daemons und beginnt die Kernelmodule zu bauen. Auch hier können wir getrost alles mit "yes" abnicken

You must read and accept the End User License Agreement to continue. Press enter to display it.[ENTER]
Do you accept? (yes/no)

Das Lizenzblatt können wir mit der Enter - oder Leeertaste scrollen, am Ende drückt man Q um es zu schließen.

Configuring fallback GTK+ 2.4 libraries. In which directory do you want to install the mime type icons? [/usr/share/icons]
The path "/usr/share/icons" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes]
What directory contains your desktop menu entry files? These files have a .desktop file extension. [/usr/share/applications]
In which directory do you want to install the application's icon? [/usr/share/pixmaps]
Trying to find a suitable vmmon module for your running kernel. None of the pre-built vmmon modules for VMware Server is suitable for your running kernel. Do you want this program to try to build the vmmon module for your system (you need to have a C compiler installed on your system)? [yes]
Using compiler "/usr/bin/gcc". Use environment variable CC to override. What is the location of the directory of C header files that match your running kernel? [/lib/modules/2.6.18-4-486/build/include]
[...] Do you want networking for your virtual machines? (yes/no/help) [yes]
Configuring a bridged network for vmnet0.
The following bridged networks have been defined: . vmnet0 is bridged to eth0
Do you wish to configure another bridged network? (yes/no) [no]
Do you want to be able to use NAT networking in your virtual machines? (yes/no) [yes]
Configuring a NAT network for vmnet8.
Do you want this program to probe for an unused private subnet? (yes/no/help) [yes]
Probing for an unused private subnet (this can take some time)... The subnet 172.16.191.0/255.255.255.0 appears to be unused. The following NAT networks have been defined: . vmnet8 is a NAT network on private subnet 172.16.191.0.
Do you wish to configure another NAT network? (yes/no) [no]
Do you want to be able to use host-only networking in your virtual machines? [yes]
Configuring a host-only network for vmnet1.
Do you want this program to probe for an unused private subnet? (yes/no/help) [yes]
Probing for an unused private subnet (this can take some time)... The subnet 172.16.98.0/255.255.255.0 appears to be unused. The following host-only networks have been defined:
. vmnet1 is a host-only network on private subnet 172.16.98.0.
Do you wish to configure another host-only network? (yes/no) [no]
[...] Please specify a port for remote console connections to use [902]
Restarting internet superserver: inetd.
Configuring the VMware VmPerl Scripting API.
Building the VMware VmPerl Scripting API.
Using compiler "/usr/bin/gcc". Use environment variable CC to override. Installing the VMware VmPerl Scripting API.
The installation of the VMware VmPerl Scripting API succeeded. Generating SSL Server Certificate

Nun fragt Setup, wo wie unsere VM speichern wollen. Man sollte hier einen Ordner wählen wo genügend Gigabyte frei sind. Die Voreinstellung kann aber auch bleiben. Danach geben wir eine Seriennummer ein, die man sich besorgt hat

In which directory do you want to keep your virtual machine files? [/var/lib/vmware/Virtual Machines]
Please enter your 20-character serial number. Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel:

Dann is'sser fertig, es werden noch schnell Zertifikate für die verschlüsselte Verbindung generiert und die VMware-Daemons wieder gestartet sowie Setup beendet. Hat man eine Firewall auf dem Rechner, sollte man sie auf dem angegeben Port öffnen, hier ist es TCP 902.

Clienteinrichtung

Die Installation erfolgt analog wie beim Server, also man lädt sich für Linux die Management-Konsole herunter, entpackt sie, installiert die erforderlichen Tools und führt dann vmware-install.pl aus. Für Windows holt man sich die Windows-Version der Management-Konsole (ebenfalls auf der Seite) und installiert bequem per Assistent. Unter Windows kann man die Konsole per Doppelklick starten, unter Linux startet man sie in der Bash mit dem Befehl starten:

vmware

Virtuelle Maschine anlegen

Zum Erstellen einer Maschine startet man die Management-Konsole und loggt sich ein:

Remote Host
Host name: IP des Servers
User name: root
Password: root-Passwort

login

Dann sieht man die Server-Konsole. Da klickt man auf "Create a new virtual machine". Darauf erscheint Assistent, der die Einrichtung behilft. Mit einem Klick auf "Next" geht es weiter. Dann darf man wählen, ob mal eine typische oder benutzerdefinierte Maschine erzeugen will. Empfehlenswert der Einfachheitshalber ist hier "Typical". Nach einem Klick auf "Next" kommt man zur Auswahl eines Betriebssystems. Ich nehme in meinem Fall Windows 2000 Professional. Danach muss man angeben wo man den Computer speichern will. Jetzt erfolgt die Auswahl des Netzwerkadapters. Das Brückennetzwerk (briged networking) ist geeignet, im einen direkten Zugang zum Netz zuhaben, d.h. die Maschine verhält sich wie eine "echte", die an einem Switch hängt.
Schließlich muss man eine virtuelle Festplatte festlegen, je nach Betriebssystem kann man hier die Größe verändern. für einen Webcam-Server sind 4GB ideal. Mit "Finish" legen wir den Computer an.

Konsole
Assistent
Typauswahl
Betriebssystem
Speicherort
Netzwerk
Festplatte

Nun ist man wieder auf der Startseite von VMware. Wie sehen nun den Computer.
Jetzt müssen wur noch den USB-Controller hinzufügen. Dazu klickt man auf "Edit virtual machine settings" und dann auf "Add". Da sieht man eine Hardware-Liste. Wir wählen "USB Contoller, klicken auf "Next" und dann "Finish" und schließen die Hardware-Liste.

Hardware-Liste

Bitte jetzt noch nicht die Kamera anschließen!

Dann gehen wir auf "CD-ROM 1" Jetzt müssen wir die Windows-CD integrieren. Da gibt es 3 Möglichkeiten.

1. CD-ROM im Laufwerk des Servers

Hierzu gehen wir auf CD-ROM 1 in in Eigenschaften und wählen rechts "Location:Host" und geben das Laufwerk an oder nutzen die Autodetect-Funktion.

2. CD-ROM im Laufwerk des Client

Da wählen wir "Location:Client" aus und geben wieder das Laufwerk an oder nutzen Autodetect. Allderdings müssen wir hier kurz nach dem Start des Computers noch schnell das Laufwerk einbinden bevor der Rechner anfängt zu booten. Das bezeugt auch das Hinweisfenster.

3. ISO-Image

Diese Funktion nützt bei ISO-Abbildern von Datenträgern, wie zB. von Linux-Distributionen. Wir wählen "Use Iso-Image" aus ung geben über "Browse" den Pfad an.

CD-ROM

Ich empfehle, die CD im Laufwerk des Servers zu nutzen, da es mit Clientlaufwerken öfters Probleme gibt, oder ein Image zu verwenden, was die die Geschwindigkeit drastisch steigert.
Jetzt schließen wir das Fenster "OK"

Windows installieren

Man klickt nun auf "Power on this virtual machine" und der Rechner fährt hoch. Hat man die 2. Möglichkeit der CD-ROM-Einbindung genutzt, also die CD im Clientrechner, so muss man schnell ein Rechtsklick auf das CD-Symbol rechts unten machen und auf "Connect" klicken. Bei den anderen beiden ist dies nicht nötig.
Zu beachten ist, das der Computer beim ersten Start von den Wechseldatenträgern versucht zu booten, beim 2. und allen anderen Starts bootet er nicht mehr davon, sondern direkt von Festplatte. Man kann dies im BIOS der VM umstellen, zB. wenn man den ersten Start "verbummelt" hat.

Bootvorgang

Um in der VM etwas bedienen zu können, muss man in sie hineinklicken (und dann F2 für das BIOS). Die Optionen für den Bootvorgang befinden sich unter "Boot" und die Elemente können mit + und - verschoben werden. Speichern über F10 nicht vergessen ;-).
Um aus der Maschine den Mauszeiger zu befreien, drückt man ALT und STRG (oder CTRL) gleichzeitig.
Der Computer sollte nun von CD booten und die Installation beginnen. Wie man Windows installiert, würde den Rahmen dieses HowTos sprengen, man kann alles in WWW nachlesen. Die virtuelle Festplatte muss noch partioniert und formatiert werden.

Webcam installieren

Nun hat man seine Windows-Installtion beendet, und ein frisches Windows lacht einen an.

Windows

Jetzt installieren wir die VMware-Tools in den Computer, dazu klicken wir auf "VM" - "Install VMware Tools..." und wühlen uns durch den Assistenten in Windows. Reboot nicht vergessen ;-)
Man sollte jetzt wichtige Einstellungen machen, zB. Auflösung ändern, Netzwerkeinstellungen festlegen und Windows auf gute Performance optimieren. Mehr dazu gibts in vielen Windows-Tuning-Seiten.

Wir installieren nun den Treiber für die Webcam, dazu "mounten" wir nun auf die selbe Weise wie die Windows-CD die Treiber-CD. In laufenden Betreib macht man hierzu ein Rechtsklick auf das CD-ROM-Icon und wählt "Edit". Dort gibt man wieder die Datenquelle an und speichert. Man "connected" nun auch wieder das Laufwerk mit der selben Vorgehensweise.
Hat die CD eine Autostart-Funktion, wird diese gestartet und der Treiber ist meißt schnell installiert. Wieder reboot - und wir können die Webcam in den Computer abgeben.
Dazu schließt man nun endlich die Kamera an einen USB-Port auf dem Server und wartet einen Moment. Danach klickt man auf "VM" - "Removable Devices" - "USB-Controller" und dann das USB-Gerät. Windows sollte nun die Kamera erkennen.
Jetzt ist es Zeit, eine Webcam-Software einzurichten, ich habe wie oben gesagt VisionGS PE im Einsatz. Die Bilder speichere ich über die Netzwerkumgebung (Linux:Samba) auf einer Freigabe in WWW-dir des Apache2-Webservers auf meinem Server. Man kann aber auch die Bilder über FTP auf einen kommerziellen FTP-Account laden lassen.

Webcam

Tipps

1.) Wenn man ein USB-Gerät includiert hat, sollte man es entfernen bevor man die VM neu startet, da es sonst nicht erkannt wird. Dies geht auf die selbe Weise wie man es hinzugefügt hat.


Dieses Dokument steht unter der GNU GPL Lizenz für freie Dokumentation - Änderungen vorbehalten!

Letzte Änderung: 13.1.2008