Before you begin
- Ubuntu 22.04 or 24.04 is recommended
- Connect the M1 with a USB-C data cable, preferably to a direct USB 3.x port
- Your user must be able to run
sudofor the first-time--depsinstall, which adds apt packages and the USB udev rule
Install
1
Clone the public repository
2
Build the Linux SDK
--deps installs packages and the M1 USB udev rule, then builds the SDK
and tools. This first run uses sudo.3
Re-plug the M1
The installer creates
/etc/udev/rules.d/51-efference.rules. Disconnect
and reconnect the device after the first installation so the new
permissions take effect.4
Verify the installation
ef-cli list should discover the connected M1. ef-cli info prints its
serial, firmware version, capture modes, camera configuration, IMU
parameters, and wireless status.sdk/linux/build/:
efference-viewer and ef-decrypt are built only when their optional
dependencies are present, and the configure output says which were found. The
viewer needs OpenCV and FFmpeg, ef-decrypt needs libssl-dev; --deps installs
both sets.
After installation, run
./build.sh to rebuild without changing packages or
USB permissions. To install only the udev rule, run
sdk/linux/build.sh --udev.Put the tools on your PATH
Invoking the tools by their full path always works. For regular use, choose one of the following:--install copies ef-cli and ef-decrypt onto your PATH and installs the
library, its headers, and the calibration shared objects, so find_package(ef)
resolves in your own CMake project. Because it copies rather than links, re-run
it after every rebuild. efference-viewer is not installed; run it from
sdk/linux/build/.
source env.sh puts the build directory itself on PATH, so it is current the
moment a build finishes, and it also sets CMAKE_PREFIX_PATH so the tutorials
resolve find_package(ef). It works from any directory if you give its full
path, and adding that line to ~/.bashrc makes it apply to every new shell.

