linux-device-driver 相关问题

设备驱动程序在Linux内核中扮演着特殊的角色。它们是以编程方式抽象的“黑盒子”,使特定的硬件响应明确定义的内部编程接口;他们完全隐藏了设备如何工作的细节。

bio_endio和正确处理READ请求

我需要在我自己的“bio_endio()”程序中处理已经从磁盘块设备读取的例程数据。调试输出在[000] BIO之前显示:[2366.375518] [0x0 DUDRIVER \ __ dua_show_bio:701]

回答 1 投票 1

如何将Linux内核缓冲区映射到用户空间?

假设缓冲区是使用基于页面的方案分配的。实现mmap的一种方法是使用remap_pfn_range,但LDD3表示这对常规内存不起作用。看来我们可以工作......

回答 3 投票 14

从linux内核中的irq处理程序启动DMA事务

我正在开发beaglebone black like board的驱动程序。司机与fpga沟通。当fpga有数据要读取时,它会触发irq。所以我必须快速启动DMA事务来读取数据。是吗 ...

回答 1 投票 1

使用来自pci_irq_vector(9)函数的irq注册中断会导致“此函数没有irq处理程序”?

我正在编写一个设备驱动程序来处理来自设备的中断。该设备只有一个MSI中断向量,所以我用pci_irq_vector(dev,0)轮询irq,接收irq,并注册...

回答 2 投票 1

覆盆子pi的PCM设备驱动程序

如何在Raspberry pi中编写带有长/短帧同步(非I2S)的pcm编解码器设备驱动程序?我知道如何使用I2S编写Alsa声音架构设备驱动程序(写入平台设备驱动程序和编解码器...

回答 1 投票 0

如何使用内核GPIO描述符接口

我正在尝试开发一个简单的Linux内核模块来管理一堆固定在Raspberry Pi的GPIO上的传感器/执行器。我需要的GPIO功能非常简单:获取/设置引脚值,......

回答 1 投票 0

在向AOSP配置添加新符号时,silentoldconfig无法构建

我正在尝试将linux内核驱动程序添加到android源代码中。我将它添加到要构建的配置文件中(kernel / msm-4.9 / arch / arm64 / config / sdm845_defconfig)。 CONFIG_LEDS_QPNP_WLED = y#...

回答 1 投票 0

在Linux内核模块(驱动程序)中等待用户空间输入的关键部分

我是内核编程的新手,我正在Linux驱动程序中进行更改。我想在一个关键部分阻止/等待用户输入(驱动程序和用户空间应用程序之间的通信...

回答 1 投票 1

bio_endio - 如何获取磁盘扇区内容

当时我尝试使用如下构造:__ my_bio_endio(struct bio * iob){struct bvec_iter src_iter; struct bio_vec src_bv; sector_t sector = iob-> bi_iter.bi_sector; unsigned int len,...

回答 1 投票 0

QEMU是否模仿vfio在guest虚拟机中工作的足够功能?

我正在考虑使用vfio而不是uio来从QEMU guest虚拟机中的用户空间代码访问PCI设备。可以作为x86_64 QEMU来宾运行的Linux使用vfio驱动程序来制作模拟PCI设备......

回答 1 投票 2

如何防止内核模块加载?

我想为usb鼠标编写一个模块,所以我需要禁用usbhid驱动程序加载。当我连接鼠标时,它会再次加载。那么,如何从...中永久禁用模块

回答 1 投票 0

如何使用devm_regulator_get处理错误

我正在尝试处理devm_regulator_get无法找到匹配调节器的情况。我在内核4.9.30上编程从Linux内核源码我们可以看到以下描述[drivers / ...

回答 1 投票 0

ff_effect中的ff_replay子结构为空

我正在为一个尚未支持的游戏手柄开发一个力反馈驱动程序(linux)。每当用户空间中的应用程序请求ff效果(例如隆隆声)时,我的驱动程序中的函数被调用:static int ...

回答 1 投票 1

Spinlock,Semaphore,Atomic Variables,KIFIFO和RCU可用于高速/大容量并发控制情况吗?

Spinlock,Semaphore,Atomic Variables,Circular Buffer,KIFIFO和RCU可用于高速/大容量并发控制情况吗?这些材料包括在设备驱动程序中,以便......

回答 1 投票 0

为什么我们需要在民意调查中调用poll_wait?

在LDD3中,我看到这样的代码static unsigned int scull_p_poll(struct file * filp,poll_table * wait){struct scull_pipe * dev = filp-> private_data; unsigned int mask = 0; / * * ......

回答 3 投票 9

如何在Linux下执行I / O以阻止来自块设备驱动程序的设备

我有一个编写块设备驱动程序的任务(例如/ dev / dua),这个块设备必须看起来像OS这样的磁盘设备,如/ dev / sda。所以,这个驱动程序必须处理数据块和......

回答 1 投票 0

无法使用官方驱动程序从嵌入式Linux上的IR传感器获取数据

我在nanopi NEO空气板上运行一个linux映像(由buildroot和制造商提供的4.11.2内核制作),IR传感器直接插在IR引脚上。我想用传感器来...

回答 1 投票 0

页面迁移从CMA(连续内存分配器)区域失败

我面临着CMA的问题。我正在尝试通过CMA(连续内存分配)为运行linux 3.8内核的基于ARM的目标板分配设备内存。请求记忆......

回答 1 投票 1

检测/确保SKB分配和免费

通常,sk_buff由我在发送端通过“alloc_skb”开发并提供给网络驱动程序的模块(网络驱动程序接口)分配。它基本上是免费的......

回答 1 投票 -1

设备驱动程序和轮询中的中断处理

我正在经历一些大致如下的代码:内核驱动程序处理中断。有1个中断线,所以当一个中断发生时,句柄读取一个32位寄存器......

回答 1 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.