Use dmidecode to read system serial number¶
Warning
Example values are provided for store configuration in this document. If you are a Dedicated Snap Store customer, you will be provided with a set of documentation with the details of your store.
One possible approach to populating the serial number (vs. using the date
command) is to use the dmidecode
tool to read the system serial number from the DMI table. In order to do this, you would need to add dmidecode
to that gadget’s snapcraft.yaml
file as a stage-package
:
parts:
prepare-device:
plugin: nil
stage-packages:
- dmidecode
...
Also, in snapcraft.yaml
, you will need to plug the snapd hardware-observe
interface to allow dmidecode
access to access the correct file(s) in sysfs.
Note
hardware-observe
is a “self-serve interface”; see Self-serve Snap Interfaces for more details.
hooks:
prepare-device:
plugs: [hardware-observe]
...
The actual command to read the serial number will also need to be updated in the snap/hooks/prepare-device file:
...
product_serial=\$(dmidecode -s system-serial-number)
...
Finally, to let the hardware-observe interface automatically connect on first boot, you’ll need to go to the dashboard, click on the “Review capabilities” link, and set the radio button next to hardware-observe to “Enabled”.