fmtools is a pair of simple command-line utilities for “video4linux2” radio tuner cards under Linux. It includes fm
for power control, tuning, and volume and fmscan
for scanning for stations. They are quite simple and only implement the basic functions needed to control your devices. Other programs exist with much nicer interfaces. If you want simplicity, this is where to look.
fm
handles basic on/off, tuning, and volume changes for v4l radio cards. There is also a quiet mode to allow it to run inside IRC scripts and other programs without disrupting the display.
fmscan
by default scans from 87.9 to 107.9 MHz in 0.2 MHz increments, looking for stations that have an average signal strength of 50% or greater.
These programs are supposed to provide a simple and consistent interface to the v4l radio cards. All of the code is covered under the GNU GPL v2, so you can use it as a base in other GPL projects.
fmtools and most of the text of this webpage is currently maintained by Ben Pfaff. fmtools was originally written by Russell Kroll.
You may clone the fmtools Git repository from git://repo.or.cz/fmtools.git. Gitweb access is available at: http://repo.or.cz/w/fmtools.git.
2.0.8: source, signature.
Orphan Debian package and update packaging in minor ways. Released 13 Dec 2020.
2.0.7: source, signature.
Add files mistakenly omitted from 2.0.6 release. Released 21 Sep 2013.
2.0.6: source, signature.
Work with tuners that do not support V4L2_CID_AUDIO_VOLUME. fmscan: Print frequency values to full precision. Released 14 Sep 2013.
2.0.2 through 2.0.5: Debian packaging updates only. See the Git repository for details.
2.0.1: source, signature.
Important bug fixes for 2.0, plus packaging, and minor user interface improvements. Released 9 Jan 2010.
2.0: source, signature.
Rewrite to use video4linux2 API. Add “-q” (quiet) and “-T” (tuner) options to fmscan. Improve fmscan frequency calculations. It should now be better at accurately finding radio stations. Add Autotest test suite and, in the process, convert the packaging to use Autoconf and Automake. Some code and some documentation used a range of 0-65535 for volume, other code and other documentation used a range of 0-100. This has been consistently changed to 0-100. Released 13 Dec 2009.
1.0.2: source, signature.
Fix version number reported by fm and fmscan, and version number in manpages. No functional changes. Released 23 Nov 2006. (Note: the links here incorrectly pointed to fmtools 1.0.1 until 7 July 2007.)
1.0.1: source, signature.
Makes fm able to sleep for a user-specified time, or forever, after applying settings. This makes fm usable with radio tuner drivers that turn off the radio after the fd used for tuning is closed. Idea and patch from Dave Ulrick. Released 7 Oct 2006.
1.0: source, signature.
Integrates Debian packaging. Makes fmscan
threshold configurable from command line. Uses videodev.h
header detached from kernel to avoid including kernel headers. First release by Ben Pfaff. Released 3 Sept 2004.
0.99.1: source.
Adds man pages. Volume balancing fixes. Improved Makefile. Fixed rounding. Minor code tidying. Released 16 Aug 2002.
0.99.0: source.
Code cleanups. Supports multiple radio cards. Reworked fmscan logic and made easier to change via #defines. Released 3 Feb 2001.
0.2.5: source.
Adds tuner selection with -t
option for ADS Cadet AM tuning. Released 12 Apr 1999.
0.2.4: source.
Added devices
target in Makefile. Set default radio device to /dev/radio0
. Added fmscan
. Small code cleanups. Released 3 Feb 1999.
tkradio: source.
Matt Willis contributed this Tcl/Tk wrapper for fmtools. The stations are currently hard coded, but it is easy to change with a simple text editor. The code is released under the GPL, so go ahead and hack on it to make it do other neat things if you feel like it.
tkradio-mute: source.
James Smith sent along this patched version of tkradio that adds a mute feature.
VintageRandio: Sato Ichi's GUI front-end to the fm command.
fmcontrol: Adrian Lester created this script that tunes by name and looks up both the station's frequency and an offset volume value from a config file.
QRadio: Peter van Eerten's toos that uses fmtools to control things in a graphical manner.
Web-based interface for fmtools by Vital Man'ko.
Cajun: The underlying FM tuner in Cajun is also derived from fmtools.
LinuxCar: Uses fmtools for radio control.