Skip to content

Commit 944f972

Browse files
authored
Update README instructions to reflect current Windows build steps. (#1232)
* Update README instructions to reflect current Windows build steps. * Update README based on user feedback. * Add PR #1232 to changelog. * Resolve #1228 by adding WSL instructions for Flex waveform.
1 parent 73f42a5 commit 944f972

File tree

3 files changed

+46
-8
lines changed

3 files changed

+46
-8
lines changed

README.md

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,36 @@ one to build FreeDV for ARM as well as for Intel Windows systems.
141141

142142
### Instructions
143143

144-
1. Download LLVM MinGW at https://github.com/mstorsjo/llvm-mingw/releases/.
145-
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.)
146-
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.)
147-
4. Create a build folder inside freedv-gui: `mkdir build_windows`
148-
5. Run CMake to configure the FreeDV build: `cd build_windows && cmake -DCMAKE_TOOLCHAIN_FILE=${PWD}/../cross-compile/freedv-mingw-llvm-[architecture].cmake ..`
149-
* Valid architectures are: aarch64 (64 bit ARM), i686 (32 bit Intel/AMD), x86_64 (64 bit Intel/AMD)
150-
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.)
151-
7. Create FreeDV installer: `make package`
144+
1. Install WINE (example commands for Ubuntu below):
145+
146+
```
147+
sudo dpkg --add-architecture i386
148+
sudo sh -c "curl https://dl.winehq.org/wine-builds/winehq.key | gpg --dearmor > /etc/apt/trusted.gpg.d/winehq.gpg"
149+
sudo sh -c "apt-add-repository \"https://dl.winehq.org/wine-builds/ubuntu\""
150+
sudo apt-get update
151+
sudo apt install -y --install-recommends winehq-staging
152+
WINEPREFIX=`pwd`/wine-env WINEARCH=win64 DISPLAY= winecfg /v win10
153+
```
154+
155+
2. Install Python inside the WINE environment:
156+
157+
```
158+
export WINEPREFIX=`pwd`/wine-env
159+
wget https://www.python.org/ftp/python/3.14.3/python-3.14.3-amd64.exe
160+
WINEARCH=win64 DISPLAY= wine ./python-3.14.3-amd64.exe
161+
DISPLAY= wine c:\\Program\ Files\\Python314\\Scripts\\pip.exe install numpy==2.3.5
162+
```
163+
164+
(*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.*)
165+
166+
3. Download LLVM MinGW at https://github.com/mstorsjo/llvm-mingw/releases/.
167+
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.)
168+
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.)
169+
6. Create a build folder inside freedv-gui: `mkdir build_windows`
170+
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 ..`
171+
* Valid architectures are: aarch64 (64 bit ARM), x86_64 (64 bit Intel/AMD)
172+
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.)
173+
9. Create FreeDV installer: `make package`
152174

153175
## Building and installing on macOS
154176

USER_MANUAL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -887,6 +887,8 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
887887
* FreeDV Reporter: Use ItemsAdded/ItemsDeleted instead of Cleared() for performance. (PR #1212)
888888
3. Build system:
889889
* Windows/macOS: Update Python to 3.14.3. (PR #1221)
890+
4. Documentation:
891+
* Update README instructions to reflect current Windows build steps. (PR #1232)
890892

891893
## V2.2.1 February 2026
892894

src/integrations/flex/README.md

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

45+
### Executing on Windows Subsystem For Linux (WSL)
46+
47+
Prior to building the waveform, WSL needs some settings changes to allow it to have the required network
48+
support. Edit .wslconfig to contain the following:
49+
50+
```
51+
[wsl2]
52+
networkingMode=Mirrored
53+
firewall=false
54+
```
55+
56+
Then, from a PowerShell session running as Administrator, execute `Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow`.
57+
You will then need to restart WSL by executing `wsl.exe --shutdown` and then reopening the Linux instance.
58+
4559
## Full list of options
4660

4761
```

0 commit comments

Comments
 (0)