OpenHarmony 4.1Release交叉编译fio进行I/O性能测试

一、环境配置

  • 源码环境:OpenHarmony 4.1 Release
  • 平台硬件: RK3568
  • 平台软件:OpenHarmony 4.1 Release 32bit(4.1.7.8)
  • fio版本:3.37

二、fio简介

fio是一个I/O测试工具,可以运行在Linux、Windows等多种系统之上,可以用来测试本地磁盘、网络存储等的I/O性能。
fio官网:https://fio.readthedocs.io/en/latest/fio_doc.html
fio源码下载:https://brick.kernel.dk/snaps/

三、交叉编译fio源码

将下载的fio源码fio-3.37.tar.gz放入OpenHarmony项目源码third_party/目录下进行解压

 

$ cd third_party
$ tar -zxvf fio-3.37.tar.gz

3.1、配置交叉编译环境

在third_party/fio-3.37/目录下创建交叉编译环境的配置脚本fio_env32.sh和fio_env64.sh

 fio_env32.sh文件如下

#!/bin/bash make clean
#arm-linux-ohos ./configure --cpu=aarch64 --prefix=$PWD/install
SDK_PATH=../../prebuilts/ohos-sdk/linux/11/native
CUR_PATH=$(pwd)
cd $SDK_PATH
export OHOS_SDK=$(pwd)
cd $CUR_PATH
export AS=${OHOS_SDK}/llvm/bin/llvm-as
export CC="${OHOS_SDK}/llvm/bin/clang --target=arm-linux-ohos"
export CXX="${OHOS_SDK}/llvm/bin/clang++ --target=arm-linux-ohos"
export LD="${OHOS_SDK}/llvm/bin/lld --target=arm-linux-ohos"
export STRIP=${OHOS_SDK}/llvm/bin/llvm-strip
export RANLIB=${OHOS_SDK}/llvm/bin/llvm-ranlib
export OBJDUMP=${OHOS_SDK}/llvm/bin/llvm-objdump
export OBJCOPY=${OHOS_SDK}/llvm/bin/llvm-objcopy
export NM=${OHOS_SDK}/llvm/bin/llvm-nm
export AR=${OHOS_SDK}/llvm/bin/llvm-ar
export CFLAGS="-fPIC -D__MUSL__=1"
export CXXFLAGS="-fPIC -D__MUSL__=1"

 fio_env64.sh文件如下

#!/bin/bash
#aarch64-linux-ohos ./configure --cpu=aarch64 --prefix=$PWD/install
SDK_PATH=../../prebuilts/ohos-sdk/linux/11/native
CUR_PATH=$(pwd)
cd $SDK_PATH
export OHOS_SDK=$(pwd)
cd $CUR_PATH
export AS=${OHOS_SDK}/llvm/bin/llvm-as
export CC="${OHOS_SDK}/llvm/bin/clang --target=aarch64-linux-ohos"
export CXX="${OHOS_SDK}/llvm/bin/clang++ --target=aarch64-linux-ohos"
export LD="${OHOS_SDK}/llvm/bin/lld --target=aarch64-linux-ohos"
export STRIP=${OHOS_SDK}/llvm/bin/llvm-strip
export RANLIB=${OHOS_SDK}/llvm/bin/llvm-ranlib
export OBJDUMP=${OHOS_SDK}/llvm/bin/llvm-objdump
export OBJCOPY=${OHOS_SDK}/llvm/bin/llvm-objcopy
export NM=${OHOS_SDK}/llvm/bin/llvm-nm
export AR=${OHOS_SDK}/llvm/bin/llvm-ar
export CFLAGS="-fPIC -D__MUSL__=1"
export CXXFLAGS="-fPIC -D__MUSL__=1"

 

3.2、编译fio源码

编译前我们先分清楚cpu架构位数和软件架构的位数有什么区别,这个决定了我们选择fio_env32.sh还是fio_env64.sh,选择aarch64还是arm

首先,hdc shell getconf LONG_BIT 输出的是OS位数,决定了我们使用fio_env32.sh还是fio_env64.sh,当然,64位OS也向下支持32位,但32位却不能运行64位,建议使用对应版本的fio_env.sh。

其次 hdc shell uname -a 输出的是cpu架构,决定了我们--cpu = arm 还是等于aarch64 。当然也有x86、x86_64等,选对应的即可。

注意:交叉编译环境与设备CPU架构和软件系统架构有关,需根据实际情况配置和修改。

  • RK3568 cpu架构为aarch64,查看方法如下:
> hdc shell uname -a
Linux localhost 5.10.184 #1 SMP Sun Jun 16 01:10:03 CST 2024 aarch64
  • 设备系统软件架构为32bit,查看方法如下:
> hdc shell getconf LONG_BIT
32

在third_party/fio-3.37/目录下运行fio_env32.sh,此处以32为例:

$ cd third_party/fio-3.35/
$ source fio_env32.sh

 

接着上面步骤,在third_party/fio-3.37/目录下执行下面的命令

#配置fio编译环境,cpu架构为aarch64; 安装文件生成路径为./install


$ ./configure --cpu=aarch64 --prefix=$PWD/install
Operating system              Linux
CPU                           arm64
Big endian                    no
Compiler                      /home/oh4.1/prebuilts/ohos-sdk/linux/11/native/llvm/bin/clang --target=arm-linux-ohos
Cross compile                 yes

Static build                  no
Wordsize                      32
...
TCMalloc support              no
se
  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值