This directory contains a simple example to use with the [DSO runner][src/sys/runners/dso/README.md].
To run this example, you‘ll first need to add the [DSO runner] to the core environment. You must do this because the DSO runner is not there by default. To do this, locally edit the file /src/developer/remote-control/meta/laboratory.core_shard.cml with the following chunk. (This is assuming that you’re using a non-production build, such as core.x64, which includes ffx-laboratory.) This step is necessary because there is no imperative way to configure the laboratory collection to use the runner.
collections: [ { // This collection is used by developers to create and run arbitrary components. // The `ffx component run` command adds components to this collection. name: "ffx-laboratory", environment: "#laboratory-env", // replaces #core-env durability: "transient", }, ], children: [ { name: "dso_runner", url: "fuchsia-pkg://fuchsia.com/dso_runner#meta/dso_runner.cm", environment: "#core-env", }, ], environments: [ { name: "laboratory-env", extends: "#core-env", runners: [ { runner: "elf", from: "parent", }, { runner: "dso", from: "#dso_runner", }, ], resolvers: [ { resolver: "full-resolver", from: "#pkg-resolver", scheme: "fuchsia-pkg", }, ], }, ],
Now add dso_runner and the example to your package set and rebuild.
$ fx set core.x64 --with //src/sys/runners/dso:package --with //examples/components/dso
You‘ll need to update your device to include the changes to the laboratory. You can either fx ota, reflash, or if you’re using an emulator simply restart it.
$ ffx emu stop $ ffx emu start --console
Start the package server if it's not already running:
$ fx serve&
Now just run the example like you would any component in the laboratory.
$ ffx component run core/ffx-laboratory:dso fuchsia-pkg://fuchsia.com/simple_dso#meta/simple_dso.cm
You should be able to find evidence the component ran in the logs.
$ ffx log --filter dso_runner ffx log --filter dso_runner [00079.042964][dso_runner] INFO: Started component url=fuchsia-pkg://fuchsia.com/simple_dso#meta/simple_dso.cm [00079.043546][dso_runner][simple_dso] INFO: [main.cc(13)] Hello world! [00079.043591][dso_runner] INFO: Component terminated component_url=fuchsia-pkg://fuchsia.com/simple_dso#meta/simple_dso.cm exit_code=0 [00079.043664][dso_runner] INFO: Component stopped url=fuchsia-pkg://fuchsia.com/simple_dso#meta/simple_dso.cm