交叉编译procps

 

 

板子原本系统软件,top命令来自busybox 内部自带的procps,不支持显示进程优先级

开源的procps-ng源码交叉编译可以得到功能较丰富的top命令,(以top命令举例,还有ps pmap vmstat watch等命令)

procps 依赖ncurses 库,交叉编译ncurses-6.0 source code

./configure --prefix=/home/faun/backup/ncurses-6.0 --host=arm-linux-gnueabihf  --with-shared

make

/backup/ncurses-6.0/lib$ ls
libncurses.so.6.0  libpanel.so.6

交叉编译procps

NCURSES_CFLAGS="-I/backup/ncurses-6.0/include" NCURSES_LIBS="-L/backup/ncurses-6.0/lib -lncurses -ltinfo"./configure --host=arm-linux-gnueabihf --prefix=/backup/procps-ng-3.3.16/bin --exec-prefix=/backup/procps-ng-3.3.16/bin --libdir=/backup/procps-ng-3.3.16/bin --enable-static --disable-kill --with-ncurses

vim config.h 
//mark rpl_malloc

make
/backup/procps-ng-3.3.16/bin$ ls
free  pgrep  pidof  pkill  pmap  ps  pwdx  slabtop  tload  top  uptime  vmstat  w  watch

/backup/procps-ng-3.3.16/usr/lib$ ls
libprocps.a  libprocps.la  libprocps.so  libprocps.so.8  libprocps.so.8.0.2  pkgconfig


将libncurses.so.6  libprocps.so.8.0.2 和top 命令copy到板子里面,执行./top提示terminal 设定有问题,重设terminal环境变量为vt100(从ubuntu 电脑cop,这个不是elf,可以与arm板子共用),创建terminal database如下目录结构

/mnt # ./top
terminals database is inaccessible

/mnt # ls /usr/share/terminfo/v/vt100 
/usr/share/terminfo/v/vt100

/mnt # export TERM=vt100

再次执行top显示成功

                              交叉编译procps_第1张图片

你可能感兴趣的:(LINUX,linux,shell)