LabView 2012 in Mageia 3
So, nachdem nun LabVewi 6.1 auf SL6 gut läuft, sollte auch 2012 auf meinem aktuellen “Arbeitstier” funktionieren. Mageia basiert auf Mandriva, und ist damit ebenfalls RPM-basiert.
Nach dem man die LabView 2012-Setup im Linux-Unterordner auf der in HFS+ formatierten Mac/Linux-DVD der Academic Site License extrahiert hat, lässt sich Labview selbst nach Auflösung einiger Abhändigkeiten problemlos installieren. Insbesondere
libXinerama kernel-desktop-devel-latest
und Abhängigkeiten müssen auch als 32-Bit Binary vorliegen, wenn LabView auf einem 64-Bit System gestartet wird.
Nach der installation von Labivew wird nach NI-VISA gefragt. Wer lediglich etwas Programmierung üben möchte, kann sich die VISA-Libs sparen. Für die Gerätesteuerung aber sind sie zwingend notwendig; die Installation schlägt auf den ersten Anlauf aber fehl:
******************************** ERROR **************************************** * The version of gcc in the path does not match the version of gcc used to * * compile the currently running kernel. This can cause unpredictable * * behavior in kernel drivers and should be fixed. * * gcc version: gcc-Version 4.7.2 (GCC) * * kernel compiled with: 4.7.2 * ******************************** ERROR ****************************************
Scheinbar unterscheiden sich die in openSUSE, RHEL und SL verwendet Art und Weise, die GCC-Version im Kernel zu hinterlegen derart von der in Mageia verwendeten, dass der Installer trotz vermeidlich gleicher Kernel-Version fehlschlägt.
Ganz unpraktisch ist das aber nicht, denn vor der Installation der NI-VISA-Treiber muss die (zumindest auf der 2012er) DVD mitgelieferte Version von NI-KAL auf Version 2.4 aktualisiert werden, um mit neueren Kernel-Versionen kompatibel zu sein (siehe Forums-Post der LabView community). Der Download auf ni.com ist ein ISO-Image, das zunächst entpackt werden will.
[user@localhost NIKAL24_new]# ls -Gahl insgesamt 1,7M dr-xr-xr-x 2 user 4,0K Okt 28 15:11 ./ drwxrwxr-x 10 user 4,0K Okt 30 08:51 ../ -r-xr-xr-x 1 user 54K Okt 28 15:09 INSTALL* -r--r--r-- 1 user 23K Okt 28 15:05 LICENSE.txt -r--r--r-- 1 user 1,5M Okt 28 15:06 nikal-2.4.0f5.tar.gz -r--r--r-- 1 user 20K Okt 28 15:05 PATENTS.txt -r--r--r-- 1 user 7,3K Okt 28 15:05 README.txt -r-xr-xr-x 1 user 13K Okt 28 15:05 UNINSTALL
In nikal-2.4.0f5.tar.gz befindet sich das corpus delicti, im Unterordner bin: installerUtility.sh ab Zeile 343:
# check the version of gcc that is in the path and ensure that it is the # same version of gcc that was used to compile the currently running kernel if [ -z "$KERNELTARGET" -o "$KERNELTARGET" == "`$UNAME -r`" ]; then currentGCCVersion=`$CC -v 2>&1 | tail -n 1 | $SED 's/.*gcc[a-zA-Z (]\+\([0-9][^ )]\+\).*/\1/'` kernelGCCVersion=`$CAT /proc/version | $SED 's/.*gcc[a-zA-Z (]\+\([0-9][^ )]\+\).*/\1/'` if [ "$currentGCCVersion" != "$kernelGCCVersion" ]; then if [ "${currentGCCVersion%\.*}" != "${kernelGCCVersion%\.*}" ]; then echo "******************************** ERROR ****************************************" echo "* The version of gcc in the path does not match the version of gcc used to *" echo "* compile the currently running kernel. This can cause unpredictable *" echo "* behavior in kernel drivers and should be fixed. *" echo "* gcc version: $currentGCCVersion *" echo "* kernel compiled with: $kernelGCCVersion *" echo "******************************** ERROR ****************************************" return $statusFail else echo "******************************** WARNING **************************************" echo "* The version of gcc in the path does not match the version of gcc used to *" echo "* compile the currently running kernel. This can cause unpredictable *" echo "* behavior in kernel drivers and should be fixed. *" echo "* gcc version: $currentGCCVersion *" echo "* kernel compiled with: $kernelGCCVersion *" echo "******************************** WARNING **************************************" fi fi fi
Man können nun die Funktion beider RegEx-Komandos analysieren, oder den relevanten Teil einfach entfernen. Das Archiv wieder packen, und die Installation starten.
Danach kommen die NI-VISA Treiber, die allerdings verwenden nicht nur die installerUtility.sh in ihrem eigenen Archiv, sondern auch eine Kopie davon in
/usr/local/natinst/nikal/bin/installerUtility.sh
Diese darf dann ebenfalls angepasst werden, danach klappt auch die Installation von NI-VISA.