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
:substitutions:
$ pip3 install --extra-index-url {{index_url}} jumpstarter-driver-ridesx
The RideSX driver supports two main components:
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| Parameter | Description | Type | Required | Default |
|---|---|---|---|---|
| storage_dir | Directory to store firmware images and temporary files | str | no | /var/lib/jumpstarter/ridesx |
The power driver requires a serial child instance for communication.
Both drivers require:
| Child | Description | Required |
|---|---|---|
| serial | PySerial driver instance for communicating with the device | yes |
.. autoclass:: jumpstarter_driver_ridesx.client.RideSXClient()
:members: flash, flash_images, boot_to_fastboot, cli
.. autoclass:: jumpstarter_driver_ridesx.client.RideSXPowerClient()
:members: on, off, cycle, rescue, serial
$ 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
partitions = {
"boot": "/path/to/boot.img",
"system": "/path/to/system.img",
"userdata": "/path/to/userdata.img"
}
ridesx_client.flash(partitions)# 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