Articles of 驱动程序

简单的人物司机崩溃

我正在做一个简单的字符驱动程序,假设要写入我的字符设备“/ dev / coffee_bean”,读取时应该显示string“Hi There!”。 在控制台。 我通过“cat / dev / coffee_bean”从设备读取,而是我的系统崩溃并重置。 贝娄是我的源代码。 感谢帮助。 #include <linux/kernel.h> #include <linux/module.h> #include <linux/fs.h> #include <linux/cdev.h> #include <linux/kdev_t.h> #include <linux/types.h> #include <linux/completion.h> #include <linux/slab.h> #include <asm/uaccess.h> #include <linux/semaphore.h> MODULE_LICENSE("Dual BSD/GPL"); #define DEVICE_NAME "coffee_grinds" #define COUNT 4 #define FIRST_MINOR 0 #define CONST_QUANTUM 4000 #define CONST_QSET 4000 int test; module_param(test, int, S_IRUGO); […]

如何写一个数据包到C中的TAP接口?

是否有人知道如何写一个数据包到C中的TAP接口? 还是其他语言? 我自己构build了一个以太网数据报,我想把它写到一个特定的tap接口。 谢谢! 🙂 关于TAP: http : //en.wikipedia.org/wiki/TUN/TAP

Linux – graphics驱动程序和Mesa之间的关系

当我安装NVIDIA专有驱动程序,然后使用Nvidia OpenGL实现(我不需要Mesa)。 哪一个OpenGL实现可以与一个开放源代码的nvidia驱动程序一起使用 – Nouveau? Nouveau还提供OpenGL实现还是必须使用Mesa OpenGL实现? 我可以在Mesa OpenGL实现中使用nvidia驱动吗? 什么是可能性?

开发没有信息的驱动程序

开源/免费软件社区如何为不提供文档的产品开发驱动程序?

register_chrdev_region和alloc_chrdev_region分配设备号码有什么区别?

我想知道这两个函数的区别: int register_chrdev_region(dev_t first, unsigned int count, char *name); int alloc_chrdev_region(dev_t *dev, unsigned int firstminor, unsigned int count, char *name);

lsusb:只有1个端点可用

我试图通过libusb与设备(没有Linux驱动程序)进行通信。 我已经写了很多的基本代码,并在Windows(有驱动程序)上使用USB监听软件来find我需要发送给它的代码。 但是,执行“lsusb -v -d 1267:0000”时只显示1个端点,如下所示: Bus 003 Device 005: ID 1267:0000 Logic3 / SpectraVideo plc Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x1267 Logic3 / SpectraVideo plc idProduct 0x0000 bcdDevice 0.00 iManufacturer 0 iProduct 0 iSerial 0 bNumConfigurations 1 Configuration […]

Linux USB存储驱动程序用于传输数据的代码在哪里?

我正在修改一个项目,在这个项目中,我想修改Linux USB存储驱动程序来encryption它发送到USB拇指驱动器的内容。 当然,我需要find数据实际从计算机传输到USB设备的位置。 我一直在寻找内核源代码(drivers / usb / storage)中的USB存储模块代码,我有一个预感,缓冲区是通过transport.c 。 那是对的吗? 另外,是否可以在发送之前修改数据? 我该怎么做? 我正在使用的内核版本是3.12.0。 我的操作系统是Ubuntu 13.04 64位。 谢谢。

如何写一个正在写入特定设备的杯栅格驱动程序

对于embedded式Linux项目,我为自定义热敏打印机写了一个打印机驱动程序。 一切正常。 我现在有一个设备/ dev / thprint,我可以写入像素到这个设备,它实际上打印这个像素(只是一个固定的384像素的位arrays)。 下一步是制作一个杯子光栅驱动器,所以我可以把它用作“真正的”打印机。 我查了很多例子,但我不明白在哪里指定使用哪个设备。 有没有人有一个例子如何做到这一点?

驱动程序模板,最小内核发行版,驱动程序社区,驱动程序的微控制器?

我是embedded式Linux驱动程序开发的新手,开发了字符,UART和简单的USB驱动程序,并与SBC(树莓派2)合作。 我的主要学习资源是:基本的Linux设备驱动程序,embedded式Linux系统devise和开发,YouTube教程和LDD3。 由于缺乏现实生活中的驾驶经验,我想分享一些问题: 模板:是否有一些驱动程序模板用于加速编码过程,例如,具有经常使用的结构和function,以针对特定驱动程序进行修改和定制。 什么是合适的最低限度分布:我现在正在做的是要么使用Buildrootbuild立一个内核映像,然后插入开发的USB驱动程序,或将开发的USB驱动程序插入Ubuntu。 为了正确testing,我必须卸载默认的USB驱动程序(usb_storage); 否则不能testing我的模块。 所以,我的问题是关于现实生活中的发展和如何获得没有驱动程序的最小内核,以及如何在使用Buildroot构build时将我的模块包含在其中(作为其一部分)? 你有什么build议embedded式Linux驱动程序开发社区的详细问答? ie未来,如果我想问低层次的细节,比如这个x结构是什么,或者我在使用这个y函数的时候遇到了这个错误….是否有专门的社区? 因为我发现的一切都是针对Linux的,对于内核黑客来说,还是没有经验。 什么是链中的错过链接? 为微控制器开发应用程序依赖于数据表,用户指南,寄存器,C等。embedded式Linux的驱动程序依赖于C,Linux API,子系统等。在大多math习资源中,我从来没有find两者之间的关系。 那么,真的有分开吗? 或者他们之间有一个错过的链接? 例如,对于这个I2C传感器http://www.robot-electronics.co.uk/htm/srf10tech.htm,我们必须对其进行操作(将hexa发送到寄存器并从寄存器接收值)。 如果我们想象我们想为它开发一个I2C驱动程序,那么我们肯定需要在驱动程序中做相同的工作,这在Essential Linux Device Drivers(第278页)中有介绍。 其背后的要点是I2C内核隐藏了许多复杂和简化的驱动程序开发过程。 但是,我认为现实生活中的情况并不是传感器,而是一个微控制器或一个复杂的设备。 那么,我们如何操作这个微控制器的寄存器和外设? 另外,我没有find这种情况下的教程!

SoC上的USB调制解调器外部audio编解码器的ALSA驱动程序

我有一个USB调制解调器,输出一个PCM接口,送到一个I2Caudio编解码器。 该编解码器作为SoC ALSA编解码器受到支持,并且正在开发一个驱动程序来通过ALSA混合器pipe理声级。 我想我有两个select: 或者用编解码器创build一个虚拟SoC声卡作为aux( snd_soc_aux_dev )设备。 编解码器的configuration固定在init()函数中,而ALSA不pipe理PCM接口,只是级别。 这样我就不会使用编解码器驱动程序中已经实现的所有function来设置时钟,速率,格式。 或者创build一个调制解调器声卡,用正确的速率和格式参数输出一个DAI。 这样我可以使用编解码器驱动程序的所有function的实现。 我应该把这种司机放在哪个地方? 作为USB驱动的扩展,还是作为SoC的一个?