How to Calibrate RTL-SDR using Kalibrate-RTL on Linux

YouTube user NeedSec has posted a good tutorial video showing how to use Kalibriate-RTL, a program used to determine the frequency offset error of your RTL-SDR dongle. Every RTL-SDR dongle will have a small frequency error as it is cheaply mass produced and not tested for accuracy.  This frequency error is linear across the spectrum, and can be adjusted in most SDR programs by entering a PPM (parts per million) offset value.

Kalibrate is a Linux program that uses GSM mobile cell phone base stations to determine the PPM offset, by using the GSM signals own frequency correction bursts. See the tutorial video below.

Calibrate RTL-SDR with Mobile Phone or Cell Towers – How to Fix Frequency Offset


  1. Pingback: ARFCN tool, Kalibrate tool and others – setup | [ADS-B aeronautical radar - Initial page] & [GSM cracking] (RTL-SDR concept)!!!
  2. Pingback: The big GSM write-up – how to capture, analyze and crack GSM? – 4. | Going on my way…
  3. Pingback: The big GSM write-up – how to capture, analyze and crack GSM? – 2. | Going on my way…
  4. arbartz

    So after some trial and error I got Kalibrate to build and install on my RaspberryPi. But when ever I try to do anything with kalibrate I get the following error:

    pi@raspberrypi ~/kalibrate-rtl $ kal -s 900
    shmat: Invalid argument
    terminate called after throwing an instance of 'std::runtime_error'
    what(): circular_buffer: shmat
    pi@raspberrypi ~/kalibrate-rtl $

    Any help would be much appreciated.

  5. Gethin


    kal requires fftw3 and version 3.2 or higher of libusrp. kal also requires a USRP and daughterboards appropriate for the desired GSM frequency band. An external clock is not required; kal can also calculate the offset of the built-in USRP clock.

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>