A Winlink (RMS Express & VARA) installer Script for the Raspberry Pi 4.
This project is very early in development. It has lots of bugs and should be considered alpha software.
Copy/paste these commands into your Raspberry Pi 4's terminal:
curl -O https://raw.githubusercontent.com/WheezyE/Winelink/main/install_winelink.sh && \
bash install_winelink.sh
- A full installation takes about 30 minutes (with user prompts) and lots of errors will appear in the terminal (just ignore those).
- If desired, you can tell the script to only install VARA by running
curl -O https://raw.githubusercontent.com/WheezyE/Winelink/main/install_winelink.sh && bash install_winelink.sh vara_only
VARA running on a Raspberry Pi 4B (Twister OS)
This script will help you install Box86, Wine, winetricks, Windows DLL's, RMS Express, & VARA. You will then be prompted to configure RMS Express & VARA to send/receive audio from a USB sound card plugged into your Pi. This installer will only work on the Raspberry Pi 4B for now (support for earlier Raspberry Pi models is planned for later).
To run Windows .exe files on RPi4 (ARM/Linux), we need an x86 emulator (Box86) and a Windows API Call interpreter (Wine). Box86 is open-source and runs about 10x faster than ExaGear or Qemu. ExaGear is also closed source abandonware and Qemu (qemu-system & qemu-user-static) also has issues running more complex Wine programs on the Pi. Box86 is much smaller in file size and much easier to install too.
- ARDOP & VARA often have trouble connecting to RMS Express over TCP when they first start. If ARDOP fails to connect, just restart RMS Express it until it does connect (this is a bug in wine).
- VARA's CPU gauge doesn't display (this is a bug in wine).
- I haven't tested over-the-air connections since I'm just a tech. If some generals could test, that would be awesome.
- RMS Express v1.5.41.0 introduced a requirement for .NET 4.6 (instead of just .NET 3.5sp1). This updated has forced us to use wine-mono instead of .NET. Wine-mono may have some bugs. Madewokherd (Esme), the wine-mono dev, is amazing though - they have fixed all of the bugs we've encountered so far.
- ptitSeb for box86 debugging (& everyone on the TwisterOS discord)
(ptitSeb, pale, chills340, Itai-Nelken, Heasterian, phoenixbyrd, monkaBlyat, lowspecman420, epychan, !FlameKat53, #lukefrenner, icecream95, SpacingBat3, Botspot, Icenowy, Longhorn, et.al.)
-
madewokherd (Esme) for wine-mono debugging
-
N7ACW, AD7HE, & KK6FVG for getting me started in ham radio
-
KM4ACK & OH8STN for inspiration
-
K6ETA & DCJ21's 'Winlink on Linux' guides for early proof-of-concept
"My humanity is bound up in yours, for we can only be human together" - Nelson Mandela
All software used by this script is free and legal to use (with the exception of VARA, of course, which is shareware). Box86, Wine, wine-mono, winetricks, and AutoHotKey, are all open-source (which avoids the legal problems of use & distribution that ExaGear had - ExaGear also ran much slower than Box86 and is no-longer maintained, despite what Huawei says these days). All proprietary Windows DLL files required by Wine are downloaded directly from Microsoft and installed according to their redistribution guidelines. Raspberry Pi is a trademark of the Raspberry Pi Foundation
- Add updated example images.
- Add an AHK script to help the user with ARDOP first time soundcard setup.
- Consider adding a sed script to find/delete any small-value frequencies in
RMS Channels.dat
that would crash the HF Channel Selection Browser - Clean up code with Google style guide.
- Work with the Wine team to figure out why VARA's CPU gauge isn't working.
- Work with the Wine team to figure out why ARDOP & VARA don't always connect to RMS Express over TCP when first starting.
- Add 'splash screen' to RMS Express desktop shortcut (since launching takes a while)
- Rely on archive.org box86 binaries instead of compiling.
- Give user the choice to compile or not.
- Add auto-detection of failed downloads, then switch to compiling as contingency.
- Test COM port connections to radio ("CAT" control, PTT).
- Work with madewokherd to see if wine-mono bugs can be fixed (would drastically improve install speed).
- ARDOP TCP/IP Connection issues.
- Message creation issues.
- Message receive issues.
- HF Channel Selection Browser crash (from small-value input frequencies).
- COM port connection issues to radios/TNC's.
- Ask Seb for help getting VARA Chat running in box86.
- Add option (or check) for running the script via SSH (currently ssh causes wine to not display Windows) - Fixed with X11 check.
- Add installer for VARA FM.
- Add a check for sudo priviledges? Add a check to make sure script is not run as sudo?
- Change VARA Setup/Config terminal text prompts into zenity pop-up boxes.
- Change all terminal text prompts into text boxes?
- Add more error-checking to the script.
- Make a logo for the github page.
- Make the script's user-interface look better.
- Add an AHK script to click the "Ok" button after VARA is installed.
- Add an AHK script to help the user with VARA first time soundcard setup.
- Add more clean-up functions to the script.
- Have the script download all files into the cloned repository directory (instead of into ~/Downloads)
- Add shortcuts to the desktop.
- Work with the Wine team to find graphical errors in VARA.
- Add the fix for VARA graphical errors to the script.
- Re-fix the VARA graphics errors using a different method (winecfg reg keys).
- Add pdhNT4 to winetricks to streamline this installer.
- Make code modular to help readability.
- Simplify installation commands (model after KM4ACK BAP).
Add more platforms (make a multi-platform Wine installer & build/invoke box86 if needed).
-
Auto-detection of system arch (x86 vs armhf vs aarch64) & OS.
- ARM
- Raspberry Pi 4B
- Raspberry Pi 3B+
- Detect Raspberry Pi kernel memory split (and install the correct kernel if needed) for RPi <4 support.
- Ask Botspot if I can borrow some of his pi-apps code.
- RPi Zero 2 W?
- RPi Zero W?
- Termux (Android without root) (proot-distro + Ubuntu ARM + termux-usb) - see AnBox86 for proof of concept, currently untested with VARA.
- Fix AnBox86
- x86
- Mac
- OSX?
- Linux
- Debian (Package manager: apt)
- Deepin
- Kali
- Ubuntu (Package manager: apt)
- Linux Mint
- Elementary OS
- Zorin OS
- Arch (Package manager: pacman, libalpm)
- Vanilla Arch??
- Manjaro
- XeroLinux
- SteamOS? (Steam Deck)
- Red Hat (Package manager: yum, RPM)
- Fedora (Package manager: RPM/DNF)
- CentOS (Package manager: yum)
- Slackware (Package manager: pkgtool, slackpkg)
- FreeBSD (Package manager: pkg)
- Gentoo (Package manager: Portage)
- Solus (Package manager: eopkg)
- openSUSE (Package manager: ZYpp (standard); YaST (front-end); RPM (low-level))
- Debian (Package manager: apt)
- ChromeBook Linux beta.
- Try to detect if processor would be too slow?
- Mac
- ARM
-
Make a youtube video showcasing current methods (box86, Exagear issues, qemu-user-static errors, Pi4B, Pi3B+, Termux, Mac, Linux, ChromeOS)
-
Android testing notes (Termux/PRoot/AnBox86_64)
- Proof of concept https://youtu.be/FkeP_IW3GGQ?t=23
- Audio in/out (ARDOP works with alsa / hiccups with pulseaudio)
- Speed benchmarks with different devices (Fire HD10 Tablet is a bit slow, Retroid Pocket 2 TBD)
- OTG-USB-CAT (order OTG_USB_C-USB)
- Create alpha version of Winelink for AnBox86_64
If you use this script in your project (or are inspired by it) just please be sure to mention ptitSeb, Box86, and myself (KI7POL). This script is free to use, open-source, and should not be monetized (for further information see the license file).
If you feel that you are able and would like to support this project, please consider sending donations to ptitSeb, madewokherd (CodeWeavers/WineHQ), or KM4ACK - without whom, this script would not exist.
- Sebastien "ptitSeb" Chevalier (author of Box86, incredible developer, & really nice guy) paypal.me/0ptitSeb
- Madewokherd (author wine-mono & a wonderful person) https://www.winehq.org/donate
- Jason "KM4ACK" Oleham (author of Build-a-Pi, Linux elmer, & ham radio pioneer) paypal.me/km4ack