当前位置: 首页 > news >正文

开源!!! htop移植到OpenHarmony

笔者最近将htop移植到OpenHar[mony,老规矩开源!!!

先上图,笔者的机器的是此芯星睿o6开发板+AMD显卡rx6600xt,OpenHarmony 5.0.0

image.png


可以看见cix p1芯片有四核大核 Cortex®-A720、四核中核 Cortex®-A720、四核小核 Cortex®-A520,一共12个核

b25ad52b7c1222ef719ff2f74018148a.png

如何集成htop到OpenHarmony

git clone https://gitee.com/OpenHarmony_rk_equipment_transplantation/ttyd_openharmony.gitcd ttyd_openharmony/lycium/
# 设置oh交叉编译环境
export OHOS_SDK=/root/OpenHarmony/cix_myself_5.0.0/prebuilts/ohos-sdk/linux/12# 编译依赖库
./build.sh ncurses
# 编译htop
./build.sh htop

1.编译好的文件在ttyd_openharmony/lycium/usr/htop,将准备好的htop文件推送到开发板

image.png

2.将htop运行需要的terminfo 数据库文件编译出来,然后推送到开发板中

  • 编译x86 linux的ncurses可以得到terminfo 数据库文件。
    # 编译x86 linux的ncurses,得到terminfo 数据库
    wget https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz
    tar -xvzf ncurses-6.5.tar.gz
    cd ncurses-6.5
    ./configure --prefix=/root/OpenHarmony/temp3/ncurses_install --with-termlib --with-cxx-binding --with-widec --without-ada --disable-mixed-case
    make -j $(shell nproc)
    make install
    

image.png

hdc file send "\\wsl.localhost\Ubuntu-20.04\root\OpenHarmony\temp3\ncurses_install\share\terminfo" /data# 开发板上安装验证
export TERMINFO=/data/terminfo
./htop

移植思路

先完成ncurses 6.5 交叉编译移植到OpenHarmomy,然后交叉编译htop,编译时需要链接到ncurses的编译产物,然后开启编译htop时的静态链接。

https://codeload.github.com/htop-dev/htop/tar.gz/refs/tags/3.4.1
tar -zxvf 3.4.1 
cd htop-3.4.1/
./autogen.sh
./configure --host=aarch64-linux-gnu --prefix=/root/OpenHarmony/temp3/htop_install LDFLAGS="-L/root/OpenHarmony/temp3/ncurses_install/lib" CPPFLAGS="-I/root/OpenHarmony/temp3/ncurses_install/include  -D_FORTIFY_SOURCE=2" --enable-static --enable-affinity

最后如果有读者需要将htop二进制集成到固件里面,不知道默认设置环境变量export TERMINFO=/data/terminfo的话,可以参考笔者文章OpenHarmony中默认export 添加环境变量

http://www.dtcms.com/a/327262.html

相关文章:

  • 自动驾驶决策算法 —— 有限状态机 FSM
  • AI项目提示-提示词-属于-mcp-cli等
  • css初学者第五天
  • 【CSS 变量】让你的 CSS “活”起来:深入理解 CSS 自定义属性与主题切换
  • 现代 CSS工具
  • web前端第二次作业
  • 【CSS 视觉】无需JS,纯 CSS 实现酷炫视觉效果(clip-path, filter, backdrop-filter)
  • 微前端面试考点与答案
  • 纯CSS+JS制作抽奖大转盘
  • 【CSS3】录音中。。。
  • aspose word for java 使用书签进行内容填充和更新
  • AppStorageV2:鸿蒙全局状态管理详解-ArkUI本地存储
  • django 如何读取项目根目录下的文件内容
  • Python常用的5种中文分词工具
  • 力扣 hot100 Day71
  • Claude Code,Gemini CLI,Trae-agent, Qwen Code 使用对比及感受
  • 【数据分享】2020-2022年我国乡镇的逐日最高气温数据(Shp/Excel格式)
  • ABAC 权限策略扩展
  • 在达梦数据库中使用group by 命令报错问题
  • MCU中的液晶显示屏LCD(Liquid Crystal Display)控制器
  • Python 正则表达式 re.findall()
  • special topic 11 (1)
  • 【Linux系统】详解Ext2,文件系统
  • 打印流水号条形码
  • 标注工具组件功能文档
  • 如何将新建的Anaconda虚拟环境导入Juputer内核中?
  • Spring Boot项目通过RestTemplate调用三方接口详细教程
  • 系统架构设计师备考之架构设计实践知识
  • 完整反作弊系统架构(技术讲解)
  • 如何解决Unexpected token ‘<’, “<!doctype “… is not valid JSON 报错问题