Articles of 驱动程序

错误:无法处理内核分页请求

我正在写一个简单的testing设备的PCI驱动程序。 硬件可以用lspci正确识别(你可以看到我的驱动程序电子仓已被注册): 04:02.0 Non-VGA unclassified device: Device bace:55aa Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Region 0: Memory at f0000000 (32-bit, prefetchable) [size=16M] Kernel driver in use: vabs 驱动程序和PCI子系统的初始化和deinitalisation工作正常。 我得到一个设备号,而udev创build一个设备文件。 从设备文件读取时,我收到以下错误信息: BUG: unable to handle […]

模拟物理USB设备Linux

我有一个Linux应用程序,我想自动化一些testing,其状态应该根据某些设备,即USB设备,WLAN设备,WAN设备的状态而改变。 但是,我们现在不再有物理的USB,WLAN,WAN等设备,所以我需要找出一种方法来testing这个程序,而不需要实际插入物理设备,打开/closures等等。 我开始时只是简单地创build一个虚拟的USB设备,我可以从用户空间控制,但是我的知识缺乏基本的知识,使我无法在这些论坛上使用任何类似的主题,并将其应用到我的项目中。 我觉得我需要创build一些虚拟USB驱动程序,然后让它与一些用户级程序而不是usbfs通信。 但是,即使我创build这个虚拟驱动程序,我如何从用户空间“插入”这个设备,并让我的程序注册到这个特定的驱动程序? 我正试图做甚至可能吗?

如何find使用特定内核模块的进程列表?

当我尝试rmmod一个模块,我得到错误消息“错误:模块正在使用”,lsmod | grep显示计数。 有没有办法告诉我哪些进程正在使用这个特定的内核模块/驱动程序? 谢谢

如何将驱动程序与USB设备绑定?

我正在写一个USB设备驱动器的Linux。 这是一个游戏杆。 每次插入,Linux加载一个隐藏的驱动程序。 有没有办法告诉Linux加载我的插件时,我的? 或者至less不加载默认的一个? 我可以在默认的驱动程序的解除绑定ID和回声绑定我的驱动程序; 但我想更自动的东西..谢谢

如何从命令行获得NVIDIA驱动程序版本?

对于debuggingCUDA代码和检查兼容性,我需要找出我安装的GPU的nvidia驱动程序版本。 我发现如何获得cuda版本? 但是这并不能帮助我。

Windows驱动程序卸载function的区别

我试图用C#卸载驱动程序。 我打电话给非托pipe代码,并遇到了这三种不同的Windows API函数,这些函数似乎也是这样做的。 DiUninstallDevice SetupUninstallOEMInf DriverPackageUninstall 他们有什么区别?

在Windows上预安装驱动程序

我正在尝试创build一个安装程序(使用Inno Setup),它将为LCD HMI预安装USB驱动程序。 我有制造商的驱动程序(他们似乎是签名)。 但是,无论我做什么,Windows都会首先将驱动程序检测为“Gadget Serial v2.4”设备,然后立即进入“Windows Update”并下载“PNX Bulk Device”驱动程序。 该驱动程序不支持HMI。 我必须手动打开设备pipe理器,find“PNX批量设备”,进入“更新驱动程序软件”…“浏览我的电脑”,“有磁盘”等 这是一个非常艰巨的过程,可能是一个没有经验的用户压倒一切。 有没有办法使这个过程自动化,例如,如果在USB设备插入之前安装了软件包,那么驱动程序将就位,Windows将使用正确的驱动程序,而不是它find的通用驱动程序。 注意:我已经尝试了DPInst实用程序,SetupCopyOEMInf函数和pnputil.exe。 所有的方法“出现”工作(即:没有错误信息),但Windows仍然抓住通用驱动程序,无论如何。 我意识到我对司机的理解可能是有缺陷的。 我试图在Windows 7 x64架构上,但我希望它能普遍工作。

WINDOWS KMDF PCI驱动程序: – 用于将数据写入到MemoryMapped虚拟地址的API

我的任务是为Windows写一个基于KMDF的PCI驱动程序。 基本上目标是将数据写入到FGPGA板上的RAM(该板尚不存在)。 FPGA上的PCI接口将允许数据直接读取和写入FPGA RAM。 这个想法是将必要的内存映射信息存储在BAR0寄存器中。 内存描述符types将是CmResourceTypeMemory。 第一步是读取BAR0寄存器信息并创build一个存储器映射。 使用另一块电路板,我写了一个执行上述操作的基本驱动程序。 但是,一旦我有了内存地址(虚拟),我就想从内存中读写。 我注意到窗口有读取和写入端口和寄存器的API。 是否有相当于向虚拟地址写入和读取各种数据量的东西: – IE将数据缓冲区应用到虚拟地址。 直接复制看起来像一个选项,但是我怀疑可能有一个API来执行此操作。 我看过各种github PCI例子,但是他们倾向于使用寄存器和端口读写。

如何知道一个过滤设备驱动程序被挂接到一个COM端口

我一直在试图确定USB串行端口(COM)端口是否被系统总线驱动程序监控,但没有成功。 基本上我有一个应用程序,通过过滤设备驱动程序监视COM端口。 在阅读Dobb博士杂志的这篇文章后,我能够做到这一点。 现在试图在一个单独的应用程序中实现的是能够确定是否有一个应用程序挂钩到一个特定的COM端口使用过滤设备驱动程序。 任何人都可以帮助或引导我

ETW(Windows的事件跟踪)Bluescreen

当我想启用ETW跟踪来接收驱动程序事件时,我这样做: logman start "NT Kernel Logger" -p "Windows Kernel Trace" (driver) -o s.etl -ets 所以在某台机器上运行上面的命令后,电脑崩溃了。 在分析内存转储后,我发现问题是由中国公司“腾讯”开发的“TAOKernel64.sys”造成的。 删除安装该驱动程序(QQ PCpipe理器)的程序后,问题就解决了。 我有两个主要问题: 1-从ETW接收驱动程序事件是否需要所有驱动程序正常工作? 那么,我们可以安装并启用(但不使用)一个错误的驱动程序,并使用ETW,而不会导致BSOD? 还是我面对一个完全不同的问题? 我们可以在ETW(实时还是离线)中过滤掉其中的一些驱动程序吗? 例如,告诉ETW不要从该.sys文件中收集驱动程序事件?