Understanding the SDK
This section explains the various pieces of the SDK.
The SDK is divided in three layers:
buildroot
acu6-base
acu6-demos
These layers each serve a specific purpose.
buildroot
This is the unmodified version of buildroot that we currently support.
acu6-base
This layer contains all the necessary bits and pieces for the buildroot system to be able to run in the ACU6 environment.
This includes kernel patches, startup scripts and base packages such as the actia-lib which contains all the necessary functionality to build your own applications to communicate with the ACU6 services.
acu6-demos
This layer contains demo applications and other useful bits while you’re getting started with integrating your product with the ACU6 environment.
These demo applications have 2 purposes:
provide a basic CLI interface to the ACU6 services until you’re up and running.
provide a code example on how to communicate with each of the services.
The sources for the demo applications are found in the package
directory,
the file name of the source file often matches the binary name.
For example, the binary for modemcontrol-demo.c
is modemcontrol-demo
.
Some demos are invoked via startup scripts, those scripts are found in the board
directory.
To run a demo application, connect to the device using SSH and enter the name of the demo applications:
$ ssh acu6pro
# modemcontrol-demo
Syntax: modemcontrol-demo <request | release | subscribe | unsubscribe | subscribe_wait_for_status_unsubscribe | info >
# modemcontrol-demo request
Open session response result: 0
Cellular data request response result: 0
#
The demo application CLI interface and feature set is not stable, many of their interactions with the distribution environment are simplistic and not necessarily best practice.
It is not advised to maintain a dependency on this layer of the SDK in your integration.
Flipping the DEMOS switch
The makefiles contain a variable called DEMOS which is default set to 1.
Once the acu6-demos layer is no longer needed, it is highly recommended to add the following to your own Makefiles:
export DEMOS := 0
If you’re using the template from Creating a Linux distribution, this is line is
already prepared, simply switch the 1 to a 0 in the Makefile
there.
Building releases
To build a release of the system, export the BUILD_RELEASE
variable with a
value of 1
in the Makefile:
export BUILD_RELEASE := 1
This will have an effect on the image generation and remove some development
meta-data such as the -dev+g########
trailer in the version information.
The variable can also be used in custom integration scripts to do additional build processing for release builds.
Using SSH without the DEMOS layer
By default, the ACU6-Base layer does not permit SSH connections without a configured password, as the root password is set to empty. As a result, the device will not be accessible over SSH without additional configuration.
To enable SSH access, consider one of the following options:
Implement an alternative SSH authentication method, such as key-based authentication.
Set a password for the root user or create another user with a password.
Re-enable passwordless access by copying the Dropbear configuration from the ACU6-demos layer (acu6-pro-sdk-vX.X.X/externals/acu6-demos/board/actia/acu6/rootfs_overlay/etc/default/dropbear).
Warning
Depending on the intended use case, some of these options may present security risks. Ensure that you address the security implications of your specific scenario before enabling SSH access.