Month: October 2013

  • 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.

  • Labview 6.1 auf Scientific Linux 6

    Die c’t hat in der Ausgabe 11/2007 Labview 6.1 zur Verfügung gestellt. Die Windows-Version gibt es auf der Heft-CD, Versionen für Linux und Mac (PowerPC) gibt es auf dem FTP-Server von Heise.

    Labview wird für Linux grundsätzlich nur für RPM-Basierte Distributionen angeboten. Die Installation auf Debian-System gelingt ebenfalls, VISA und IVI Treiber laufen allerdings meist nicht. Auf Scientifc 6 geht die installation aber ganz leicht, x64-Systeme benötigen allerdings zuvor einige x86-libs:

    yum install glibc-devel.i686 libX11-devel.i686 libXext-devel.i686

    Danach muss der Verzeichnis-Index abgeschaltet werden (siehe NI-KB-Eintrag zu dem Thema)

    su -c 'tune2fs -O ^dir_index /dev/sdX'

    Dies ist erst ab Version 7.1.1 nicht mehr nötig – falls der index nicht abgeschalten wird, crasht LabView mit folgender Meldung:

    Failure : "filemgr.cpp", line 4145
    LabVIEW version 6.1
    For assistance in resolving this problem, please record the preceding information and navigate to www.ni.com/failure, or contact National Instruments.
    Abgebrochen