注意
- VIM1V12不支持KBI
- 此文档以VIM2为例进行说明,VIM1V14、VIM3、VIM4和Edge用法类似。
KBI是“Khadas Bootloader Instructions”的缩写,主要用于以下几方面:
- 控制可编程MCU 
- 管理底层硬件 
- 让开发者体验VIM1V14/VIM2/VIM3/VIM4/Edge全部的特性 
这篇文档介绍了如何配置使用KBI。 因为KBI是U-Boot 命令,所以必须先设置串口调试工具。
在开始之前,确保先进入U-Boot命令行模式:
| 1 | normal power off | 
帮助信息
和其他U-Boot命令一样,直接执行kbi会给出帮助信息:
| 1 | kvim2# kbi | 
使用方法
- 获取MCU固件版本号:
| 1 | kvim2# kbi version | 
- 初始化KBI:
| 1 | kvim2# kbi init | 
- 获取设备usid:
| 1 | kvim2# kbi usid | 
- 获取ADC数值:
| 1 | kvim2# kbi adc | 
ADC数值用于区分不同的Khadas SBC。
- 给设备断电:
| 1 | kvim2# kbi poweroff | 
- 获取以太网MAC地址:
| 1 | kvim2# kbi ethmac | 
- 设置LED工作模式:
VIM2蓝色LED有不同的工作模式,如长灭、长亮、呼吸和心跳等来只是不同的状态。
VIM2 蓝色LED是由MCU来控制的,同时MCU还控制VIM2的总电源,而VIM2白色LED是由Amlogic CPU来控制的,所以蓝色LED会一直工作,即使你关闭了VIM2电源。
事实上,KBI能设置两种不同的蓝灯模式:
- 系统关闭/待机:断电状态,CPU断电。 
- 系统运行/工作:上电状态,CPU工作。 
示例:
查看系统关闭/待机时的蓝灯模式:
| 1 | kvim2# kbi led systemoff r | 
查看系统运行/工作时的蓝灯模式:
| 1 | kvim2# kbi led systemon r | 
上面显示当系统运行时蓝灯状态为长灭,你可以改为呼吸灯模式:
| 1 | kvim2# kbi led systemon w breathe | 
同样的,对于系统关闭时的蓝灯状态,你也可以设置为别的模式,如下:
| 1 | kvim2# kbi led systemon w breathe | 
VIM4这里应该为白灯
- 启动模式
VIM2配置有eMMC和SPI存储器,可以通过KBI设置从哪里启动系统。
设置默认从SPI Flash启动系统:
| 1 | kvim2# kbi bootmode w spi | 
关于SPI FLASH启动请参考如何从SPI Flash启动(VIM2/VIM3/Edge) 。
设置默认从eMMC启动系统:
| 1 | kvim2# kbi bootmode w emmc | 
查看当前启动模式:
| 1 | kvim2# kbi bootmode r | 
9) 开机触发事件
VIM2支持不同的开机触发事件:
- WOL: 通过网络唤醒开机
- RTC: 通过RTC唤醒开机
- IR: 通过红外唤醒开机
- DCIN: 通过DC输入唤醒开机
- Key: 通过电源键唤醒开机
- GPIO: 通过外部GPIO唤醒开机
这意味着,当VIM2关机时,上述任意一个事件在使能的情况下可以触发VIM2开机。
示例:
获取WOL触发使能状态:
| 1 | kvim2# kbi trigger wol r | 
出厂固件WOL是默认关闭的。你可以通过如下方式打开WOL触发:
| 1 | kvim2# kbi trigger wol w 1 | 
当然,出于安全的角度考虑,你可能需要关闭WOL触发:
| 1 | kvim2# kbi trigger wol w 0 |