はじめに
以前wineを使ってLabViewをLinuxで動かす記事を書いたが、
その後Linux版LabViewの試用版が入手できることを知った。
さらに、この試用版はフル機能で評価期間の制限がないらしい。
インストールに幾つかハマリどころがあるのでまとめておく。
Linuxディストリビューション
LabViewはrpmで配付されているので、RHEL系のディストリビューションを使う。今回はCentOS7を使う。
alienを使ってUbuntuにもインストールできたが、Visaドライバのカーネルモジュールのインストールができなかった。
VISAドライバのインストール
VISAのisoをNIのサイトからダウンロードする(要ユーザー登録)
カーネルモジュールを作るので、gccとカーネルソースをインストールしておくこと。カーネルソースは、
kernel-plus-3.10.0-862.el7.centos.plus.src.rpm
のようなパッケージ名である。起動しているバージョンのソースを選んでおくこと。
isoをマウントしてrootでインストールスクリプトを走らせる。
sudo ./INSTALL
ライブラリが足らないと文句を言われたら、32bit版のライブラリ(i686)を追加インストールする。(/lib64ではなく/libの方を見ている)
ライブラリの依存関係が満たされると、Visaのrpmパッケージのインストールがはじまる。
インストールが終わったら、UpdateNIDriversをrootで実行する。
sudo /usr/local/bin/updateNIDrivers
カーネルモジュールのコンパイルが始まる。
しかし、nikalモジュールのコンパイルで失敗するので、ソースを修正する。
/var/lib/nikal/3.10.0-862.el7.centos.plus.i686/nikal/nikal.cを編集する。バージョンに注意。修正は三個所。
return do_munmap(mm, addr, len);
を、
return do_munmap(mm, addr, len, NULL);
と書き換える、また、
#define NLNIKAL_CMD_SEND 1
#define GENL_ID_GENERATE 0
<<追加
static struct genl_family nikal_netlink_family =
と
#ifdef nNIKAL1400_kHasFamilyGenlOpsGroups
//if ((status = genl_register_family_with_ops(&nikal_netlink_family, nikal_n$
<<コメントアウト
#else
//if ((status = genl_register_family_with_ops(&nikal_netlink_family, nikal_n$
<<コメントアウト
#endif
と修正しておく。
再度 sudo /usr/local/bin/updateNIDrivers を実行すると、nikal, nipalk, niorbkなど10個ほどモジュールが作られるはず。
モジュールのコンパイルが終わったら、visaconfを実行して、問題なく起動することを確認する。
LabViewのインストール
Niのサイトからisoをダウンロードし、isoをマウントしてインストールスクリプトを実行すると良い。
LabViewのisoにはMacOS版も含まれている。また、Full development とProfessionalの二つのバージョンがあるが、Professionalでのみ、スタンドアロンのアプリがビルドできる。