编译Linux虚拟机上能运行的helloword

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

上一篇:javascript匿名函数


下一篇:【番外】使用 Python 调用 .ko 文件?