c) 修改/usr/src/linux/driver/char下Makefile文件,在适当位置加入一行
obj-$(CONFIG_GLOBALVAR) += globalvar.o 2)
内核编译(在内核编译过程中,工作路径始终为:
/usr/src/linux)
a) make mrproper (清除已编译文件、配置文件及备份文件等); b) make menuconfig (配置内核选项,选中globalvar项) c) make clean (再次清除不必要的文件) d) make dep (建立文件依赖关系)
e) make bzImage (编译内核,编译后在/usr/src/linux/arch/i386/boot下生成新内核镜像文件bzImage
f) make modules (编译模块) g) make modules_install (安装模块) h) make install (安装内核) 3)
reboot,测试新内核及静态加载的globalvar驱动程序。
a) reboot
b) cat /proc/devices
c) mknod /dev/globalvar c 253 0 d) ./test.o 4)
按照之前实验提交方式,提交源程序、目标程序及测试结果
一.Chrdemo
定义设备号 定义设备名 指定内核内存地址
从用户空间复制数据到内核空间 写数据到设备
从设备读数据
从内核空间复制到用户空间
对设备进行初始化 计数器加1
关闭设备 计数器减一
命令为1时的处理代码 命令为2时的处理代码 错误命令的处理代码
定义与文件关联的结构体,并对功能函数初始化 是与文件关联的接口
驱动注册函数的代码
驱动注销函数的代码
指定加载函数和卸载函数的代码
打开字符设备chrdemo
将buf1写到chrdemo中 从chrdemo读出到buf2
对chrdemo发控制码‘1’ 对chrdemo发控制码‘4’ 关闭字符设备chrdemo 二.内核编译