OpenHarmony实战:用IPOP调试 OpenHarmony 内核

前言

我使用的是 IPOP V4.1,基于 OpenHarmony 开源系统和 RK3568 开发板,在 PC 上运行此软件,查看运行、错误日志来调试内核。作为网络、嵌入式式内核调试的必备工具,建议同学珍藏。IPOP 运行在 PC 上,操作系统是 Windows10 x64。

一、调试 OpenHarmony 内核、硬件 IPOP 工具说明

1.1. 概述

IPOP 软件是一款功能强大、绿色免费、界面朴实无华、实用性强的网络 IP 专用工具的集合。它基本上包含了 IP 地址动态性绑定、MAC 地址改动、帖子配备、流量监测、端口号等各个领域,功能齐备,特别适合 OpenHarmony 内核、互联网开发和测试工程师应用。

1.2. 网络方面的功能

  1. IP 地址动态性绑定功能;
  2. 路由器记录查询和配备功能;
  3. MAC 地址记录查询、变更功能;
  4. MAC、服务器信息内容扫描仪功能;
  5. MAC 地址与生产厂家相匹配表;
  6. 该设备互联网报文格式统计分析功能;
  7. 该设备端口号目录、远程控制端口扫描器功能;
  8. 常用端口一览表;
  9. 端口映射功能;
  10. 网卡流量监控和标示功能;
  11. 该设备 IP 报文格式捕捉和推送功能;
  12. 多用户 telnet/ssh/sftp/ ftp/ dos/串口通信维护保养终端设备专用工具,适用 IPV6;
  13. TCP、UDP、Telnet、FTP、TFTP、WEB、群聊通讯等网络服务器功能。

二、安装 USB 转 COM 设备驱动

2.1. 连接电缆

一头连接 PC USB 端口,另一头链接开发板 COM 端口。开发板上运行开源系统主线版本,连接端口如白色线缆所示,如果联通就会亮红灯

2.2. 安装 USB 转 COM 驱动

CDM212364_Setup 为当前使用的 FTDI 芯片 USB 转 COM 口驱动,一路确定即可完成,有时安装完成后需要重启 PC。驱动安装包从附件下载。

2.3. 在设备管理器查看驱动是否安装成功

驱动未安装成功如图片左边所示,成功则如右边所示,会出现”USB Serial Port(COM) ”字样。

三、用 IPOP 调试 OpenHarmony 内核

采用 USB 转 COM 端口调试 OpenHarmony 内核、硬件

3.1. 操作步骤

双击打开 IPOP 软件,选择终端工具 → 新建连接 ①→ 选择类型 ②(和设备管理器里面显示的一致)→ 波特率 ③→ 自动存盘 ④→ 存盘目录 ⑤→ 在连接列表选择对应连接 → 确定 ⑥,步骤如下图所示,蓝色背景不断刷新的信息就是系统运行的日志。

3.2. 注意事项

  • 如果连接列表中不存在对应连接,在连接名称中填入和选择类型相同的名称。
  • 避免频繁换行不好看,将“每行列数”设置为 132。
  • 自动保存的日志,在存盘目录可以看到。

3.3. 典型按钮功能说明

当鼠标悬停在每个按钮上时,会自动显示其功能提示。

  • 绿色灯图标:正在存盘,单击变为红灯则停止存盘。此功能方便我们在条件就绪的情况抓取日志片段。
  • 剪刀图标:清空当前日志。

3.4. 添加快捷输入按钮

如果需要向开发板发送较长或多个指令时,避免手动输入,可以自定义功能按钮,确定后会出现在工具条的末尾。用时单击即可。

四、dmesg 用法

在开源系统中,了解系统的内核信息和故障诊断是至关重要的。而 dmesg 指令就是一个强大的工具,它可以帮助我们查看系统内核的日志信息,了解系统的运行状态和故障原因。

4.1. dmesg 指令简介

dmesg 指令是一个在开源系统中查看内核日志的实用工具。它允许我们查看系统内核的输出消息,包括引导信息、硬件检测、设备驱动程序和系统错误等。通过使用 dmesg 指令,我们可以追踪系统启动过程中的事件,排查故障和问题。

4.2. 查看系统内核日志

使用 dmesg 指令可以轻松查看系统的内核日志。只需在终端中输入以下命令:dmesg
命令执行后,将显示最新的内核日志信息。日志可能包含各种关于系统硬件、设备驱动程序和内核模块的消息。您可以通过滚动终端窗口或使用管道命令进行过滤来查看完整的日志。

4.3. 过滤和搜索内核日志

dmesg 指令支持使用管道命令结合其他工具对内核日志进行过滤和搜索,以便更精确地查找特定的信息。以下是一些常用的过滤和搜索技巧:

  • 过滤特定关键字
    使用 grep 命令结合 dmesg 指令,可以过滤出包含特定关键字的日志信息。例如,以下命令将只显示包含"error"关键字的日志:#dmesg | grep error
  • 显示最新的 N 行日志
    使用 tail 命令结合 dmesg 指令,可以显示最新的 N 行日志。例如,以下命令将显示最新的 10 行日志:#dmesg | tail -n 10
  • 按时间戳排序日志
    使用 sort 命令结合 dmesg 指令,可以按时间戳对日志进行排序。例如,以下命令将按时间戳从新到旧排序日志:
    #dmesg | sort -r

五、设置内核日志打印等级

当系统崩溃修复时,会产生大量系统日志,不便于关键信息获取,通过修改系统日志打印级别,可突出所需级别的日志信息,便于查找。

5.1. 查询串口日志级别

在 OS 执行 cat /proc/sys/kernel/printk 命令,返回信息中的“7”表示串口日志级别:

# cat /proc/sys/kernel/printk
7      4         1        7

5.2. 修改串口日志级别

该方法只对当次运行有效,OS 重启后串口日志级别恢复为配置文件定义的级别。
在 OS 执行 echo N > /proc/sys/kernel/printk 命令,N 表示要设置的串口日志级别。

# echo 6 > /proc/sys/kernel/printk
# cat /proc/sys/kernel/printk
6       4         1        7

5.3. 相关串口日志级别说明

Level Name Description
0 KERN_EMERG 紧急消息。系统崩溃之前提示,表示系统已不可用。
1 KERN_ALERT 报告消息。表示必须立即采取措施。
2 KERN_CRIT 临界消息。通常涉及严重的硬件或软件操作失败。
3 KERN_ERR 错误消息。串口日志的默认级别。驱动程序常用 KERN_ERR 来报告硬件的错误。
4 KERN_WARNING 警告消息。对可能出现问题的情况进行警告。
5 KERN_NOTICE 正常但又重要的消息。用于提醒,常用于与安全相关的消息。
6 KERN_INFO 提示消息。如驱动程序启动时,打印硬件消息。
7 KERN_DEBUG 调试消息。设置此级别会打印所有日志消息。

最后

有很多小伙伴不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习是非常有必要的。 

这份鸿蒙(HarmonyOS NEXT)资料包含了鸿蒙开发必掌握的核心知识要点,内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。

希望这一份鸿蒙学习资料能够给大家带来帮助,有需要的小伙伴自行领取,限时开源,先到先得~无套路领取!!

获取这份完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

鸿蒙(HarmonyOS NEXT)最新学习路线

  •  HarmonOS基础技能

  • HarmonOS就业必备技能 
  •  HarmonOS多媒体技术

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

  • 初识HarmonOS内核 
  • 实战就业级设备开发

获取以上完整版高清学习路线,请点击→纯血版全套鸿蒙HarmonyOS学习资料

《鸿蒙 (OpenHarmony)开发入门教学视频》

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

OpenHarmony北向、南向开发环境搭建

图片

 《鸿蒙开发基础》

  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开发
  • .……

图片

 《鸿蒙开发进阶》

  • Stage模型入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开发
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开发
  • 应用测试
  • DFX面向未来设计
  • 鸿蒙系统移植和裁剪定制
  • ……

图片

《鸿蒙进阶实战》

  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

图片

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料

总结

总的来说,华为鸿蒙不再兼容安卓,对中年程序员来说是一个挑战,也是一个机会。只有积极应对变化,不断学习和提升自己,他们才能在这个变革的时代中立于不败之地。 

上一篇:【设计模式】1、单例模式


下一篇:【前端浅谈】前端开发语言有哪些