Virtual Radio (SDR) in a Virtual Machine
Introduction
A Software Defined Radio (SDR) is an analog RF amplifier with an A/D converter front end at the physical hardware layer with all of the modulation, demodulation, mixers and filters done in a software layer. [1] I consider this to be a Virtual Radio as do others. [2] The software on the PC that processes the SDR output, such as SDR# and CubicSDR for example, are literally Virtual Instruments. I will describe how to install the RTL-SDR into Windows 7 that has been installed into Oracle VirtualBox, a virtual machine (VM), which has been installed into a Linux operating system as the first software layer over the physical hardware layer or PC.
I run Virtual Machines, because not all software runs on all operating systems and the operating systems change frequently rendering some of the working software applications broken and uninstallable. Every time a new version of an operating system comes out, some applications stop working or abandoned. This also occasionally happens with so called “updates”. The obvious choice is to run Virtual Machines, which circumvents this kind of problem. There is also a security issue that running application on the first software layer exposes the entire machine all the way down to the first physical layer bios to hostile invasion. Virtual Machines are just large files that can be saved, backed up and restored at will. When I create a tuned VM, I save it and only use it when I need that particular set of features. There are many other technical reasons for using an SDR in a Virtual Machine. [3]
The following are instructions on how to set up one particular architecture of Virtual Machines, which includes the RTL-SDR Virtual Radio and various Virtual Instruments at the top layer.
Procedure
- AMD mother board and 8 core CPU
- AMD Vega 56 video card
- Disk One: Kingston SSD 500 GB
- Disk Two: Kingston SSD 500 GB or high speed memory stick
- 32 GB RAM
- Fedora 26 first software layer operating system
- Install Oracle VirtualBox version 5.2.10
- Install Windows 7 into the VM
- Update Windows 7
- Follow the RTL-SDR Quick Startup Guide [4]
Load Fedora 26 onto the first SSD. Although Oracle VirtualBox is also loaded onto the first disk, the Virtual Machine with Windows 7 is created on the second SSD. The Virtual Machine, in preparation for loading Windows 7, should be created with 4 CPU and 16 GB RAM. The second SSD was formatted as NTFS and attached by USB, which makes it portable. I move Virtual Machines around to other hardware software combinations this way all the time. Any version of Linux will see this second drive and make the Virtual Machine available to run.
Step 6 in the list shows Fedora 26. Other Linux systems should work. This particular configuration works without any problems. I avoid loading Oracle VirtualBox onto a Windows system first software layer to run a Windows Virtual Machine on top of it due to problems I have had with some configurations. My Windows 7 VM crashes to a Blue Screen when running on an Oracle VirtualBox loaded onto a Windows 7 first software layer on the same hardware architecture, but not on the Linux system. I personally always run any version of Windows in a VM on top of a Linux first software layer.
The RTL-SDR hardware shown in the image both work without special adjustments. I had installed the driver as specified in the Quick Startup Guide [4] and ran Zadig without incident. The best results are obtained using UWB antennas. The SDR Virtual Radio is a wideband device which accommodates a UWB antenna without special couplers or matching devices. Narrow band antennas frequently have high gain and directionality, depending upon the style, but may require tuning and must be replaced when the frequency band of interest is changed.
My work usually requires a virtual spectrum analyzer, such as Spektrum. It is common to sweep from 800 MHz to 2.5 GHz and beyond. This facilitates discovery of the transmission frequency before switching to either SDR# or CubicSDR. I explore the spectrum first and tune in on a signal of interest for analysis, when I know where it is. I have had to occasionally start either SDR# or CubicSDR first to turn on the SDR before Spektrum would see it.
Conclusion
Setting up a Virtual Radio (SDR) in a Virtual Machine makes transport between PC machines and different operating systems convenient. I can put the Virtual Machine with all of the SDR software on a memory stick, carry it to another location, plug it in and run without any problems. My UWB antennas are very small, so they are also easily transported in a bag or small box. I only need a computer with VirtualBox at the other end and I am good to go.
References
[1] https://en.wikipedia.org/wiki/Software-defined_radio
[2] The Radio Virtual Machine, https://ieeexplore.ieee.org/document/5161197
[3] Virtual Machine for Software Defined Radio: Evaluating the Software VM Approach,
https://ieeexplore.ieee.org/document/5577986
[4] RTL-SDR, Quick Start Guide, https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/
✅ Enjoy the vote! For more amazing content, please follow @themadcurator for a chance to receive more free votes!
Not sure if you are still around but I enjoyed reading this as I've only just started getting interested in SDR. Thanks for sharing.