armv8

一、环境准备

1.下载iotop源码链接:

https://objects.githubusercontent.com/github-production-release-asset-2e65be/23103328/b7f8965a-109e-4127-a6b3-526fb8a5e7e3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250317%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250317T110622Z&X-Amz-Expires=300&X-Amz-Signature=0dacdc4ce11197e56f282f4ce52098506f8581b3941385b92c83955ca5e3fd21&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Diotop-1.27.tar.xz&response-content-type=application%2Foctet-stream

 

2.放在/home/motl/src/文件夹下,解压缩tar -xf iotop-1.27.tar.xz

 

3.进入/home/motl/src/iotop-1.27/路径下,make

Make命令:

make    CC=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang         AR=/home/motl/opt/native/llvm/bin/llvm-ar        RANDLIB=/home/motl/opt/native/llvm/bin/llvm-ranlib

报错:缺少ncurses头文件,少ncurses库

3.1下载ncurses库的源码:https://ftp.gnu.org/pub/gnu/ncurses/

下载到/home/motl/src/下,解压缩:tar -xzf ncurses-6.5.tar.gz并进入/home/motl/src/ncurses-6.5/文件下                                                                                               

 

3.2使用makefile方式配置:

./configure --host aarch64-linux CC=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang --prefix=/home/motl/install/ncurses  --disable-stripping --with-shared --with-termlib CXX=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang++

最终没有报错

3.3.make -j32 最终没有报错

3.4权限安装:sudo make install

最终没有报错

3.5安装后在/home/motl/install/里面生成如下文件

4.回到/home/motl/src/iotop-1.27/目录下,将缺少的ncurses头文件头文件复制过去: cp /home/motl/install/ncurses_aarch64/include/ncursesw/curses.h /home/motl/src/iotop-1.27/src/

5.继续make CC=/home/motl/opt/native/llvm/bin/aarch64-unknown-linux-ohos-clang  AR=/home/motl/opt/native/llvm/bin/llvm-ar RANDLIB=/home/motl/ohos_1/native/llvm/bin/llvm-ranlib

报错:没有<ncursesw/ncurses_dll.h>,需要加显示路径

 

6需要设置环境变量:

export PARENT_DIR=/home/motl/opt/

export OHOS_SDK=$PARENT_DIR/

export CC="${OHOS_SDK}/native/llvm/bin/aarch64-unknown-linux-ohos-clang --target=aarch64-linux-ohos"

export CXX="${OHOS_SDK}/native/llvm/bin/aarch64-unknown-linux-ohos-clang++ --target=aarch64-linux-ohos"

export CFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_aarch64/include -I/home/motl/install/ncurses6.5_aarch64/include/ncursesw/"

export CPPFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_aarch64/include  -I/home/motl/install/ncurses6.5_aarch64/include/ncursesw/"

export LDFLAGS="-L/home/motl/install/ncurses-6.5_aarch64/lib/ -lncursesw -ltinfo"

 

库路径没有正确设置

在LDFLAGS中设置库路径:export LDFLAGS="-L/home/motl/install/ncurses-6.5_aarch64/lib/ -lncursesw -L/home/motl/install/ncurses-6.5_aarch64/lib/ -ltinfo"

 

错误:

解决方法:创建符号链接,在 /home/motl/install/ncurses-6.5_aarch64/lib/目录下7.创建符号链接:

ln -sf $PREFIX/ncurses_aarch64/lib/libtinfow.so.6 $PREFIX/ncurses_aarch64/lib/libtinfo.so

验证链接是否成功:ls -l /home/motl/install/ncurses-6.5_aarch64/lib/libtinfo.so

输出应该是:-L/home/motl/install/ncurses-6.5_aarch64/lib/ -lncursesw -ltinfo

 

重新编译:make clean

make

最后生成一个iotop

然后手动下载到桌面上

 

二、推进板子验证

1、先正常连接上板子。

cmd进入,先修改读写权限hdc shell mount -o rw,remount /

2、推进板子hdc file send D:\install_unbuntu\iotop\iotop_aarch64 .

hdc file send D:\install_unbuntu\iotop\iotop_aarch64\libtinfow.so .

3、hdc shell进入板子,ls查看文件是否存在

4、测试终端类型:TERMINFO=/share/terminfo(自己传的ncurses的share目录)

TERM=xterm-256color

环境变量命令如下所示

5、执行测试文件:iotop

最终结果:

 

armv7的命令如下:

make CC=/home/motl/opt/native/llvm/bin/armv7-unknown-linux-ohos-clang  AR=/home/motl/ohos_1/native/llvm/bin/llvm-ar RANDLIB=/home/motl/ohos_1/native/llvm/bin/llvm-ranlib

 

编译ncurses库的命令:

./configure --host armv7-linux CC=/home/motl/ohos_1/native/llvm/bin/armv7-unknown-linux-ohos-clang --prefix=/home/motl/install/ncurses-6.5_armv7  --disable-stripping --with-shared --with-termlib CXX=/home/motl/ohos_1/native/llvm/bin/armv7-unknown-linux-ohos-clang++

 

创建符号链接:ln -s /home/motl/install/ncurses-6.5_armv7/lib/libtinfo.so.6 /home/motl/install/ncurses-6.5_armv7/lib/libtinfo.so

 

环境变量的设置命令:

export PARENT_DIR=/home/motl/ohos_1/

export OHOS_SDK=$PARENT_DIR/

export CC="${OHOS_SDK}/native/llvm/bin/armv7-unknown-linux-ohos-clang --target=arm-linux-ohos"

export CXX="${OHOS_SDK}/native/llvm/bin/armv7-unknown-linux-ohos-clang++ --target=arm-linux-ohos"

export CFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_armv7/include -I/home/motl/install/ncurses6.5_armv7/include/ncursesw/ -march=armv7a"

export CPPFLAGS="-fPIC -D__MUSL__=1 -I/home/motl/install/ncurses-6.5_armv7/include  -I/home/motl/install/ncurses6.5_armv7/include/ncursesw/ -march=armv7a"

export LDFLAGS="-L/home/motl/install/ncurses-6.5_armv7/lib/ -lncursesw -ltinfo"

其余操作流程如上armv8一样

 

环境变量设置:

export LD_LIBRARY_PATH=/iotop_armv7/ncurses-6.5_armv7/lib

export TERMINFO=/iotop_armv7/ncurses-6.5_armv7/terminfo

TERM=xterm-256color

chmod 755 iotop

iotop

最终结果如下:

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐