交叉编译nmon系统资源监控工具
1.源文件下载
git clone https://github.com/axibase/nmon.git
2.修改makefile,增加目标
nmon_arm_am3352: $(FILE)
arm-linux-gnueabihf-gcc -o nmon_arm_am3352 $(FILE) $(CFLAGS) $(LDFLAGS) -D ARM -D KERNEL_2_6_18 -D AM3352
3.编译
make nmon_arm_am3352
4.报异常缺少ncurses.h
reasonss@reasonss-PC:~/Downloads/nmon$ make nmon_arm_am3352
arm-linux-gnueabihf-gcc -o nmon_arm_am3352 lmon16f.c -g -O3 -Wall -D JFS -D GETUSER -D LARGEMEM -lncurses -lm -g -D ARM -D KERNEL_2_6_18 -D AM3352
lmon16f.c:60:21: fatal error: ncurses.h: 没有那个文件或目录
#include <ncurses.h>
^
compilation terminated.
make: *** [makefile:97:nmon_arm_am3352] 错误 1
5.交叉编译ncurses.h
参考https://blog.csdn.net/zadile1/article/details/52025818
6.重新修改Makefile调整依赖
nmon_arm_am3352: $(FILE)
arm-linux-gnueabihf-gcc -o nmon_arm_am3352 $(FILE) $(CFLAGS) $(LDFLAGS) -D ARM -D KERNEL_2_6_18 -D AM3352 -I ../ncurses-5.9/target/include/ -I ../ncurses-5.9/target/include/ncurses -I. -L ../ncurses-5.9/target/lib -lncurses
7.拷贝二进制文件和库到目标板子
8.将库文件拷贝到/usr/lib,并且重新加载环境依赖
cp libncurses.so.5.9 /usr/lib/
ldconfig
9.执行nmon_arm_am3352,报异常Error opening terminal: xterm-256color.
export TERM=vt100
export TERMINFO=/usr/share/terminfo
10.terminfo为空,拷贝之前交叉编译好的terminfo目录到板子/usr/share
scp -r terminfo root@10.52.120.200:/usr/share/
11.执行成功
12.添加环境依赖到全局
vi /etc/profile
export TERM=vt100
export TERMINFO=/usr/share/terminfo
13.使用分析工具分析数据
13.1下载分析工具
最新版本nmon源码http://nmon.sourceforge.net/pmwiki.php?n=Site.CompilingNmon
最新版本分析器下载http://nmon.sourceforge.net/pmwiki.php?n=Site.Nmon-Analyser
13.2替换到原来git项目面重新编译
原本git上的版本太旧,v66分析器分析不了,所以需要重新编译
13.3分析数据