mica命令与配置文件¶
mica命令介绍¶
qemu-aarch64:~$ mica --help
usage: mica [-h] {create,start,stop,rm,status} ...
Query or send control commands to the micad.
positional arguments:
{create,start,stop,rm,status...}
the command to execute
create Create a new mica client
start Start a client
stop Stop a client
rm Remove a client
status query the mica client status
...
options:
-h, --help show this help message and exit
mica create <conf>
根据配置文件创建一个 mica 实例,该实例会关联一个实时OS,以及该实时OS运行的系统资源,包括 CPU 等。
mica start <name>
启动名字为 <name> 的实例。
mica stop <name>
停止名字为 <name> 的实例。
mica rm <name>
销毁名字为 <name> 的实例。
mica status
查询各个实例的状态信息,以及关联的服务信息。
mica gdb <name>
如果名字为 <name> 的实例支持调试,可以通过该命令启动 GDB Client 开始调试。
实例配置文件介绍¶
配置文件用于创建实例,通过不同的选项参数承载该实例对应的实时OS、CPU 等信息。所有的选项需要放在 [Mica]
段中配置:
Name=
实例名称,必须唯一。
CPU=
为实时OS分配的核号,范围:0 到 nproc - 1。
ClientPath=
实时OS的镜像路径,需要配置为绝对路径,且仅支持 elf 格式的镜像。
AutoBoot=
是否在 micad 启动时自动拉起该实例,默认为 no。
Pedestal=
指定部署底座,默认为 bare-metal,即在裸核上运行 RTOS。当前支持在 QEMU 上配置为 jailhouse,以使用 jailhouse 部署。
PedestalConf=
指定部署底座关联的配置文件。例如 Jailhouse 部署时,需要通过 PedestalConf 指定 RTOS 所需的 Non-Root Cell 配置文件。
Debug=
bool类型,表示OS二进制是否支持调试,默认为 no。如果支持调试,可以通过 mica gdb 命令启动 GDB Client 开始调试。
以下为一些配置文件样例:
示例一:
[Mica] Name=qemu-zephyr CPU=3 ClientPath=/lib/firmware/qemu-zephyr-rproc.elf AutoBoot=yes该配置文件表明,micad启动时,会默认启动一个名为 qemu-zephyr 的实例,即在 CPU3 上加载 /lib/firmware/qemu-zephyr-rproc.elf 并启动。
示例二:
[Mica] Name=qemu-zephyr-ivshmem CPU=3 ClientPath=/lib/firmware/qemu-zephyr-ivshmem.elf AutoBoot=no Pedestal=jailhouse PedestalConf=/usr/share/jailhouse/cells/qemu-arm64-zephyr-mcs-demo.cell该配置文件定义了一个名为 qemu-zephyr-ivshmem 的实例,并指定使用 jailhouse 作为部署底座,同时该实例使用的 jailhouse Non-Root Cell 为 /usr/share/jailhouse/cells/qemu-arm64-zephyr-mcs-demo.cell。
示例三:
[Mica] Name=rpi4-uniproton-debug CPU=3 ClientPath=/lib/firmware/rpi4-uniproton-debug.elf AutoBoot=yes Debug=yes该配置文件定义了一个名为 rpi4-uniproton-debug 的实例,并指定该实例实现了GDB stub,支持调试。