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. 相关串口日志级别说明

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

最后

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

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

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

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

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

  •  HarmonOS基础技能

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

  • 鸿蒙NaPi组件进阶

  • HarmonOS高级技能

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

有了路线图,怎么能没有学习资料呢,小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开发入门教学视频,内容包含:ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

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

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

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

图片

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

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

图片

 《鸿蒙开发基础》

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

图片

 《鸿蒙开发进阶》

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

图片

《鸿蒙进阶实战》

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

图片

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

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/294061.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯刷题day13——玩游戏【算法赛】

一、问题描述 小 A 和小 B 两个人在海边找到了 n 个石子,准备开始进行一些游戏,具体规则如下:小 B 首先将 n 个石子分成若干堆,接下来从小 A 开始小 A 和小 B 轮流取石子,每次可以任选一堆石子取走任意个,…

剑指offer--替换空格

一.题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。例如"We are happy."替换为"We%20are%20happy. 算法一: 算法1:从头到尾遍历,遇到空格把它替换为%20.时间O(n^2),空间O(1) void replaceSpace(char* s)//…

FreeRTOS 任务挂起和恢复API函数

FreeRTOS 任务挂起和恢复API函数使用 挂起的作用就是当我们需要暂停某任务时候,等过一段时间在运行,这个时候要是使用删除和重建的方法就会当时任务进行时候的变量保存的值。当需要将这个任务停止运行一段时间的将这个任务挂起,当重新进行运…

安装mysql8,启动mysql服务日志 libstdc++.so.6: wrong ELF class: ELFCLASS32

背景:linux centos7.9安装mysql5.7版本,服务启动成功后被告知要求安装mysql8版本,故卸载之后安装mysql8,后启动mysql服务报错提示:libstdc.so.6: wrong ELF class: ELFCLASS32 解决办法: 1、下载安装包li…

第十八章 算法

一、介绍 1.1 什么是算法 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获…

【力扣一刷】代码随想录day27(39. 组合总和、40.组合总和II、131.分割回文串)

目录 【39. 组合总和】中等题 【40.组合总和II】中等题 【131. 分割回文串】中等题 【39. 组合总和】中等题 思路: 确定终止条件:sum target时记录路径并返回。剪枝:当前节点的路径之和已经大于sum就不可能再等于sum了,结束该分支…

[中级]软考_软件设计_计算机组成与体系结构_03_CPU的组成(运算器与控制器)

CPU的组成 计算机的结构CPU的结构运算器控制器往年真题 计算机的结构 CPU的结构 运算器 算术逻辑单元(ALU):数据的算术运算和逻辑运算累计寄存器(AC):通用寄存器,为ALU提供一个工作区,用在暂存数据数据缓冲寄存器(DR)&#xff1…

期权的常见结构

期权收益图 期权的**收益(payoff)**是指期权到期日时的价值,**期权的损益(profit)**不但包含期权的收益,还包括期权交易开始时发生的期权费。 买入看涨期权 看涨期权买入方,当到期时标的资产…

Python爬虫:爬虫常用伪装手段

目录 前言 一、设置User-Agent 二、设置Referer 三、使用代理IP 四、限制请求频率 总结 前言 随着互联网的快速发展,爬虫技术在网络数据采集方面发挥着重要的作用。然而,由于爬虫的使用可能会对被爬取的网站造成一定的压力,因此&#…

[C++11]可变参数模板

导览&#xff1a; 本章将从可变参数模板的概念开始讲起&#xff0c;到其究竟是如何做到实例化的再从实例出发&#xff0c;探究该如何编写可变参数模板最后涉及可变参数模板的运用 什么是可变参数模板 让我们先见一下可变参数模板 template<typename ...Args> void te…

iOS开发进阶(十一):ViewController 控制器详解

文章目录 一、前言二、UIViewController三、UINavigationController四、UITabBarController五、UIPageViewController六、拓展阅读 一、前言 iOS 界面开发最重要的首属ViewController和View&#xff0c;ViewController是View的控制器&#xff0c;也就是一般的页面&#xff0c;…

《Invariant Feature Learning for Generalized Long-Tailed Classification》阅读笔记

论文标题 《Invariant Feature Learning for Generalized Long-Tailed Classification》 广义长尾分类的不变特征学习 作者 Kaihua Tang、Mingyuan Tao、Jiaxin Qi、Zhenguang Liu 和 Hanwang Zhang 来自南洋理工大学、阿里达摩院和浙江大学 初读 摘要 属性不平衡&#…

行车记录打不开?别慌,数据恢复有高招!

行车记录打不开&#xff0c;这恐怕是许多车主都曾经遭遇过的烦恼。在驾驶途中&#xff0c;行车记录仪本应是记录美好瞬间、保障行车安全的重要工具&#xff0c;但一旦它出现打不开的情况&#xff0c;所有的期待与信赖便瞬间化为乌有。面对这种情况&#xff0c;我们该如何应对&a…

Oracle Solaris 11.3开工失败问题处理记录

1、故障现像 起初是我这有套RAC有点问题&#xff0c;我想重启1个节点&#xff0c;结果发现重启后该节点的IP能PING通&#xff0c;但SSH连不上去&#xff0c;对应的RAC服务也没有自动启动。 操作系统是solaris 11.3。由于该IP对应的主机是LDOM&#xff0c;于是我去主域上telnet…

【linux】基础IO(一)

文件只有站在系统层面才能彻底理解 简单回顾一下文件&#xff1a; 首先我们要明确一点&#xff0c;我们说的打开文件不是写下fopen就打开文件&#xff0c;而是当我们的进程运行起来&#xff0c;进程打开的文件。 我们在C语言一般都会使用过如下的代码进行向文件中写入 但是除…

LLM应用:Prompt flow vs LangChain

背景 Prompt flow和LangChain都是LLM时代&#xff0c;为高效地构建LLM应用而生。 Prompt flow是Microsoft开源的&#xff0c;其诞生时&#xff0c;LangChain已经很有名气了。 所以作为后生的Prompt flow会为我们带来哪些新的东西呢&#xff1f; ​​​​​​​ Prompt flo…

互联网、因特网、万维网的区别

互联网 internet&#xff1a;凡是能彼此通信的设备组成的网络就叫互联网&#xff0c;即使只有两台计算机&#xff0c;无论以何种技术使其彼此通信&#xff0c;都叫互联网。所以&#xff0c;根据互联网的覆盖规模可以分为&#xff1a; 局域网&#xff08;Local Area Network&am…

如何使用potplayer在公网环境访问内网群晖NAS中储存在webdav中的影视资源

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-D7WJh3JaNVrLcj2b {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

黑马鸿蒙笔记 3

目录 11.ArkUI组件-Column和Row 12.ArkUI组件-循环控制 13.ArkUI组件-List 14.ArkUI组件-自定义组件 15.ArkUI组件-状态管理State装饰器 16.ArkUI组件-状态管理-任务统计案例 17.ArkUI组件-状态管理-PropLinkProvideConsume 11.ArkUI组件-Column和Row Colum和Row的交叉…

第三天开始写了

现在的情况 写俩个接口信息 1. 一个修改 2. 一个 删除 发现了一个问题 只有这些参数无法完成修改的 因为这些关联到一个商品表和一个用户表&#xff0c;我们应该查询他们id信息&#xff0c;修改其中的内容&#xff0c;单独根据字符串查看效果可能不好 这里我们提交应该是用…