Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 30 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,14 +141,36 @@ one to build FreeDV for ARM as well as for Intel Windows systems.

### Instructions

1. Download LLVM MinGW at https://github.com/mstorsjo/llvm-mingw/releases/.
2. Decompress into your preferred location. For example: `tar xvf llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64.tar.xz` (The exact filename here will depend on the file downloaded in step (1). Note that for best results, you should use a build containing "ucrt" in the file name corresponding to the platform which you're building the Windows binary from.)
3. Add LLVM MinGW to your PATH: `export PATH=/path/to/llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64/bin:$PATH`. (The folder containing the LLVM tools is typically named the same as the file downloaded in step (2) minus the extension.)
4. Create a build folder inside freedv-gui: `mkdir build_windows`
5. Run CMake to configure the FreeDV build: `cd build_windows && cmake -DCMAKE_TOOLCHAIN_FILE=${PWD}/../cross-compile/freedv-mingw-llvm-[architecture].cmake ..`
* Valid architectures are: aarch64 (64 bit ARM), i686 (32 bit Intel/AMD), x86_64 (64 bit Intel/AMD)
6. Build FreeDV as normal: `make` (You can also add `-j[num]` to the end of this command to use multiple cores and shorten the build time.)
7. Create FreeDV installer: `make package`
1. Install WINE (example commands for Ubuntu below):

```
sudo dpkg --add-architecture i386
sudo sh -c "curl https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor > /etc/apt/trusted.gpg.d/winehq.gpg"
sudo sh -c "apt-add-repository \"https://dl.winehq.org/wine-builds/ubuntu\""
sudo apt-get update
sudo apt install -y --install-recommends winehq-staging
WINEPREFIX=`pwd`/wine-env WINEARCH=win64 DISPLAY= winecfg /v win10
```

2. Install Python inside the WINE environment:

```
export WINEPREFIX=`pwd`/wine-env
wget https://www.python.org/ftp/python/3.14.3/python-3.14.3-amd64.exe
WINEARCH=win64 DISPLAY= wine ./python-3.14.3-amd64.exe
DISPLAY= wine c:\\Program\ Files\\Python314\\Scripts\\pip.exe install numpy==2.3.5
```

(*Note: if using WSL2, you will need to choose "Customize Installation", skip "Optional Features" (hit Next), and then in "Advanced Options" check "Install Python 3.14 for all users" inside Python setup.*)

3. Download LLVM MinGW at https://github.com/mstorsjo/llvm-mingw/releases/.
4. Decompress into your preferred location. For example: `tar xvf llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64.tar.xz` (The exact filename here will depend on the file downloaded in step (1). Note that for best results, you should use a build containing "ucrt" in the file name corresponding to the platform which you're building the Windows binary from.)
5. Add LLVM MinGW to your PATH: `export PATH=/path/to/llvm-mingw-20220906-ucrt-ubuntu-18.04-x86_64/bin:$PATH`. (The folder containing the LLVM tools is typically named the same as the file downloaded in step (2) minus the extension.)
6. Create a build folder inside freedv-gui: `mkdir build_windows`
7. Run CMake to configure the FreeDV build: `cd build_windows && cmake -DCMAKE_TOOLCHAIN_FILE=${PWD}/../cross-compile/freedv-mingw-llvm-[architecture].cmake -DPython3_ROOT_DIR=$WINEPREFIX/drive_c/Program\ Files/Python314 ..`
* Valid architectures are: aarch64 (64 bit ARM), x86_64 (64 bit Intel/AMD)
8. Build FreeDV as normal: `make` (You can also add `-j[num]` to the end of this command to use multiple cores and shorten the build time.)
9. Create FreeDV installer: `make package`

## Building and installing on macOS

Expand Down
2 changes: 2 additions & 0 deletions USER_MANUAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -887,6 +887,8 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
* FreeDV Reporter: Use ItemsAdded/ItemsDeleted instead of Cleared() for performance. (PR #1212)
3. Build system:
* Windows/macOS: Update Python to 3.14.3. (PR #1221)
4. Documentation:
* Update README instructions to reflect current Windows build steps. (PR #1232)

## V2.2.1 February 2026

Expand Down
14 changes: 14 additions & 0 deletions src/integrations/flex/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,20 @@ $ SSDR_RADIO_ADDRESS=192.168.1.2 PYTHONPATH=$(pwd)/rade_src src/integrations/fle
To ensure proper reporting to FreeDV Reporter by the waveform, make sure that your callsign is properly
configured in SmartSDR (i.e. it doesn't say "FLEX" when first starting).

### Executing on Windows Subsystem For Linux (WSL)

Prior to building the waveform, WSL needs some settings changes to allow it to have the required network
support. Edit .wslconfig to contain the following:

```
[wsl2]
networkingMode=Mirrored
firewall=false
```

Then, from a PowerShell session running as Administrator, execute `Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow`.
You will then need to restart WSL by executing `wsl.exe --shutdown` and then reopening the Linux instance.

## Full list of options

```
Expand Down
Loading