文章目录

  • 一、简介
  • 二、Ubuntu 14安装SoftRoce
    • 2.1、编译内核
    • 2.2、安装用户库
  • 三、Ubuntu 18安装Soft Roce
  • 引用

一、简介

二、Ubuntu 14安装SoftRoce

2.1、编译内核

  1. 我使用的是 Ubuntu 14.04,内核版本为:

  2. 安装 新版本的内核

    git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux

    下载成功:

    Cloning into ‘linux’…
    remote: Counting objects: 5548596, done.
    remote: Compressing objects: 100% (498423/498423), done.
    remote: Total 5548596 (delta 403806), reused 0 (delta 0)
    Receiving objects: 100% (5548596/5548596), 1.03 GiB | 292.00 KiB/s, done.
    Resolving deltas: 100% (4638969/4638969), done.
    Checking out files: 100% (56233/56233), done.

  3. 下载完成后,多出一个linux 文件夹来,进入

  4. 在linux目录下,执行 cp /boot/config-4.4.0-142-generic .config,注意这里要拷贝的config- 后面的内容要和自己机器的linux内核版本一致

  5. 执行以下命令:

    apt-get install ncurses-dev
    apt-get install bison
    apt-get install flex
    add-apt-repository ppa:ubuntu-toolchain-r/test #添加gcc源
    apt-get update
    apt-get install gcc-5 g++5
    ls /usr/bin/gcc*
    #将5的优先级设为100
    update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 100
    #原来的4.8也设为100
    update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 100
    #切换gcc,切换为5
    update-alternatives --config gcc

  6. 执行 make menuconfig

  7. 在打开的界面执行下面的操作
    1、 按“ /”:这将为您打开一个文本字段(搜索)
    2、 输入“ rxe”和“确定”
    3、 按“ 1”转到“以太网RDMA软件(ROCE)驱动程序”
    4、 按“空格”启用“以太网RDMA软件(ROCE)驱动程序”。 您应该在其前面看到“ ”
    5、 使用键盘上的向右箭头转到“保存”,然后按“ Enter”
    6、 按“ Enter”将文件另存为“ .config”文件
    7、 按“ Enter”退出
    8、 回到主界面,选择最下面的kernel hacking
    9、 选择第二行的 Compile-time checks and compiler options
    10、点击 Enter 进入后,修改 Warn for stack frames larger than 的值为4096 (点击enter,在输入框中输入4096),点击ok
    11、向右箭头 选择 save
    12、内核编译时的gdb信息我也关闭了, 即 Kernel hacking > Compile-time checks and compiler options,将“Compile the kernel with debug info”选项去掉
    13、使用右箭头转到“退出”,然后反复按“exit”,直到退出向导。

  8. make –j $(nproc),$(nproc)表示当前机器的线程数目,make -j为并行编译,即用当前机器的内核线程数目的线程来并行make。可能会提示少一些库或者文件,然后去按照错误提示安装对应的库即可。例如我安装了以下几个:

    • apt-get install libelf-dev,解决缺少 gelf.h 头文件
    • apt-get install opensslapt-get install libssl-dev 解决缺少opensslv.h
    • 我这里由于 Makefile 文件的配置,make 的时候会将warning当作error,导致编译退出,所以通过vim编辑 Makefile,找到 KBUILD_CFLAGS 这个选项,添加 KBUILD_CFLAGS += -w 禁用将warning 当作 error
  9. make modules_install

  10. make install

  11. 前两步我没遇到什么坑,所以如果出错,请自己百度。成功之后,重启机器

  12. 重启之后,查看内核信息以及RDMA信息

2.2、安装用户库

  1. 克隆用户库:git clone https://github.com/linux-rdma/rdma-core.git,如果连接不上,则执行git clone git://github.com/linux-rdma/rdma-core.git
  2. 安装 cmake,apt-get install cmake
  3. apt-get install valgrind pandoc python-docutils libnl-3-dev libnl-route-3-dev libibverbs-dev libswitch-perl rdmacm-utils ibverbs-utils systemd libudev-dev librdmacm-dev libsystemd-journal0 cython
  4. 进入 rdma_core目录,执行 bash build.sh
  5. 进入build目录,执行 make install

三、Ubuntu 18安装Soft Roce

由于Ubantu 18默认开启了Soft Roce支持,所以不需要重新编译内核,直接安装用户库即可。

  1. 安装 Ubuntu 18,sudo passwd root 设置root用户
  2. apt install git
  3. 安装用户库:apt-get install libibverbs-dev librdmacm-dev rdma-core
  4. apt install vim maven make g++
  5. 安装jdk,下载 jdk (我使用的 jdk1.8),解压 tar -xzvf jdk-8u301-linux-x64.tar.gz -C /usr,编辑 /etc/profile,添加以下环境变量:
export JAVA_HOME=/usr/jdk1.8.0_301   #这里是你自己的jdk所在路径
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
  1. source /etc/profile,执行 java -version 和 javac,看是否有相应输出
  2. 如果此时显示的是 ubuntu自带的open jdk,则使用如下命令:
sudo update-alternatives --install /usr/bin/java java /usr/jdk1.8.0_301/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/jdk1.8.0_301/bin/javac 300
sudo update-alternatives --install /usr/bin/jar jar /usr/jdk1.8.0_301/bin/jar 300
sudo update-alternatives --install /usr/bin/javah javah /usr/jdk1.8.0_301/bin/javah 300
sudo update-alternatives --install /usr/bin/javap javap /usr/jdk1.8.0_301/bin/javap 300
#切换为自己安装的jdk版本
sudo update-alternatives --config java
sudo update-alternatives --config javac
  1. 安装 java disni库:git clone https://github.com/zrlio/disni,如果连接不上,则用git clone git://github.com/zrlio/disni

  2. mvn -DskipTests install

  3. cd libdisni

  4. apt-get install autoconf automake libtool

  5. apt-get install libffi-dev

  6. ./autoprepare.sh

  7. ./configure --with-jdk=$JAVA_HOME

  8. make install,如果提示缺少 jni.h 和 jni_mod.h 头文件,则执行以下命令:

    1. cp /usr/jdk1.8.0_301/include/jni.h /usr/include/
    2. cp /usr/jdk1.8.0_301/include/linux/jni_md.h /usr/include/
  9. export LD_LIBRARY_PATH=/usr/local/lib

  10. cd ../target,从libdisni目录 进入disni目录下的target

  11. 启动 soft-roce ,首先 rxe_cfg start,再执行 rxe_cfg add ens33,注意最后的网卡名要和自己本机的网卡一致

  12. 执行 rxe_cfg status,显示如下:

  13. java -cp disni-2.1-jar-with-dependencies.jar:disni-2.1-tests.jar com.ibm.disni.examples.SendRecvServer -a 192.168.220.139,这里的ip填写自己的ip地址

  14. java -cp disni-2.1-jar-with-dependencies.jar:disni-2.1-tests.jar com.ibm.disni.examples.SendRecvClient -a 192.168.220.139,注意 ip地址是服务器的ip

  15. 显示如下,则表示成功。

引用

  • gcc升级
  • ubantu14 下载 更高版本 gcc
  • https://blog.csdn.net/x356982611/article/details/70856470/
error: Can’t find expat.h. 缺libexpat1-dev库sudo apt-get install libexpat1-dev
1
No package ‘pciaccess’ foundsudo apt-get install libpciaccess-dev
1
2
3
No package ‘libxml-2.0’ foundapt-get install libxml2-dev
1
error: bison not foundsudo apt-get install bison
1
flex not foundsudo apt-get install flex
1
No module named makosudo apt-get install python-mako
1
No package ‘xcb-composite’ found
No package ‘xcursor’ found
No package ‘cairo-xcb’ foundsudo apt-get install libxcb-shm0-dev
sudo apt-get install xcb
sudo apt-get install libxcursor-dev
sudo apt-get install  libcairo2-dev

基于RDMA的RPC框架(一) 环境搭建相关推荐

  1. Mybatis入门:1(Mybatis框架的环境搭建)

    Mybatis框架的环境搭建 一.创建maven工程并导入坐标 导入坐标: <dependencies><dependency><groupId>org.mybat ...

  2. 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建

    基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 文章目录 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 一.环境搭建 1.虚拟机Ubuntu系统安装 2.dock ...

  3. ESP8266基于WIN10+UBUNTU18.04的开发环境搭建(RTOS 3.2)(比较水)

    ESP8266基于WIN10+UBUNTU18.04的开发环境搭建(RTOS v3.2) 软件基础环境参考 硬件环境参考 软件环境安装的详细内容 软件基础环境参考 WIN10家庭版1803的64位版本 ...

  4. 一:Tixiao Shan最新力作LVI-SAM(Lio-SAM+Vins-Mono),基于视觉-激光-惯导里程计的SLAM框架,环境搭建和跑通过程

    一:前言介绍 LVI-SAM是Tixiao Shan的最新力作,Tixiao Shan是Lego-loam(基于激光雷达里程计的SLAM框架)和Lio-sam(基于惯性-雷达紧耦合的SLAM框架)的作 ...

  5. Selenium基于Python的web自动化测试框架(1)-环境搭建

    环境搭建 前言 一.selenium简介 二.环境搭建 1. 笔者环境 2. Python安装 三. 验证安装是否成功 1. 打开win 命令行界面 2. 输入 python 回车,如果出现一下界面, ...

  6. SSH框架总结(框架分析+环境搭建+实例源代码下载)

    首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是眼下较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框 ...

  7. .NET Exceptionless 日志收集框架本地环境搭建

    一.简介 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等 ...

  8. Muse-UI +Vue2.0框架开发环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> 一.安装Vue,创建Vue项目 VSCode 搭建Vue开发环境之Vue CLI 二.安装Muse-UI 库 npm inst ...

  9. SSH框架总结(框架分析+环境搭建+实例源码下载)

     版权声明:本文为博主原创文章,未经博主允许不得转载. 首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用 ...

最新文章

  1. java产生全局唯一的int类型_全局唯一ID设计
  2. docke跨主机通信之gre隧道
  3. MFC listctrl显示缩略图时索引问题和滚动条问题
  4. PoE交换机为什么值得你选择?
  5. linux增量安装tomcat_Linux服务器上的tomcat中部署web项目
  6. php 添加透明水印,php加水印的代码(支持半透明透明打水印,支持png透明背景)
  7. 程序员构建总是出问题,怎么办?
  8. 实验1-6 输出带框文字 (5 分)
  9. 2019.7.26随堂笔记
  10. python变量存为matlab,将matlab变量导出为python用法的文本
  11. 动态版简易通讯录制作
  12. VS自带反编译DLL工具
  13. JavaStudyNotes
  14. linux 查找内容对应行数,Linux查看文件指定行数内容与查找文件内容
  15. LDR6023E-解决苹果PD 20W快充市场供不应求
  16. 毕设看的硕博士论文速记
  17. Pic3D裸眼3D贴膜诞生
  18. 3D游戏建模新手入门到就业,高效学习的十二个步骤
  19. Paul Graham:撼动硅谷的人(译文)
  20. 0726 C. Cryptographer's Conundrum

热门文章

  1. RFID读写器有哪些功能,由几部分组成,应用在哪方面
  2. 百度定位官方Demo
  3. jq jqprint 设置页脚_jquery打印插件jqprint.js使用教程
  4. js中伪数组(也叫类数组)
  5. Google出品Mediapipe人像分割,可任意更换图片与视频背景
  6. 设置Win7系统自动登录
  7. MySQL函数、视图、存储过程及触发器
  8. 那些永远消失的区块链巨头盘点
  9. 重磅:阿里巴巴将取消“361”制度,不再强制领导给员工绩效评级
  10. JavaSE——07多线程