Difference between revisions of "Linux"
(explicitly link from Linux to Building FAQ) |
Uwe Hermann (talk | contribs) (Mention sigrok-cross-linux.) |
||
Line 5: | Line 5: | ||
See [[Downloads#Binaries_and_distribution_packages|Downloads]]. | See [[Downloads#Binaries_and_distribution_packages|Downloads]]. | ||
== Building == | == Building (script, recommended) == | ||
The most convenient method to build all of the sigrok subprojects from source is to use the '''sigrok-cross-linux''' script from the [https://sigrok.org/gitweb/?p=sigrok-util.git;a=tree;f=cross-compile/linux sigrok-util] repo. Despite the name, this script also does native builds out of the box. | |||
The script assumes that you have installed all requirements of all sigrok subprojects, please check [[Building#Build_requirements]] for details. | |||
$ '''git clone git://sigrok.org/sigrok-util''' | |||
$ '''cd sigrok-util/cross-compile/linux''' | |||
$ '''./sigrok-cross-linux''' | |||
This will download the current git version of all required sigrok subprojects and build them, installing the results in '''$HOME/sr'''. You may want to check out the '''README''' and/or adapt the script to your needs (e.g. if you want to install elsewhere). | |||
You can use the files from '''$HOME/sr''' using (for example) the [[Building#Installing_to_a_non-standard_directory_using_LD_LIBRARY_PATH|LD_LIBRARY_PATH method]]. | |||
== Building (manually) == | |||
<div style="background-color:#ff6666"> | <div style="background-color:#ff6666"> |
Revision as of 10:14, 30 September 2018
This page describes how to build/install the sigrok subprojects on Linux.
Distribution packages
See Downloads.
Building (script, recommended)
The most convenient method to build all of the sigrok subprojects from source is to use the sigrok-cross-linux script from the sigrok-util repo. Despite the name, this script also does native builds out of the box.
The script assumes that you have installed all requirements of all sigrok subprojects, please check Building#Build_requirements for details.
$ git clone git://sigrok.org/sigrok-util $ cd sigrok-util/cross-compile/linux $ ./sigrok-cross-linux
This will download the current git version of all required sigrok subprojects and build them, installing the results in $HOME/sr. You may want to check out the README and/or adapt the script to your needs (e.g. if you want to install elsewhere).
You can use the files from $HOME/sr using (for example) the LD_LIBRARY_PATH method.
Building (manually)
IMPORTANT: The following sections on installing build requirements are distro-specific examples and may or may not be out of date, depending on which distro you use. Please check the official build requirements list in the wiki or the current libsigrok README for the full list of requirements.
libserialport
Installing the requirements
Debian/Ubuntu/Mint
$ sudo apt-get install git-core gcc make autoconf automake libtool
Arch
$ sudo pacman -S git gcc make autoconf automake libtool
Building
$ git clone git://sigrok.org/libserialport $ cd libserialport $ ./autogen.sh $ ./configure $ make $ sudo make install
libsigrok
Installing the requirements
Debian/Ubuntu/Mint
$ 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 libftdi1-dev check doxygen python-numpy \ python-dev python-gi-dev python-setuptools swig default-jdk
Fedora (18, 19, 20, 21, 22, 23)
$ sudo yum install git gcc make autoconf autoconf-archive automake libtool pkgconfig \ glib2-devel libzip-devel libusb1-devel libftdi-devel check-devel doxygen
- For C++ bindings, add sudo yum install glibmm24-devel.
- For Python bindings, add sudo yum install python-devel numpy pygobject3-devel swig.
- For Fedora 23, you need as well: redhat-rpm-config and note that libusb1-devel is now libusbx-devel.
Arch
$ sudo pacman -S git gcc make autoconf autoconf-archive automake libtool \ pkg-config glib2 glibmm libzip libusb libftdi check doxygen python-numpy \ python-setuptools swig jdk8-openjdk
Building
$ git clone git://sigrok.org/libsigrok $ cd libsigrok $ ./autogen.sh $ ./configure $ make $ sudo make install
Device access
Please read this FAQ entry for any extra steps you may need to take to get your specific device working.
Please see Building#FAQ if you are sure that you installed all requirements properly but still encounter some issues.
libsigrokdecode
Installing the requirements
Debian/Ubuntu/Mint
$ sudo apt-get install git-core gcc make autoconf automake libtool pkg-config libglib2.0-dev python3-dev
Fedora (18, 19, 20)
$ sudo yum install git gcc make autoconf automake libtool pkgconfig glib2-devel python3-devel check-devel
Arch
$ sudo pacman -S git gcc make autoconf automake libtool pkgconfig glib2 python check
Building
$ git clone git://sigrok.org/libsigrokdecode $ cd libsigrokdecode $ ./autogen.sh $ ./configure $ make $ sudo make install
sigrok-cli
Installing the requirements
Debian/Ubuntu/Mint'
$ sudo apt-get install git-core gcc make autoconf automake libtool pkg-config libglib2.0-dev
Fedora (18, 19)
$ sudo yum install git gcc make autoconf automake libtool pkgconfig glib2-devel
OpenSuse
$ sudo zypper install git gcc make autoconf automake libtool pkgconfig glib2-devel
Arch
$ sudo pacman -S git gcc make autoconf automake libtool pkgconfig glib2
Building
$ git clone git://sigrok.org/sigrok-cli $ cd sigrok-cli $ ./autogen.sh $ ./configure $ make $ sudo make install
PulseView
Installing the requirements
Debian/Ubuntu/Mint
$ sudo apt-get install git-core g++ make cmake libtool pkg-config \ libglib2.0-dev libboost-test-dev libboost-serialization-dev \ libboost-filesystem-dev libboost-system-dev libqt5svg5-dev qtbase5-dev
Fedora (18, 19, 23, 27)
$ sudo yum install git gcc cmake libtool pkgconfig glib2-devel \ boost-devel qt5-devel
Arch
$ sudo pacman -S git gcc make cmake libtool pkgconfig glib2 boost qt5 \ qt5-base qt5-svg
Building
$ git clone git://sigrok.org/pulseview $ cd pulseview $ cmake . $ make $ sudo make install
Troubleshooting
When building pulseview from the repository, make sure to install libsigrok and libsigrokdecode by building them from source too. Building the newest pulseview with outdated libraries (forked GH repositories, debian/ubuntu packages, etc) may cause errors like these to show up when running cmake.
CMake Error at CMakeLists.txt:86 (message): libsigrok C++ bindings missing, check libsigrok's 'configure' output (missing dependencies?)
CMake Error at /usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:415 (message): A required package was not found Call Stack (most recent call first): /usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:588 (_pkg_check_modules_internal) CMakeLists.txt:83 (pkg_check_modules)
To make sure the dependencies are installed, you can use the following (Devuan/Debian/Ubuntu):
$ sudo pkg-config --list-all | grep <dependency package name>
To check the installed version, use:
$ sudo pkg-config --print-provides <dependency package name>
Hint: If something goes wrong, you can see what make is doing by running:
$ make VERBOSE=1
FAQ
Make sure to also see the Building FAQ for subjects that are not specific to Linux.
See here.
TEST FAILED: .../lib/python2.7/site-packages/ does NOT support .pth files
See here.
Cannot access USB / serial / other device
See here.