Warning

This documentation is actively being updated as the project evolves and may not be complete in all areas.

RideSX driver

jumpstarter-driver-ridesx provides functionality for Qualcomm RideSX devices, supporting fastboot flashing operations and power control through serial communication.

This is mainly tailored towards images that were produced using automotive-image-builder:

automotive-image-builder build --target ridesx4 --export aboot.simg --mode package manifest.aib.yml ridesx.img

Installation

$ pip3 install --extra-index-url https://pkg.jumpstarter.dev/simple jumpstarter-driver-ridesx

Configuration

The RideSX driver supports two main components:

Storage and Flashing Configuration

Example configuration for the RideSX driver:

export:
  storage:
    type: "jumpstarter_driver_ridesx.driver.RideSXDriver"
    config:
    children:
      # fastboot management serial port
      serial:
        type: "jumpstarter_driver_pyserial.driver.PySerial"
        config:
          url: "/dev/serial/by-id/usb-QUALCOMM_Inc._Embedded_Power_Measurement__EPM__device_98000205101B0224-if01"
          baudrate: 115200
  power:
    type: "jumpstarter_driver_ridesx.driver.RideSXPowerDriver"
    config:
    children:
      serial:
        type: "jumpstarter_driver_pyserial.driver.PySerial"
        config:
          url: "/dev/serial/by-id/usb-QUALCOMM_Inc._Embedded_Power_Measurement__EPM__device_98000205101B0224-if01"
          baudrate: 115200
  serial:
    type: "jumpstarter_driver_pyserial.driver.PySerial"
    config:
      url: "/dev/serial/by-id/usb-FTDI_Qualcomm_AIR_8775_AI208U7YXA-if01-port01"
      baudrate: 115200

Config parameters

RideSXDriver

Parameter

Description

Type

Required

Default

storage_dir

Directory to store firmware images and temporary files

str

no

/var/lib/jumpstarter/ridesx

RideSXPowerDriver

The power driver requires a serial child instance for communication.

Required Children

Both drivers require:

Child

Description

Required

serial

PySerial driver instance for communicating with the device

yes

API Reference

RideSXClient

class jumpstarter_driver_ridesx.client.RideSXClient

Client for RideSX

flash(path: str | Dict[str, str], *, partition: str | None = None, operator: Operator | Dict[str, Operator] | None = None, compression=None)

Flash image to DUT

flash_images(partitions: Dict[str, str], operators: Dict[str, Operator] | None = None)

Flash images to specified partitions

Args:

partitions: Dictionary mapping partition names to file paths operators: Optional dictionary mapping partition names to operators

RideSXPowerClient

class jumpstarter_driver_ridesx.client.RideSXPowerClient

Power control client for RideSX

cycle(wait: int = 2)

Power cycle the device

off() None

Turn device power off

on() None

Turn device power on

rescue() None

Rescue mode

Examples

CLI usage

$ jmp shell -l board=qc-ridesx4
# Flash the device using the artifacts from automotive-image-builder, this uses 3 partition file systems
$$ j storage flash --target system_a:rootfs.simg --target system_b:qm_var.simg --target boot_a:aboot.img
$$ j power on
$$ j serial start-console

Flash Multiple Partitions

# Flash multiple partitions
partitions = {
    "boot": "/path/to/boot.img",
    "system": "/path/to/system.img",
    "userdata": "/path/to/userdata.img"
}
ridesx_client.flash(partitions)

Power Control

# Turn device power on
ridesx_power_client.on()

# Turn device power off
ridesx_power_client.off()

# Power cycle the device
ridesx_power_client.cycle(wait=5)  # Wait 5 seconds between off/on