《linux设备驱动程序》前期准备工作
2016-03-03 19:10
555 查看
最近在看《linux设备驱动程序》,由于这本书使用的是2.6.10内核,属于比较老的内核。那么有两种办法,一是在新内核上编译scull,可以参考之前写过的一篇日志(在linux 3.17.6上编译成功);第二种就是直接使用2.6.10内核,可以安装ubuntu 5.04(不一定要这个,最好相差不要太远)。
一、安装ubuntu 5.04
下载地址:http://old-releases.ubuntu.com/releases/hoary/
安装过程没什么好说的,需要提到的是,因为这是2005年的发行版,所以虚拟机软件的默认硬件配置不适用它,请自行修改。如CD,硬盘接口类型最好改为IDE。
安装配置ssh,samba,可以参照网上教程。
二、编译linux 2.6.10内核代码
下载地址:https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.gz
下载后随便找个目录解压,最好是自己的主目录。
tar zxvf linux-2.6.10.tar.gz
开始编译:
1.拷贝正在使用的内核配置文件
cp /boot/config-2.6.10-5-amd64-generic /home/zhujiang/linux2.6.10/.config
2.make menuconfig提示没有图形库,可以使用make oldconfig
3.make -j(注:make成功后不要make install,不然系统重启后进不来)
4.make modules
5.make modules_install
至此,已编译安装完成,可以写个hello world模块测试一下,当你插入测试模块会发现提示
insmod: error inserting 'test.ko': -1 Invalid module format
test: disagrees about version of symbol struct_module
这是内核版本不一致造成的,虽然都是2.6.10,但是内核版本的字符串名称不一样,所以认为是不同版本,可以用下面几步搞定:
1.sudo cp test.ko /lib/modules/`uname -r`
2.sudo depmod
3.sudo modprobe --force-modversion test
三、编译 scull代码
scull是《linux设备驱动程序》的示例代码,除了makefile里面需要修改一下指向/lib/modules/2.6.10,其他均不需要修改。
一、安装ubuntu 5.04
下载地址:http://old-releases.ubuntu.com/releases/hoary/
安装过程没什么好说的,需要提到的是,因为这是2005年的发行版,所以虚拟机软件的默认硬件配置不适用它,请自行修改。如CD,硬盘接口类型最好改为IDE。
安装配置ssh,samba,可以参照网上教程。
二、编译linux 2.6.10内核代码
下载地址:https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.gz
下载后随便找个目录解压,最好是自己的主目录。
tar zxvf linux-2.6.10.tar.gz
开始编译:
1.拷贝正在使用的内核配置文件
cp /boot/config-2.6.10-5-amd64-generic /home/zhujiang/linux2.6.10/.config
2.make menuconfig提示没有图形库,可以使用make oldconfig
3.make -j(注:make成功后不要make install,不然系统重启后进不来)
4.make modules
5.make modules_install
至此,已编译安装完成,可以写个hello world模块测试一下,当你插入测试模块会发现提示
insmod: error inserting 'test.ko': -1 Invalid module format
test: disagrees about version of symbol struct_module
这是内核版本不一致造成的,虽然都是2.6.10,但是内核版本的字符串名称不一样,所以认为是不同版本,可以用下面几步搞定:
1.sudo cp test.ko /lib/modules/`uname -r`
2.sudo depmod
3.sudo modprobe --force-modversion test
三、编译 scull代码
scull是《linux设备驱动程序》的示例代码,除了makefile里面需要修改一下指向/lib/modules/2.6.10,其他均不需要修改。
相关文章推荐
- Linux学习--第二波
- centos 中文支持设置
- LINUX下segment产生以及调试
- linux下编译boost
- Iptables配置心得
- Linux crontab 命令格式与详细例子
- linux磁盘与文件系统
- CentOS 搭建Git Gitosis 服务器
- linux下message没有了
- Linux 下实现进程退出后自动重启
- centos 6.5 Git搭建
- CentOS 的使用
- 如何在Linux14.04英文版下安装中文输入法
- C/C++获取Linux系统CPU和内存及硬盘使用情况
- vmware的centos7下搭建lnmp环境(新手)
- linux 上 crontab 使用教程
- java执行linux命令
- Linux 学习笔记——常见命令
- CentOS防火墙配置(转)
- linux系统的运行级别