Articles of linux device driver

Linux如何testingPCIe驱动程序?

我写了一个简单的PCIe驱动程序,我想testing它是否工作。 例如,如果可以写入和读取从设备使用的内存。 我怎样才能做到这一点? 哪些东西应该被certificate呢?

Linux中的电源pipe理框架

我观察到,整个设备拓扑结构基于Buses –> Device + Driver 。 总线上提供了linux提供的电源pipe理(suspend + resume) 。 设备驱动程序中也有类似的function。 struct bus_type { *** int (*suspend)(struct device *dev, pm_message_t state); int (*resume)(struct device *dev); *** } struct device_driver { *** int (*suspend) (struct device *dev, pm_message_t state); int (*resume) (struct device *dev); *** } 那么这是如何实施的?

如何在内核编程中获得USB设备细节?

我是内核编程的新手,我有一个USB设备的dev_t值。 我想获取设备的详细信息,如供应商ID,产品ID或其他属性,这些属性会因设备而异。 我想在内核空间中执行此操作,而不将程序作为外部模块加载。 我遇到了一个libusb库,但据我所知,它被用在用户空间中。 是否有可能在内核空间也使用libusb,就像我的要求? 如果可能的话,如何导入和设置libusb以便我可以编译内核?

使用驱动程序获取原始MAC地址

Linux:uname -a:2.6.18以及2.6.39 我是非常新的…当驱动程序第一次加载时,ifconfig可以改变MAC地址之前,现有的(永久)MAC地址被存储,可以通过这个ioctl检索。 case ETHTOOL_GPERMADDR: rc = ethtool_get_perm_addr(dev, useraddr); break; 任何人都testing过它? 我可以获得代码或代码的一部分来实现它吗?

如何将不同的驱动程序分配给Linux中相同types的NIC

我的系统中有5个e1000e网卡,我需要其中3个加载默认的e1000e驱动程序,其中2个使用我自己修改的e1000e驱动程序。 我怎样才能做到这一点? 如果您可以提供任何代码,则首选代码。

在linux中,所有内核进程共享相同的内核堆栈,每个用户进程都有自己的堆栈,正确的?

此外,如果一个用户进程链接一个共享库,比如glib,libX,libY,libZ,那么glib和libX,Y,Z都有它们各自的文本,数据的vma结构,但是仍然与用户进程共享相同的堆栈,对吗?

3G互联网棒 – 哪个库使这项工作

我有3G上网卡, Tele2华为MF190 。 现在,当我连接到Ubuntu,Debian等,它要求我的密码,我只是select我的提供商,一切都很好。 现在,当我在其他Linux发行版(我认为是Arch,Gentoo)上做同样的事情时,它并不是开箱即用的。 现在,我真的需要什么图书馆来工作? 为什么? 我将尝试从LinuxFromStratch项目中制作我自己的发行版(只是为了学习),我想确保将这个库添加到3G Internet Stick中 。 谢谢你们! 🙂

实现SDIO接口SPI设备

人, 我总是看到有关如何使用SPI接口来操作SD存储卡的参考资料。 这不是我想要的。 我需要做的恰恰相反。 我希望能够在我的“主机”(任何具有SD卡接口的PC)中使用SDIO控制器(通过SD插槽)与我的设备(基本上是微控制器)进行通信,这些设备只能“说出”SPI。 如果我的理解不是太错误,我不能简单地告诉我的SD控制器在原始SPI模式下通话,但是我可以教我的微控制器作为一个可以由我的主机控制的SDIO设备。 这样我仍然有两个挑战: 在我的微控制器中正确实现一个通用的SDIO设备。 在主机中实施/configuration正确的驱动程序,以便能够与我的设备进行交互。 实现SDIO设备似乎是遵循规范的问题 。 但是,主机端驱动程序,我希望我能用Linux中的用户空间驱动程序使用一些已经存在的内核驱动程序SDIO来完成。 这是我来求助的一点。 任何人都可以请指点任何样本,文件或任何资源,可以帮助我在我的任务?

编译linux设备驱动程序时创build的各种文件是什么?

我有一个非常基本的问题。 当我们使用makefile创build一个驱动程序时,我们看到许多创build的文件 Module.symvers .mod.c 内置in.o .mod.o 的.o modules.order .ko 到目前为止,我只对* .ko文件感兴趣,而不关心任何其他文件。 但是,我还想知道其他文件,他们用什么? 请回复

我怎样才能使用vm_operations结构来拦截页面错误的特定页面?

我想创build一个内核模块,当给定一个进程的ID可以查找其任务结构,然后它的内存映射。 当它发现它应该附加一个将页面错误提供给一组特定页面(即堆页)的函数。