OS X port of the awesome gqrx SDR software [Update 07/01/2013]

A while ago I already managed to compile gqrx on OS X, but then Alexandru Csete decided to move on to a new audio backend called pulseaudio. Sadly there is no proper pulseaudio port for OS X. Thus I bring you my branch of gqrx 2.1 which runs quite well on OS X.

This release bundles all the rtl-sdr, gr-osmosdr, GNU Radio, libUSB, boost and Qt dependencies allowing it to work out of the box. Though feel free to contact me in case you encounter problems. It has been reported to run fine on Snow Leopard (10.6), OS X Lion (10.7), OS X Mountain Lion (10.8) and OS X Mavericks (10.9). Sadly Leopard (10.5) isn’t supported due to Apple breaking binary compatibility on 64bit binaries for some reason.

Download the ready to use DMG/APP here:
gqrx_8.dmg – (07/01/2013) Latest GIT. Some people are reporting FFT issues with this build, in case you encounter those try the one below and leave a comment. (shasum: 66b9f6952aff5cb0bc995556c633b3cc7f5d990e)

Old versions:
gqrx_7.dmg – (02/03/2013) Up to date with GIT. I’ve added a deadlock prevention feature in case your settings keep gqrx from starting up properly. After a crash/forced-close it asks you whether you want to reset all your settings to default. This should help you guys with invalid rtl_tcp settings and the like. I have also fixed rtl_fm to now properly work on OS X (It used to only output noise), as well as multimonNG which now supports umlauts for POCSAG decoding. So check out the bundled command-line utilities! 🙂 (e.g. /Applications/Gqrx.app/Contents/MacOS/rtl_test -t)

gqrx_6.dmg – Latest (01/16/2013) updates from GIT, yet again. This time I also packaged some command-line utilities (multimonNG rtl_adsb rtl_eeprom rtl_fm rtl_sdr rtl_tcp rtl_test) together with Gqrx. rtl_fm seems to be broken on OS X, yet we’re still triaging the bug. It would be great if you could try it and report whether it works for you. (http://kmkeen.com/rtl-demod-guide/index.html) I am considering packaging up the whole of gnuradio including the companion GUI if there is demand.
gqrx_5.dmg (Latest updates from GIT, supports adjusting the FFT resolution which should fix the pink curtain problem. The zoom slider has been removed from upstream, yet you can still zoom by using the mouse wheel on the axes.)
gqrx_4.dmg (GNU Radio component has now been compiled with “-DTRY_SHM_VMCIRCBUF=OFF”, this should hopefully fix the shared memory problem some of you have encountered. Please report whether it works now.)
gqrx_3.dmg (Rebased to the zoom branch. Credit goes to vpelletier for the awesome patch!)

Pan: left-click on X-axis labels & drag horizontally
Pan (alternative): Mouse wheel on X-axis labels, faster pan with Shift held and slower pan with Ctrl held.
Change central frequency: middle-click on X-axis labels & drag horizontally
Zoom: slider on FFT panel

gqrx_2.dmg (Updated gr-osmosdr and fixed a crash when disabling demod.)

The screenshot was taken in direct sampling mode, that’s why I was able to receive 0-2.4mhz. I’ll probably blog about my modded dongle soon.

Software licenses:
GNU Radio


  1. I just took my test today and I got my Tech license — I got into this for the SDR stuff and competing. I want to help you test or do anything I can. Feel free to contact me.

    Thanks for the great work.

  2. i see you have afsk1200 decoder any updates on other multimode-ng implementations
    demod_afsk12.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_afsk24.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_afsk24_2.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_afsk24_3.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_ccir.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_clipfsk.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_display.c Substituted u_int with unsigned int to avoid posix dependencies 5 months ago
    demod_dtmf.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_dumpcsv.c added examples for DUMPCSV 5 months ago
    demod_dzvei.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_eas.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_eea.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_eia.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_fsk96.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_hapn48.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_morse.c FreeBSD fixed 5 months ago
    demod_poc12.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_poc24.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_poc5.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_pzvei.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_ufsk12.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_zvei1.c MORSE_CW demod, integer math and gen-ng 6 months ago
    demod_zvei2.c MORSE_CW demod, integer math and gen-ng 6 months ago

    greetings from belgium

  3. Hi, I tried to install the most recent and the one before that version of GQRX and I am getting a message that it will not run on my type of mac. I don’t understand as ~I thought my machine would be powerful enough for sdr. Maybe it is asking a bit much of my machine but am I doing anything wrong?. It is a 1.83 GHz Dual Core with 2GB of ram. The OS is Snow Leopard. Please let me know if it can. I am pretty new to OSX.

  4. Hi!
    I’ve just started trying to use your port with the NooElec R820T but I received an error message with both versions 7&8.

    I’m running on osx10.9.2 a macbook with 2.7ghz i7processor.
    Here’s the specifics to the application exception:

    Exception Type: EXC_CRASH (SIGABRT)
    Exception Codes: 0x0000000000000000, 0x0000000000000000

    Application Specific Information:
    terminating with uncaught exception of type boost::filesystem::filesystem_error: boost::filesystem::create_directory: Permission denied: “/Users/Zack/.gnuradio”
    abort() called

    hope you can help out as I’d love to try out your port and not have to dualboot

    • Hi Zack,

      Looks like it tries to create a settings/configuration directory and fails due to lack of permissions.
      I suggest to create it manually (“mkdir /Users/Zack/.gnuradio” in Terminal) and make it writable

  5. I’ve had lots of problems using Brew and MacPorts to get working gnuradio. I’m most interested in using gnuradio-companion as I’d like to decode AIS signals. You mentioned in your blog post you’d consider a full package for gnuradio with the companion, can I request that you consider it?

    On a separate note, I am unable to record audio as GQRX crashes each time, and the build you have compiled does not contain the network element as I would quite like to stream the audio to process using aismon on Windows if I cannot find a suitable OSX package.

    Thank you for your contribution, I’m really enjoying toying with SDR

  6. Is there any chance of a bundled build of the latest snapshot?

    I’ve been trying the Macports route with little success, mostly as it breaks the setup I need for work, which is tied heavily to Homebrew, so finding your bundles was great – but the problem I have needs verification on the latest snapshot before I start reporting bugs to Alex.

  7. Yup, spot on – FFT issues within ‘gqrx_8.dmg’.

    With the FFT size held at 4096, any Rate – including 50fps – is ‘happy to-play-ball’ all day long.

    Selecting anything higher than 4096 is only possible by backing the Rate down somewhat.

    (For me, an FFT size locked at the maximum of 16384 – demands that the Rate chosen is no higher than 25fps, and even then it’ll still occasionally lock up. When running an FFT size of 16384, I can only attain a rock-steady-stable-state – with the Rate locked at 20fps.)

    Running Lion v10.7.5 on a MacBook (Late 2007), 2.0GHz Intel Core2 Duo with 2GB 800MHz DDR2 RAM…

    So, I’m gonna ‘nudge another smack of encouragement’ at urging Elias to go ALL-IN!

    C’mon, you know we all want it – give us GNU Radio on OS X…

  8. Date/Time: 2015-01-12 16:12:12 -0600
    OS Version: 10.10.1 (Build 14B25)
    Architecture: x86_64
    Report Version: 21

    Command: gqrx
    Path: /Applications/gqrx.app/Contents/MacOS/gqrx
    Version: ??? (???)
    Parent: launchd [1]
    PID: 314

    Event: hang
    Duration: 2.70s (process was unresponsive for 114 seconds before sampling)
    Steps: 28 (100ms sampling interval)

    Hardware model: MacBookPro9,2
    Active cpus: 4

    Fan speed: 2002 rpm

  9. Using this with Yosemite 10.10.1 it needs the dongle to be plugged in first and then it seems to install correctly. Installing it without the dongle it throws 2 errors and freezes on first run. The trick is to install it again with the dongle plugged in and this seems to help. I have it on 2 Macbook airs 2010 2011 and it works on both

  10. Any ideas how to zoom in on the signals on a macbook? There is no scroll wheel and I’ve spent ages trying to find a way. Same with my iMac which has a touch sensitive mouse. Again no scroll wheel. Don’t understand why there is not a keyboard shortcut or a slider bar.

    • No Mac mouse seems to work with this, and the trackpad is no help. The up/down cursor keys work on highlighted digits, and the left/right ones [or trackpad/mouse] can be used to select the required digit. The solution is simple, although a bit inconvenient: I’m using an ordinary PC USB mouse with scroll wheel, it works fine for me in OS X 10.10.4 Beta [and was also fine in OS X 10.8 and 10.9] on a 2012 MBP 9,1.

      I hope that this helps?

  11. On your trackpad, you should be able to do two-finger scrolling. There is also a scrolling behavior in your touch-sensitive mouse. There are little videos on the system preferences page for each device that will show you how to do this. Whatever you do with them to scroll up and down a web page will work in any program and be indistinguishable from a physical scroll wheel on a mouse.

  12. Hi,
    I’ve been trying to use your port, but it’s been crashing due to an error on the objective C garbage collector.
    The following message is shown:
    Process: Gqrx [29890]
    Path: /Applications/MacPorts/*/Gqrx.app/Contents/MacOS/Gqrx
    Identifier: com.yourcompany.Gqrx
    Version: ??? (???)
    Code Type: X86-64 (Native)
    Parent Process: launchd [250]

    Date/Time: 2015-03-19 17:17:56.952 -0300
    OS Version: Mac OS X 10.7.5 (11G63b)
    Report Version: 9

    Crashed Thread: 0 Dispatch queue: com.apple.main-thread

    Exception Type: EXC_CRASH (SIGABRT)
    Exception Codes: 0x0000000000000000, 0x0000000000000000

    Application Specific Information:
    terminate called throwing an exception
    abort() called
    objc[29890]: garbage collection is OFF

  13. Thanks for the excellent work, Elias.

    Do you have any news about a build based on version 2.3, yet, please? I cannot get it to compile and run from the gqrx.dk website, and don’t know how to correct the errors.


  14. gqrx won’t launch – hangs

    5/20/15 5:34:14.742 PM com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.oneshot.0x10000007.Gqrx[1035]) Service exited due to signal: Killed: 9
    5/20/15 5:34:24.691 PM Gqrx[1042]: WARNING: The Gestalt selector gestaltSystemVersion is returning 10.9.3 instead of 10.10.3. Use NSProcessInfo’s operatingSystemVersion property to get correct system version number.
    Call location:
    5/20/15 5:34:24.691 PM Gqrx[1042]: 0 CarbonCore 0x00007fff89e0b2b7 ___Gestalt_SystemVersion_block_invoke + 113
    5/20/15 5:34:24.691 PM Gqrx[1042]: 1 libdispatch.dylib 0x00007fff90ff1c13 _dispatch_client_callout + 8
    5/20/15 5:34:24.691 PM Gqrx[1042]: 2 libdispatch.dylib 0x00007fff90ff1b26 dispatch_once_f + 117
    5/20/15 5:34:24.691 PM Gqrx[1042]: 3 CarbonCore 0x00007fff89d94456 _Gestalt_SystemVersion + 987
    5/20/15 5:34:24.691 PM Gqrx[1042]: 4 CarbonCore 0x00007fff89d936e3 Gestalt + 144
    5/20/15 5:34:24.691 PM Gqrx[1042]: 5 QtCore 0x00000001012f9ca6 QtCore + 15526
    5/20/15 5:34:24.691 PM Gqrx[1042]: 6 ??? 0x00007fff6f82cceb 0x0 + 140735064231147
    5/20/15 5:35:56.000 PM kernel[0]: process Gqrx[1042] thread 106938 caught burning CPU! It used more than 50% CPU (Actual recent usage: 98%) over 180 seconds. thread lifetime cpu usage 90.012006 seconds, (14.036029 user, 75.975977 system) ledger info: balance: 90002159041 credit: 90003710427 debit: 1551386 limit: 90000000000 (50%) period: 180000000000 time since last refill (ns): 91433104223
    5/20/15 5:35:56.471 PM spindump[554]: Saved cpu_resource.diag report for Gqrx version ??? (???) to /Library/Logs/DiagnosticReports/Gqrx_2015-05-20-173556_TomsiMac.cpu_resource.diag
    5/20/15 5:36:27.835 PM WindowServer[180]: CGError post_notification(const CGSNotificationType, void *const, const size_t, const bool, const CGSRealTimeDelta, const int, const CGSConnectionID *const, const pid_t): Timed out 1.000 second wait for reply from “Gqrx” for synchronous notification type 102 (kCGSDisplayWillSleep) (CID 0x33a07, PID 1042)
    5/20/15 5:37:12.567 PM com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.oneshot.0x10000008.Gqrx[1042]) Service exited due to signal: Terminated: 15
    5/20/15 5:37:14.265 PM spindump[554]: Saved hang report for Gqrx version ??? (???) to /Library/Logs/DiagnosticReports/Gqrx_2015-05-20-173714_TomsiMac.hang


  15. MAX OSX. multimon-ng

    Downloaded the multimon-ng and got to compile. Is there a way to build it ot use the SCOPE or xdiplay? Looks like it is removed? Kind of new to all this SDR and also mac. Not sure if I am not doing something correctly or what can be done etc.

Leave a Reply

Your email address will not be published.