I’m struggling to get this working also.
In my gadget.yaml
I have:
connections:
- plug: JMOa0xipSr8QRguwZNbWsIg3RQTNDC3v:hardware-observe
- plug: JMOa0xipSr8QRguwZNbWsIg3RQTNDC3v:network-observe
- plug: JMOa0xipSr8QRguwZNbWsIg3RQTNDC3v:serial-port
- plug: JMOa0xipSr8QRguwZNbWsIg3RQTNDC3v:system-observe
- plug: JMOa0xipSr8QRguwZNbWsIg3RQTNDC3v:log-observe
(full file at pi3-gadget/gadget.yaml at master · svet-b/pi3-gadget · GitHub)
Based on the documentation (Gadget snaps), I followed the recommendation that
Omitting "slot" in an instruction is allowed and equivalent then to: slot: system:<plug>
The gadget is created fine, but when trying to build an image with it using ubuntu-image
(version 1.3+16.04ubuntu2) I get the following, with debug mode on:
DEBUG:ubuntu-image:-> [ 3] load_gadget_yaml
ERROR:ubuntu-image:uncaught exception in state machine step: [3] load_gadget_yaml
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/ubuntu_image/parser.py", line 304, in parse
validated = GadgetYAML(yaml)
File "/usr/lib/python3/dist-packages/voluptuous.py", line 337, in __call__
return self._compiled([], data)
File "/usr/lib/python3/dist-packages/voluptuous.py", line 635, in validate_dict
return base_validate(path, iteritems(data), out)
File "/usr/lib/python3/dist-packages/voluptuous.py", line 471, in validate_mapping
raise MultipleInvalid(errors)
voluptuous.MultipleInvalid: extra keys not allowed @ data['connections']
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/ubuntu_image/state.py", line 82, in __next__
step()
File "/usr/lib/python3/dist-packages/ubuntu_image/common_builder.py", line 132, in load_gadget_yaml
self.gadget = parse_yaml(fp)
File "/usr/lib/python3/dist-packages/ubuntu_image/parser.py", line 312, in parse
raise GadgetSpecificationError('Invalid gadget.yaml @ {}'.format(path))
ubuntu_image.parser.GadgetSpecificationError: Invalid gadget.yaml @ connections
ERROR:ubuntu-image:gadget.yaml parse error
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/ubuntu_image/parser.py", line 304, in parse
validated = GadgetYAML(yaml)
File "/usr/lib/python3/dist-packages/voluptuous.py", line 337, in __call__
return self._compiled([], data)
File "/usr/lib/python3/dist-packages/voluptuous.py", line 635, in validate_dict
return base_validate(path, iteritems(data), out)
File "/usr/lib/python3/dist-packages/voluptuous.py", line 471, in validate_mapping
raise MultipleInvalid(errors)
voluptuous.MultipleInvalid: extra keys not allowed @ data['connections']
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/ubuntu_image/__main__.py", line 341, in main
list(state_machine)
File "/usr/lib/python3/dist-packages/ubuntu_image/state.py", line 82, in __next__
step()
File "/usr/lib/python3/dist-packages/ubuntu_image/common_builder.py", line 132, in load_gadget_yaml
self.gadget = parse_yaml(fp)
File "/usr/lib/python3/dist-packages/ubuntu_image/parser.py", line 312, in parse
raise GadgetSpecificationError('Invalid gadget.yaml @ {}'.format(path))
ubuntu_image.parser.GadgetSpecificationError: Invalid gadget.yaml @ connections
Clearly I’m doing something wrong, and maybe it’s just bad yaml, but I’m not sure what to make of the error. Any pointers?
I’m on snapd version 2.34.3.