Installation von »LabView 2013« unter Linux (openSUSE)
Die folgenden Hinweise beziehen sich auf openSUSE 13.1. Siehe aber auch »Nachtrag« am Ende!
Präparieren des Kernels
Unabhängig von der Version der Distribution und auch unabhängig von der LabView-Version muss der Kernel derart vorbereitet werden, dass einige LabView-spezifische Kernel-Module kompiliert werden können. Dazu ist Folgendes zu tun:
zypper in kernel-source
cd /usr/src/linux
zcat /boot/symvers-$(uname -r).gz > Module.symvers
Danach folgt:
make cloneconfig
make modules_prepare
Boot-Parameter
Um den Fehler zu vermeiden, der auftritt, wenn RAM-Speicher des Rechners oberhalb der 4GB-Grenze adressiert wird, empfiehlt sich das Zufügen des folgenden Boot-Parameters. Dies sollte in yast
geschehen (»System« / »Boot Loader«):
memmap=60G\\\$0x100000000
Man beachte die drei \
-Zeichen! Der Boot-Parameter kann auch dann nötig sein, wenn der physikalische Speicher kleiner als 4GB ist.
Installation von »LabView«
Es wird davon ausgegangen, dass der betreffende Rechner über ein Verzeichnis /root/labview
verfügt, in dem die zur Installation nötigen Komponenten enthalten sind.
cd ~/labview
mkdir -p ./mnt
mount ./lv2013pro-linux.iso -r -t iso9660 -o loop ./mnt
cd ./mnt
./INSTALL --no-prompt --accept-license
cd .. ; umount ./mnt
Installation von »NIKAL«
Bei »NIKAL« (»Kernel Abstraction Layer«) handelt es sich um die Komponente, die für die direkte Kommunikation mit dem Linux-Kernel verantwortlich ist. Man sollte bestrebt sein, immer die neueste Version zu beschaffen (http://ftp.ni.com/support/softlib/kal/). Die Version 2.5 unterstützt maximal den bei openSUSE 13.1 enthaltenen Kernel.
mount ./NIKAL25.iso -r -t iso9660 -o loop ./mnt
cd ./mnt
./INSTALL --no-prompt --accept-license
cd .. ; umount ./mnt
Installation von »VISA«
»VISA« ist für manche Gerätezugriffe nötig bzw. vereinfacht diese. Aufgrund eines Fehlers in den VISA-Versionen 5.2 bis 5.4 (Stand: Februar 2014) kann die bereits während der LabView-Installation zugefügte VISA-Version für unsere Zwecke nicht verwendet werden. Stattdessen muss mindesten auf die Version 5.1 zurückgegangen werden. Update (März 2014): Offenbar ist die Version »5.4.1« wieder funktionsfähig, weshalb sie hier verwendet wird.
cd NI-VISA-5.4.1-mod
./INSTALL --no-prompt --accept-license --no-prompt-rpm
cd ..
(Das Verzeichnis NI-VISA-5.4.1-mod
enthält die entpackten Dateien der VISA-Version 5.4.1. Im Installations-Script INSTALL
ist bei den Zuweisungen zur Variable RPMOpts
zusätzlich --replacefiles
anzugeben, was nötig ist, da openSUSE 13.1 eine relativ neue rpm-Version benutzt. Sie erfordert diese Änderung.)
In der so installierten VISA-Version ist ein Start-Script enthalten, dessen Aufgabe es ist, in der Boot-Phase einige für »VISA« notwendige Kernel-Module zu laden. Dieses Script enthält einen ungünstigen Test bezüglich der Kernel-Version in dessen Folge der Start der Module unter openSUSE 13.1 verhindert wird. Abhilfe schafft die folgende Korrektur der Datei /etc/natinst/nipal/init.d/nipal
:
Statt:
if [ "$kernelMinor" -eq 4 ]; then
KERNEL_MODULE_EXTENSION=o
elif [ "$kernelMinor" -eq 6 ]; then
KERNEL_MODULE_EXTENSION=ko
else
echo "nipal: $kernelVersion kernel not supported"
exit 1
fi
Neu:
KERNEL_MODULE_EXTENSION=ko
Die in diesem Abschnitt genannten Korrekturen könnten sich mit der nächsten VISA-Version für Linux erübrigen. Man beobachte daher gelegentlich die unter der folgenden Adresse erhältlichen Dateien: http://download.ni.com/support/softlib/visa/NI-VISA/
Weitere Schritte
Mit Umstellung des Bootablaufes von »SysVinit« auf »Systemd« in neueren openSUSE-Versionen übernimmt »Systemd« auch den Start der Boot-Scripte alter Art. Offenbar dürfen diese jedoch nun keine symbolischen Links mehr sein. »LabView« istalliert sie aber als symbolische Links, was durch die folgenden Befehlsaufrufe korrigiert wird:
rm -f /etc/init.d/nipal /etc/init.d/nilxid \
/etc/init.d/nimdnsd /etc/init.d/nipxirmu /etc/init.d/nisvcloc
cp -p /etc/natinst/vxipnp/init.d/nilxid /etc/init.d/
cp -p /etc/natinst/nimdnsresponder/init.d/nimdnsd /etc/init.d/
cp -p /etc/natinst/nipal/init.d/nipal /etc/init.d/
cp -p /etc/natinst/nipal/init.d/nipxirmu /etc/init.d/
cp -p /usr/local/natinst/nisvcloc/init.d/nisvcloc /etc/init.d/
Später neu installierte Linux-Kernel haben zur Folge, dass einige der aufgeführten Abläufe wiederholt werden müssen. Auch ist es nicht ausgeschlossen, dass »NIKAL« eine neu installierte Kernel-Version nicht mehr unterstützt. Es empfiehlt sich daher, auf das Installieren neuer Kernel zu verzichten:
zypper addlock kernel-default
zypper addlock kernel-devel
zypper addlock kernel-default-devel
zypper addlock kernel-source
zypper addlock kernel-desktop
zypper addlock kernel-desktop-base
zypper addlock kernel-desktop-devel
Zu Letzt führt der folgende Aufruf zum (nochmaligen) Kompilieren der LabView-Kernel-Module:
/usr/local/bin/updateNIDrivers
Die Frage nach Neu-Booten des Systems am Ende sollte mit yes
beantwortet werden.
Nach erfolgtem Booten sollte der folgende Aufruf
lsmod | grep ^ni
keine leere Ausgabe erzeugen. Eine Ausgabe ähnlich zu der folgenden zeugt von einer erfolgreichen Installation:
nipxirmk 120229 1
nidimk 333025 2 nipxirmk
niorbk 101681 2 nipxirmk,nidimk
nipalk 1229445 5 nipxirmk,nidimk,niorbk
nikal 97449 1 nipalk
Sollte aus irgendwelchen Gründen doch mal ein kernel-Update durchgeführt worden sein, muss, um »LabView« funktionstüchtig zu halten, Folgendes getan werden:
-
Nachdem mit dem neuen Kernel gebootet wurde: Wiederholen der unter »Präparieren des Kernels« genannten Schritte.
-
Danach:
/usr/local/bin/updateNIDrivers
Nachtrag
Per derzeitigem Stand (2016-11-24) gibt es eine Änderung. Die bisher in dem Paket »NIKAL« angebotenen Komponenten (Kernel-Module) sind Bestandteil des Pakets »VISA« geworden. Der Punkt »Installation von ›NIKAL‹« entfällt daher und »Installation von ›VISA‹« muss wie folgt geändert werden:
cd ~/labview
mkdir -p ./mnt
mount ./NI-VISA-16.0.0.iso -r -t iso9660 -o loop ./mnt
cd ./mnt
./INSTALL --no-prompt --accept-license
cd .. ; umount ./mnt
Der Name des iso-Images muss ggf. an die aktuelle VISA-Version angepasst werden. Es lässt sich hier http://digital.ni.com/public.nsf/allkb/EBEAFAC0AED349FE862573A5007731E2 beschaffen.
Desweiteren ist das Umkopieren der Symlinks in /etc/init.d/
aktuell
(2017-01-04, »openSUSE Leap 42.2«) nicht mehr nötig.
Weiterer Nachtrag: Es sieht derzeit (2018-01-29, »openSUSE Leap 42.3«) so aus, dass es nötig ist, zuerst »VISA« und dann »LabView« zu installieren (ggf. »LabView« vorher deinstallieren).