Archiv für 'Linux' Kategorie

VMware Server 1.05 mit Vanilla-Kernel 2.6.25.x

Im Kerneltree 2.6.25 wurde die Symboldefiniton “init_mm” entfernt, was leider folgende Fehlermeldung zur Folge hat:

WARNING: "init_mm" [/tmp/vmware-config/vmmon-only/vmmon.ko] undefined!
  CC      /tmp/vmware-config/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/vmware-config/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux/'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-config/vmmon-only'
Unable to make a vmmon module that can be loaded in the running kernel:
insmod: error inserting '/tmp/vmware-config/vmmon.o': -1 Unknown symbol in module

Daher muss zuerst die Option

Kernel Hacking -> Enable unused/obsolete exported symbols

akiviert werden. Dann funktioniert auch der VMware-any-any Patch (vorzugsweise Version 1.17) wieder.

QLogic ISP2XXX v8.02.11 Linux-Treiber ab Kernel 2.6.20

Was QLogic mit diesem Treiber fabriziert ist mir nicht ganz klar. Mit der Version 8.02.11 vom 26. März 2008 wurde eine Prüfung eingebaut, welche die Kompilation auf Kernelversionen >2.6.19 verhindern soll:

Restrict driver compilation to kernels less-than 2.6.20.

Eine Begründung hierzu liegt im Changelog nicht vor. Anstatt also den Treiber endlich den aktuellen (derzeit v2.6.25) Kernelversionen anzupassen, werden dem Administrator einfach die flapsigen Fehlermeldungen

In file included from /root/src/qla2xxx-8.02.13/qla_iocb.c:7:
/root/src/qla2xxx-8.02.13/qla_def.h:34:2: error:
#error "This driver does not support kernel versions greater than 2.6.19."
In file included from /root/src/qla2xxx-8.02.13/qla_isr.c:7:
/root/src/qla2xxx-8.02.13/qla_def.h:34:2: error:
#error "This driver does not support kernel versions greater than 2.6.19."
In file included from /root/src/qla2xxx-8.02.13/qla_init.c:7:
/root/src/qla2xxx-8.02.13/qla_def.h:34:2: error:
#error "This driver does not support kernel versions greater than 2.6.19."
In file included from /root/src/qla2xxx-8.02.13/qla_os.c:7:
/root/src/qla2xxx-8.02.13/qla_def.h:34:2: error:
#error "This driver does not support kernel versions greater than 2.6.19."
make[1]: *** [/root/src/qla2xxx-8.02.13/qla_iocb.o] Fehler 1

entgegengeschleudert. Abhilfe schafft hier die Modifikation der “qla_def.h” des Quelltext-Pakets:

#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19)
#error "This driver does not support kernel versions greater than 2.6.19."

Anzumerken ist trotzdem, dass der Treiber nur bis Kernel-Version 2.6.23 funktioniert. Hier hat QLogic dringenden Korrekturbedarf. Jedoch liegt die Vermutung nahe, dass eine Anpassung erst dann geschehen wird, wenn RHEL und/oder SLES entsprechende Kernelversionen verwenden.

GCC CPU-Optimierungen

Ein Script welches ich gerne verwende ist gcccpuopt von Pádraig Brady, welches automatisch die entsprechenden Optimierungs-CFLAGS für GCC ausgibt.

Beispiel am VIA C3:

viac3:~# gcccpuopt
Warning: Your compiler supports the -march=native option which you may prefer
-march=c3-2 -mfpmath=sse

bei einem Pentium 4:

pentium4:~# gcccpuopt
-march=prescott -mfpmath=sse

oder auf einem Core 2 Server:

core2:~# ./gcccpuopt
Warning: Newer versions of GCC better support your CPU with -march=core2
-march=pentium-m -mfpmath=sse

Das Script lässt sich wunderbar in die Umgebungsvariable einfügen, um nicht ständig an die Optimierung denken zu müssen:

host:~# export CFLAGS="$(/sbin/gcccpuopt | grep -v "Warning") -O3"
host:~# set | grep CFLAGS
CFLAGS='-march=prescott -mfpmath=sse -O3'

Es sei der Vollständigkeit daran erinnert, bei einer Integration in die .bashrc oder ähnlichen Dateien daran zu denken, das Script entsprechend abzusichern. Daher ist es sinnvoll, dem Script die Zugriffsrechte entsprechend (maximal 0755 oktal) zu definieren. Auch schadet es keinesfalls, den kompletten Pfad zum Script, wie im Beispiel oben gezeigt, mit anzugeben.

Problem mit support.microsoft.com und Squid?

Soeben fällt mir auf, dass die Support-Seite von Microsoft seit einem Update bei Microsoft mit Firefox sowie dem Internet Explorer 7 bei mir nicht mehr funktioniert (Internet Explorer 6 scheint nicht betroffen). Die vermutliche Ursache war nach kurzer Suche gefunden: Microsoft hat das serverseitige Handling des “Accept-Encoding” Headers geändert oder eine ihrer tollen “Verbesserungen” (siehe vorherigen Blog-Eintrag) auf den eigenen Servern installiert welches sich nun mit Squid in die Quere kommt.

Workaround für Squid v2.x:

# Fix support.microsoft.com by removing Accept-Encoding header
acl support.microsoft.com dstdomain support.microsoft.com
header_access Accept-Encoding deny support.microsoft.com

Quelle: whirpool.net.au Support Forum

Workaround für Squid v3.x:

# Fix support.microsoft.com by removing Accept-Encoding header
acl support.microsoft.com dstdomain support.microsoft.com
request_header_access Accept-Encoding deny support.microsoft.com

« ZurückWeiter »