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,支持调试。