关于GitHub上面Dune项目的搭建过程
Dune项目地址:https://github.com/project-dune/dune
我的实验环境是:
这里主要注意的是要内核版本是3.x系列的可能不较容易出问题。
如果系统没有安装Linux内核版本的话,可以进行安装,yum install kernels headers。或者使用
wget ftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/7.0/x86_64/updates/security/kernel-devel-3.10.0-693.el7.x86_64.rpm。下载rpm包,然后使用 rpm -ivh xxx.rpm 命令进行安装也可以。
使用 cd /usr/src/kernels可以查看linux系统内核版本是否安装。
在服务器上面使用git clone https://github.com/project-dune/dune.git 命令将项目拷贝下来,cd dune进入到项目
首先使用 ./dune_req.sh查看服务器的环境是否符合Dune项目的要求
然后在root用户状态下,运行make命令进行编译,此时会发现程序报错
没关系,这个时候我们需要做一个工作,将dune/kerl/目录下的compat.h文件中的 pgprot2cachemode函数给注释掉,如下图
此时,保存退出,在dune目录下运行make命令编译时候就不会报错了
当我们按照dune项目中的insmod kern/dune.ko发现还是报错,也没关系,此处可以忽略不做,或者可以先运行rmmod kernl/dune.ko命令删除掉,再重新运行insmod kern/dune.ko命令也可。
接着,我们就要测试test文件里面的案例文件了
当我们在make的时候,会报错
这里提示缺失了pthread,在这里之前也卡了很久,后来找到答案
也就是运行yum install glibc-static进行安装glibc就能解决该问题,安装成功后,继续在test文件夹下面运行make命令,此时就会编译通过,
然后退出到dune文件夹下面,运行test/hello就能看到输出结果
运行test/test也能看到dune项目的测试结果
嗯,到这里就暂时告一段落。
在整个项目搭建成功的过程中,要感谢很多人的帮助,如实验室坚哥,汪大佬,还有唐师弟等等的鼎力支持
接下来,未完待续.....