Build Problem Airsdk 7.7.2

Change mission.yaml in the new way

api_version: 3
kind: Mission
metadata:

  description: Describe your mission here.
  version: "0.0.1"
  # target_model_id: 091A
targets:
  Anafi Ai:
  Anafi Ai Simulator:
fsup:
  lang: python


And getting this error message:

Error in mission.yaml file: No SDK available for target Anafi Ai

Have the same problem with the new hello sample.

Thank you in advance.

Hi,

What’s the output of the airsdk --version command ?
It should output

airsdk-cli version 7.7.2
Target `Anafi Ai' SDK version 7.7.2 located at /opt/parrot-airsdk/parrot-airsdk-base/sdk/anafi2-classic_airsdk
Target `Anafi Ai Simulator' SDK version 7.7.2 located at /opt/parrot-airsdk/parrot-airsdk-base/sdk/anafi2-pc_airsdk

Otherwise it means that the SDKs for Anafi Ai were not properly installed, you should check that the deprecated parrot-airsdk-base package is no longer installed on your system, and that the parrot-airsdk-anafi2-classic and parrot-airsdk-anafi2-pc packages are installed instead. You can check this using dpkg -s package-name.

Regards,
Nicolas.

The answer is:
$airsdk --version
airsdk-cli version 7.7.2
No SDK available for Anafi Ai
No SDK available for Anafi Ai Simulator

Ubuntu 22.04 LTS 6.2.0-36-generic

$dpkg -s parrot-airsdk-anafi2-pc
Package: parrot-airsdk-anafi2-pc
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 1050562
Maintainer: Parrot Developer developer@parrot.com
Architecture: all
Version: 7.7.2-release
Depends: parrot-tools-gcc-aarch64-himix100-linux
Description:
Parrot AirSDK anafi2-pc SDK

$dpkg -s parrot-airsdk-anafi2-classic
Package: parrot-airsdk-anafi2-classic
Status: install ok installed
Priority: optional
Section: python
Installed-Size: 1180065
Maintainer: Parrot Developer developer@parrot.com
Architecture: all
Version: 7.7.2-release
Depends: parrot-tools-gcc-aarch64-himix100-linux
Description:
Parrot AirSDK anafi2-classic SDK

The hint with airsdk --version and dpkg was very helpful. I was able to solve the problem in the meantime by uninstalling, sudo apt autoremove and reinstalling. The first attempt had probably not removed all components from 7.7.1.

Now I have encountered another problem:

If I have understood correctly, multiple signatures are now possible:

mission.yaml

signatures:
  - name: test
    type: local
    path: "key/fm-provider-private-key.pem"

Attempt to build with signature “test”

airsdk build --sign test

But gives the following error message:

File "/usr/bin/airsdk", line 10, in <module>
    sys.exit(main())

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.10/site-packages/airsdk_cli/main.py", line 174, in build
    mission = Mission(

  File "/opt/parrot-airsdk/parrot-airsdk-cli/lib/python3.10/site-packages/airsdk_cli/mission/mission.py", line 771, in __init__
    sname, stype, sarg = signature.split(":", 3)

ValueError: not enough values to unpack (expected 3, got 1)

What have I misunderstood? Many thanks in advance

Hi,

The signature works in the following way:

  • If the mission.yaml does not provide a signatures field, then the mission is signed by an automatically generated developer key (stored in ~/.local/share/parrot/airsdk-cli/developer_key_private.pem), with the name signature.ecdsa
  • If the mission.yaml provides a signatures field, then the mission is signed by all provided keys, Those signatures will be stored in the mission archive as a file named a the name field.

If the --sign <name:type:path> argument is provided, it takes precedence over the signatures field from the mission.yaml file. In your case, you don’t need to use this argument, since you’ve already filled the signature from the mission.yaml.

Note that the only signature checked by the drone during installation is the one named signature.ecdsa, other signatures are only useful if checked by another mean (i.e. during deployment on a server).

Simulator builds work a little differently, since you can not add any public keys to its accepted signatures: all simulator builds are signed with the simulator key, under the signature.ecdsa name. If your signature config does create a signature.ecdsa signature, it will be renamed as signature.ecdsa.main in this case.

Hope this clarifies how the signatures work.

Regards,
Nicolas.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.