Skip to main content

Running Baofeng DMR CPS on Linux with Wine

How to install and run the Baofeng DMR CPS programming software on Linux using Wine, and connect your radio via USB.

Baofeng’s Customer Programming Software (CPS) is Windows-only, but with a bit of Wine magic you can run it on Linux without a virtual machine. This guide walks through the full process for the DM-32UV and similar Baofeng DMR radios.

What You Need

  • A Linux system with pacman (Arch/Manjaro) — adapt package names for your distro
  • The Baofeng programming USB cable
  • Internet access to download the CPS installer

Step 1 — Install Wine

Wine lets you run Windows executables natively on Linux. Install it along with the Mono runtime (needed for .NET-based installers):

sudo pacman -S wine wine-mono

Debian/Ubuntu users: sudo apt install wine winetricks then winetricks mono if needed.


Step 2 — Download the Baofeng CPS

Go to the official Baofeng download page and grab the latest CPS for your model:

https://www.baofengradio.com/pages/download

The download is a .zip file. Unzip it to find the installer executable inside.


Step 3 — Run the Installer

Navigate to where you unzipped the file and run the installer through Wine:

cd ~/Downloads
wine "CPS DMR Radio Setup v1.45.exe"

You will see some fixme: and err: lines in the terminal — these are normal Wine diagnostic messages and can be safely ignored as long as the graphical installer window opens. Follow the Windows-style installer steps to completion.

The software installs by default to:

~/.wine/drive_c/DMR CPS/CPS DMR Radio V1.45/

Step 4 — Identify Your USB-to-Serial Device

Plug in the Baofeng programming cable and connect it to the radio. Then check which device node Linux assigned to it:

ls -l /dev/ttyUSB* /dev/ttyACM*

You should see something like /dev/ttyUSB0. If nothing appears, check dmesg | tail -20 for the kernel recognising the cable’s chipset (commonly CH340 or Prolific PL2303).

Permission error? Add your user to the dialout (Debian) or uucp (Arch) group:

sudo usermod -aG uucp $USER   # Arch/Manjaro
sudo usermod -aG dialout $USER # Debian/Ubuntu

Then log out and back in.


Step 5 — Map the USB Port to a Windows COM Port

Wine maps COM ports via symlinks inside the Wine prefix. The simplest approach is to link /dev/ttyUSB0 to a COM port name that the CPS will see:

cd ~/.wine/dosdevices
ln -s /dev/ttyUSB0 com33

You can use com1 through com99. Using a higher number like com33 avoids conflicts with any real serial ports the system might already have mapped. Inside the CPS, select COM33 from the port dropdown.


Step 6 — Launch the CPS

cd ~/.wine/drive_c/DMR\ CPS/CPS\ DMR\ Radio\ V1.45/
wine DMR\ CPS.exe

The Baofeng CPS window should open. From here you can read from the radio, edit your code plug, and write it back — all from Linux.


Troubleshooting

Problem Likely cause Fix
No /dev/ttyUSB* appears Cable not recognised Try `dmesg
CPS can’t open the port Wrong COM mapping or permissions Double-check symlink target and group membership
Installer crashes Wine version mismatch Try wine --version; upgrade to 8.x+ or use winetricks to install vcredist
Garbled display Missing fonts Run winetricks corefonts

Further Reading