Запускаем GPSD

Задача - подключить к виртурилке GPS-приёмник и получить координаты в удобоваримом виде с минимальным числом подпрыгиваний на бубне.

Лирическое отступление

Физически соединение, как правило, осуществляется через последовательный порт (RS-232, USB, Bluetooth). Для связи GPS-приёмника с компьютером может использоваться двоичный (текстовый) протокол производителя приёмника (Garmin, Magellan и другие), либо производителя GPS-чипсета (Magellan, Sirf, Trimble и другие), при этом абсолютное большинство GPS-приёмников поддерживают обмен информацией с помощью текстового протокола NMEA.

(ц) википедия

Поддерживать даже часть этого многообразия в своей программе - сложная задача. Но есть практически "серебряная пуля" - GPSD.

Проект GPSD представляет собой набор инструментальных средств для управления коллекциями устройств GPS и другими датчиками, связанными с навигацией и continue.