首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >研究设备驱动源文件?

研究设备驱动源文件?
EN

Stack Overflow用户
提问于 2016-06-07 13:33:30
回答 3查看 2.3K关注 0票数 1

我想研究一些设备驱动程序的源文件,这些驱动程序安装和加载在raspberry pi(raspian)、beaglebone(debian)或my笔记本(Ubuntu)上。

我的目标是学习如何通过研究一些实际工作的驱动程序的源文件来正确地实现我自己的模块。

我特别感兴趣的是与实际硬件(USB、I2C、SPI、UART等)通信的驱动程序。

谁能告诉我怎么找到这些来源吗?它们是否在某个特定的文件夹中可用,比如/usr/src/*,还是我必须从特定的内核版本下载所有的内核源文件?

所有的建议,意见和建议是最感谢的。

我读过“LinuxKernelDevelopment3Edition”,但请告诉我,你是否知道关于这个主题的任何其他免费/开源书籍。

向亨里克问好

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-07 15:37:01

Linux源目录和描述:

  • 、arch / -子目录包含所有特定于体系结构的内核代码。 例如: 1. 'arch/arm/‘将有您的董事会相关的配置文件。就像‘arch/arm/mach/’一样,将有omap特定的源代码。2. 'arch/arm/config‘生成一个新的内核配置,所有选项都使用默认答案。默认值来自位于arch/ $ARCH /defconfig文件中的文件,其中$ARCH引用正在构建内核的特定体系结构。3. arch/arm/boot编译后具有内核zImage、dtb映像。
  • 块/ -此文件夹保存块设备驱动程序的代码。块设备是在块中接受和发送数据的设备。数据块是数据块,而不是连续的流。
  • 密码/ -这个文件夹包含许多加密算法的源代码。 例如,“sha1_generic.c”是包含sha1加密算法代码的文件。
  • 文档/ -它有文本格式的内核相关信息。
  • 驱动程序/ -系统的所有设备驱动程序都位于这个目录中。它们被进一步细分为设备驱动程序的类别。 例如,驱动程序/视频/背光/有黑光驱动程序源,这将控制显示亮度。2.驱动程序/视频/显示/有显示驱动源。3.驱动程序/输入/有输入驱动程序源代码。比如触摸键盘和鼠标驱动。4.驱动程序/char/有包机驱动程序源代码。5.驱动程序/ i2c /有i2c子系统和驱动程序源代码。6.驱动程序/ pci /具有pci子系统和驱动程序相关的源代码。7.驱动程序/蓝牙有蓝牙驱动文件。8.驱动器/电源有电源和电池驱动器。
  • 固件/ -固件文件夹包含允许计算机读取和理解设备信号的代码。为了举例说明,网络摄像头管理自己的硬件,但计算机必须理解摄像头发送给计算机的信号。
  • fs/ -所有文件系统代码。这进一步细分为目录,每个支持的文件系统一个,例如vfat和ext2。
  • 内核/ -这个文件夹中的代码控制内核本身。例如,如果调试器需要跟踪问题,内核将使用来自此文件夹中源文件的代码通知调试器内核执行的所有操作。这里也有跟踪时间的代码。内核文件夹中有一个名为"power“的目录。此文件夹中的某些代码提供了计算机重新启动、断电和挂起的能力.
  • 网/ -网内核的网络代码。lib这个目录包含内核的库代码。特定于体系结构的库代码可以在arch/*/lib/中找到。这个目录包含配置内核时使用的脚本(例如awk和tk脚本)。
  • lib/ -这个目录包含内核的库代码。特定于体系结构的库代码可以在arch/*/lib/中找到。
  • 脚本/ -这个目录包含配置内核时使用的脚本(例如awk和tk脚本)。
  • mm/ -这个目录包含所有内存管理代码。特定于体系结构的内存管理代码位于arch/*/mm/中,例如arch/i 386/mm/Fault.c。
  • ipc/ -这个目录包含内核进程间通信代码。
  • ** init / -**The init文件夹有处理内核(INITiation)启动的代码。C文件是内核的核心。这是连接所有其他文件的主要源代码文件。
  • 声音/ - -这是所有声卡驱动程序的位置。

没有更多的目录证书,密码,安全,包括,virt和usr等.

票数 7
EN

Stack Overflow用户

发布于 2016-06-07 15:12:38

我使用了几种不同的方法来查看内核相关的源代码,我相信还有一些其他的好方法。您将发现这些方法在很大程度上是相同的。

  1. 转到kernel.org并下载您选择的内核。您将在/<path to your downloaded kernel>/drivers下找到与驱动程序相关的源代码。例如,我下载并提取内核4.5.5到/usr/src/linux-4.5.5,并通过/usr/src/linux-4.5.5/drivers访问驱动程序的源代码。
  2. 使用linux交叉参考网站。就我个人而言,我使用的是托管在自由电子上的那个。这些网站为他们的免费文本或标识搜索很好。
  3. 浏览托管在github上的Linus的linux回购
票数 2
EN

Stack Overflow用户

发布于 2016-06-07 13:47:08

没关系,我在下面找到了源文件

代码语言:javascript
复制
~/linux/drivers/

示例:

代码语言:javascript
复制
nano ~/linux/drivers/spi/spi-bitbang.c

对不起,给您带来不便了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37680905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档