What’s Working (and What’s Not) in Ubuntu 24.04 on Tachyon
As of this early release of Ubuntu 24.04 for Tachyon, not all hardware features are enabled or stable. Below is a summary of the current status of various components and peripherals on Tachyon when running the 24.04 image. Use this as a guide to know where you might encounter limitations and where help is most needed. We encourage the community to contribute fixes for unsupported features!
Summary Snapshot
Feature | Status | Notes/Details |
---|---|---|
Wi-Fi (WLAN) | Working | 2.4/5 GHz Wi-Fi functional, good throughput. |
Bluetooth (BLE) | Working | Basic Bluetooth works (data). Audio profiles untested. |
USB-C (Host, port 2) | Working | USB2 host port ok; devices like Ethernet dongles work. |
USB-C (OTG, port 1) | Device-only | Currently fixed in device mode; host mode works manually |
Ethernet (USB dongle) | Working | Via USB adapter (since Tachyon has no built-in Ethernet). |
Power Button | Working | Supports power on and shutdown. |
LPDDR4 Memory | Working | Stable operation at full speed. |
UFS Storage | Working | Internal storage (eMMC/UFS) is fast and stable. |
GPIO Pins | Not working | Needs device tree update; no sysfs or libgpiod access yet. |
5G Modem | Not working | Modem firmware interface not operational (QCM issue). |
USB-C Display (DP) | Not working | No output via USB-C alt-mode (driver not ported). |
MIPI DSI Display | Not working | DSI panel drivers not added yet. |
Camera (CSI) | Not working | Not attempted; likely needs driver enablement. |
PCIe (M.2 slot) | Unknown | Untested – might require DT config or driver tweaks. |
Activity LED | Not working | LED GPIO not configured in device tree. |
RTC | Unknown | Not specifically tested (likely basic functionality is okay). |
Details
These components have been brought up and verified on the Ubuntu 24.04 build:
- Wi-Fi (WLAN): Working. The onboard Wi-Fi module is operational with good throughput. You should be able to connect to Wi-Fi networks using standard Linux networking tools. Firmware for Wi-Fi is loaded from the filesystem at boot.
- Bluetooth: Working. The Bluetooth radio and stack function correctly. You can pair devices and use BLE/Bluetooth features (assuming you install the userland Bluetooth tools like BlueZ).
- USB Type-C Port (USB2) – Host Mode Working. Tachyon has multiple USB controllers. The port designated for USB 2.0 (or the second USB controller) works in host mode. This means you can plug in USB peripherals (Ethernet adapters, flash drives, keyboards, etc.) and they are recognized. Standard USB 2.0 devices have been tested successfully.
- USB Type-C (Device Mode on primary port): Working (Device Mode). The primary USB-C port currently operates as a USB device (gadget). For example, you can put Tachyon in device mode to use it as an Ethernet gadget or serial gadget. By default, Tachyon enumerates as a USB device to the host (like for
particle tachyon setup
). Note: See USB-OTG in the not working section for role-switching limitations. - Power Button & PMIC behavior: Working. The hardware power button functions as expected. You can turn on/off the device using it. The device can also perform a graceful shutdown or sleep when the power button is pressed, thanks to the System Controller firmware. Basic suspend/resume has been tested – Tachyon can enter low-power suspend and wake up again.
- Memory (DDR) and Storage (UFS): Working. The LPDDR4x memory and UFS 2.1 storage interface are fully operational at their expected performance. There are no known stability issues with memory or disk I/O on the 24.04 build.
- Basic Display Output (HDMI/DP alt-mode): Partial. In headless mode, HDMI output shows a text console. For desktop mode, UI output via the USB-C DisplayPort alt-mode is not yet functioning (see below), but basic console might appear on the HDMI if using an adapter. (We consider display largely not working until proper drivers are in place.)
- General OS functionality: Working. Ubuntu 24.04 userland is running smoothly – you have apt package management, can install and run applications that don’t depend on missing hardware features, and the system is generally stable in headless use.
Not Yet Working / In Progress
The following features are known to be not working or not yet implemented in the current Ubuntu 24.04 image. Many of these require device tree updates, driver ports, or other development. Contributions are welcome to help enable these:
- USB OTG Role Switching (USB1 port): Not fully working. Tachyon’s primary USB-C port supports dual-role (host/device), but automatic role reversal is not functional yet. Currently, it’s fixed in device-only mode. This means you cannot use the main port to host USB devices. Fixing this involves updates to the USB controller driver and device tree configurations. For now, use the secondary port for host needs.
- GPIOs and Expansion Header: Not working. General Purpose I/O pins and interfaces like I²C/SPI on the 40-pin header are not enabled under 24.04 yet. The device tree lacks proper entries for the GPIO expander and related hardware. As a result, trying to toggle GPIOs or using interface buses from user space will likely fail or have no effect. Enabling GPIO requires updating the DTS to include the GPIO controller and verifying the pin multiplexing.
- Display Output (USB-C DisplayPort & MIPI-DSI): Not working. Tachyon’s display capabilities (both via USB-C DisplayPort Alt-Mode and the on-board MIPI DSI connectors) are currently unsupported in the 24.04 kernel. The drivers for the display interfaces (DSI bridges/panels or DisplayPort ALT mode over USB-C) have not been ported or enabled. This means no graphical output to monitors or built-in display panels yet. Headless operation is recommended; this is a priority for upcoming development.
- Camera (MIPI CSI): Not tested (assume not working). The MIPI CSI camera interface and any camera modules have not been brought up in the new kernel. We haven’t attempted to use the Raspberry Pi-compatible camera or other modules on 24.04. Likely, device tree work and driver enablement are needed here as well.
- 5G Modem (Cellular): Not working. The onboard 5G modem is not currently operational in the open 24.04 environment. Communication between the application processor and the cellular modem (via Qualcomm’s GLink interface and modem firmware) isn’t working. This is due to differences between QCM6490 (with an integrated modem) and QCS6490 (modemless) that upstream open-source code supports. We are working on this, but it’s a complex area. For now, cellular connectivity is unavailable on 24.04.
- Bluetooth Audio (and audio output): Untested/likely not working. While basic Bluetooth data works, audio routing (A2DP) hasn’t been verified. Moreover, Tachyon’s audio output (if any, e.g., through HDMI or headphone) isn’t confirmed working due to potential driver issues. Audio codec enablement may still be pending.
- PCIe Interface: Unknown. Tachyon features an M.2 slot with PCIe, but on 24.04 its status is unknown. We have not tested PCIe device connectivity. It’s possible that PCIe might work if the kernel’s Qualcomm PCIe driver is enabled, but without confirmation, assume it may require additional bring-up.
- LED Indicators: Not working. The on-board status LED (activity/USER LED) does not function under 24.04 yet. The GPIO controlling it isn’t configured. This is a minor issue but noted.
- RTC (Real-Time Clock): Untested. The real-time clock (if present on the PMIC or SoC) has not been explicitly tested. It’s likely functional at a basic level, but features like alarm wakeups are unverified.
As you can see, core networking and performance features are in place, making the 24.04 image usable for headless server-like tasks or development via SSH. However, many I/O and multimedia features are still coming together. This is where community involvement can make a big difference – for example, contributing a corrected device tree segment for the GPIO expander, or testing and enabling camera support.
Next Focus Areas
Our development team is actively working on the following areas next (roughly in order):
- USB OTG (Host on primary port): Enabling the main USB-C port to function as a host so you can use two host ports or choose roles dynamically.
- GPIO and I/O Expansion: Updating the device tree for full pin control, so that the 40-pin header and on-board LEDs, etc., can be used.
- Display Output: Bringing up display interfaces (most likely starting with DisplayPort over USB-C for external monitors, and then the DSI for integrated displays).
- Modem and GNSS: Working through the QCM6490 modem integration (this is a longer-term effort due to proprietary components).
- Camera and PCIe: Enabling the remaining interfaces once the above are in better shape.
Community contributions in any of these areas are highly appreciated. Even testing and reporting behavior (logs, errors) for untested features helps us prioritize and fix issues.
In the next pages, we’ll guide you through how to modify specific parts of the system – the bootloader, kernel, and device tree – which are the typical areas one might adjust to improve hardware support. If you’re interested in tackling one of the “not working” items, those guides will help you get started.