我一直在研究如何在Raspberry Pi上设置Ubuntu Core(Ubuntu的IoT版本),并且我已经阅读了有关小工具捕捉的信息,该文档称其旨在定义设备功能:


gadget snap负责定义和处理特定于一个或多个设备的系统属性,这些属性通常从实现角度来看彼此相似。


拥有小工具的动机是什么?能否通过lshw之类的常规系统功能无法获得该信息,还是有其他原因(也许是安全性或更声明性的环境)?

我问的原因是因为我是否希望使用在其他设备上使用Ubuntu Core时,预定义的小工具捕捉将不合适,但是我不确定为什么我什至首先需要一个小工具捕捉。

#1 楼

根据developer.ubuntu.com的介绍,基本上有两个目的:
-向系统声明硬件功能
从Ubuntu文档引用:

gadget snap负责定义和从实现的角度来看,操纵特定于一个或多个设备的系统属性,这些属性通常看上去彼此相似。该快照必须由设备品牌产生并签名,该设备品牌是通过模型断言定义的。该品牌知道该设备将在何处以及如何使用,并相应地设计小工具快照。例如,品牌可能知道该设备实际上是要在特定云上使用的特殊VM,或者它可能知道它将在特定工厂中制造。小工具快照可以编码设备初始化的机制-密钥生成和身份证明-以及设备生命周期的特定过程,例如工厂重置。

-允许访问需要使用此硬件的快照。
也可以从Ubuntu文档中获得:

可选的prepare-device挂钩是一个脚本,在安装了小工具快照之后,将在设备初始化过程开始时在小工具上调用该脚本。如果稍后在初始化失败的情况下从头开始重试此过程,也会调用该挂钩。
例如,设备初始化过程负责通过与设备服务的交换来设置设备的串行标识。准备设备挂钩可以例如重定向此交换并动态设置与其相关的选项。