Linux驱动开发(1):内核源码树建立
2014-12-23 15:09
267 查看
初次接触Linux驱动程序开发,买了一本《Linux设备驱动程序》,第一件事当然就是构建开发环境了!
驱动程序和用户程序可不一样,它是作为一个模块连接到内核模块来运行的,运行在内核空间里面。
所以要运行我们自己构造的模块,需要自己的系统已经配置好内核树,然后把目标模块和内核树连接起来运行!但是我们安装的Linux没有源码(至少我的是这样),更不要说已经编译好的内核树了~接下来我们就要建立自己linux系统的内核树。
操作系统:ubuntu12.04 LTS
1、查看os内核版本:
lyj@lyj-Y470:~$ uname -r
3.2.0-29-generic
2、下载内核源码:
a、搜索内核代码:
sudo apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
linux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches
b、选择源码包并下载:
sudo apt-get install linux-source-3.2.0
c、下载完成后,在/usr/src下,有一个linux-source-3.2.0.tar.bz2
d、root权限下(sudo su)解压 :
tar -xvf linux-source-3.2.0.tar.bz2
e、解压后生成目录 linux-source-3.2.0
3、切换到源码目录下,配置内核,选择最快的原版的配置方式:make oldconfig
root@lyj-Y470:/usr/src/linux-source-3.2.0# make oldconfig
4、编译源码 make:大约需要两个小时左右
root@lyj-Y470:/usr/src/linux-source-3.2.0# make
5、编译、安装模块:
root@lyj-Y470:/usr/src/linux-source-3.2.0# make modules
root@lyj-Y470:/usr/src/linux-source-3.2.0# make modules_install
执行结束后,会在/lib/modules下生成新的目录/lib/modules/3.2.0-29-generic/
到此,内核编译完成,内核树建立
驱动程序和用户程序可不一样,它是作为一个模块连接到内核模块来运行的,运行在内核空间里面。
所以要运行我们自己构造的模块,需要自己的系统已经配置好内核树,然后把目标模块和内核树连接起来运行!但是我们安装的Linux没有源码(至少我的是这样),更不要说已经编译好的内核树了~接下来我们就要建立自己linux系统的内核树。
操作系统:ubuntu12.04 LTS
1、查看os内核版本:
lyj@lyj-Y470:~$ uname -r
3.2.0-29-generic
2、下载内核源码:
a、搜索内核代码:
sudo apt-cache search linux-source
linux-source - Linux kernel source with Ubuntu patches
linux-source-3.2.0 - Linux kernel source for version 3.2.0 with Ubuntu patches
b、选择源码包并下载:
sudo apt-get install linux-source-3.2.0
c、下载完成后,在/usr/src下,有一个linux-source-3.2.0.tar.bz2
d、root权限下(sudo su)解压 :
tar -xvf linux-source-3.2.0.tar.bz2
e、解压后生成目录 linux-source-3.2.0
3、切换到源码目录下,配置内核,选择最快的原版的配置方式:make oldconfig
root@lyj-Y470:/usr/src/linux-source-3.2.0# make oldconfig
4、编译源码 make:大约需要两个小时左右
root@lyj-Y470:/usr/src/linux-source-3.2.0# make
5、编译、安装模块:
root@lyj-Y470:/usr/src/linux-source-3.2.0# make modules
root@lyj-Y470:/usr/src/linux-source-3.2.0# make modules_install
执行结束后,会在/lib/modules下生成新的目录/lib/modules/3.2.0-29-generic/
到此,内核编译完成,内核树建立
相关文章推荐
- Linux驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境配置(内核源码树构造)
- Linux 驱动开发之内核源码树的构建
- Linux驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境配置(内核源码树构造) --------转
- Linux驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境配置(内核源码树构造)
- Linux驱动开发环境搭建之一(建立内核树)
- 浅谈 Linux 内核开发之 PCI 设备驱动
- linux内核驱动开发笔试题
- 浅谈 Linux 内核开发之网络设备驱动[转]
- linux驱动学习(1)-ubuntu 内核源码下载及编译
- 浅谈 Linux 内核开发之 PCI 设备驱动
- 浅谈 Linux 内核开发之 PCI 设备驱动
- 《Linux内核修炼之道》精华分享与讨论(13)——驱动开发三件宝:spec、datasheet与内核源码 推荐
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程(转)
- linux 驱动开发之内核树构建
- 浅谈 Linux 内核开发之网络设备驱动
- Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
- linux、内核源码、内核编译与配置、内核模块开发、内核启动流程