Linux实验二【最简单kernel module的例子】

来源:互联网 发布:淘宝卖家账号出售 编辑:程序博客网 时间:2024/05/16 08:52

2014-10-19

首先要学习一些基础知识:

1. 模块(module)是可以按照需求加载或卸载到系统内核中,扩展了内核的功能而不需要重启或重新编译内核。

2. makefile相关知识:注释用#

#obj-m  编译成内核模块
obj-m := hello.o  
#makefile中:=是指引用,比如 KDIR:= /lib/modules/2.6.30/build,其中文件路径太长,用KDIR来表示,在后面的语句中就可以用$KDIR来代指/lib/modules/2.6.30/build;其实就是为了方便程序的书写。记着引用时要在前面加$。
KDIR := /lib/modules/$(shell uname -r)/build
#PWD代表当前路径,:=代表一经赋值不在改变,功能类似宏定义;shell pwd代表在shell输入pwd命令中取得的路径
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules


今天做实验好坎坷,有时候过于着急得出结果,但是对一个东西不了解之前是很难的,无论是人机交互实验还是Linux实验,都想拿来现成的东西运行成功再慢慢学习。但发现这样效率很低,应该首先多了解一下相关的知识,不能太急功近利了,再去做,得结果。有时候盲目地照着网上的教程做,都不懂是什么意思,应该大致理解了才能融会贯通啊!

建内核源码树,但是使用apt-get install Linux_sources-3.0.0时不能更新源,是source.list的问题,又遇到文件只读,找不到更新包等一系列问题。现在有两种解决办法,一种是在网上下一个Linux 3.0.0的内核,直接复制过去,另一种就是安装最新版本的Ubuntu,就快断网了,只能明天再下了。只能看看接下来要做的,


source.list文件只读不能更改用该命令:

sudo gedit /etc/apt/sources.list   就能编辑文件了

下载Ubuntu14.04 用中科大的镜像比较快,不要使用Ubuntu官网,网址:http://mirrors.ustc.edu.cn/ubuntu-releases/14.04.1/ubuntu-14.04-desktop-i386.iso

下载Linux 3.0.0内核,在CSDN几年前报道Linux出新内核的新闻里找到的地址:ftp://ftp.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2


2014-10-21

这个实验无需建立内核源码树,被网上一些帖子误导,也由于自己没有看仔细,只加上一个命令即可,dmesg。



0 0