驱动模块编译的前奏:kernel-devel

内容:

kernel-devel:提供C Header 文件,它还有内核的配置文件,以及其他的开发用的资料

kernek-source:包含源代码和头文件

涵盖:

kernel-devel是用做内核一般开发的,比如编写内核模块,原则上,可以不需要内核的原代码。

kernel则是专指内核本身的开发,因此需要内核的原代码。

区别:

kernel-devel包只包含用于内核开发环境所需的内核头文件以及Makefile,而kernel-souce包含所有内核源代码。

如果仅仅是用于你自己编写的模块开发的话,因为只需引用相应的内核头文件,所以只有devel包即可,

如果你要修改现有的内核源代码并重新编译,那必须是kernel-souce。

kernel-souce在RH某些版本之后不再附带在发行版中了,必须自己通过kernel-XXX.src.rpm做出来。

用途:

如果某个程序需要内核提供的一些功能,它就需要内核的 C header 来编译程序,这个时候 linux-devel 里面的东西就用上了。

比如 nvidia 和 ati 的官方显卡驱动,realtek的网卡驱动,alsa-driver 声卡驱动,他们都需要编译一个放在内核里面运行的模块,

编译这个模块就需要内核的 header 文件才能顺利编译。

时间: 2024-10-02 14:21:11

驱动模块编译的前奏:kernel-devel的相关文章

简单的Linux 驱动模块编译,加载过程

简单的Linux 驱动模块编译,加载过程 2010-03-14 14:48:24|  分类: Driver |  标签: |字号大中小 订阅 本文记录我的第一个Linux设备驱动程序的编译过程.遇到问题的解决方法. 环境:2.4.18-14的内核,Linux内核源码:2.4.18.       Linux内核源码路径:/usr/src/linux(这个源码是从kernel.org网站download的2.4.18版本)        按照<linux设备驱动开发详解>一书中的步骤实现经典例子&

【转】Linux驱动模块编译进内核中

原文网址:http://blog.chinaunix.net/uid-29287950-id-4573481.html BQ27501驱动编译进内核 一.       驱动程序编译进内核的步骤 在 linux 内核中增加程序需要完成以下三项工作: 1. 将编写的源代码复制到 Linux 内核源代码的相应目录: 2. 在目录的 Kconfig 文件中增加新源代码对应项目的编译配置选项: 3. 在目录的 Makefile 文件中增加对新源代码的编译条目. bq27501驱动编译到内核中具体步骤如下:

11.把helloworld字符驱动模块编译进内核

首先是hello.c 文件: Hello.c: 接着是修改driver/char/Kconfig: 添加: 修改字符设备驱动里的Makefile: 打开Makefile: obj-$(CONFIG_HELLO_WORLD) += hello.o 进入配置界面: 选择Device driver:进入: 选择Character devices: 进入: 找到我们的helloworld,并选中: 一直保存退出: 编译: 编译完成: Tftp烧写: 启动看到我们驱动代码打印出来的: 说明我们的内核模块成

2. ubuntu下载编译linux kernel

一. 引言 诚如老罗所言,android源代码里面并没有带linux kernel代码.它使用的是预先编译好的kernel,大家可以使用adb shell cat proc/version就可以查看到,如下: [email protected]:~/working_directory$ adb shell cat proc/version Linux version 2.6.29-00261-g0097074-dirty ([email protected]) (gcc version 4.4.

[原]Ubuntu 14.04编译Android Kernel

如何编译android kernel参考官方文档:https://source.android.com/source/building-kernels.html 在Ubuntu 14.04上编译android kernel也没有遇到什么很难的问题.主要分以下几个步骤: 首先查看emulator的cpu型号: adb shell [email protected]:/ # cat /proc/cpuinfo Processor : ARMv7 Processor rev 0 (v7l)BogoMI

Debian下编译安装驱动模块

在Linux下,我们常有需要自己来编译安装驱动模块的情况,例如要安装显卡驱动,要安装无线驱动,有的时候某个程序的安装使用与需要安装相应的驱动模块.Debian Linux下的生活本已十分简单,使用apt可以处理一切.单就我们所讨论的驱动安装,一般情况下,源中也会有已编译的相应驱动可用.但是一般来说,驱动模块与所用的内核版本有着较强的依赖关系,如果源中并没有与我们所用的内核版本相匹配的驱动时,就需要我们自己手动来编译安装驱动模块了.在这样的情况,Debian下的驱动模块编译安装工具m-a就有了用武

arm-linux学习:最简驱动模块

内核驱动 linux操作系统支持多种硬件平台和处理器平台,但是每个硬件平台的其它外设是不完全相同的,外设芯片的性能也是在不断提升的,要兼容这些外设硬件,就必须有一个灵活的设备驱动层. 驱动分类 是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据.字符设备是面向流的设备,常见的字符设备有鼠标.键盘.串口.控制台和LED设备等.字符设备在 /dev/ 目录下会有一个设备文件,例如串口: /dev/ttySAC0 ,应用层使用打开文件写入读取文件等操作来控制

kernel panic

Linux kernel panic是很难定位和排查的重大故障,一旦系统发生了kernel panic,相关的日志信息非常少,而一种常见的排查方法-重现法–又很难实现,因此遇到kernel panic的问题,一般比较头疼.没有一个万能和完美的方法来解决所有的kernel panic问题,这篇文章仅仅只是给出一些思路,一来如何解决kernel panic的问题,二来可以尽可能减少发生kernel panic的机会.什么是kernel panic 就像名字所暗示的那样,它表示Linux kernel

自制Linux和编译内核

自制linux:(1)  分区并创建文件系统  fdisk /dev/sdb分两个必要的分区  /dev/sdb1 对应/boot /dev/sdb2 对应根  /mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2  挂载bootmkdir /mnt/boot 子目录必须为bootmount /dev/sdb1 /mnt/boot  安装grubgrub-install –root-directory=/mnt /dev/sdb    #boot目录的上一级目录