《linux设备驱动程序》前期准备工作
来源:互联网 发布:赵薇杀人知乎 编辑:程序博客网 时间:2024/05/16 08:21
最近在看《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,其他均不需要修改。
1 0
- 《linux设备驱动程序》前期准备工作
- 《Linux设备驱动程序》学习笔记----开发前的准备工作
- linux下 C++连接oracle前期准备工作
- linux内核维护的前期准备工作
- LoadRunner监控Linux/Ubuntu服务器性能前期准备工作
- 自动化测试前期准备工作
- 驱动调试前期准备工作
- linux设备驱动程序 字符设备驱动程序
- Linux设备驱动程序-字符设备驱动程序
- 块设备驱动程序(Linux设备驱动程序)
- Linux系统设备驱动程序
- Linux设备驱动程序设计
- Linux系统设备驱动程序
- Linux设备驱动程序设计
- Linux设备驱动程序设计
- linux设备驱动程序
- 开发Linux设备驱动程序
- Linux设备驱动程序编写
- Leetcode: 232. Implement Queue using Stacks(JAVA)
- 机器学习中的相似性度量
- 不谈程序,谈发展,推荐一些励志书,也许可以改变你的困境
- traits编程技法感悟
- 《leetCode》:Insertion Sort List
- 《linux设备驱动程序》前期准备工作
- HDU 1686 Oulipo(KMP)
- 将Eclipse代码导入到AndroidStudio的两种方式
- 蓝桥杯 算法训练 最短路 (链式前向星,spfa)
- android .9图片使用和一些技巧
- Python 字典中包含中文的输出
- 基本的Linux命令
- JAVA正则表达式 Pattern和Matcher
- fatal: Not a git repository (or any of the parent directories):