You are on page 1of 15

ES3000 V2 PCIe SSD 高性能存储卡

V100R001C00
Linux 开源驱动编译指导

文档版本 03

发布日期 2015-5-8

华为技术有限公司
版权所有 © 华为技术有限公司 2014。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传
播。

商标声明

和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务
或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或默示
的声明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本
文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129

网址: http://www.huawei.com

华为专有和保密信息
文档版本 03 (2015-5-8) ii
版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 前言

前言

修改记录
修改记录累积了每次文档更新的说明。最新版本的文档包含以前所有文档版本的更新内
容。

文档版本 01 (2014-12-16)
第一次正式发布。

文档版本 02 (2015-05-07)
优化安装过程。

文档版本 03 (2015-05-08)
修正文档模板。

华为专有和保密信息
文档版本 03 (2015-5-8) iii
版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 前言

华为专有和保密信息
文档版本 03 (2015-5-8) iv
版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 目 录

目 录

1 编译前必读...................................................................................................................................... 1
1.1 背景................................................................................................................................................................. 1
1.2 约束................................................................................................................................................................. 1

2 编译前的准备工作.......................................................................................................................... 1
2.1 获取开源驱动源码包 ..................................................................................................................................... 1
2.2 构建编译环境 ................................................................................................................................................. 1
2.2.1 自动构建 ............................................................................................................................................... 1
2.2.2 手动构建 ............................................................................................................................................... 2
2.2.2.1 gcc 工具安装 ................................................................................................................... 2
2.2.2.2 perl 工具安装 ................................................................................................................... 3
2.2.2.3 内核开发包安装 .............................................................................................................. 3

3 驱动模块编译安装.......................................................................................................................... 5
3.1 驱动模块编译安装过程 ................................................................................................................................. 5
3.2 安装独立的 SSD 工具包................................................................................................................................ 6

4 驱动快速验证.................................................................................................................................. 7
4.1 验证前准备工作 ............................................................................................................................................. 7
4.2 驱动快速验证 ................................................................................................................................................. 7

文档版本 03 (2015-5-8) 华为专有和保密信息 v


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 1 编译前必读

1 编译前必读

1.1 背景
ES3000 V2 SSD 产品已开源 Linux 平台驱动程序代码,用户可以获取驱动源码并编译
SSD 驱动模块。

1.2 约束
开源 Linux 平台驱动程序代码,支持内核版本 2.6 及以上版本。

用户在编译安装好 SSD 驱动模块后,仍需获取并安装独立的 SSD 工具包。

文档版本 03 (2015-5-8) 华为专有和保密信息 1


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 2 编译前的准备工作

2 编译前的准备工作

2.1 获取开源驱动源码包
SSD 开源驱动包及 SSD 工具包,可以通过下面的步骤获取:

步骤 1 登录 http://enterprise.huawei.com 网站。

步骤 2 选择“服务支持 > 产品支持 > IT > 服务器 > 加速卡 > ES3000 V2”目录,选取并下
载所要升级的软件包及相关的.sha256 文件。

您也可以在界面右上角通过搜索关键字的方式快速找到所要升级的软件包。

独立的 SSD 工具包(hio_tools-<版本>.rpm)包含在驱动包里。

----结束

2.2 构建编译环境
构建编译环境包括 gcc 工具、perl 工具、内核开发包三部分。

2.2.1 自动构建
 如果操作系统安装未选择“软件开发工作站”安装,系统不会自动安装 gcc 工具、
perl 工具、内核开发包,需要手动安装,如下提供了安装方法,供参考。
 如果操作系统安装选择“软件开发工作站”安装,系统自动安装 gcc 工具、perl 工
具、内核开发包。
1)RHEL/CentOS 5 x86_64 系统:在安装包定制环节选择“软件开发”模块;
2)RHEL/CentOS 6 x86_64 系统:在安装包定制环节选择“软件开发工作站”模块;
3)SLES 11 x86_64 系统:在安装包定制环节选择“C/C++ development tools”模块;

文档版本 03 (2015-5-8) 华为专有和保密信息 1


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 2 编译前的准备工作

2.2.2 手动构建
下面以 RHEL 6.5 操作系统(默认安装 OS 为最小安装,未安装 gcc 工具)为例,具体操
作步骤如下。

本文主要以 RHEL 6.5 操作系统为例,介绍了构建编译环境(安装 gcc 工具、perl 工具、内核开发


包)的整个过程,构建编译环境跟操作系统版本和内核版本强相关,有些操作系统上安装包的版
本号等信息可能略有不同,需要视具体情况而定。构建编译环境在网上有很多教程可以参考,也
可以来电咨询华为工程师。

----结束

2.2.2.1 gcc 工具安装


gcc 工具安装依赖如下安装包:ppl、cloog-ppl、mpfr、cpp、kernel-headers、glibc-headers、
glibc-devel、libstdc++-devel、libgomp、gcc、gcc-c++。

如下以 RHEL6.5 为例,安装包具体版本为:


ppl-0.10.2-11.el6.x86_64.rpm
cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
mpfr-2.4.1-6.el6.x86_64.rpm
cpp-4.4.7-4.el6.x86_64.rpm
kernel-headers-2.6.32-431.el6.x86_64.rpm
glibc-headers-2.12-1.132.el6.x86_64.rpm
glibc-devel-2.12-1.132.el6.x86_64.rpm
libstdc++-devel-4.4.7-4.el6.x86_64.rpm
libgomp-4.4.7-4.el6.x86_64.rpm
gcc-4.4.7-4.el6.x86_64.rpm
gcc-c++-4.4.7-4.el6.x86_64.rpm

步骤 1 进入安装包目录。

步骤 2 用“rpm -qa | grep <安装包名>”检查安装包是否已经安装。

如果已经安装则直接跳过,没有安装则继续下一步。

步骤 3 用“rpm -ivh <安装包> ”命令安装。

步骤 4 用“gcc --version”命令检查一下工具是否安装成功。

如果可以显示出版本号,表示安装成功。

文档版本 03 (2015-5-8) 华为专有和保密信息 2


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 2 编译前的准备工作

1)上面的安装包在 OS 安装光盘中的 Package 目录下;

2)上面的安装包有顺序关系,需要按照顺序用 rpm -ivh <安装包>命令依次安装;

----结束

2.2.2.2 perl 工具安装


perl 工具安装依赖如下安装包:perl-Pod-Escapes、perl-version、perl-libs、perl-Pod-Simple、
perl-Module-Pluggable、perl。

如下以 RHEL6.5 为例,安装包具体版本为:


perl-Pod-Escapes-1.04-136.el6.x86_64.rpm
perl-version-0.77-136.el6.x86_64.rpm
perl-libs-5.10.1-136.el6.x86_64.rpm
perl-Pod-Simple-3.13-136.el6.x86_64.rpm
perl-Module-Pluggable-3.90-136.el6.x86_64.rpm
perl-5.10.1-136.el6.x86_64.rpm

步骤 5 进入安装包目录。

步骤 6 用“rpm -qa | grep <安装包名>”检查安装包是否已经安装。

如果已经安装则直接跳过,没有安装则继续下一步。

步骤 7 用“rpm -ivh <安装包> ”命令安装。

1)上面的安装包在 OS 安装光盘中的 Package 目录下;

2)上面的安装包有顺序关系,需要按照顺序用 rpm -ivh <安装包>命令依次安装;

----结束

2.2.2.3 内核开发包安装
RHEL、CentOS、SLES 内核开发包名字有些不一样,如下:

RHEL、CentOS 操作系统由如下三部分组成。

kernel-devel-<内核版本>.rpm

kernel-firmware-<内核版本>.rpm

文档版本 03 (2015-5-8) 华为专有和保密信息 3


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 2 编译前的准备工作

kernel-<内核版本>.rpm

SLES 操作系统由 kernel-source-<内核版本>.rpm 组成。

RHEL6.5 操作系统内核开发包安装依赖如下安装包:
kernel-firmware-2.6.32-431.17.1.el6.noarch.rpm
kernel-devel-2.6.32-431.17.1.el6.x86_64.rpm
kernel-2.6.32-431.17.1.el6.x86_64.rpm

步骤 8 进入安装包目录。

步骤 9 用“rpm -ivh <安装包> ”命令安装。

步骤 10 执行“cat /boot/grub/menu.lst”检查一下内核开发包是否安装成功。

如果安装成功,在 menu.lst 文件中会增加一个启动选项。

1)上面的内核安装包由于是补丁版本,需要去官网上下载;

2)上面的安装包有顺序关系,需要按照顺序用 rpm -ivh <安装包>命令依次安装;

----结束

文档版本 03 (2015-5-8) 华为专有和保密信息 4


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 3 驱动模块编译安装

3 驱动模块编译安装

3.1 驱动模块编译安装过程
开源驱动包以“HUAWEI ES3000 V2 Driver SRC 2.1.0.12.zip ”为例,具体操作步骤如
下:

步骤 1 以管理员身份登录操作系统。

步骤 2 把开源驱动源码上传到服务器上并解压。
unzip HUAWEI\ ES3000\ V2\ Driver\ SRC\ 2.1.0.12.zip
步骤 3 进入 hio 目录下开始编译。
cd Linux/src/hio/
make
回显示例如下:
make -C /lib/modules/2.6.32-279.el6.x86_64/build M=/home/lmy/Linux/src/hio
EXTRA_CFLAGS="" modules
make[1]: Entering directory `/usr/src/kernels/2.6.32-279.el6.x86_64'
CC [M] /home/lmy/Linux/src/hio/hio.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/lmy/Linux/src/hio/hio.mod.o
LD [M] /home/lmy/Linux/src/hio/hio.ko.unsigned
NO SIGN [M] /home/lmy/Linux/src/hio/hio.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.32-279.el6.x86_64'

编译完成之后会在当前目录生成 SSD 驱动模块,文件名为“hio.ko”

(1) 如果编译过程中提示 “WARNING: "xen_biovec_phys_mergeable"


[/root/src/Linux/hio/hio.ko] undefined!” 错误信息,有可能是 makefile 文件中未针对这个
内核定义变量,解决方法如下:

文档版本 03 (2015-5-8) 华为专有和保密信息 5


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 3 驱动模块编译安装

ifeq ($(KVER),2.6.39-400.209.1.el5uek)
FLAGS += -DSSD_BIOVEC_PHYS_MERGEABLE_FIXED
endif
其中“2.6.39-400.209.1.el5uek”为内核版本号,实际编译过程中以实际内存版本号为准,
当前内核的版本号可以通过“uname -r”获取。
(2) 如果编译出现其他失败信息,请联系华为技术支持工程师。

步骤 4 安装驱动模块

可以直接在当前目录下执行以下命令安装驱动模块:
make install
如果需要批量部署,也可以安装如下步骤操作:
mkdir -p /lib/modules/`uname -r`/kernel/drivers/hio/
cp hio.ko /lib/modules/`uname -r`/kernel/drivers/hio/
depmod -a
步骤 5 加载驱动模块
modprobe hio
----结束

3.2 安装独立的 SSD 工具包


步骤 1 以管理员身份登录操作系统。

步骤 2 上传独立的 SSD 工具包到服务器。

步骤 3 访问独立的 SSD 工具包所在目录,例如/root/ES3000

步骤 4 执行以下命令安装 SSD 工具包


rpm -ivh hio_tools-2.0.0.41-0.x86_64.rpm

其中“hio_tools-2.0.0.41-0.x86_64.rpm”为 SSD 工具软件包的名字,新版本的工具软件包名字会有所


不同。

----结束

文档版本 03 (2015-5-8) 华为专有和保密信息 6


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 4 驱动快速验证

4 驱动快速验证

4.1 验证前准备工作
执行快速验证前,需做好以下准备工作:

 服务器中已经安装好 SSD 卡。

 确认驱动模块已经安装并加载。

 独立的 SSD 工具包已经正确安装。

4.2 驱动快速验证
按照如下步骤进行快速验证。

如果快速验证有问题,请联系华为技术支持工程师。

步骤 1 检查驱动是否安装成功。
hio_info
驱动安装完成后,可以通过以上命令查询到系统下的 SSD 设备的信息,示例如下:
hioa Size(GB): 1204
Max size(GB): 1204
Serial number: 030PXS10CB000087
Driver version: 2.0.0.41
Bridge firmware version: 326
Controller firmware version: 326
Battery firmware version: 111
Battery status: OK
Run time (sec.): 9003210
Total IO read: 19476726221
Total IO write: 16999165995

文档版本 03 (2015-5-8) 华为专有和保密信息 7


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 4 驱动快速验证

Total read(MB): 98328088


Total write(MB): 74858081
IO timeout: 0
R/W error: 0
Max bit flip: 27
Average EC: 121
Max bad block rate: 0.086%
Event log: OK
Health: OK

步骤 2 验证 SSD 设备 mount

在 mount SSD 设备前,可以通过 mkfs.ext3 等命令格式化 SSD 设备,格式化 SSD 设备会


破坏 SSD 设备上的数据,请做好数据备份;如果 SSD 已经格式化,则可以直接 mount
操作,省去格式化操作。

在确认 SSD 设备已经格式化好后,执行以下命令 mount SSD 设备:


mkdir -p /ssd
mount /dev/hioa /ssd
再执行以下命令,确认已经 mount 成功
mount
如果输出包括/dev/hioa 信息,则表示此项验证通过。

步骤 3 拷贝文件验证

可以从根文件系统下选取文件,拷贝的 SSD 设备上并做校验。

假设 SSD 被 mount 到“/ssd”目录,选取的文件名为“data.tst”,可以执行一下命令验


证:
md5sum data.tst
记录输出的 md5 校验值。
cp data.tst /ssd/
umount /ssd
mount /dev/hioa /ssd
md5sum /ssd/dats.tst
如果 输出的 md5 值与之前记录的一致,则表示验证通过。

文档版本 03 (2015-5-8) 华为专有和保密信息 8


版权所有 © 华为技术有限公司
ES3000 V2 PCIe SSD 高性能存储卡
Linux 开源驱动编译指导 4 驱动快速验证

----结束

文档版本 03 (2015-5-8) 华为专有和保密信息 9


版权所有 © 华为技术有限公司

You might also like