tmux源码下载:
Home · tmux/tmux Wiki · GitHub
依赖的库代码下载:
libevent:
ncurses:
第一步:将以上三个代码解压放在同一个目录下,逐个编译
1.
cd ./libevent-2.1.12-stable
./configure --host="arm-nextvpu-linux-gnueabihf" --prefix=$(pwd)/build CC=arm-nextvpu-linux-gnueabihf-gcc --disable-assumed-color --disable-openssl
make -j8
make install
build目录下得到./build/lib/libevent_core-2.1.so.7,tmux依赖此库
2.
cd ./ncurses-6.5
./configure --host="arm-nextvpu-linux-gnueabihf" --prefix=$(pwd)/build --disable-stripping --disable-assumed-color --disable-ext-colors --disable-db-install
make -j8
make install
build目录下得到依赖的头文件和库文件
3.
cd ./tmux-3.4
./configure --host="arm-nextvpu-linux-gnueabihf" --prefix=$(pwd)/build CC=arm-nextvpu-linux-gnueabihf-gcc PKG_CONFIG_PATH=$(pwd)/../libevent-2.1.12-stable/build/lib/pkgconfig CPPFLAGS="-I../ncurses-6.5/build/include/ncursesw/ -I../ncurses-6.5/build/include/" LDFLAGS="-L../ncurses-6.5/build/lib" LIBS="-lncursesw"
如果编译遇到ltinfo找不到的错误,将Makefile中的这一行的‘ltinfo’去掉
LIBS = -ltinfo -L/xxxxxxxxxxxxxxxxxxxx/tmux/libevent-2.1.12-stable/build/lib -levent_core -lm -lncursesw
修改为
LIBS = -L/xxxxxxxxxxxxxxxxxxxxx/tmux/libevent-2.1.12-stable/build/lib -levent_core -lm -lncursesw
然后编译
make -j8
make install
最终得到可执行文件 ./build/bin/tmux
第二步:ARM设备端tmux运行环境配置
1. 动态库libevent_core-2.1.so.7 拷贝到板端的库目录下
2. tmux除了依赖libevent,还依赖数据库terminfo,terminfo文件可以用其它Ubuntu系统目录下的/lib/terminfo/即可。将terminfo整个文件放在ARM设备中的/lib/目录下,并把该路径添加到环境变量中 export TERMINFO=/lib/terminfo/
3. ARM板端运行tmux
如果报错“tmux: need UTF-8 locale (LC_CTYPE) but have ANSI_X3.4-1968”
则需要配置tmux所依赖的语言环境配置,使用localedef工具(该工具从ARM的交叉编译器中获得)自动生成语言环境包。localedef运行也依赖一些数据库i18n(该数据库从ARM的交叉编译器中获得),i18n/charmaps 和 i18n/locales分别放在ARM设备端的如下目录
/usr/share/i18n/charmaps,/usr/share/i18n/locales
3.1 将i18n文件放在设备的/usr/share/目录下
在板端创建这个空文件
mkdir -p /usr/lib/locale/
执行localedef 命令
localedef -i en_US -f UTF-8 en_US.UTF-8
会在/usr/lib/locale/目录下生成一个tmux所依赖数据库文件locale-archive
继续运行tmux看是否可正常运行。
tmux起来后,在使用vi编辑器时如果会出现一些异常情况:
如小键盘数字键输入无响应、上下行翻滚时显示遮挡、光标无法移动到行尾部等,此时需要配置虚拟终端类型来解决。
先env命令查看当前TERM值,常见的的有vt100、screen、xterm-color、xterm-256color,
尝试以上不同类型,看vi编辑器是否可正常使用,我在ARM板端通过命令export TERM=xterm-color(必须在进入tmux终端前执行此命令方有效)配置后vi可正常使用,其他几个都有异常。