vscode搭建linux内核开发环境

2023-11-15

vscode在linux下搭建内核驱动开发环境

一、前言

Souce insight是一个阅读、开发linux内核驱动模块的好工具,但是Source insight是收费的软件,而且没有原生linux版本,要是想在纯linux环境下进行linux驱动开发,就只能wine+Source insight,而wine版的不好用容易卡死而且cpu占用还高,我就想到用开源跨平台的vscode进行linux内核开发,体验能否和source insight一样好呢?

二、实践

经过搜索和自己亲身实践,最后发现vscode+global插件,可以实现和source insight相媲美的体验

三、准备工作

  • linux内核源代码文件夹
  • linux下安装好vscode

四、安装global软件包和vscode global插件

我用的是deepin-linux操作系统,在终端输入apt命令安装global

sudo apt install global

Shell

Copy

在vscode的插件商店里搜索安装global插件

 

五、打开linux源码文件夹

利用vscode的打开文件夹的功能,打开linux内核源码的文件夹

 

提示无法在这个工作区中监视文件更改,按照网页的提示,修改最大文件监控数就可以了,不改对开发也没什么影响

 

六、安装c/c++扩展

随便打开一个c文件,右下角会提示你安装c/c++扩展,点安装就可以自动安装了

 

安装完毕,又会提示你配置 IntelliSense 设置以帮助查找缺少的标头,点配置即可,这里我配置了一个交叉编译器的地址,这个其实也没什么用,不配置也可以

 

关闭配置页面,这个页面不配置也不影响,这个时候下面会有问题输出,不用管

 

七、生成global数据库

在vscode下Ctrl+Shift+P进入命令行模式,输入gl,选择Global: Rebuild Gtags Database执行

 

过几分钟生成完毕,就会在linux源码目录下生成GTAGS、GRTAGS、GPATH三个tag数据库文件

 

 

接着,就可以用F12愉快的跳转定义啦,输入代码的时候也会有给力的代码提示

 

备注:global的版本要注意

又备注:目前在使用过程中,有自定义的结构体成员比如u32这种类型的无法识别无法提示的问题,不知大家有无方法解决,可以在下方评论我

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vscode搭建linux内核开发环境 的相关文章

  • 【理论实践】指向类模板函数的指针的使用(以std::list为例)

    假设有这个一个场景 我们希望根据条件决定插入元素到list首或尾 条件判断一次 插入操作多次 例如二叉树 至少要处理左和右各一次 普通的代码很简单 每次操作时 都判断一下 简化一下是一个三元表达式 巧妙一点的 可以定义一个变量指定接口函数
  • QT学习笔记:多线程操作

    做了一个demo展示两种形式的多线程操作 第二种常用 new QThread Class Override run new Object Class moveToThread new QThread threadfirst h 第一种形式的
  • Js Jquery 关于endWith() 和startWith() 的使用

    javascript中字符串处理并没有 StartWith 和 EndWith 这俩个方法 这里说的是手动构建这俩个方法 JQuery 也是没有这俩个方法的 而是利用其丰富的选择器来达到此效果 首选javascript下着俩个函数的构建如下
  • RFC7296--Internet密钥交换协议版本2(IKEv2)

    2 8 密钥更新 rekeying IKE ESP和AH安全联盟 SA 使用的共享密钥应该只在有限的时间里保护优先的数据 这限制了整个SA的生存周期 生存周期超时的SA决不能再使用 如果有需要 可以建立新的SA 重建SA以取代过期的SA被称
  • Python 文件操作(IO)

    文章目录 前言 一 打印到屏幕 print 二 读取键盘输入 1 raw input 2 input 三 读写文件 读文件 写文件 前言 和其它编程语言一样 Python 也具有操作文件 I O 的能力 比如打开文件 读取和追加数据 插入和
  • 什么是token?

    什么是token token就是令牌 前后端进行鉴权的一种有效形式 比传统的 session 鉴权更加方便 简单来说 当用户首次登陆时 网站会给你一张 门卡 以后你可以凭借门卡直接进入 而无需再次申请 但一段时间之后门卡实效 你需要再到前台
  • 如何调用本业务模块外的服务——服务调用

    上篇已经引入 Nacos 基础组件 完成了服务注册与发现机制 可以将所有服务统一的管理配置起来 方便服务间调用 本篇将结合需求点 进行服务间调用 完成功能开发 几种服务调用方式 服务间调用常见的两种方式 RPC 与 HTTP RPC 全称
  • 一个简洁的PNG ICO转换工具 支持多分辨率的ICO生成

    一个绝美的PNG ICO转换工具 支持多分辨率的ICO生成 下载地址 http www ppsbbs tech thread 58 htm
  • Kotlin 1.2 新特性

    点击关注异步图书 置顶公众号 每天与你分享IT好书 技术干货 职场知识 在Kotlin 1 1中 团队正式发布了JavaScript目标 允许开发者将Kotlin代码编译为JS并在浏览器中运行 在Kotlin 1 2中 团队增加了在JVM和
  • Intellij Idea怎么撤销,反撤销

    Intellij IDEA中 1 Ctrl z是撤销快捷键 2 反撤销快捷键为 Ctrl Shift Z
  • React 配置路由

    1 在 index 中引入 App 文件 index 是入口文件 并且在 index 中引入样式文件等等 把 App 挂载到 DOM 元素上 2 在 App 组件中
  • 3 亿岗位将被 AI 取代?巴比特深度采访业界后,“失业潮”真相有些出人意料……...

    图片来源 由无界 AI工具生成 人工智能技术的发展正迎来奇点 尤其是今年以来 ChatGPT 和 AIGC 的迅猛势头让无数人猝不及防 真真切切地对各行各业现有的工作岗位产生冲击 近日 蓝色光标全面停止创意设计 方案撰写 文案撰写 短期雇员
  • (简单成功版本)Mysql配置my.ini文件

    目录 一 背景 二 删除原有的mysql服务 三 初始化mysql 四 自行添加my ini文件 五 新建mysql服务 六 启动mysql服务 七 设置数据库密码 7 1 登录mysql数据库 7 2 修改root用户密码 八 配置my

随机推荐

  • Xcode编译报错不提示

    M1 Xcode Version 12 5 1 12E507 编译项目之后提示 Build Failed 但是并不报 小红点 不指示是哪个文件报错 不知道去哪里找报错文件了 Xocode 工具栏上有这个按钮 选择之后点击某次编译 如果有错误
  • DOTA目标检测数据集

    Dota开源目标检测数据集 DOTA v1 5包含16个类别中的40万个带注释的对象实例 这是DOTA v1 0的更新版本 它们都使用相同的航拍图像 但是DOTA v1 5修改并更新了对象的注释 其中许多在DOTA v1 0中丢失的10像素
  • 拷贝构造函数的调用方式以及相关问题【最清晰易懂】

    这几天一直有一个问题在我大脑里挥之不去 之前面试实习的时候也被问过 但是回答的不好 面试官问 你知道的构造函数有哪些 我说 无参构造函数 有参构造函数 拷贝构造函数 移动构造函数 关于一些函数的说明 面试官说 其实拷贝构造函数 移动构造函数
  • java给字符串数组追加字符串_java往字符串数组追加新数据

    public class Test public static void main String args 原字符串数组 String arr 原字符串数据1 原字符串数据2 执行数据添加 arr insert arr 需要追加的字符串数据
  • win11安装mysql5.7带安装包与常见问题如重装,初次登录不上,跳不了密码等

    目录 1下载 2安装 注意1 你的新建只有文件夹而且需要权限 注意2报错The service already existsThe current server installed 3初次登录与密码 注意3密码是只能输入进去的 4设置密码与
  • OpenCV总结3——图像拼接Stitching

    之前折腾过一段时间配准发现自己写的一点都不准 最近需要进行图像的拼接 偶然的机会查到了opencv原来有拼接的库 发现opencv处理配准之外还做了许多的操作 就这个机会查找了相关的资料 同时也研究了以下他的源代码 做一个简单的总结 Sti
  • css实现表单验证

    在我们的日常业务中 表单验证是个很常见设计需求 像一些登录注册框 问卷调查也都需要用到表单验证 一般我们的实现思路都是JS监听input框的输入内容 判断用户输入内容 从而以此来决定下一步的操作
  • 13.6 Production State Awareness (PSA)

    1 Introduction UFS设备可以利用有关其生产状态的知识 相应地调整内部操作 例如 在设备焊接之前加载到存储设备中的内容可能被破坏 其概率高于regular模式 UFS设备可以在设备焊接前使用 Special 内部操作加载内容
  • qt界面论坛

    http www cnblogs com appsucc archive 2012 03 14 2395657 html
  • JAVA核心知识点--Maven引入org.apache.tools.zip

    可以看出 org apache tools zip 是 ant jar里面的 所以要引入org apache tools zip 直接maven引入ant即可
  • 基于SSM框架的家教中介平台系统的设计与实现(源码免费获取)

    技术架构 Java语言 MySQL数据库 SSM框架 功能简介 1 系统登录 系统登录成为了管理员访问系统的路口 设计了系统登录界面 包括管理员名 密码和验证码 然后对登录进来的管理员判断身份信息 判断其为管理员 还是普通用户 2 管理员管
  • logback 对特殊日志进行过滤

    工作中需要对 logback 的日志进行定制化过滤 此时一般有两种方法 logger 在 logback spring xml 中添加如下配置 可以关闭对应类的日志
  • Intellij安装scala插件详解

    参考博客 1 http wwwlouxuemingcom blog 163 com blog static 20974782201321953144457 2 http blog csdn net stark summer article
  • cvm云服务器的,cvm云服务器如何登录

    cvm 登录到 本地为 Windows 计算机 1 在本地 Windows 机器上 单击开始菜单 运行 输入 mstsc 命令 即可打开远程桌面连接对话框 2 在输入框输入 Windows 服务器的公网 IP 登录 云服务器控制台 可查看云
  • 牛客剑指offer之【JZ12 矩阵中的路径】

    哈喽 这次真的是好久不见呀 我回来啦 接下来的日子我会不断更新牛客上的剑指offer题解 为什么这么做呢 是因为博主刷题总是刷了忘忘了刷 一样的题目换种形式就要做好久 说到底还是对知识点的理解不够透彻 加之算法对一个即将找工作的大学生来说更
  • 【Pytorch with fastai】第 15 章 :深入探讨应用程序架构

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 计算机网络参考模型(OSI讲解)

    计算机网络参考模型 文章目录 计算机网络参考模型 一 什么是七层网络模型 二 每一层的功能与特点 三 osi模型和TCP IP模型的区别 四 数据封装和解封装的过程 1 封装与解封装过程 2 设备与层之间的关系 一 什么是七层网络模型 七层
  • 保护模式的分段

    一 分段的背景 在8086处理器诞生之前 内存寻址方式就是直接访问物理地址 8086处理器为了寻址1M的内存空间 把地址总线扩展到了20位 但是 一个尴尬的问题出现了 ALU的宽度只有16位 也就是说 ALU不能计算20位的地址 为了解决这
  • Less-11-12 【‘、“)】

    目录 第十一 十二关 1 在账号密码输入admin 查看成功效果 2 输入错误的账号密码 查看错误效果 3 找注入点 我们尝试在账户的输入框中加单引号 发现出现报错 4 加注释 查看页面是否恢复正常 可以看到页面成功执行了 证明当前网址存在
  • vscode搭建linux内核开发环境

    vscode在linux下搭建内核驱动开发环境 一 前言 Souce insight是一个阅读 开发linux内核驱动模块的好工具 但是Source insight是收费的软件 而且没有原生linux版本 要是想在纯linux环境下进行li