1.因为开始配置的是ARM的环境变量,所以要去掉,vim ~/.bashrc把以下几行原来添加的环境变量用#注释掉.退出后用source ~/.bashrc使用修改生效.
export ARCH=arm
export JAVA_HOME=/usr/local/jdk/jdk1.6.0_26
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
export PATH=$PATH:/usr/local/arm/arm-2009q3/usr/bin
export CROSS_COMPILE=/usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
2.用ehco $PATH回车查看环境变量,如果发现这几行环境变量还存在就重启一下虚拟机.
3.修改Makefile改为以下内容:
# 如果已定义KERNELRELEASE,则说明是从内核构造系统调用的,因此可利用其内建语句
ifneq ($(KERNELRELEASE),)
obj-m := hello.c
# 否则,是直接从命令行调用的,这时要调用内核构造系统.
else
KERNELDIR ?= /usr/src/linux-headers-2.6.32-24-genric
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
4.输入make回车,开始编译hello.c文件
5.编译完后,输入ls回车可以看到生成了hello.ko文件.
6.输入insmod hello.ko可以装载hello.ko
7.输入lsmod回车可以查看hello模块已装载.
8.输入rmmod hello卸载hello,注意没有.ko
9.在/var/log/kern.log文件中可以看到hello.ko的打印信息.
10.如果/var/log/kern.log文件中log信息太多,不方便查看,可以先用cat /dev/null >kern.log回车后清空log文件.再装载hello.ko后查看log