当前位置: 首页 > news >正文

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

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

相关文章:

  • Leetcode3174. 清除数字
  • 107.网络游戏逆向分析与漏洞攻防-装备系统数据分析-装备信息更新的处理
  • webshell三巨头 综合分析(蚁剑,冰蝎,哥斯拉)
  • 汇编:保护模式下的寻址方式
  • Linux配置uwsgi环境
  • <题海拾贝>[递归]1.汉诺塔
  • PyCharm中 Fitten Code插件的使用说明一
  • 云计算——武汉理工期末复习
  • 迈向『闭环』| PlanAgent:基于MLLM的自动驾驶闭环规划新SOTA!
  • 【Python】(一)复习重点——控制流
  • 【经验】Ubuntu上离线安装VsCode插件浏览Linux kernel源码
  • Nginx配置详细解释:(4)高级配置
  • 使用#sortablejs插件对表格中拖拽行排序#Vue3#后端接口数据
  • Linux用户,用户组,所有者权限分配,sftp用户权限分配
  • 问题 B: 2.左右(lr.cpp/pas)
  • Android Studio:GIT提交项目到远程仓库
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • mongodb--安装和初步使用教程
  • SQLServer之索引简介
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 如何进阶一名有竞争力的程序员?
  • 什么是Javascript函数节流?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 学习JavaScript数据结构与算法 — 树
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • hi-nginx-1.3.4编译安装
  • 选择阿里云数据库HBase版十大理由
  • $nextTick的使用场景介绍
  • (~_~)
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (35)远程识别(又称无人机识别)(二)
  • (阿里云万网)-域名注册购买实名流程
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (六)Flink 窗口计算
  • (一)u-boot-nand.bin的下载
  • (转)【Hibernate总结系列】使用举例
  • (转)memcache、redis缓存
  • (转)大型网站架构演变和知识体系
  • (转)关于pipe()的详细解析
  • (转)项目管理杂谈-我所期望的新人
  • .mysql secret在哪_MySQL如何使用索引
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .NET Core中Emit的使用
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .NET正则基础之——正则委托
  • @AliasFor注解
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Assignment] C++1
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽