(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行

这篇具有很好参考价值的文章主要介绍了(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 驱动开发环境搭建

请参考另一篇:https://blog.csdn.net/qq_41273999/article/details/133341733

2. 驱动开发新建项目及项目属性配置和编译

请参考另一篇:https://blog.csdn.net/qq_41273999/article/details/133376458

3. 双机调试环境搭建

3.1 安装虚拟机VMware

准备好安装包,勾选将VMware Workstation控制台工具添加到系统PATH。

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

输入秘钥:ZF71R-DMX85-08DQY-8YMNC-PPHV8,如果失效,勾选试用30天。

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

下载完成后,以管理员身份打开VMware,新建虚拟机,选择自定义:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

未提及页面默认下一步

选择稍后安装操作系统:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

选对应要安装的系统

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

系统安装路径自己设定,但不能安装在VMware文件路径下

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

改为BIOS引导设备:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

将虚拟磁盘拆分成多个文件:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

自定义硬件:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

选择你的ISO映像文件路径:(系统安装镜像文件)

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

完成。开启此虚拟机:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

安装你的操作系统:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

在虚拟机系统中安装VMWare Tool:(在虚拟机选项卡的下拉菜单中)

安装该工具后才能实现主机与虚拟机之间的文件共享,支持自由拖拽的功能

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

3.2 配置Dbgview.exe工具

安装好VMWare之后就可以把Dbgview.exe工具复制到虚拟机系统中:

Dbgview是windows下的一款调试工具,可以捕获程序输出的日志,分为64位和32位,支持应用层和内核层的日志捕获,利用它排除bug是个不错的选择。一般程序日志记录可以输出到文件进行查看,但是使用Dbgview不会自动输出到文件,它的日志信息是驻留在进程内存中。

该工具可以很方便的观察DbgPrint的日志。

在 “Capture” 菜单中,可以选择三种不同的日志记录模式:

  • Capture Win32: 监听所有应用程序产生的调试输出。
  • Capture Global Win32: 监听全局系统级别的调试输出。
  • Capture Kernel: 监听内核级别的调试输出。

开始监听并显示日志:点击 “Capture” 菜单中的 “Start”,Dbgview 将开始监听相应模式下产生的调试输出信息,并将其实时显示在窗口中。

过滤和配置选项:在 “Edit” 菜单中,你可以设置过滤器来仅显示特定进程或线程生成的调试信息。此外,你还可以配置其他选项,如字体、颜色等。

停止监听和保存日志:当你需要停止监听时,在 “Capture” 菜单中点击 “Stop”。如果想要保存当前窗口中显示的日志内容,可以选择 “Log to File” 或者 “Log to Pipe”。

Dbgview 提供了一种方便的方式来查看和分析应用程序的调试输出信息,特别适合于调试和故障排除。请注意,使用 Dbgview 需要以管理员权限运行,并且在某些情况下可能会受到安全软件的阻止。

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

在虚拟机中以管理员身份运行该工具,在菜单上选择Capture,勾选如下选项:

查看内核日志

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

3.3 基于Windbg的双机调试

选用COM口作为连接

在虚拟机系统中,以管理员权限打开cmd输入:

Bcdedit /debug on 回车
Bcdedit /dbgsettings serial baudrate:115200 debugport:1 回车

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

  配置完成后,请关闭虚拟机内的操作系统,然后在Vmware的配置界面,新增一个串口设备,设置该串口使用“命名管道”,名字为:\.\pipe\com_1 ,具体配置如下图所示:
(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

到此为止,被调试机所需设置已全部完成。

接下来开始配置Windbg

在调试机中(自己主机)运行Windbg工具:

选择File下的Kernel Debugging,配置COM口

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

配置完成,开启虚拟机,打开自己主机Windbg,启动后就会去连接被调试机器。

4. 内核驱动的运行

  驱动的运行通过服务来实现,微软规定,驱动文件必须经过微软的数字签名后,才可以运行在64位系统上。开发的驱动没有签名,需要加载运行就要临时关闭系统驱动签名校验。

4.1 临时关闭系统驱动签名校验

Windows 7:开机在键盘按下F8,选择禁用驱动程序签名强制。

Windows 10+:在高级启动中设置,具体操作为:“开始菜单”-“设置”-“更新与安全”-“恢复”,在高级启动下点击“立即重启”按钮,然后在出现的界面中选择“疑难解答”-“高级选项”-“启动设置”,点击“重启”按钮,系统开始重启,在重启过程中会显示启动选项,在键盘上输入数字7,即选择“禁用驱动程序强制签名”。
(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行

4.2 加载驱动

在虚拟机系统中临时关闭系统驱动签名校验,然后把生成的.sys驱动放到虚拟机系统的C盘下,接着在虚拟机系统内使用管理员权限运行CMD
(1)创建服务,注册驱动:sc create FirstDriver binPath= “c:\FirstDriver.sys” type= kernel

请注意上面命令,等号(=)后面需要有一个空格,FirstDriver是服务名,binPath后面是要加载的驱动的路径

(2)启动服务:sc start FirstDriver

出现如下界面说明你的驱动成功加载:

(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行,驱动开发,驱动开发,Driver开发,驱动调试,内核驱动开发,内核驱动运行
如果出现error,说明你未禁用驱动签名

(3)停止驱动服务:sc stop FirstDriver

(4)删除已注册和创建的服务:sc delete FristDriver文章来源地址https://www.toymoban.com/news/detail-737919.html

到了这里,关于(三)(Driver)驱动开发之双机调试环境搭建及内核驱动的运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VSCode使用 - 搭建python运行调试环境

    VSCode是一个优秀的编辑工具,适合代码阅读,代码编辑,甚至配置好之后,可以编译与调试代码。 为了方便编辑,运行python程序,本文就聊聊如何将VSCode搭建为一个python的IDE吧,具备运行与调试python程序的能力。 首先,安装python程序,这样才能进行python开发,我这里安装了

    2024年02月12日
    浏览(68)
  • RK3399驱动开发 | 15 - RTC实时时钟芯片HYM8563S调试(基于linux5.4.32内核)

    Linux内核中使用RTC设备来提供硬件时间,为了兼容各种各样的RTC硬件,Linux内核提供了R

    2024年02月09日
    浏览(47)
  • RK3399驱动开发 | 21 -Marvell交换机芯片88E6390X调试(基于linux主线5.4.32内核)

    88E6390X芯片是Marvell的一款11端口交换器芯片,有1个CPU端口、8个10/100/1000Mbsp以太网端口、两个XAUI/RXAUI/2500光口。 RK3399只有一个MAC控制器,所以只能外接一个PHY芯片作为网口,但有了外部的交换机芯片后,连接架构如下:

    2024年02月13日
    浏览(48)
  • 【树莓派Linux内核开发】入门实操篇(虚拟机Ubuntu环境搭建+内核源码获取与配置+内核交叉编译+内核镜像挂载)

    1.ubuntu18.04镜像下载 打开ubuntu18.04镜像传送门,进入到主页 往下滑,找到相应镜像并下载 等待镜像下载完毕即可 2.VMware软件安装 VMware是一款 运行在windows系统上的虚拟机软件 ,可以虚拟出一台计算机硬件,方便安装各类操作系统 进入VMware官网传送门,来到主页,往下滑,选

    2024年04月29日
    浏览(53)
  • Linux驱动开发一、RK3568把hello编译到Linux内核中运行。‘rk_vendor_read’未定义的引用

    1、在字符设备目录下建立hello目录 ~/Linux/rk356x_linux/kernel/drivers/char/hello 2、进入hello目录,新建hello.c、Makefile、Kconfig三个文件 3、Kconfig是打开make menuconfig配置界面是后的选项,这Kconfig是在字符设备下的。 config后面的HELLO就是对应配置后在kernel目录下的**.config中的CONFIG_HELLO配置

    2024年02月11日
    浏览(70)
  • linux驱动开发环境搭建

    使用的是parallel 创建的ubuntu 16.04 ubuntu20.04虚拟机 在编译的时候把虚拟机分配8核,8G内存,开发的时候2核,4G内存就够了 https://blog.csdn.net/inf4inf/article/details/110272531 https://blog.csdn.net/yaoxinJJJ/article/details/115433638 https://zhuanlan.zhihu.com/p/409007775?utm_id=0

    2024年02月06日
    浏览(38)
  • VS 远程开发调试环境搭建 简明教程

    在windows上应用程序的开发过程中,总会遇到这样的使用场景,需要在开发机上远程到应用程序的宿主机(常常是以产品形式外发的机台),这时候需要快速搭建简易的远程开发环境。以下几个步骤可以快速帮到你: 1.1 拷贝VS远程调试工具到宿主机 for example: 开发机环境 vs

    2024年02月15日
    浏览(47)
  • 1、milk-v duo(CV1800B,C906内核)搭建开发环境

    本地环境windows10 64位 编译环境:阿里云Ubuntu 22.04.4.1 LTS(也可以在本地电脑linux系统上操作) 准备一张SD卡。大小合适就行,本次选择的是16G。 milk-v duo一块 安装依赖: sudo apt install dialog python3-dev make git bc gcc flex bison ninja-build libssl-dev rsync pkg-config device-tree-compiler squashfs-tools

    2024年02月05日
    浏览(18)
  • 【Linux】驱动内核调试,是需要几板斧的

    目录 前言: 一、基础打印工具  (1)printk---最常用 ①Log Buffer: ②Console: ③RAM Console: (2)动态打印 ①动态打印与printk之间的区别联系 ②动态打印常用的例子 ③动态打印转为printk正常打印  (3)dump_stack---分析源码的利器 (4)操作寄存器命令---硬件测试 ①devmem---系统层

    2024年02月05日
    浏览(41)
  • 搭建ubuntu容器内C/C++开发调试环境

    为了让容器内的调试器(gdb、lldb)能够正常调试,在创建容器时需要添加参数: podman添加参数: --cap-add=SYS_PTRACE ,docker添加参数 --cap-add=SYS_PTRACE --security-opt seccomp=unconfined 否则报错: Error disabling address space randomization: Operation not permitted 如果是使用podman则使用命令: 如果是

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包