sigrokをソースコードからビルドする方法

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_build_ok.png

sigrokの実行

~/sr/binに実行ファイルがありますが、そのまま実行するとライブラリパスが通っていない旨のエラーが発生すると思います。以下のようにライブラリパスをコマンドラインで指定してやると動作します。


$ LD_LIBRARY_PATH=~/sr/lib ~/sr/bin/pulseview

sigrok_demo_device.png

 

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_crosscompile_mingw_done.png

ビルドが終わると以下のパスにsigrok一式が格納されているはずです。

~/sr_mingw

これを丸ごとWindows環境に持ってきて、sr_mingw/binの中にある実行ファイルをsr_mingwにコピーして実行すると動作します(Windows10 64bitでpulseviewの起動を確認しました)。

sigrok_demo_device_windows.png

 

参考

この記事は以下のサイトを参考に記載させて頂きました。

コメントを残す

メールアドレスが公開されることはありません。

This blog is kept spam free by WP-SpamFree.