Seit gestern läuft bei mir Kernel 2.6.32, und wie jedes Mal gibts Probleme mit den VMWare Produkten. Diesmal ist der Workaround allerdings einfacher. Gefunden habe ich den Hinweis im Blog von Chmouel Blog.

Beim Start vom VMWare Player poppt die Meldung auch, dass die Module neu erstellt werden müssen. Wenn man bestätigt gibt es einen Fehler beim vmnet-only Modul.

Nachprüfen lässt sich das ganze wenn man auf der Konsole per “/usr/bin/vmplayer” startet und dort die Module neu kompilieren will. Es erscheint folgender Fehler:

make[1]: Entering directory `/usr/src/linux-2.6.32′
CC [M]  /tmp/vmware-root/modules/vmnet-only/driver.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/hub.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/userif.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/netif.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/bridge.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/filter.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/procfs.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/smac_compat.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/smac.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/vnetEvent.o
CC [M]  /tmp/vmware-root/modules/vmnet-only/vnetUserListener.o
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: In function ‘VNetUserListenerEventHandler’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: (Each undeclared identifier is reported only once
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:240: error: for each function it appears in.)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c: In function ‘VNetUserListenerRead’:
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: implicit declaration of function ‘signal_pending’
/tmp/vmware-root/modules/vmnet-only/vnetUserListener.c:282: error: implicit declaration of function ‘schedule’
make[2]: *** [/tmp/vmware-root/modules/vmnet-only/vnetUserListener.o] Fehler 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmnet-only] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.32′
make: *** [vmnet.ko] Fehler 2
make: Leaving directory `/tmp/vmware-root/modules/vmnet-only’

Folgende Lösung funktioniert:

  • cd /tmp
  • tar xf /usr/lib/vmware/modules/source/vmnet.tar
  • cd vmnet-only
  • vi vnetUserListener.c
  • in Zeile 37  (letzte Zeile unter #include) folgendes hinzufügen #include “compat_sched.h
  • in englisch: add to line 37 #include “compat_sched.h
  • Datei speichern und beenden
  • cd /tmp
  • tar cf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only
  • vmplayer neu starten, module kompilieren und siehe da, es geht :-)

Comments 3 Kommentare »

Vor 3 Wochen etwa hab ich den neuen VMWare Player 3 getestet.

Nachdem VMWare Erbarmen hatte und dem Player die Funktion gegeben hatte, Maschinen anlegen zu dürfen, brauche ich auf meinem Desktopsystem keinen Server mehr.

Positiv überrascht bin ich vom UnityMode!

Ich kann native Windowsfenster unter meinem Linux laufen lassen, die sich fast wie X Fenster verhalten. Es gibt die ein odere andere Anwendung, die man unter Linux einfach nicht anständig winen oder ersetzen kann (z.B. VMWare Infrastructure Client oder Internet Explorer :-P )

Hier ein Screeshot des UnityMode

Unity_small

Comments Keine Kommentare »

Nachdem ich bisher nur unzufriedenstellende Anleitungen/HowTos gefunden habe, hier mein Vorgehensweise:

1. Vorbereitungen

Der SIM Karte muss die PIN übergeben werden, das geschieht mit folgendem Perl Script:

lapli:/etc/udev/rules.d# vi /usr/bin/unlock-novatel-card.pl
#!/usr/bin/perl

use strict;
use warnings;

my $modem = “/dev/ttyUSB0″;
my $pin = “xxxx“;

$SIG{ALRM} = sub {
die(”timeout: no response from modem $modem\n”);
};

open(MODEM, “+<”, $modem) or die(”can’t open modem $modem”);
alarm(10);
print(MODEM “AT+CPIN=\”$pin\”\n\r”);
while (<MODEM>) {
if (m/OK/) {
close(MODEM);
print(”PIN accepted\n”);
exit(0);
}
if (m/ERROR/) {
close(MODEM);
print(”PIN rejected\n”);
exit(1);
}
}

ACHTUNG: Die Pin steht hier im Klartext. Ist das nicht gewünscht, könnt ihr das Script erweitern und die Pin von “extern” beziehen.

Wenn ihr nun das Script ausführt, sollte die Karte benutzbar sein.

Doch warum jedes mal das ganze händig ausführen, wenns auch einfacher geht:

die UMTS Karte einstecken und die ID rausfinden:

lapli:/# lsusb
Bus 007 Device 002: ID 1410:1430 Novatel Wireless
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 08ff:1600 AuthenTec, Inc. AES1600
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 174f:5a31 Syntek
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Mit diesem Wissen können wir eine udev Regel anlegen:

lapli:/etc/udev/rules.d# vi 99-novatel-xu870.rules

Folgender Inhalt sollte die Datei haben

ACTION==”add”, SYSFS{idProduct}==”1430“, SYSFS{idVendor}==”1410“, KERNEL==”ttyUSB0″, RUN+=”/usr/bin/unlock-novatel-card.pl

2. Verbindung aufbauen

Bis vor kurzem habe ich auf Scripte gesetzt, mitlerweile habe ich ein Tool gefunden, welches den Verbindungsaufbau erleichtert UMTSmon

Downloadbar unter folgendem Link:  Download

1. entpacken

2. Programm starten

tar xvf umtsmon-0.10alpha.i386.tar.gz

cd umtsmon-0.10alpha

./umtsmon

bzw

sudo ./umtsmon

wobei es keinen Unterschied macht, UMTSmon wird nach dem root Passwort fragen

UMTSmon

Nun muss nur noch ein Profil angelegt werden (bei mir ist schon eins aktiv).

Dazu unter Verbindungen den Menüpunkt “Profile bearbeiten” auswählen und ein neues anlegen. Wichtig ist nur der richtige APN, Benutzername und Passwort waren bei mir egal, aber irgendwas musste eingetragen werden

UMTmon Profil

Eine Übersicht der APNs findet ihr bei Teletarif

3. Fertig :-)

Comments 1 Kommentar »

Kaum installiert man einen neuen Kernel, schon geht die Fixerei los. VMWare Server 2 lässt sich nicht installieren und quittiert mit folgender Meldung

debian:/install/VMWare/vmware-server-distrib# vmware-config.pl
Making sure services for VMware Server are stopped.

Stopping VMware autostart virtual machines:
Virtual machines                                                   failed
Stopping VMware management services:
VMware Virtual Infrastructure Web Access
VMware Server Host Agent                                           failed
Stopping VMware services:
VMware Authentication Daemon                                        done
Virtual machine communication interface                             done
Virtual machine monitor                                             done
Bridged networking on /dev/vmnet0                                   done
Host network detection                                              done
DHCP server on /dev/vmnet1                                          done
Host-only networking on /dev/vmnet1                                 done
Bridged networking on /dev/vmnet2                                   done
DHCP server on /dev/vmnet8                                          done
NAT service on /dev/vmnet8                                          done
Host-only networking on /dev/vmnet8                                 done
Virtual ethernet                                                    done

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.29/build/include]

Extracting the sources of the vmmon module.

Building the vmmon module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmmon-only’
make -C /lib/modules/2.6.29/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.29′
CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config0/vmmon-only/linux/driver.c:31:
/tmp/vmware-config0/vmmon-only/./include/compat_wait.h:78: error: conflicting types for ‘poll_initwait’
include/linux/poll.h:67: error: previous declaration of ‘poll_initwait’ was here
In file included from /tmp/vmware-config0/vmmon-only/./common/vmx86.h:31,
from /tmp/vmware-config0/vmmon-only/linux/driver.h:29,
from /tmp/vmware-config0/vmmon-only/linux/driver.c:101:
/tmp/vmware-config0/vmmon-only/./include/x86apic.h:97:1: warning: “APIC_BASE_MSR” redefined
In file included from /usr/src/linux-2.6.29/arch/x86/include/asm/fixmap_32.h:29,
from /usr/src/linux-2.6.29/arch/x86/include/asm/fixmap.h:5,
from /usr/src/linux-2.6.29/arch/x86/include/asm/apic.h:8,
from /usr/src/linux-2.6.29/arch/x86/include/asm/smp.h:13,
from include/linux/smp.h:36,
from include/linux/topology.h:33,
from include/linux/mmzone.h:767,
from include/linux/gfp.h:4,
from include/linux/kmod.h:22,
from include/linux/module.h:13,
from /tmp/vmware-config0/vmmon-only/./include/compat_module.h:27,
from /tmp/vmware-config0/vmmon-only/linux/driver.c:26:
/usr/src/linux-2.6.29/arch/x86/include/asm/apicdef.h:132:1: warning: this is the location of the previous definition
/tmp/vmware-config0/vmmon-only/linux/driver.c: In function ‘LinuxDriverSyncCallOnEachCPU’:
/tmp/vmware-config0/vmmon-only/linux/driver.c:1423: error: too many arguments to function ‘smp_call_function’
/tmp/vmware-config0/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/tmp/vmware-config0/vmmon-only/linux/driver.c:1987: error: ‘struct task_struct’ has no member named ‘euid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:1987: error: ‘struct task_struct’ has no member named ‘uid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:1988: error: ‘struct task_struct’ has no member named ‘fsuid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:1988: error: ‘struct task_struct’ has no member named ‘uid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:1989: error: ‘struct task_struct’ has no member named ‘egid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:1989: error: ‘struct task_struct’ has no member named ‘gid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:1990: error: ‘struct task_struct’ has no member named ‘fsgid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:1990: error: ‘struct task_struct’ has no member named ‘gid’
/tmp/vmware-config0/vmmon-only/linux/driver.c:2007: error: too many arguments to function ‘smp_call_function’
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Fehler 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.29′
make: *** [vmmon.ko] Fehler 2
make: Leaving directory `/tmp/vmware-config0/vmmon-only’
Unable to build the vmmon module.

For more information on how to troubleshoot module-related problems, please
visit our Web site at “http://www.vmware.com/go/unsup-linux-products” and
“http://www.vmware.com/go/unsup-linux-tools”.

Execution aborted.

Datei vmware-server-modules-2629 runterladen und nach “vmware-server-distrib/lib/modules/source/” entpacken und neu installieren.

Download the file  vmware-server-modules-2629 and extract it to “vmware-server-distrib/lib/modules/source/” and then reinstall.

Was ich selbst noch als wichtig empfinde, den Autostart rauszunehmen, unter meinem Debian mache ich das wiefolgt:

To change the autostart use following command:

find /etc/ | grep rc | grep S | grep vmware | xargs -I ‘{}’ rm -f ‘{}’

Comments 27 Kommentare »