linux内核编译以及字符设备驱动程序的编写
关键词: 内核编译; globalmem字符设备驱动编写; linux; linux设备驱动编写;
字符设备驱动程序主要内容
虚拟内存设备globalmem驱动实现,编写程序,然后将生成的驱动模块插入到驱动之中,接着编写测试程序,对设备globalmem进行测试。(Copyright © http://blog.youkuaiyun.com/s_gy_zetrov. All Rights Reserved)
事先准备
- linux-3.2.96内核镜像 传送门
- Ubuntu 14.04 64位系统(内核版本
3.13.0-24-generic
) - 编译环境配置:使用命令
sudo apt-get install build-essential kernel-package libncurses5-dev
其中gcc版本为4.8.2(Copyright © http://blog.youkuaiyun.com/s_gy_zetrov. All Rights Reserved)
内核编译
使用linux-3.2.96内核,下载的是.tar.xz
格式,首先将下载的内核移动到/usr/src/
目录下(Copyright © http://blog.youkuaiyun.com/s_gy_zetrov. All Rights Reserved)
sudo mv linux-3.2.96.tar.xz /usr/src
切换到/usr/src/
目录下,解压缩内核压缩包。由于下载的压缩包是.tar.xz
后缀,解压分为两步:
xz -d linux-3.2.96.tar.xz
tar -xvf linux-3.2.96.tar
进入/usr/src/linux-3.2.96
中,清理旧的编译文件
cd /usr/src/linux-3.2.96
make mrproper
现在/usr/src
的样子就是这样的:
在/usr/src/linux-3.2.96
中使用命令复制运行中的内核config到linux-3.2.96文件夹中(Copyright © http://blog.youkuaiyun.com/s_gy_zetrov. All Rights Reserved)
sudo cp /boot/config-3.13.0-24-generic /usr/src/linux-3.2.96
接着复制现有内核中的.config
文件也复制到linux-3.2.96中(以我的Ubuntu 14.04为例,现有内核中的.config
即为/usr/src/linux-headers-3.13.0-24-generic/.config
)
sudo cp /usr/src/linux-headers-3.13.0-24-generic/.config /usr/src/linux-3.2.96
接着运行menuconfig
sudo make menucon