Development environment
The development environment requires recent versions of Ubuntu, Docker and GNU Make. Ubuntu can be installed natively on your PC or in a virtual machine, for example VirtualBox. It is highly recommended to install it natively for better performance and a fully functional USB stack (the VirtualBox USB-stack is sometimes unstable).
Make sure to install the extension pack and enable USB 3.0 (xHCI) in the virtual machine settings if you are installing Ubuntu in VirtualBox! USB is very unstable without it. You should also assign at least 100 GB disk and 4 GB RAM to the virtual machine.
Please refer to Ubuntu and Docker websites for installation instructions. The Ubuntu machine must have a working Internet connection, to be able to download Linux build files.
Add your user to the appropriate groups for accessing Docker and USB devices. Then reboot the PC.
$ sudo usermod -aG docker,dialout,plugdev $USER
Install GNU Make with apt
.
sudo apt install build-essential
Add the text below to ~/.ssh/config
to be able to SSH to the User VM
(ssh acu6pro
) and its serial console (ssh acu6pro-serial
).
# User VM (via Diagnostic USB port)
Host acu6pro
HostName 198.18.1.3
User root
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
# Virtual console
# Requires Guest password
Host acu6pro-serial
HostName 198.18.1.1
User guest
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
ACU6 Docker Container
The ACU6 Docker container contains all the necessary tools for building and flashing software for the ACU6.
Ensure the project folder name contains no spaces.
If the SDK is not already unpacked, unpack it and enter its root directory. Replace
x.y.z
with the version of your SDK.Buildroot is stored as an archive within the SDK archive, as Buildroot cannot be cleanly unpacked on Windows (symbolic links).
$ tar xf acu6-pro-sdk-vx.y.z.tar.gz $ cd acu6-pro-sdk-vx.y.z
Now build the
acu6-pro-sdk
Docker image. This image contains various tools needed to build the example Linux distribution. Docker will download Ubuntu packages from the Internet.$ make docker-image-latest
Setting up udev rules
To be able to flash the ACU6, we need to control the boot mode. This is done by using a CDP (Charging Downstream Port) switch. In this case, the “Seer” device. To control this device, we need to set up some udev rules. These files must be created/edited by the root user, this can for example be done by invoking sudo gedit from a terminal:
$ sudo gedit <path>
Create a file called /etc/udev/rules.d/99-cdp-switch.rules
, with the
following content:
# CDP switch SUBSYSTEM=="tty", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE="0666", SYMLINK+="seer"
Another necessary part for flashing the device is the Punchboot device.
Create a file called /etc/udev/rules.d/30-punchboot.rules
, with the
following content:
# Punchboot bootloader SUBSYSTEM=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2019", GROUP="adm", MODE="0666"
To reload your rules, issue the following commands:
$ sudo udevadm control --reload-rules && sudo udevadm trigger