GNU/Linux Aviation HOWTO

Flying with GNU/Linux

Nicolas Dufour

John Petterson

This document is intended to provide pointers to software packages that run under GNU/Linux and are usefull to pilots (private, commercial or military), airlines, airports or any actors in the aeronautical domain. I want to encourage everybody to contribute to this document, either by providing pointers to existing software, or by writing new application for GNU/Linux.

Table of Contents
1. Audience
2. Revision History
3. Contributions
4. Feedback
5. Copyright information
1. Flight
1.1. Planning
1.2. GPS
1.3. Soaring
1.4. Analyzis and Logbook
1.5. Weather
2. Airline
3. Airport
3.1. SMS
4. Simulation
4.1. Flight Simulators
4.2. Navigation Helps
4.3. Others
5. Training
5.1. PilotPal
5.2. NeoKit
6. Data sources
6.1. Environment
6.2. Dynamic streams
6.3. Geographic sources
7. Websites and catalogs
A. About the author
B. Used acronyms


The business and sport of aviation is about as mission critical as any human endeavor gets. Pilots have an implicit expectation for their aircraft to be well designed, ergonomic, predictable, reliable, and safe to operate. Certificated aircraft are designed and built to engineering and quality standards that far exceed those of any other consumer product. In my opinion, any computing environment used for aviation related applications should meet similar high standards. I also believe that the open software development model and the GNU/Linux operating system is the computing environment with the greatest potential to meet such high standards.

This document is intended to provide pointers to software packages that run under GNU/Linux and are usefull to pilots (private, commercial or military), airlines, airports or any actors in the aeronautical domain. Most of the software packages mentioned in this release are freely distributable, and come with source code. However, I will gladly include entries for commercial products from any vendors who are GNU/Linux friendly.

My own personal interests center around air traffic flow management since I have worked almost 4 years for Eurocontrol providing simulations to increase the safety and effeciency in the european sky. I wanted to be pilot, but with my color-blindness I have a bit abadon it. I know work for both USA and Europe world of traffic management, and it's exciting to see the difference and the history which created those.

Each of the software pointers in this document consists of a brief description of the software, information on who wrote it, where to find it, and user comments in some cases. In the interest of brevity, I did not include explicit pointers to source code or binaries when they are available through reasonably obvious links on the software's home page.

1. Audience

This document is written for all actors in aeronautic domain : pilots (private or pro), airlines, airports, ATC entities, etc.

2. Revision History

Revision History
Revision 2.22006-09-27Revised by: nd
Updates and new applications added.
Revision 2.12006-03-13Revised by: nd
Updates and new applications added.
Revision 2.02005-05-21Revised by: nd
New release and rewriting of the whole document.
Revision 1.52005-01-15Revised by: jp
Added new entries for the Gpsdrive, GPLIGC, JFlight, and KFlog packages. Five years between updates is rather ridiculous, time to turn this HOWTO over to someone with more time!
Revision 1.42000-10-14Revised by: jp
Added a new entry for the AirLog logbook package. Added some additional references to the section on embedded hardware, as well as a short blurb about the availability of GNU/Linux for the iPaq handheld. Updated the contact information for the author, (new e-mail address).
Revision 1.3Revised by: jp
Added a small section on hardware, mostly pointers to other resources. I also added entries for several newly discovered packages; Gpsd, GPSMan, and JEEPS.
Revision 1.2Revised by: jp
I added some new and more focused application categories. For some of them, I added pointers to other information resources that address issues related to that particular application area, but from a more generic, and non-Linux specific perspective. Also added entries for several newly discovered software packages. I removed the references to the Linux Documentation Project, the maintainers never responded in any way to my request to add this document to the archive?
Revision 1.1Revised by: jp
Added information about the linux-aviation mailing list. Some minor changes in grammar, as well as a whole bunch of corrections to my consistent abuse of punctuation. Thanks to my good friend David Moore for these corrections.
Revision 1.0Revised by: jp
First public release.

3. Contributions

Thanks to John C. Peterson the original author of this document and for his support.

4. Feedback

Missing information, missing links, missing characters? Mail it to the maintainer of this document:

5. Copyright information

This document, GNU/Linux Aviation HOWTO, is copyrighted (c) 2005-2006 by Nicolas Dufour.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at

Linux is a registered trademark of Linus Torvalds.

Java is a registered trademark of Sun Microsystems Inc.

Chapter 1. Flight

1.1. Planning

1.1.1. fplan

The fplan application is designed to assist general aviation pilots in creating flight plans for cross country flights in powered aircraft. It reads a planfile containing a description of the flight: departure and destination airports, navigation aids, intermediate waypoints, winds aloft, fuel consumption rates, and produces a flight plan including wind corrected magnetic headings, distance, estimated time and fuel consumption for each leg, latitude, longitude and VOR fixes for each checkpoint, etc. A graphical preview of the flight is available on systems with X11 Windows and the XView Toolkit.

1.1.2. Flight Navigation Planner

Flight Navigation Planner lets you make flight plans based on known airports, navaids, fixes, or cities. You can use the sectional charts, wacs, or the vector/terrain planning charts. It calculates headings, winds, time, and fuel. It features Airways-based Auto-Routing, Climb and Descent calculations (a/c type based), Fuel Stop Planning, Auto-Route around MOAS and Restricted Airspace, Hi-Res Weather Radar Overlay, Viewing of current sectional, wac, and IFR charts, the ability to see a route over TFRs, detailed nexrad radar overlays over your routes, Terrain Profiles with cloud ceilings, and the ability to upload flight plans to GPS.

1.1.3. FlyWay

Flyway allows the user to find and enter U.S. waypoints (airports, navaids, and fixes), then it calculates courses, wind corrections, and travel times. Information about the waypoints is provided (including frequencies, elevation, fuel availability, and runway descriptions). The route data can also be used to fill in an editable FAA Flight Plan form, fetch basic weather information from the internet, and display a very rough map.

1.1.4. OpenFlyers

OpenFlyers is an aircrafts (airplanes, gliders, ulms, etc.) online booking system opensource for flying clubs and more generally for everyone who need to share one or more aircrafts planification.

This booking system is based on the PHP language and the MySQL database. It is opensource (under GPL licence) and can be freely downloaded.

1.2. GPS

1.2.1. ChartPlotter

ChartPlotter is a Java based moving map program for use with GPS units that support the NMEA communication protocol (the GPGLL sentence). ChartPlotter can be used with user scanned charts saved in JPEG format. The program transforms a latitude, longitude value to a position on the raster image with the help of 2-4 known reference points.

First on the wish list of things to do is a converter program so that we can use charts in the BSB format. As I understand there are such programs around but I need to modify the chartplotter program so that it can read the output from the converting program.

Second on the wish list is to read GSHHS (Global Self-consistant Hierarchical High-resolution Shorelines) found somewere at

  • Author: Rikard and Henrik Bjorkman

  • Latest release: 0.46, September 2005

  • Copyright: GPL

  • Home Page:

  • Roadmap:

    First on the wish list of things to do is a converter program so that we can use charts in the BSB format. As I understand there are such programs around but I need to modify the chartplotter program so that it can read the output from the converting program.

    Second on the wish list is to read GSHHS (Global Self-consistant Hierarchical High-resolution Shorelines) found somewere at

1.2.2. GPSd

gpsd is a service daemon that monitors a GPS attached to a host computer through a serial or USB port, making its data on the location/course/velocity of the sensor available to be queried on TCP port 2947 of the host computer. With gpsd, multiple GPS client applications (such as navigational and wardriving software) can share access to a GPS without contention or loss of data. Also, gpsd responds to queries with a format that is substantially easier to parse than the NMEA 0183 emitted by most GPSes. The gpsd distribution includes a linkable C service library and a Python module that developers of gpsd-aware applications can use to encapsulate all communication with gpsd.

1.2.3. GpsDrive

GpsDrive is a car (bike, ship, plane) navigation system. GpsDrive displays your position provided from your NMEA capable GPS receiver on a zoomable map, the map file is autoselected depending of the position and prefered scale. Speech output is supported if the "festival" software is running. The maps are autoselected for best resolution depending of your position and can be downloaded from Internet. All Garmin GPS reveiver with a serial output should be usable, also other GPS receiver which supports NMEA protocol.

GpsDrive is written in C with use of the GTK+ graphic toolkit and runs with Linux and FreeBSD.

1.2.4. GPSMan

GPS Manager (GPSMan) is a graphical geographic data manager that provides a user friendly graphical environment for the preparation, inspection and editing of waypoint, route and track data for use in GPS receivers. GPSMan supports a variety of derived computations such as distance and bearing from one waypoint to another, course and distance between waypoints in a track, etc. GPSMan can make cartographic maps to scale, using one of several projections with over plotting of waypoint, route and track data. The map can be saved in Postscript format for printing. GPSMan is a stand-alone Tcl/Tk program that was designed for use at home (as opposed to real-time use). GPSMan currently supports communication with both Garmin and Lowrance receivers.

1.2.5. Elgaard Positioning System

The Elgaard Positioning System is a Java based application designed for use with GPS receivers. It provides an interface capability: tracks can be saved from units with NMEA format output. For units that support the proprietary Garmin protocol, EPS can upload and download waypoints, routes, and tracks. It can also display user scanned charts with interactive zooming, scrolling, over plotting of tracks, and can compute distances and speeds. EPS runs on any platform with a JVM compatible with the 1.1 version of the Java API.

1.3. Soaring

1.3.1. GPLIGC

GPLIGC is an application licensed under the GNU General Public License for the analysis of IGC data files, such as those produced by the GNSS flight data recorder. (Downloading of the data from logger devices and/or conversion to IGC format has to be done with other software). GPLIGC can compute a variety of statistics such as thermal climb rates and glide ratios. Plotting of raw data or derived statistics is done through the Gnuplot application.

Also included in the distribution is openGLIGCexplorer, an openGL application for visualization of flight tracks in 3 dimensions against a shaded terrain map (assuming digital elevation data is available).

1.3.2. IGCview

IGCview is a Java application designed for soaring pilots who want to display and analyze GPS log files in the FAI IGC or Gardown formats. Both formats contain simple ASCII records of time stamped latitude and longitude values. The IGC format also contains altitude information (pressure and/or GPS) and the task (route). IGCview can also import Gardown format files and export them in IGC format.

The program is oriented wholly towards looking at the GPS log traces produced by glider flights. You can examine other traces, but the analysis will not be particularly useful. It can compute quantities such as: start to finish, average task and individual leg speeds, climb rates, L/D, etc. It can also read and compare multiple flights in detail making it a very useful learning tool for cross country and competition oriented soaring pilots.

1.3.3. JFlight

JFlight is a Java based application developed for Hang-glider and Para-glider pilots to assist with pre-flight task planning and post-flight analysis of GPS, Barogram, Vario data. (It should prove useful to full scale glider pilots as well). The flightbook feature provides a mechanism for waypoint and route management. Flight tracks can be viewed on a simple display.

1.3.4. KFLog

KFLog is an OpenSource program aimed at glider pilots. It gives You a powerfull tool to plan You flight tasks and analyse Your flights afterwards.

KFLog is the only flight analyser program available for GNU/Linux to be recognized by the FAI IGC.

KFLog projects the flights on a digital vectormap, that contains not only airfields and airspaces, but a complete elevation-map, roads, cities, rivers, and lots of other interesting objects.

1.4. Analyzis and Logbook

1.4.1. Airlog

Airlog is a flight logging system designed to meet the unique needs of glider pilots and students. The Java based client allows multiple users to access a common database (interface drivers are provided for the Instant DB, PostgreSQL, and Oracle database systems). Referential integrity is used to insure valid data. When multi user functionality is enabled, user access to the common database is authenticated using a login, password form that is presented at startup.

Airlog also supports searches of the common database, as well as a report generation capability. The "Training Barometer" and "Speed Input" reports are designed to assist both instructors and students in the training process. A "Fit for Flight, Instruction" report is planned for a future release.

Airlog was developed in Denmark with an emphasis on Danish regulations, but was localized from the ground up. Other languages can be supported by simply providing a "message text catalog" for the desired language (catalogs are provided for both Danish and English).

1.5. Weather

1.5.1. pyRadar

pyRadar is retrieves and displays radar images from NOAA's NEXRAD radar stations, which are located around the United States and its territories. These images are released into the public domain on behalf of the American public.

1.5.2. WeatherCheck

WeatherCheck is a program that uses Java Swing to prompt for a US zip code and display the local forecast from the National Weather Service. It also provides the extended forecast and dBZ radar information.

Chapter 2. Airline

To be completed.

Chapter 3. Airport

3.1. SMS

The Surface Management System (SMS) increases shared situational awareness of airport surface operations between the Air Traffic Control Tower (ATCT), the Ramp Tower, the air carriers that operate at an airport, and the various airport authorities and other ATC facilities. By increasing situational awareness and providing tools for airport surface traffic management, SMS improves the efficiency and flexibility of airport surface operations.

Chapter 4. Simulation

4.1. Flight Simulators

4.1.1. FlightGear

The FlightGear flight simulator project is an open-source, multi-platform, cooperative flight simulator development project. Source code for the entire project is available and licensed under the GNU General Public License.

The goal of the FlightGear project is to create a sophisticated flight simulator framework for use in research or academic environments, for the development and pursuit of other interesting flight simulation ideas, and as an end-user application.

4.1.2. X-Plane

X-Plane is a flight simulator that reads in the geometric shape of any aircraft and then figures out how that aircraft will fly. It does this via an engineering process called "blade element theory", which involves breaking the aircraft down into many small elements and then finding the forces on each little element many times per second. These forces are then converted into accelerations, which are then integrated to velocities and positions. This gives X-Plane the most realistic flight model available for personal computers.

4.1.3. JSBSim Flight Dynamics Model

JSBSim is an object-oriented (C++), multi-platform, 6-DOF, Flight Dynamics Model (FDM). It can be run as a standalone, batch-mode flight simulator (no graphical displays), or integrated with FlightGear or other flight simulator.

4.1.4. IFT

IFT is a small flight simulator written for the purpose of training pilots not experienced in instrument flight. It includes a couple of VOR and NDB stations and displays. These can be used to exercise basic radio navigation skills.

It's made and tested on GNU/Linux, but it should work on all Unices, since all it uses is the X11 library.

4.2. Navigation Helps

4.2.1. Atlas

Atlas aims to produce and display high quality charts of the world for users of FlightGear, an open source flight simulator. This is achieved through two main parts: The map creator (simply called Map) and the Atlas viewer.

4.2.2. OpenGC

OpenGC is a multi-platform, multi-simulator, open-source C++ tool for developing and implementing high quality glass cockpit displays for simulated flightdecks. Our goal is simple: support all widely available flight simulators, all widely available operating systems, and provide a selection of gauges that mirrors the diversity of interests within the flightsimming community. I hope you enjoy OpenGC, and encourage you to contribute in any way possible!

4.2.3. A340GC

The Glass Cockpit Library (libGC) is created for the Airbus A340 Glass Cockpit (a340gc) which is an Open Source project. The a340gc project is part of the Airbus A340 simulator project of the IRADIS Foundation. The goal of libGC and a340gc is to create a free framework that can be used to build a glass cockpit upon.

This is only a part of a bigger project carried by Iradis to create a realistic A340 cockpit with a full view. See this website for more details.

4.3. Others

4.3.1. Tim's Air Navigation Simulator

This is a Java applet that simulates the operation of ADF and VOR instruments. A canvas shows the position of a hypothetical aircraft and two ground based navigational aids, (which can be dragged to arbitrary positions with the mouse). The instrument display shows what the pilot would see in the corresponding situation. The applet code is available for download if you want to install it on your own machine.

Chapter 5. Training

5.1. PilotPal

PilotPal is a Java applet designed to assist (student) pilots studying for the US FAA written examinations. The latest version provides study questions for both the Private Pilot and Instrument examinations. If you don't have a high bandwidth connection to the Internet, you may want to download the applet and install it on your own machine.

5.2. NeoKit


  • NeoKit � is a Computer Based Training environment dedicated to initial training to Air Traffic Control and Management software,

  • The NeoKit � tools covers the whole training cycle: scenarios preparation, dynamic and interactive training with Record and Replay capabilities and customizable reporting tool for analysis and debriefing,

  • NeoKit � is developped on the Java platform environment and is so fully interoperable on any operating system (GNU/Linux, Windows, etc.),

  • Specific plugins dedicated to other Business Domain (e.g. Marine, Military) are easy to develop through the complete set of the Java APIs of NeoKit �.


  • Computer Based Training tool.

  • Lightweight ATC and ATM simulation platform.

  • Distributed event-based discret simulation engine.

  • MCQ-SQC dialog engine.

  • Custom reporting for trainee progress tracking.

  • Java based.

  • XML data input and output.

Chapter 6. Data sources

Data sources are of course more important that the tools you can use. And specially the quality of those data.

We can classify two big types of data here :

Usually, the second type is computed with the help of the first one, so it's very important to take care of the accuracy of the environment data : right geographic location (lat,long), up-to-date semi-static data according to an activity (current capacity of an airport), or even new performance data for a new aircraft.

6.1. Environment

6.1.1. DAFIF

The Digital Aeronautical Flight Information File (or DAFIF) is a set of files that contain data on airports, navaids, waypoints, special use airspace and other facts relevant to flying in the entire world. This data is provided by the US military, through the National Geospatial Intelligence Agency (NGA), and is primarily developed for the benefit of military aeronautical operations, but was made available to the general public.

Except for the United States, which is also covered by data provided by the FAA, it is usually the ONLY comprehensive digital data available for pilots. Other countries either don't provide digital data at all, or they do it through a proprietary web interface or in non-reusable formats (like PDF files of scans of paper documents). Even within the US, there is data that is available in the DAFIF which is not in the FAA data. For instance, the database generators use the DAFIF data to find ICAO identifiers for airports in Alaska, Hawaii, Puerto Rico and other places where there 3 letter FAA id is not enough data to generate the ICAO id.

Attention! This source will be removed at october 2006 of the public access for several reasons. Look here for more details and support the existence of DAFIF. You can also help creating a replacement solution here.

6.2. Dynamic streams

6.2.1. LiveATC

This site was launched as a resource for those who enjoy listening to live Air Traffic Control (ATC)...aviation enthusiasts, student pilots, student air traffic controllers, flight simulation enthusiasts, FBO operators, airline operators, and anyone with an interest in aviation communications.

A good site to listen, discover and perhaps also learn the language. They propose several live feeds in USA, Canada, Mexico, Europe, Australia, Columbia, or even Dutch caribean !

6.3. Geographic sources

To be completed.

Chapter 7. Websites and catalogs


This new website is designed to maintain an up-to-date list of opensource projects for the aeronautic world, and help the maintenance of the this current howto.

Appendix A. About the author

I was born in 1973 in the little town of Mont St. Aignan near Rouen in Normandie (France). I grow up in the south of Ile-de-France (region near Paris) surrounded by wheat and corn fields :-) and a sugar factory where I used to walk in it, smelling and eating sugar.

Always attracted by sciences and particularly geology, I got a degree (BA) of Geophysic/Geochemistry and try to get the next degree but fall back to another direction : computer science. I got my master of computer science applied to geosciences in 1998 at Paris.

I got my first job at Eurocontrol and it changes a lot my life. Even if I worked for Schlumberger for 6 months (big oil service company), I now work for 6 years for a little french company (Neometsys) in aeronautic.

Appendix B. Used acronyms

Used acronyms in the current document and explanations.




Automatic Direction Finder

Navigation instrument that receives and interprets the NDB signal.


Air Traffic Control


Air Traffic Management



BSD license

See here for details.



Federal Aviation Administration

See here for details.



GNU Public License

See here for details.



Non-Directional Beacon



Very-high-frequency Omni Range

Beacon very usefull to navigation.