首页专栏详情
打赏
rv1126 编译linux procps-ng 使用全功能top命令显示
rv1126 编译linux procps-ng 使用全功能top命令显示
易百纳技术社区 wltext 2022-07-13 22:34:27

编译环境

ubuntu_x64

sdk: rv1126_rv1109_linux_sdk_v1.8.0_20210224

所需软件

ncurses-6.3.tar.gz

procps-ng-3.3.17.tar.xz


过程

1.ubuntu_x64平台,解压 ncurses-6.3.tar.gz,procps-ng-3.3.17.tar.xz 至目录utils(自行创建)

交叉编译工具所在路径: /xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-

(/xxx  为sdk所在目录)

切换到utils目录,编辑编译脚本build.sh。CROSS_COMPILE=xxx  xxx为交叉编译工具的路径


#!/bin/sh

CROSS_COMPILE=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
ARCH=arm
TARGET_DIR=$(cd `dirname $0`; pwd)/output
 
build_ncurses() {
    cd ncurses-6.3
    make clean
    ./configure --host=$ARCH-linux --prefix=$TARGET_DIR \
        --enable-static \
        --disable-shared \
        CC=$CROSS_COMPILE\gcc \
        CPP=$CROSS_COMPILE\g++ \
        CXX=$CROSS_COMPILE\g++ \
        STRIP=$CROSS_COMPILE\strip \
        RANLIB=$CROSS_COMPILE\ranlib \
        OBJDUMP=$CROSS_COMPILE\objdump \
        NM=$CROSS_COMPILE\nm \
        LD=$CROSS_COMPILE\ld \
        AR=$CROSS_COMPILE\ar \
        AS=$CROSS_COMPILE\as ;
 
    make -j|| exit 1
    #make || exit 1
    cd -
}
build_ncurses

build_procps() {
    cd procps-3.3.17
    make clean
    echo "ac_cv_func_realloc_0_nonnull=yes" > arm-linux.cache
    echo "ac_cv_func_malloc_0_nonnull=yes" >> arm-linux.cache
    CFLAGS="-I$TARGET_DIR/include -I$TARGET_DIR/include/ncurses" NCURSES_CFLAGS="-I$TARGET_DIR/include -I$TARGET_DIR/include/ncurses" NCURSES_LIBS="-L$TARGET_DIR/lib -lncurses" ./configure --host=$ARCH-linux --prefix=$TARGET_DIR \
        --enable-static \
        --disable-shared \
        --with-ncurses \
        --cache-file=arm-linux.cache \
        CC=$CROSS_COMPILE\gcc \
        CPP=$CROSS_COMPILE\g++ \
        CXX=$CROSS_COMPILE\g++ \
        STRIP=$CROSS_COMPILE\strip \
        RANLIB=$CROSS_COMPILE\ranlib \
        OBJDUMP=$CROSS_COMPILE\objdump \
        NM=$CROSS_COMPILE\nm \
        LD=$CROSS_COMPILE\ld \
        AR=$CROSS_COMPILE\ar \
        AS=$CROSS_COMPILE\as ;
 
    make -j|| exit 1
    #make || exit 1
    cd -
}
build_procps

如果编译中遇到报错,手动编辑makefile文件,修改报错makefile文件内以下变量为交叉编译工具即可

        CC=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc \
        CPP=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ \
        CXX=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ \
        STRIP=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip \
        RANLIB=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ranlib \
        OBJDUMP=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objdump \
        NM=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm \
        LD=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ld \
        AR=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar \
        AS=/xxx/rv1126_rv1109_linux_sdk_v1.8.0_20210224/prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-as ;

2.build_ncurses 后 生成编译库如下

易百纳社区

build_procps后生成top可执行程序

易百纳社区

3.rv1126板子,

将编译好的libncurses.a 移动至 板子 /usr/lib , 将编译好的top 移动至板子 /usr/bin

设置环境变量永久生效 vi /etc/profile 输入 export TERMINFO=/usr/share/terminfo

4.板子运行top

易百纳社区



6410
收藏
点赞
打赏
给作者打赏,鼓励他抓紧创作吧~
评论
0个
内容存在敏感词
相关专栏
打赏作者
易百纳技术社区
wltext
您的支持将鼓励我继续创作!
打赏金额:
¥1 易百纳技术社区
¥5 易百纳技术社区
¥10 易百纳技术社区
¥50 易百纳技术社区
¥100 易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区 微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

审核成功

发布时间设置
发布时间:

审核失败

失败原因
备注
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区