Getting specialized amateur radio software to work on Linux can be a challenge, especially when dealing with sandbox environments and USB-to-serial port permissions.
This guide walks you through setting up the Yaesu FTM-100D ADMS-9 programming software on Linux using Bottles via Flatpak, including how to bypass security memory blocks and successfully map your USB programming cable.
This was done on AlmaLinux 9.4
Step 1: Install Bottles via Flatpak
If you don’t already have Bottles installed, open your terminal and install it from Flathub:
flatpak install flathub com.usebottles.bottles
Step 2: Grant Hardware and Sandbox Permissions
Because Bottles runs inside a Flatpak sandbox, it needs explicit permission to access your USB-to-serial programming cables and your computer’s filesystem.
Run these commands in your terminal:
# Allow Bottles to access all hardware devices (USB/Serial cables)sudo flatpak override com.usebottles.bottles --device=all# Allow Bottles to read files from your host system (e.g., your Downloads folder)flatpak override com.usebottles.bottles --filesystem=host
Step 3: Fix the SELinux Memory Block (Risky but I had to do it)
If you are on a distribution that enforces strict security layers (like Fedora, RHEL, or openSUSE), SELinux will actively block Wine from executing vital system files (like ntdll.dll), resulting in a noexec filesystem crash.
To fix this permanently, run the following command to allow Wine inside your sandbox to handle memory mapping correctly:
sudo setsebool -P selinuxuser_execmod 1
(Note: This might take a few seconds to process as the -P flag ensures the change survives system reboots). I’m still looking into this to see if there is a more fine-grained approach.
Step 4: Create a Windows Container in Bottles
- Open Bottles from your application menu.
- Click the “+” button (or Create Bottle).
- Name your bottle something clear, like
ADMS9. - Select Application as the Environment type.
- Click Create and wait a moment for the environment to generate.
Step 5: Run the Installer
- Unzip your Yaesu ADMS-9 software download into your Linux
Downloadsfolder. Note that there are different versions depending on your rigs firmware - Inside Bottles, click on your newly created ADMS9 bottle.
- Click the prominent Run Executable button.
- Browse to your
Downloadsfolder and select the setup file:Ftm100dAdms9.exe. - The standard Windows installer wizard will pop up. Follow the prompts to finish the installation.
Step 6: Identify and Map Your USB Cable
- Plug your Yaesu USB programming cable into your computer.
- Open your terminal and run this command to see what device name Linux assigned to your cable:
ls /dev/ttyUSB* /dev/ttyACM*(For example, your cable might be detected as/dev/ttyUSB1). - The best part about modern Bottles: Wine automatically maps Linux serial devices to Windows COM ports when they are plugged in. For me, this was the mapping (COM5 is my signalink usb)
/dev/ttyUSB0maps to COM5/dev/ttyUSB1maps to COM6
Step 7: Read from Your Rig!
- Launch the Yaesu ADMS-9 software using the new shortcut created inside your Bottle.
- Navigate to the COM Port Settings in the top menu bar.
- Select COM6 (or whichever port matches your
ttyUSBnumber) from the drop-down menu. - Put your FTM-100D transceiver into Clone RX or Clone TX mode. In this case, it’s: hold DISP to get to the menu, 13>RST/CLONE, 7>CLONE, 1>This radio to other
- Hit download, and watch your memory channels sync.
- If you get an invalid format error, you may have the wrong ADMS9 version
The upload to radio should work in a similar fashion. Let me know what you run into.





