tmux 移植到ARM板端运行环境搭建

发布于:2024-06-12 ⋅ 阅读:(72) ⋅ 点赞:(0)

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可正常使用,其他几个都有异常。


网站公告

今日签到

点亮在社区的每一天
去签到