OpenVela-03-快速入门-lvgldemo 与NSH终端测试
本文主要完成编译OpenVela后,的lvgldemo的测试,并给出NSH的的测试命令,需要注意是由于编译的最小版本买一些命令可能并不适用
OpenVela-03-快速入门-lvgldemo 与NSH终端测试

前置操作:
步骤三:编译源代码
完成源代码下载后,请在 openvela 根目录下执行以下编译步骤。
1. (可选)自定义内核配置
您可以通过 menuconfig 命令打开图形化界面,以调整 NuttX 内核与组件的配置。
cd ~/openvela
./build.sh vendor/openvela/boards/vela/configs/goldfish-arm64-v8a-ap/ --cmake menuconfig

按 / 键可搜索配置项。
按 空格键 可切换选中状态(启用/禁用/模块化)。
配置完成后,选择 Save 保存并退出。
2. 执行编译
编译前的目录
执行以下命令,构建整个项目。
./build.sh vendor/openvela/boards/vela/configs/goldfish-arm64-v8a-ap/ --cmake -j$(nproc)
编译成功后,您将在 cmake_out/vela_goldfish-arm64-v8a-ap 目录下找到 nuttx 等编译产物。
ubuntu@ubuntu-virtual-machine:~/openvela$ ll cmake_out/vela_goldfish-arm64-v8a-ap/vela_ap*
-rwxrwxr-x 1 ubuntu ubuntu 64550296 3月 3 17:03 cmake_out/vela_goldfish-arm64-v8a-ap/vela_ap.bin*
-rwxrwxr-x 1 ubuntu ubuntu 64550296 3月 3 17:03 cmake_out/vela_goldfish-arm64-v8a-ap/vela_ap.elf*
ubuntu@ubuntu-virtual-machine:~/openvela$ file cmake_out/vela_goldfish-arm64-v8a-ap/vela_ap.elf
cmake_out/vela_goldfish-arm64-v8a-ap/vela_ap.elf: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=80e432b908c5546fe7ff8fb0fbca8cfcadab5606, with debug_info, not stripped
# 进入编译输出目录
cd cmake_out/vela_goldfish-arm64-v8a-ap/
# 用 QEMU 启动 vela_ap.elf(goldfish 虚拟板专用命令)
qemu-system-aarch64 -machine goldfish64 -cpu cortex-a53 -kernel vela_ap.elf -serial stdio -nographic
步骤四:运行模拟器
先安装
sudo apt update && sudo apt install -y android-tools-adb
在 openvela 根目录下,执行以下脚本启动 Vela Emulator 并加载您的编译产物。
./emulator.sh cmake_out/vela_goldfish-arm64-v8a-ap/
模拟器启动后,您将看到 goldfish-armv8a-ap> 提示符,表明 openvela 已成功运行。同时会弹出Android emulator的界面。
启动lvgldemo
在 goldfish-armv8a-ap> 输入
NuttShell (NSH)
goldfish-armv8a-ap> lvgldemo &
lvgldemo [13:100]
goldfish-armv8a-ap>
Android emulator的界面会加载默认内容:
测试 NSH 终端
下面是一套针对 OpenVela 下 goldfish-armv8a-ap 板型 NSH 终端的系统化测试命令集,按「基础系统→硬件/驱动→网络/无线→图形/应用→调试排障」分类整理,覆盖核心功能验证,新手可直接复制执行:
一、基础系统功能测试(必测)
验证系统核心运行状态,所有环境通用:
# 1. 系统信息查询
uname -a # 查看内核/架构/版本(确认ARM64、NuttX版本)
id # 查看当前用户权限(默认root)
date # 查看系统时间(验证RTC/时钟驱动)
echo "hello openvela" # 验证shell基本输出
# ls -l / # 查看根目录结构(验证文件系统挂载)
# ls -l /可能会崩溃
ls /
pwd # 查看当前工作目录

# 2. 进程管理
ps # 查看所有运行进程(如kvdbd/adbd/telnetd)
sleep 10 & # 后台启动睡眠进程
# ps | grep sleep # 过滤进程(验证管道/ grep 命令) 默认没有grep命令
ps
kill $(pgrep sleep) # 终止睡眠进程(验证进程控制)
# 3. 内存/存储测试
free # 查看内存使用(总内存/已用/空闲)
df -h # 查看文件系统挂载(验证虚拟存储)
mkdir /tmp/test # 创建目录(验证文件系统可写)
echo "test" > /tmp/test.txt # 写入文件
cat /tmp/test.txt # 读取文件
rm /tmp/test.txt && rmdir /tmp/test # 删除文件/目录
# 4. 环境变量
env # 查看环境变量
export TEST=openvela # 设置临时环境变量
echo $TEST # 读取环境变量
二、硬件/驱动功能测试(适配goldfish虚拟板)
验证虚拟板外设驱动是否正常:
# 1. 设备节点检查(核心驱动)
ls -l /dev/fb0 # 帧缓冲设备(图形显示依赖)
ls -l /dev/ttyS0 # 串口设备(控制台/蓝牙HCI依赖)
ls -l /dev/net/tun # 虚拟网卡设备(网络依赖)
ls -l /dev/urandom # 随机数设备(加密/Matter依赖)
# 2. 串口测试(若启用)
echo "serial test" > /dev/ttyS0 # 向串口写数据
cat /dev/ttyS0 & # 后台监听串口输出(按Ctrl+C终止)
# 3. 帧缓冲(显示)测试
cat /sys/class/graphics/fb0/modes # 查看支持的分辨率
echo "800x480-32" > /sys/class/graphics/fb0/modes # 设置分辨率
# 4. 输入设备测试(若启用触摸/键盘)
ls -l /dev/input/event0 # 输入事件设备
cat /dev/input/event0 # 监听触摸/键盘事件(按Ctrl+C终止)
三、网络/无线功能测试(核心物联网能力)
验证网络、蓝牙、WiFi、Matter 功能(需提前配置编译):
# 1. 基础网络测试
ifconfig # 查看网络接口(如eth0/wlan0)
ifconfig eth0 up # 启动网卡
ping -c 3 8.8.8.8 # 测试外网连通性(虚拟板需联网)
netstat -tnlp # 查看监听端口(如ADB 5555、Telnet 23)
# 2. 蓝牙功能测试(需编译bluetoothctl)
bluetoothctl power on # 开启蓝牙控制器
bluetoothctl scan on # 扫描周边蓝牙设备
bluetoothctl show # 查看蓝牙设备信息
bluetoothctl power off # 关闭蓝牙
# 3. WiFi功能测试(需编译iw)
iw dev # 查看WiFi接口(如wlan0)
iw wlan0 scan # 扫描WiFi热点
iw wlan0 connect "SSID" # 连接WiFi(替换为实际热点名)
iw wlan0 disconnect # 断开WiFi
# 4. Matter协议测试(需编译matterctl)
matterctl init # 初始化Matter设备
matterctl commission ble # 蓝牙配网(Matter BLE Commissioning)
matterctl status # 查看Matter设备状态
四、图形/应用功能测试(LVGL/演示程序)
验证图形界面和应用程序运行:
# 1. LVGL演示程序测试
lvgldemo -h # 查看LVGL演示帮助
lvgldemo & # 后台启动LVGL演示(图形界面)
ps | grep lvgldemo # 确认进程运行
kill $(pgrep lvgldemo) # 终止LVGL演示
# 2. ADB/Telnet服务测试
adbd & # 启动ADB服务
telnetd & # 启动Telnet服务
netstat -tnlp | grep 5555 # 确认ADB端口监听
netstat -tnlp | grep 23 # 确认Telnet端口监听
# 3. 自定义脚本/程序测试
echo '#!/bin/sh
echo "OpenVela test script"' > /tmp/test.sh # 编写脚本
chmod +x /tmp/test.sh # 添加执行权限
/tmp/test.sh # 运行脚本
替换如下命令
# 验证图形界面和应用程序运行(适配NSH无grep/pgrep/netstat版本)
# 1. LVGL演示程序测试
lvgldemo -h # 查看LVGL演示帮助(若提示命令不存在,需编译LVGL)
lvgldemo & # 后台启动LVGL演示(图形界面)
ps # 手动查看进程列表,找到lvgldemo对应的PID(比如PID=14)
kill 14 # 替换为实际PID,终止LVGL演示(示例PID=14,需按实际修改)
# 2. ADB/Telnet服务测试
adbd & # 启动ADB服务
telnetd & # 启动Telnet服务
# 替代netstat -tnlp | grep 5555:通过ps查看adbd/telnetd是否运行
ps # 手动检查列表中是否有adbd(ADB服务)、telnetd(Telnet服务)进程
# 额外验证:检查ADB/Telnet设备节点(虚拟板特有)
ls /dev/adb # 确认ADB设备节点存在
ls /dev/telnet # 确认Telnet设备节点存在
# 3. 自定义脚本/程序测试(NSH简化版,避免复杂语法)
echo "echo \"OpenVela test script\"" > /tmp/test.sh # 简化脚本内容(NSH对多行echo支持有限)
chmod +x /tmp/test.sh # 添加执行权限
/tmp/test.sh # 运行脚本
rm /tmp/test.sh # 测试完成后清理脚本(可选)
五、调试/排障测试(定位问题)
当功能异常时,用于快速定位问题:
# 1. 日志/调试信息
dmesg # 查看内核启动日志(驱动加载/错误)
dmesg | grep error # 过滤错误日志
loglevel 6 # 提高日志级别(显示更多调试信息)
# 2. 驱动加载检查
lsmod # 查看加载的内核模块(若启用模块)
cat /proc/modules # 替代lsmod(部分系统无lsmod)
# 3. 性能监控
top # 实时监控CPU/内存占用(按q退出)
ps -aux # 详细进程信息(CPU/内存使用率)
# 4. 网络抓包(若启用tcpdump)
tcpdump -i eth0 -c 10 # 抓取eth0网卡10个数据包(调试网络问题)
六、使用说明
- 执行顺序:建议按「基础→硬件→网络→应用→调试」的顺序执行,先确认基础功能正常;
- 命令缺失处理:若提示「command not found」,说明未编译对应功能,需回到
menuconfig开启(如bluetoothctl需开启Wireless Support -> Bluetooth -> Bluetooth Command Line Tool); - 虚拟板适配:goldfish 是虚拟板,部分物理硬件命令(如
iw wlan0 connect)需依赖仿真驱动,若执行失败属正常,重点验证「进程/文件/网络基础功能」即可; - 后台进程终止:所有后台进程(加
&启动)可通过kill PID终止,或重启仿真器清空。
总结
这套命令覆盖 NSH 终端的核心测试场景:
- 基础系统(进程/文件/内存)验证系统可用性;
- 硬件驱动(串口/显示/输入)验证外设适配;
- 网络无线(蓝牙/WiFi/Matter)验证物联网核心能力;
- 应用/调试(LVGL/日志/性能)验证上层功能和问题定位。
可根据你的实际需求(如重点测试 Matter 或 LVGL),挑选对应分类的命令执行。
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


































所有评论(0)