I had a go with AgOpenGPS and AgIO on Ubuntu for my Surface Pro.
I got most working, but AgOpenGPS dit not get the WAS signal. (AgIO did)
Not sure if all steps are needed, but this is what I did.
Please add info if someone fixed the was-problem
Wrapup by Claude:
Running AgOpenGPS 6.8.1 on Ubuntu Linux – Complete Guide
This guide documents how to run AgOpenGPS on Ubuntu Linux using Wine. It took considerable effort to get working, and the key findings are documented here to help others.
Prerequisites
- Ubuntu 24 (x86-64)
- AOG board connected via ethernet (192.168.5.x subnet)
- WiFi used separately for NTRIP/RTK
Wine Installation
Do not use Ubuntu’s own wine package. Install WineHQ’s official version:
sudo dpkg --add-architecture i386
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/$(lsb_release -sc)/winehq-ubuntu.list
sudo apt update
sudo apt install --install-recommends winehq-stable
Wine Prefix and dotnet
AgOpenGPS.exe is 64-bit, AgIO.exe is 32-bit. AOG launches AgIO automatically, so you only need one 64-bit prefix:
WINEPREFIX=~/aog64 WINEARCH=win64 wineboot
WINEPREFIX=~/aog64 WINEARCH=win64 winetricks dotnet48 corefonts
Network Permissions for Wine
Wine needs capabilities to open UDP sockets. Without this, AgIO will fail with “Access denied” on socket bind and UDP will not work:
sudo setcap cap_net_raw,cap_net_bind_service,cap_net_admin+eip $(find /opt/wine-stable -name "wine-preloader" | grep x86_64)
sudo setcap cap_net_raw,cap_net_bind_service,cap_net_admin+eip /opt/wine-stable/bin/wine
Note: Wine may be installed in a different location. Check with:
find /opt -name "wine-preloader" 2>/dev/null
which wine
Wine Hosts File
Wine has its own hosts file that needs to be updated with your hostname. Without this, AgIO will repeatedly try to resolve the hostname via DNS and may fail to communicate internally:
HOSTNAME=$(hostname)
echo "127.0.0.1 localhost" >> ~/aog64/drive_c/windows/system32/drivers/etc/hosts
echo "127.0.0.1 ${HOSTNAME}.home" >> ~/aog64/drive_c/windows/system32/drivers/etc/hosts
echo "127.0.0.1 ${HOSTNAME}" >> ~/aog64/drive_c/windows/system32/drivers/etc/hosts
Starting AOG
WINEPREFIX=~/aog64 WINEARCH=win64 wine /path/to/AgOpenGPS.exe
AOG will automatically launch AgIO. You do not need to start AgIO manually.
Critical AgIO Setting – The Key Fix
This is the single most important setting for Linux. Without it, GPS data flows correctly between the board and AgIO, but nothing reaches AOG.
In AgIO, find the Linux loopback address setting and set it to:
127.0.0.1
The default value 127.255.255.255 does not work on Linux. Here is why:
AOG listens for incoming data on 127.0.0.1:15555. AgIO by default sends to the broadcast address 127.255.255.255. On Linux, the loopback interface does not deliver broadcast packets to a unicast socket. This was verified with tcpdump – packets were clearly flowing from AgIO (127.0.0.1:17777) to 127.255.255.255:15555, but AOG never received them.
Setting the loopback address to 127.0.0.1 makes AgIO send directly to AOG’s unicast address, and everything works.
This explains the well-known symptom on Linux where AgIO shows GPS data (lat/lon visible, green modules) but AOG shows “No GPS Warning – Lost GPS” continuously.
What Works
AOG launches and runs
AgIO launches automatically from AOG
UDP communication with AIO/PANDA board over ethernet
GPS fix and position in AOG
Tractor moves on the map
Known Issues (as of version 6.8.1)
WAS/steering angle does not reach AOG – likely the same loopback broadcast issue affecting steer packets. Brian confirmed this behavior in an earlier forum post but it remains unsolved.
RateController cannot find AOG
ScanNetwork() gives Access denied errors in AgIO log – harmless, does not affect operation
Notes
- The
ScanNetwork()Access denied errors appear periodically in the AgIO log. These are harmless – AgIO communicates fine with the board despite these errors. - Tested on WineHQ stable 9.x with dotnet48 on Ubuntu 24.
- If anyone finds a fix for WAS/steering angle not reaching AOG, please post it here.