Difference between revisions of "Linux"
Uwe Hermann (talk | contribs) |
m (Updating ubuntu libsigrok) |
||
(26 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
This page describes how to build/install the sigrok subprojects on Linux. | This page describes how to build/install the sigrok subprojects on Linux. | ||
== | == Binaries == | ||
=== Distribution packages === | |||
Many Linux distributions ship with sigrok packages, see [[Downloads#Binaries_and_distribution_packages|Downloads]]. | |||
If the sigrok packages in your distro are rather old, you can also use the AppImage we provide (see below). | |||
=== AppImage === | |||
We provide AppImages (see [https://appimage.org appimage.org] for details) for [[sigrok-cli]] and [[PulseView]] which make it very easy and convenient to use sigrok on somewhat recent Linux distributions (most distros newer than Ubuntu 16.04 LTS (Xenial Xerus) from around 2016 should work fine). | |||
After downloading the AppImage (see [[Downloads#Binaries_and_distribution_packages|Downloads]]) you can run it by simply making it executable and executing it, for example: | |||
$ '''chmod u+x PulseView-NIGHTLY-x86_64.AppImage''' | |||
$ '''./PulseView-NIGHTLY-x86_64.AppImage''' | |||
You might need to install the libsigrok '''udev rules files''' to be able to access some devices. See ''[[Building#Cannot access USB .2F serial .2F other device|Cannot access USB / serial / other device]]'' for details. | |||
== Building (script, recommended) == | == Building (script, recommended) == | ||
Line 9: | Line 24: | ||
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 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 | The script assumes that you have installed all requirements of all sigrok subprojects. Please check ''[[Building#Build_requirements|Build requirements]]'' for details. | ||
$ '''git clone git://sigrok.org/sigrok-util''' | $ '''git clone git://sigrok.org/sigrok-util''' | ||
Line 15: | Line 30: | ||
$ '''./sigrok-cross-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). | 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]]. | 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]]. | ||
Line 31: | Line 46: | ||
'''Debian/Ubuntu/Mint''' | '''Debian/Ubuntu/Mint''' | ||
$ '''sudo apt-get install git-core gcc make autoconf automake libtool''' | $ '''sudo apt-get install git-core gcc make autoconf automake libtool''' | ||
'''Fedora''' | |||
$ '''sudo yum install git-core gcc make autoconf automake libtool''' | |||
'''Arch''' | '''Arch''' | ||
Line 52: | Line 70: | ||
$ '''sudo apt-get install git-core gcc g++ make autoconf autoconf-archive \''' | $ '''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 \''' | '''automake libtool pkg-config libglib2.0-dev libglibmm-2.4-dev libzip-dev \''' | ||
'''libusb-1.0-0-dev libftdi1-dev | '''libusb-1.0-0-dev libftdi1-dev libieee1284-3-dev libvisa-dev nettle-dev libavahi-client-dev \''' | ||
''' | '''libhidapi-dev check doxygen python3-numpy python3-dev python-gi-dev python3-setuptools-git swig default-jdk''' | ||
'''Fedora (18, 19, 20, 21, 22, 23)''' | '''Fedora (18, 19, 20, 21, 22, 23)''' | ||
$ '''sudo yum install git gcc make autoconf autoconf-archive automake libtool pkgconfig \''' | $ '''sudo yum install git gcc make autoconf autoconf-archive automake libtool pkgconfig \''' | ||
''' glib2-devel libzip-devel libusb1-devel libftdi-devel check-devel doxygen''' | '''glib2-devel libzip-devel libusb1-devel libftdi-devel libieee1284-devel nettle-devel \''' | ||
'''hidapi-devel check-devel doxygen''' | |||
:: For C++ bindings, add '''sudo yum install glibmm24-devel''' | :: For C++ bindings, add '''sudo yum install gcc-c++ glibmm24-devel''' | ||
:: For Python bindings, add '''sudo yum install python-devel numpy pygobject3-devel swig''' | :: 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''' | :: For Fedora 23, you need as well: '''redhat-rpm-config''' and note that '''libusb1-devel''' is now '''libusbx-devel''' | ||
'''Arch''' | '''Arch''' | ||
$ '''sudo pacman -S git gcc make autoconf autoconf-archive automake libtool \''' | $ '''sudo pacman -S git gcc make autoconf autoconf-archive automake libtool \''' | ||
'''pkg-config glib2 glibmm libzip libusb libftdi check | '''pkg-config glib2 glibmm libzip libusb libftdi libieee1284 nettle hidapi check \''' | ||
'''python-setuptools swig jdk8-openjdk''' | '''doxygen python-numpy python-setuptools swig jdk8-openjdk''' | ||
==== Building ==== | ==== Building ==== | ||
Line 84: | Line 103: | ||
<div style="background-color:#ff6666"> | <div style="background-color:#ff6666"> | ||
Please see [[Building#FAQ]] if you are sure that you installed all requirements properly but still encounter some issues. | Please see the [[Building#FAQ|building FAQ]] if you are sure that you installed all requirements properly but still encounter some issues. | ||
</div> | </div> | ||
Line 141: | Line 160: | ||
$ '''sudo apt-get install git-core g++ make cmake libtool pkg-config \''' | $ '''sudo apt-get install git-core g++ make cmake libtool pkg-config \''' | ||
'''libglib2.0-dev libboost-test-dev libboost-serialization-dev \''' | '''libglib2.0-dev libboost-test-dev libboost-serialization-dev \''' | ||
'''libboost-filesystem-dev libboost-system-dev libqt5svg5-dev qtbase5-dev''' | '''libboost-filesystem-dev libboost-system-dev libqt5svg5-dev qtbase5-dev\''' | ||
'''qttools5-dev qttools5-dev-tools''' | |||
'''Fedora (18, 19, 23, 27)''' | '''Fedora (18, 19, 23, 27)''' | ||
Line 161: | Line 181: | ||
==== Troubleshooting ==== | ==== Troubleshooting ==== | ||
See [[PulseView#Building]] for more tips and FAQs. | See the [[PulseView#Building|PulseView build notes]] for more tips and FAQs. | ||
=== SmuView === | |||
==== Installing the [[Building#Build_requirements|requirements]] ==== | |||
'''Debian/Ubuntu/Mint''' | |||
$ '''sudo apt-get install git-core g++ make cmake libtool pkg-config \''' | |||
'''libglib2.0-dev libboost-dev python3-dev libqt5svg5-dev qtbase5-dev \''' | |||
'''libqwt-qt5-dev''' | |||
'''Fedora (18, 19, 23, 27, 32)''' | |||
$ '''sudo yum install git gcc cmake libtool pkgconfig glib2-devel boost-devel\''' | |||
'''python3-devel qt5-qtbase-devel qt5-qtsvg-devel qwt-qt5-devel''' | |||
'''Arch''' | |||
$ '''sudo pacman -S git gcc make cmake libtool pkgconfig glib2 boost \''' | |||
'''python qt5 qt5-base qt5-svg qwt''' | |||
==== Building ==== | |||
$ '''git clone https://github.com/knarfS/smuview''' | |||
$ '''cd smuview''' | |||
$ '''mkdir build''' | |||
$ '''cd build''' | |||
$ '''cmake ../''' | |||
$ '''make''' | |||
$ '''sudo make install''' | |||
==== Troubleshooting ==== | |||
See the [[SmuView#Building|SmuView build notes]] for more tips and FAQs. | |||
== FAQ == | == FAQ == | ||
Line 178: | Line 229: | ||
See [[Building#Cannot_access_USB_.2F_serial_.2F_other_device|here]]. | See [[Building#Cannot_access_USB_.2F_serial_.2F_other_device|here]]. | ||
=== Required library not found === | |||
See [[Building#Required_library_not_found|here]]. |
Latest revision as of 21:52, 10 September 2023
This page describes how to build/install the sigrok subprojects on Linux.
Binaries
Distribution packages
Many Linux distributions ship with sigrok packages, see Downloads.
If the sigrok packages in your distro are rather old, you can also use the AppImage we provide (see below).
AppImage
We provide AppImages (see appimage.org for details) for sigrok-cli and PulseView which make it very easy and convenient to use sigrok on somewhat recent Linux distributions (most distros newer than Ubuntu 16.04 LTS (Xenial Xerus) from around 2016 should work fine).
After downloading the AppImage (see Downloads) you can run it by simply making it executable and executing it, for example:
$ chmod u+x PulseView-NIGHTLY-x86_64.AppImage $ ./PulseView-NIGHTLY-x86_64.AppImage
You might need to install the libsigrok udev rules files to be able to access some devices. See Cannot access USB / serial / other device for details.
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 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 README/INSTALL file (of the subproject you want to build) for the full list of requirements.
libserialport
Installing the requirements
Debian/Ubuntu/Mint
$ sudo apt-get install git-core gcc make autoconf automake libtool
Fedora
$ sudo yum 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 libieee1284-3-dev libvisa-dev nettle-dev libavahi-client-dev \ libhidapi-dev check doxygen python3-numpy python3-dev python-gi-dev python3-setuptools-git 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 libieee1284-devel nettle-devel \ hidapi-devel check-devel doxygen
- For C++ bindings, add sudo yum install gcc-c++ 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 libieee1284 nettle hidapi 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 the 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\ qttools5-dev qttools5-dev-tools
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
See the PulseView build notes for more tips and FAQs.
SmuView
Installing the requirements
Debian/Ubuntu/Mint
$ sudo apt-get install git-core g++ make cmake libtool pkg-config \ libglib2.0-dev libboost-dev python3-dev libqt5svg5-dev qtbase5-dev \ libqwt-qt5-dev
Fedora (18, 19, 23, 27, 32)
$ sudo yum install git gcc cmake libtool pkgconfig glib2-devel boost-devel\ python3-devel qt5-qtbase-devel qt5-qtsvg-devel qwt-qt5-devel
Arch
$ sudo pacman -S git gcc make cmake libtool pkgconfig glib2 boost \ python qt5 qt5-base qt5-svg qwt
Building
$ git clone https://github.com/knarfS/smuview $ cd smuview $ mkdir build $ cd build $ cmake ../ $ make $ sudo make install
Troubleshooting
See the SmuView build notes for more tips and FAQs.
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.
Required library not found
See here.