Movex
Usage
Movex supports three subcommands:
- move: moves a ROS2 node from the host to the Kria's micro SD card
- expand: expands micro SD's root partition taking up all available free space
- build: cross-compile a ROS2 node on any host for Kria's arm64 architecture
Each subcommand has a different syntax and supports a different set of parameters.
Use -h option to retrieve it:
python3 -m movex {move,expand,build} -h
Installation
From PyPI (suggested)
Install with pip by running:
pip install movex
Make sure pip is invoked by, at least, python version 3.12.
From source
Clone this repository.
To install the dependencies, run the following command:
pip install -r requirements.txt
Docker Container Setup
When we compile a ROS2 node from our machines, the node will be compiled for the architecture of the host PC (e.g. x86, ...), while we want the node to be compiled for arm64 (also named aarch64) to stay consistent with the Kria architecture. IMPORTANT: run the docker image at least once before using movex.
Pull from Docker Hub (suggested)
Download image from Docker Hub:
docker pull doclorenzo/mmr-cross-compilation:1.0
Compose Based Procedure
Clone mmr-cross-compilation repository.
Run the docker image from compose file:
SRC_PATH=<mmr-kria-drive-path> docker compose run --rm mmr-cross-compile-container
Set mmr-kria-drive-path to the absolute path of the mmr-kria-drive source code
Dockerfile Procedure
Clone mmr-cross-compilation repository.
If you are not willing to use the compose-based procedure, you can always opt for the manual procedure which involves build and interactive execution of the image.
-
Build container
docker build -t mmr-cross-compile <dockerfile_folder> --platform=linux/arm64/v8
- dockerfile_folder: path of the folder where it is contained the Dockerfile
-
Run the docker image:
docker run --platform=linux/arm64/v8 --rm -it --volume=<mmr-kria-drive-path>:/home/mmr-kria-drive <image_name>
- mmr-kria-drive-path: absolute path of the
mmr-kria-drivesource code - image_name: name of the contaier (e.g.
mmr-cross-compile)
- mmr-kria-drive-path: absolute path of the
ATTENTION: the changes that are made to the container in the
/homefolder will also be made inside the filesystem that launches the container, so in this case, in the folder
Throubleshooting
If you are here, we both know that something went wrong... don't give up and see if one of your problems (because there will be several of them) have a solution in the following list:
-
Can't build/run the docker image, giving back this error:
exec /bin/bash: exec format errorLet's give a try on this:
docker run --privileged --rm tonistiigi/binfmt --install all
for further information, checks the docker docs
-
Docker engine not found. Make sure to have a running Docker engine!
Probably the docker engine is not autorizhed to accept commands from your current user, try:
sudo usermod -aG docker $USER
then reboot your system.
Metadata
Release files for movex 1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| movex-1.1.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| movex-1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.3 kB
Release files / movex-1.1.tar.gz
| Download URL | movex-1.1.tar.gz |
|---|---|
| Size | 18.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5767e34d33dc86cb7d2e73c23d2a8a9d89dae2ecf27c7f3b50705e1490cadf80
|
|
BLAKE2b-256 checksum How to use checksums |
b9a318b95678aed8df7499bf7a92f5bdd9ed25bf55adb0efb53d91647858de92
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|
Release files / movex-1.1-py3-none-any.whl
| Download URL | movex-1.1-py3-none-any.whl |
|---|---|
| Size | 19.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9c123bddc363683d915c84bd7b34b42f814767574fded85d9f459944e03ffa8f
|
|
BLAKE2b-256 checksum How to use checksums |
b64c33dd28859d5d61c60b024bfbeb2cdafef69362add38ff217149a9db96842
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|