Closed vmayoral closed 3 years ago
Contributed to 👍 https://github.com/ros-acceleration/colcon-acceleration and validated with KV260 official reference hardware platform:
Initial list of capabilities:
verb | quick peek | description |
---|---|---|
select |
The select verb allows to easily select and configure a specific target firmware for hardware acceleration, and default to it while producing binaries and accelerators. |
|
list |
The list verb allows to inspect the acceleration firmware available in the ROS workspace, marking with a * the currently selected option. |
|
linux |
The linux verb helps configure the Linux kernel in the raw SD card image produced by the firmware. E.g. colcon acceleration linux vanilla will produce a Linux vanilla kernel, whereas colcon acceleration linux preempt_rt will instead use a pre-built kernel and kernel modules for improved determinism (fully preemptible kernel). |
|
hypervisor |
The hypervisor verb helps configure the Xen hypervisor in the raw SD card image produced by the firmware. E.g. colcon acceleration hypervisor --dom0 vanilla --domU vanilla --dom0less preempt_rt will produce a raw image leveraging Xen with 3 VMs. The first, dom0 , uses a vanilla kernel. The second, domU , uses a vanilla kernel. The third is a dom0less VM and uses a fully preemtible kernel (preemt_rt). Unless otherwise specified, all VMs use the default ROS 2 configuration, PetaLinux-based rootfs, the LNS and an Ethernet link layer. |
|
emulation |
The emulation verb helps manage the emulation capabilities with QEMU open source machine emulator and virtualizer. This way, developers can test their setups and algorithms without the hardware, which facilitates testing and speeds up the development process allowing for CI/CD pipelines. Emulation boots the same SD card image produced by previous commands and including the ROS 2 development workspace, providing a unified development approach. |
|
platform |
The platform verb helps reports Vitis platform enabled in the firmware deployed in the ROS 2 workspace. |
|
mkinitramfs |
The mkinitramfs verb creates compressed cpio initramfs (ramdisks). These can then be used to back up the current rootfs or to create dom0less VMs in Xen easily. |
|
mount / umount |
The mount and umount verbs help mount/umount the raw SD card image produced by previous steps. This way, developers can easily access the embedded rootfs directly, across the various partitions of the raw image (e.g. as in the case of multi-VMs in Xen). |
An extension for colcon-core to include Hardware Acceleration capabilities and simplify acceleration flows. Initially targeting the following mechanisms: