当前位置: 首页 > 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.lryc.cn/news/619222.html

相关文章:

  • 基于LLVM的memcpy静态分析工具:设计思路与原理解析(C/C++代码实现)
  • 实现文字在块元素中水平/垂直居中详解
  • tensorrt-llm0.20.0离线部署DeepSeek-R1-Distill-Qwen-32B
  • Apache POI中通过WorkBook写入图片后出现导出PDF文件时在不同页重复写入该图片问题,如何在通过sheet获取绘图对象清除该图片
  • 2787. 将一个数字表示成幂的和的方案数
  • 万物平台模型导入样例大全(实时更新中~)
  • 力扣面试150题--爬楼梯 打家劫舍 零钱兑换 最长递增子序列
  • 10. React组件间的通信
  • 某跨国金融机构法律法规自动文本摘要(ATS/文本大意提取)功能规划
  • Ansible 基础到实操笔记
  • scikit-learn/sklearn学习|岭回归python代码解读
  • 鸿蒙开发资源导航与学习建议
  • 计算机网络2-2:物理层下面的传输媒体
  • 第23章,景深:技术综述
  • 【Python办公】Mermaid代码转图片工具 - Tkinter GUI版本
  • Apache虚拟主机三种配置实战
  • 运维学习Day22——Anisible自动化与基本使用
  • JavaEE 初阶第十八期:叩开网络世界的大门
  • 随身WIFI每个月需要交钱吗?流量卡还是随身WIFI哪个更好用?正规随身WIFI品牌有哪些?谁才是真性价比之王?
  • 当“超级高速“遇见“智能大脑“:5G-A×AI如何重塑万物智联时代
  • Linux文件系统:从虚拟接口到物理实现的架构解析
  • 存储过程作为系统逻辑核心的架构思考 —— 以 SaaS 系统为例
  • 【ROS2】ROS2 基础学习教程 以lerobot-so100为例
  • 【前端:Html】--3.进阶:图形
  • 基于RAII的智能指针原理和模拟实现智能指针
  • Python函数篇:从零到精通
  • 能刷java题的网站
  • C语言—数组和指针练习题合集(二)
  • [激光原理与应用-256]:理论 - 几何光学 - CMOS与CCD传感器成像原理比较
  • 安卓主题定制实践:17.45MB轻量级主题引擎技术解析