sigrokはオープンソースのロジックアナライザソフトウェアです。色々なOS/ハードウェアに対応していて、うちの作業机にある貧弱なノートPC(Debian)でも動作するので重宝しています。
普通に使う分にはバイナリをダウンロードしてくれば手間もかからずベストですが、apt-getなどでは少し古いバージョンが提供されていることがあります。こういう場合にどうしても新しい機能が使いたいとき、動作がおかしくて特定バージョンが欲しいとき、微妙にツールの機能を弄りたい(あまり無い?)場合はソースコードからビルドする必要があります。
ここでは、sigrokをソースコードからビルドする手順について記載したいと思います。
環境
以下の環境でsigrokのビルドを行いました。ホストOSはWindowsで、仮想マシン上にUbuntuをインストールしています。
- VirtualBox 5.1.4
- Ubuntu 16.0.4.1(64bit)
- sigrok (2016/10/19にgit cloneしたもの)
sigrokのビルド手順
sigrokはマルチプラットフォームで、windows/linux/macosx/androidと様々なプラットフォームで動作します。この記事ではLinuxとWindows環境それぞれで動作する実行ファイルをビルドする手順を記載します。
Linux環境向けビルド
ビルドに必要なライブラリをインストール
まず、以下のページを参考に必要なパッケージをインストールします。
(各モジュール毎に必要パッケージをインストールしているので重複しているものが多々あります)
$ sudo apt-get install git-core gcc make autoconf automake libtool $ sudo apt-get install git-core gcc g++ make autoconf autoconf-archive \ automake libtool pkg-config libglib2.0-dev libglibmm-2.4-dev libzip-dev \ libusb-1.0-0-dev libftdi-dev check doxygen python-numpy\ python-dev python-gi-dev python-setuptools swig default-jdk $ sudo apt-get install git-core gcc make autoconf automake libtool pkg-config libglib2.0-dev python3-dev $ sudo apt-get install git-core gcc make autoconf automake libtool pkg-config libglib2.0-dev $ sudo apt-get install git-core g++ make cmake libtool pkg-config \ libglib2.0-dev libqt4-dev libboost-test-dev libboost-thread-dev\ libboost-filesystem-dev libboost-system-dev libqt5svg5-dev $ sudo apt-get install sdcc
sigrokのビルド
次にsigrok-utilをgitで取得します。
この中にビルドスクリプトが入っていて、これを使用するのが簡単です。
$ mkdir ~/git/sigrok $ cd ~/git/sigrok $ git clone git://sigrok.org/sigrok-util
ビルドスクリプトを実行します。
sigrokのソースコード一式が自動的に取得されbuildが行われます。
$ cd ~/git/sigrok/sigrok-util/cross-compile/linux $ ./sigrok-cross-linux
ビルドしたプログラム一式は、デフォルトではホームディレクトリ直下(~/sr)にインストールされます。
sigrokの実行
~/sr/binに実行ファイルがありますが、そのまま実行するとライブラリパスが通っていない旨のエラーが発生すると思います。以下のようにライブラリパスをコマンドラインで指定してやると動作します。
$ LD_LIBRARY_PATH=~/sr/lib ~/sr/bin/pulseview
Windows環境向けビルド
ビルドに必要なライブラリのインストール
ビルド作業はクロスコンパイラを使ってLinux上で行います。
先ほどLinux環境向けにインストールしたライブラリに加えて、以下のものをインストールします。
$ sudo apt-get install nsis autopoint bison flex gperf intltool libtool scons p7zip-full libgtk2.0-dev libtool libtool-bin
クロスコンパイラ(MXE)の準備
Windows向け実行ファイルをビルドするにはMXEが必要です。
MXEはgitで取得して、sigrok-utilに入っているパッチを当ててからビルドを行います。
(かなり時間がかかります)
MXEをgit cloneときパスは"~/mxe-git"にしてください。ビルドスクリプト内でMXEのパスが指定されているので、ほかの場所に置く場合はスクリプトを書き換える必要があります。また、MXEはビルドしたパスから移動すると動作しません。移動する場合はビルド前にしてください。
$ cd ~/ $ git clone https://github.com/mxe/mxe.git mxe-git $ cd mxe-git $ patch -p1 < ../sigrok/sigrok-util/cross-compile/mingw/mxe_fixes.patch patching file src/libzip.mk Hunk #1 succeeded at 17 (offset -1 lines). patching file src/qt.mk Hunk #1 succeeded at 83 (offset 8 lines). $ make MXE_TARGETS=i686-w64-mingw32.static.posix gcc glib libzip libusb1 libftdi1 glibmm qt boost check
Windows用sigrokのビルド
Linux向けビルドの時と同じようにsigrok-utilにあるスクリプトを実行します。
$ cd ~/git/sigrok/sigrok-util/cross-compile/mingw $ ./sigrok-cross-mingw
ビルドが終わると以下のパスにsigrok一式が格納されているはずです。
~/sr_mingw
これを丸ごとWindows環境に持ってきて、sr_mingw/binの中にある実行ファイルをsr_mingwにコピーして実行すると動作します(Windows10 64bitでpulseviewの起動を確認しました)。
参考
この記事は以下のサイトを参考に記載させて頂きました。
- sigrok - Downloads
https://sigrok.org/wiki/Downloads - sigrok - Building
https://sigrok.org/wiki/Building