Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/source/api-reference/drivers/can.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
The CAN driver is a driver for using CAN bus connections.

```{eval-rst}
.. autoclass:: jumpstarter_driver_can.client.CanClient
.. autoclass:: jumpstarter_driver_can.client.CanClient()
:members:
```

```{eval-rst}
.. autoclass:: jumpstarter_driver_can.client.IsoTpClient
.. autoclass:: jumpstarter_driver_can.client.IsoTpClient()
:members:
```
```
2 changes: 1 addition & 1 deletion docs/source/api-reference/drivers/pyserial.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export:

## PySerialClient API
```{eval-rst}
.. autoclass:: jumpstarter_driver_pyserial.client.PySerialClient
.. autoclass:: jumpstarter_driver_pyserial.client.PySerialClient()
:members: pexpect, open, stream, open_stream, close
```

Expand Down
19 changes: 18 additions & 1 deletion docs/source/api-reference/drivers/sdwire.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,27 @@ The SDWire driver is an storgate multiplexer driver for using the SDWire
multiplexer. This device multiplexes an SD card between the DUT and the
exporter host.

## Driver Configuration

```{literalinclude} sdwire.yaml
:language: yaml
```

```{doctest}
:hide:
>>> from jumpstarter.config import ExporterConfigV1Alpha1DriverInstance
>>> ExporterConfigV1Alpha1DriverInstance.from_path("source/api-reference/drivers/sdwire.yaml").instantiate()
Traceback (most recent call last):
...
FileNotFoundError: failed to find sd-wire device
```

## Client API

The SDWire driver implements the `StorageMuxClient` class, which is a generic
storage class.

```{eval-rst}
.. autoclass:: jumpstarter_driver_opendal.client.StorageMuxClient
.. autoclass:: jumpstarter_driver_opendal.client.StorageMuxClient()
:members:
```
8 changes: 8 additions & 0 deletions docs/source/api-reference/drivers/sdwire.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
type: "jumpstarter_driver_sdwire.driver.SDWire"
config:
# optional serial number of the sd-wire device
# the first one found would be used if unset
serial: "sdw-00001"
# optional path to the block device exposed by sd-wire
# automatically detected if unset
storage_device: "/dev/disk/by-diskseq/1"
19 changes: 18 additions & 1 deletion docs/source/api-reference/drivers/ustreamer.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,24 @@ The Ustreamer driver is a driver for using the ustreamer video streaming server
driven by the jumpstarter exporter. This driver takes a video device and
exposes both snapshot and streaming interfaces.

## Driver configuration

```{literalinclude} ustreamer.yaml
:language: yaml
```

```{doctest}
:hide:
>>> from jumpstarter.config import ExporterConfigV1Alpha1DriverInstance
>>> ExporterConfigV1Alpha1DriverInstance.from_path("source/api-reference/drivers/ustreamer.yaml").instantiate()
Traceback (most recent call last):
...
io.UnsupportedOperation: fileno
```

## Client API

```{eval-rst}
.. autoclass:: jumpstarter_driver_ustreamer.client.UStreamerClient
.. autoclass:: jumpstarter_driver_ustreamer.client.UStreamerClient()
:members:
```
8 changes: 8 additions & 0 deletions docs/source/api-reference/drivers/ustreamer.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
type: "jumpstarter_driver_ustreamer.driver.UStreamer"
config:
# name or path of the ustreamer executable
# defaults to finding ustreamer from path
executable: "ustreamer"
args: # extra arguments to pass to ustreamer
brightness: auto # --brightness=auto
contrast: default # --contract=default
2 changes: 1 addition & 1 deletion docs/source/api-reference/drivers/yepkit.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export:
The yepkit ykush driver provides a `PowerClient` with the following API:

```{eval-rst}
.. autoclass:: jumpstarter_driver_power.client.PowerClient
.. autoclass:: jumpstarter_driver_power.client.PowerClient()
:members: on, off
```

Expand Down
4 changes: 4 additions & 0 deletions packages/jumpstarter/jumpstarter/config/exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ def instantiate(self) -> Driver:

return driver_class(children=children, **self.config)

@classmethod
def from_path(cls, path: str) -> ExporterConfigV1Alpha1DriverInstance:
with open(path) as f:
return cls.model_validate(yaml.safe_load(f))
Comment thread
NickCao marked this conversation as resolved.

class ExporterConfigV1Alpha1(BaseModel):
BASE_PATH: ClassVar[Path] = Path("/etc/jumpstarter/exporters")
Expand Down