|
|
Line 1: |
Line 1: |
| <!-- InstallingGRFromSource_on_Raspberry_Pi --> | | <!-- QT_GUI_Chooser.mediawiki --> |
| These instructions have been tested with the <q>Raspberry Pi OS (previously called Raspbian) (32-bit) with desktop and recommended software</q> on a Raspberry Pi 3B+. A 32GB microSD card is recommended.
| | This block creates a variable with enumerated options. The gui widget is implemented as a combo box or radio button group. When the label is left blank, the option will be used as the label. Set the number of options to "list" to enter a single list of options and labels. |
|
| |
|
| == Set up a swap file ==
| | See [[GUI Hint]] for how to position the GUI within your window. |
|
| |
|
| A swap file will improve the compile time greatly.
| | == Example Flowgraph == |
|
| |
|
| <pre>
| | This shows the QT GUI Chooser block and how it looks in the output. |
| sudo fallocate -l 2G /swapfile
| |
| sudo chmod 600 /swapfile
| |
| sudo mkswap /swapfile
| |
| sudo swapon /swapfile
| |
| </pre>
| |
| <p>To make the swap file permanent, add this line to /etc/fstab</p>
| |
| <pre>
| |
| /swapfile none swap sw 0 0
| |
| </pre>
| |
|
| |
|
| == Load prerequisites ==
| | [[File:FunCube_AM_out.png|800px]] |
| | <br><br> |
|
| |
|
| You may have some of these prerequisites already, but it doesn't hurt to get them again and check for the latest versions.
| | <b>Note:</b> <code>Added field for 3.8.1 in July 2020</code> The "Option 0 (Default)" field has been split into two fields: "Default option" and "Option 0". Whereas the old format forced the default value to be entered as Option 0, the new format allows any of the options to be the default value. Here are what the parameters of the Chooser look like before and after: |
|
| |
|
| <pre>
| | [[File:FunCube_AM_prop.png|387px]] [[File:QT_GUI_CHOOSER_prop.png|303px]] |
| sudo apt update --allow-releaseinfo-change
| |
| sudo apt upgrade
| |
| sudo apt install git cmake g++ libboost-all-dev libgmp-dev swig python3-numpy \
| |
| python3-mako python3-sphinx python3-lxml doxygen libfftw3-dev \
| |
| libsdl1.2-dev libgsl-dev libqwt-qt5-dev libqt5opengl5-dev python3-pyqt5 \
| |
| liblog4cpp5-dev libzmq3-dev python3-yaml python3-click python3-click-plugins \
| |
| python3-zmq python3-scipy libpthread-stubs0-dev libusb-1.0-0 libusb-1.0-0-dev \
| |
| libudev-dev python3-setuptools python-docutils build-essential liborc-0.4-0 liborc-0.4-dev
| |
| </pre>
| |
|
| |
|
| == Install UHD from source ==
| | [[Category:Block Docs]] |
| | |
| If you want to use GNU Radio with a USRP, install the UHD package from source using the following instructions.
| |
| UHD sits at the same level as GNU Radio as an independent driver, which gr-uhd references. So if you want gr-uhd enabled, you <b>FIRST</b> must clone and install UHD.
| |
| | |
| For this example, we will start in the home directory to parallel the steps in [[InstallingGR#From_Source]].
| |
| | |
| <pre>cd ~/</pre>
| |
| | |
| Clone the code into your home directory:
| |
| | |
| <pre>
| |
| git clone git://github.com/EttusResearch/uhd.git
| |
| cd ~/uhd
| |
| </pre>
| |
| | |
| <b>Note:</b> In the following command, change <code>v3.15.0.0</code> to some other branch or tag if you want to build a different version.
| |
| <pre>
| |
| git tag -l
| |
| git checkout v3.15.0.0
| |
| </pre>
| |
| | |
| <b>Note:</b> Unlike most build processes, UHD builds under the <code>host</code> directory.
| |
| <pre>
| |
| cd host
| |
| mkdir build
| |
| cd build
| |
| </pre>
| |
| | |
| <b>Note:</b> In the following command, we will use <code>-DCMAKE_INSTALL_PREFIX=/usr/local</code> to install UHD into the same prefix as GNU Radio. When compiling for ARM platforms, the assumption is made that NEON extensions are available if the arm_neon.h header is found. However, for platforms such as Raspberry Pi, one must specify -DNEON_SIMD_ENABLE=OFF in the following command.
| |
| | |
| <pre>
| |
| cmake -DNEON_SIMD_ENABLE=OFF -DCMAKE_INSTALL_PREFIX=/usr/local ../
| |
| </pre>
| |
| | |
| <b>Note:</b> In the following command, if your computer's CPU has multiple cores, you can use the argument <code>-j#</code> to speed compilation; <br> e.g., <code>make -j3</code> will use 3 threads in the build. Specify at least one less than the number of CPU cores so the system does not appear to 'freeze' during the build. If not specified, then a single thread is used for the build; this is not necessarily a bad thing, but it will take roughly 2 times as long to build as using 2 threads, and roughly 3 times as long to build as using 3 threads.<br>
| |
| | |
| <pre>
| |
| make -j3
| |
| make test
| |
| sudo make install
| |
| </pre>
| |
| | |
| If you're running Linux, then always do the following command after installing any library:
| |
| | |
| <pre>sudo ldconfig</pre>
| |
| | |
| You can now download the UHD FPGA Images for this installation.
| |
| <pre>
| |
| sudo uhd_images_downloader
| |
| </pre>
| |
| | |
| On Linux, udev handles USB plug and unplug events. The following commands install a udev rule so that non-root users may access the device.
| |
| <pre>
| |
| cd ~/uhd/host/utils
| |
| sudo cp uhd-usrp.rules /etc/udev/rules.d/
| |
| sudo udevadm control --reload-rules
| |
| sudo udevadm trigger
| |
| </pre>
| |
| | |
| The installation of UHD is now complete. At this point, connect the USRP to the host computer and run:
| |
| <pre>
| |
| uhd_usrp_probe
| |
| </pre>
| |
| | |
| == Install GNU Radio ==
| |
| | |
| <b>The next steps will take two or more hours. Be patient. The terminal does show the progress.</b>
| |
| | |
| Click [[InstallingGR#From_Source]] to go to the install instructions.
| |
This block creates a variable with enumerated options. The gui widget is implemented as a combo box or radio button group. When the label is left blank, the option will be used as the label. Set the number of options to "list" to enter a single list of options and labels.
See GUI Hint for how to position the GUI within your window.
Example Flowgraph
This shows the QT GUI Chooser block and how it looks in the output.
Note: Added field for 3.8.1 in July 2020
The "Option 0 (Default)" field has been split into two fields: "Default option" and "Option 0". Whereas the old format forced the default value to be entered as Option 0, the new format allows any of the options to be the default value. Here are what the parameters of the Chooser look like before and after: