Installing Incyclist on a Linux box with an ANT+ dongle
A few tricks to get Incyclist up an running on Ubuntu-like systems.
Appimages
As Incyclist is distributed as an Appimage, it runs on all major Linux distributions. The latest image is here:
Incyclist AppImage for Linux
There are only a few basic prerequisites that must be met though.
The FUSE package
On a fresh installed minimal Ubuntu 22.04 LTS instance, Incyclist won't start. If started from the command line, the application throws following error message:
Incyclist complains about missing FUSE
./incyclist.appimage
dlopen(): error loading libfuse.so.2
AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
Fixing the missing FUSE
On my system, the problem disappeared after installing an alternative (Xfce) display manager with the xubuntu-desktop package. But the easiest hassle free way to get Incyclist running, is to simply install FUSE from the repository:
Install FUSE
sudo apt install fuse
Communication between Incyclist app and the bike
Problems with the ANT+ Stick (Dongle)
I tried out several brands of ANT+ Sticks. None of them functioned out of the box although the system recognizes them as valid USB devices.
Incyclist was not able to pair a smart trainer or even closed unexpectedly during application start.
It appeared, that they all use the same Dynastream chip set for which I found several sites reporting issues with missing rules for the device.
If your stick doesn't function with Incyclist, it probably has the Dynastream Device ID. I used the lsusb command to find that out:
Find out the Device ID of the ANT+ Dongle
lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 0a5c:2145 Broadcom Corp. BCM2045B (BDC-2.1) [Bluetooth Controller]
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0fcf:1008 Dynastream Innovations, Inc. ANTUSB2 Stick
Fixing the rules issue of ANT+ Sticks with device ID 0fcf:1008 or 0fcf:1009
The missing rules will prevent non-root users from using the stick for wireless communications.
The fix is to create a file with the rules, and to put it in the right place:
Create the rules file
nano 42-ant-usb-sticks.rules
Content for the rules file
# This files changes the mode of the Dynastream ANT UsbStick2 so all users
# can read and write to it.
#
# This file should go into '/etc/udev/rules.d'. Note that it should go in
# before 73-seat-late.rules for `uaccess` to work.
ACTION!="add", GOTO="openant_rules_end"
SUBSYSTEM!="usb", GOTO="openant_rules_end"
ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1008", ENV{ID_ANT_DEVICE}="1", TAG+="uaccess"
ATTR{idVendor}=="0fcf", ATTR{idProduct}=="1009", ENV{ID_ANT_DEVICE}="1", TAG+="uaccess"
LABEL="openant_rules_end"
Move the file to its final destination
sudo mv 42-ant-usb-sticks.rules /etc/udev/rules.d/
That should be it
-
I performed above steps on 3 different systems and got Incyclist up and running on each of them:
- ubuntu 22.04 LTS,
- xubuntu 22.04 LTS,
- Linux Mint 21 Xfce Edition,