Skip to content

Raspberry Pi Buster Install

Mark Tomlin edited this page Jul 24, 2019 · 8 revisions

Prologue

  • this is a command issued to the bash prompt. These can be entered at the console or via an SSH session.
  • this is a command / combination from the keyboard.
  • apt is used instead of apt-get for it's much more pleasant presentation to the end user.
  • This is not the "end all, be all" guide, please don't treat it as such. It is written for myself, but shared in hopes that others will find it useful.

Prerequisites

This page assumes the following.

  • You are using a Raspberry Pi 3B+ or 4, anything else probably can't keep up.
  • You have just downloaded the latest version of Raspbian Buster.
  • You have already installed it on the SD Card with something like etcher.
  • You have setup network access to the device by Ethernet or WiFi.
    • Simply plugging in an Ethernet cable will give you network access in most cases.
    • If you only have WiFi network availability.
      • You can do the following as many times as needed for multiple networks
      • (From the console, aka plugged into a TV with a keyboard attached.)
      • sudo raspi-config.
      • Select 2 Network Options and press Enter.
      • Select N2 Wi-fi and press Enter.
      • Please enter SSID and press Enter.
      • Please enter passphrase. Leave it empty if none. and press Enter.
      • Press > and > again to highlight Finish and press Enter.
      • Reboot the Pi with sudo reboot.
  • You are at the console or have secured, enabled and established an SSH session to the device.
    • You can secure your device by changing the default password for pi.
      • sudo raspi-config
      • Select 1 Change User Password and press Enter.
      • You will now be asked to enter a new password for the pi user and press Enter.
    • Enabled SSH
      • sudo raspi-config
      • Select 5 Interfacing Options and press Enter.
      • Select P2 SSH and press Enter.
      • Select Yes to the question Would you like the SSH server to be enabled? and press Enter.

Setup

(It takes about 15 - 30 minutes for this section.)

  • This will get updated information for your system.
  • Upgrade to the latest version of already installed components.
  • Then install new components needed for the building and running of trunk-recorder.
sudo apt update
sudo apt -y upgrade
sudo apt -y install gnuradio gnuradio-dev gr-osmosdr libhackrf-dev libuhd-dev git cmake build-essential libboost-all-dev libusb-1.0-0.dev libcppunit-dev liblog4cpp5-dev libssl-dev autoconf automake libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo zlib1g-dev
git clone https://github.com/mstorsjo/fdk-aac ~/ffmpeg_sources/fdk-aac/
git clone https://github.com/FFmpeg/FFmpeg ~/ffmpeg_sources/ffmpeg/
git clone https://github.com/robotastic/trunk-recorder.git ~/trunk-recorder/

Build

(It takes about an hour and a half to do this with a Class 10 SD Card.)

cd ~/ffmpeg_sources/fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install

cd ~/ffmpeg_sources/ffmpeg
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --pkg-config-flags="--static" --bindir="$HOME/bin" --enable-gpl --enable-libass --enable-libfdk-aac --enable-nonfree
PATH="$HOME/bin:$PATH" make
sudo make install

cd ~/trunk-recorder
cmake .
make

Profile

(It takes about 15 minutes for this section.)

Run the command volk_profile to ensure that VOLK (Vector-Optimized Library of Kernels) uses the best SIMD (Single instruction, multiple data) architecture for your processor.

Configuration

Configure the system.

Run

./recorder

Help and Support

I get a -3 error when using an RTL dongle.

usb_open error -3
Please fix the device permissions, e.g. by installing the udev rules file rtl-sdr.rules
Failed to open rtlsdr device #0.

If you are getting the above error, like I was on the ASUS Tinkerboard, you can fix this by running the following.

git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
sudo reboot

This installs the rtl-sdr.rules file from the Osmocom RTL-SDR source code into your system. It's a fairly quick install and always fixes the underlying problem. Plus you get the updated RTL packages direct from source, so that's a nice bonus.


On the Raspberry Pi 4 I get -7 errors

If you're getting the following ...

Found 2 device(s):
  0:  MimoCAD, MimoSDR, SN: 000005410
  1:  MimoCAD, MimoSDR, SN: 000005411

Using device 0: Generic RTL2832U OEM
Detached kernel driver
rtlsdr_read_reg failed with -7
rtlsdr_write_reg failed with -7
rtlsdr_read_reg failed with -7
rtlsdr_write_reg failed with -7

The fix for this is to upgrade the firmware. That will get around the heat issue with the release firmware on the Raspberry Pi 4 as well as fixing the quirk of the VLI VL805 PCIe to USB controller where the RTL dongles (Of the RTL2838U type) return a -7 error.

  • sudo apt update
  • sudo apt upgrade
  • sudo apt install rpi-update
  • sudo apt dist-upgrade
  • sudo rpi-update
    • When asked press y to confirm you wish to update the firmware and press Enter.