IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> source insight的使用:快速查看LINUX内核(去除多余文件 + 条件编译) -> 正文阅读

[系统运维]source insight的使用:快速查看LINUX内核(去除多余文件 + 条件编译)

一、环境

1、使用的是linux内核版本4.1.x + ARM架构
2、source insight4.0中文版

二、工具包下载

有需要的小伙伴也可以下载工具包**(本文需要用到的工具都有)**
工具包里面有source insight4.0中文版、PF_Prj_Gen.sh脚本、lkc2sicx.py 脚本、以及source insight白色主题样式(具体操作请看文件下操作文档)
链接:https://pan.baidu.com/s/1Ejxz89B_kTEMty9Gu_y7dA?pwd=n4ya
提取码:n4ya
![在这里
插入图片描述](https://img-blog.csdnimg.cn/bf6ac463316f4cd9a65de97cd1cf3827.png)

三、source Insight4.0的使用

(以Source Insight 4.0为例)
0、source Insight4.0安装过程可以参考博客:https://blog.csdn.net/tuwulin365/article/details/117387331

1、安装完source Insight软件后,先把准备打开的内核源码放在一个目录下(例如:D:\linux-imx-rel_imx_4.1.15_2.1.0_ga)
在这里插入图片描述

2、新建一个工程,项目名任意。项目数据存放路径选择内核源码目录(例:D:\linux-imx-rel_imx_4.1.15_2.1.0_ga)
在这里插入图片描述
![在这里插入图片描述](https://img-blog.csdnimg.cn/
写好项目名和存储地址后就按“OK”,然后继续按OK
在这里插入图片描述
继续按OK
在这里插入图片描述
找到内核源码,如上图所示,然后按 添加树/“add tree”
最后效果图如下,然后就按关闭

四、同步文件

新的工程需要同步文件,否则查看某个函数定义时会出现symbol not found:XXXXX
在这里插入图片描述
在这里插入图片描述

五、去除linux内核不必要的文件

上诉步骤做完以后,会发现linux内核文件很多,作者这个内核也有5W多个文件,有很多个文件函数都重复定义的,不方便我们查看。

1)使用PF_Prj_Gen.sh脚本

参考博客:https://blog.csdn.net/qq_30027083/article/details/89524520
(脚本可以在本文提供的工具包中下载,也可以在上述博客中下载)
在ubuntu中使用PF_Prj_Gen.sh脚本,具体操作:
1、首先一定要编译一下kernel源码,如果是建立uboot,那么就编译uboot源码。保证编译通过
2、再将下载的PF_Prj_Gen.sh脚本复制到存放到(编译过的)linux内核源码目录下(例:ebf_6ull_linux_test)

chmod 777 PF_Prj_Gen.sh

效果图

3、再命令行执行PF_Prj_Gen.sh脚本,(必须要保证outfile文件夹不存在),命令:

sudo ./PF_Prj_Gen.sh . ./outfile

在这里插入图片描述

4)再将生成的outfile文件夹下的FileList_SourceInsight.txt放到Windows任意一个路径上在这里插入图片描述
5)回到source Insight软件,点击菜单:项目 —> 添加和移除项目文件 --> 删除全部 --> 从列表中添加 --> FileList_SourceInsight.txt —>关闭
在这里插入图片描述
在这里插入图片描述
6)最后可以看出我们的内核其实只需要4千多个文件就可以了
在这里插入图片描述

五、使用内核条件编译

参考:https://www.freesion.com/article/49471445233/
内核中除了很多没用到的文件,代码中也有很多条件编译,像进去一个函数的定义中,会发现有几个.c都有这个函数的定义。那么这个时候就需要我们的条件编译了。ps:需要用到我们编译内核时的.config配置文件
1)(工具包)下载 lkc2sicx.py 转换脚本,然后放到已经编译过的linux内核的目录下(这个脚本是将.config配置文件转换为xml)
在这里插入图片描述

2)进入ConvertLinuxKernelConfig2SourceInsightConditionsXml-1.0 下
在这里插入图片描述
3)将内核的配置文件.config放到ConvertLinuxKernelConfig2SourceInsightConditionsXml-1.0 下,然后使用lkc2sicx.py:

sudo cp ../.config config
sudo ./lkc2sicx.py -s config -d example

在这里插入图片描述
4)将生成的example.conditions.xml放到Windows随便一个文件夹下
在这里插入图片描述
5)回到source Insight软件,点击菜单:项目 —> 默认项目设置–> 条件–> 导入 --> 替换所有条件 —>载入 —> 生成的example.conditions.xml —》后面全部选择OK
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6)等同步完所有文件后,菜单:选项 ---- >风格选项 —> (风格名)Inactive Code —> 删除线选择ON —>完成/OK
在这里插入图片描述

在这里插入图片描述
7)效果图:
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:53:05  更:2022-06-16 21:53:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 23:10:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码