交叉编译tmux
作者:彭东林
邮箱:pengdonglin137@163.com
参考
https://gist.github.com/tessus/5e118d44261a6ab2f198
环境
Qemu-4.1
Linux-4.14
ARM64
aarch64-linux-gnu-gcc 8.3
概述
在进行嵌入式开发时,经常会用到串口,这样就可以使用串口来登录到板子上,如果能将一个串口复用为多个终端的话,对于我们的开发调试就会更加方便,而tmux就提供了这样的功能。
下面介绍tmux如何静态交叉编译,使其运行在arm开发板上。
软件版本
tmux-2.1
libevent:2.1.10
ncurses-6.1
正文
交叉编译tmux需要libevent和ncurses两个软件包。
下载和编译libevent
1、下载libevent:https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar.gz
2、解压和交叉编译,下面是编译脚本:
./configure --prefix=`pwd` \
--host=aarch64-linux-gnu \
--disable-shared make
make install
下载和编译ncurses
1、下载ncurses: https://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
2、解压和交叉编译,下面是编译脚本:
./configure --prefix=`pwd` \
--host=aarch64-linux-gnu \
--with-default-terminfo-dir=/usr/share/terminfo \
--with-terminfo-dirs="/etc/terminfo:/lib/terminfo:/usr/share/terminfo" make
make install
下载和编译tmux
1、下载tmux:https://github.com/tmux/tmux/releases/download/2.1/tmux-2.1.tar.gz
2、解压和交叉编译,下面是编译脚本:
export CFLAGS="-I/home/pengdl/work/Third_Part/tmux/libevent-2.1.10-stable/include/ \
-I/home/pengdl/work/Third_Part/tmux/ncurses-6.1/include \
-I /home/pengdl/work/Third_Part/tmux/ncurses-6.1/include/ncurses" export LDFLAGS="--static -L/home/pengdl/work/Third_Part/tmux/libevent-2.1.10-stable/lib/ \
-L/home/pengdl/work/Third_Part/tmux/ncurses-6.1/lib" ./configure --prefix=`pwd` \
--host=aarch64-linux-gnu \
--enable-static
上面就完成了交叉编译,然后将tmux可执行程序
拷贝terminfo配置文件
将terminfo配置文件拷贝到开发板上,可以只拷贝实际要用的:
# 在跟文件系统里创建如下目录
cd rootfs/
mkdir -p usr/share/terminfo/ # 拷贝PC上的terminfo文件
cp /lib/terminfo/* usr/share/terminfo/ -raf
下面是可用的TERM配置:
$ tree usr/share/terminfo/
usr/share/terminfo/
├── a
│ └── ansi
├── c
│ ├── cons25
│ ├── cons25-debian
│ └── cygwin
├── d
│ └── dumb
├── E
│ ├── Eterm
│ └── Eterm-color -> Eterm
├── h
│ └── hurd
├── l
│ └── linux
├── m
│ ├── mach
│ ├── mach-bold
│ ├── mach-color
│ ├── mach-gnu
│ └── mach-gnu-color
├── p
│ └── pcansi
├── r
│ ├── rxvt
│ ├── rxvt-basic
│ ├── rxvt-m -> rxvt-basic
│ ├── rxvt-unicode
│ └── rxvt-unicode-256color
├── s
│ ├── screen
│ ├── screen-256color
│ ├── screen-256color-bce
│ ├── screen-bce
│ ├── screen-s
│ ├── screen-w
│ ├── screen.xterm-256color
│ └── sun
├── v
│ ├── vt100
│ ├── vt102
│ ├── vt220
│ └── vt52
├── w
│ ├── wsvt25
│ └── wsvt25m
└── x
├── xterm
├── xterm-256color
├── xterm-color
├── xterm-debian -> xterm
├── xterm-mono
├── xterm-r5
├── xterm-r6
├── xterm-vt220
└── xterm-xfree86 directories, files
启动开发板,查看当前TERM
[root@aarch64 ]# echo $TERM
vt102
可以根据自己的喜好,选择相应的配置,个人感觉linux配置不过,设置方法:
export TERM=linux
修改终端size
stty rows cols
可以根据实际情况修改终端大小。查看当前终端大小:stty size 或者 stty -a
[root@aarch64 ]# stty rows cols
[root@aarch64 ]# stty size
启动tmux
tmux new -s wk

完。
交叉编译tmux的更多相关文章
- Linux主机上使用交叉编译移植u-boot到树莓派
0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...
- Ubuntu 16.04 安装 arm-linux-gcc 嵌入式交叉编译环境 问题汇总
闲扯: 实习了将近半年一直在做硬件以及底层的驱动,最近要找工作了发现了对linux普遍要求很高,而且工作岗位也非常多,所以最近一些时间在时不时地接触linux. 正文:(我一时兴起开始写博客,准备不充 ...
- 不要着急改代码,先想想--centos 6.8下编译安装tmux
诸位读者新年好,2017开年第一篇博客,请允许我先问候一下看到这篇博客的诸位.写博客是我2017年定下的目标之一,希望我会坚持下去. 最近打算尝试一下tmux这个神器,于是有了这一篇关于思维方式的Bl ...
- Linux 14.04lts 环境下搭建交叉编译环境arm-linux-gcc-4.5.1
交叉编译工具链是为了编译.链接.处理和调试跨平台体系结构的程序代码,在该环境下编译出嵌入式Linux系统所需要的操作系统.应用程序等,然后再上传到目标板上. 首 先要明确gcc 和arm-linux- ...
- 打造高效前端工作环境 - tmux
打造高效前端工作环境 - tmux 前言 现在前端开发可不容易啊,先打开个VIM,然后再打开个lite-server,一不小心写个ES2015还要打开个gulp来做预编译,如果能把这么多个窗口放在一 ...
- Linux主机上实现树莓派的交叉编译及文件传输,远程登陆
0.环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS:官网下的的raspb ...
- 在tmux中的vi 上下左右键变为了ABCD等字符
在本机上用vim编辑时,上下左右键没有问题,但是在tmux中确出现ABCD等字符. 原因是在tmux这个终端,默认做了字符转换,网上搜了很多答案,解决问题的设置是: set term=xterm
- FFmpeg和X264的交叉编译环境
在下载好了FFmpeg和X264的源码包之后,在Linux下进行安装的基本流程就是切换到其源码的根目录,然后以此执行以下命令.基本上所有的开源源码包的默认编译安装都是这三步. ./configure ...
- tmux常用快捷键
首先输入命令开始. $ tmux 然后,基本组合 Ctrl+b(同时按下ctrl和b),按完松开 松开后,按%(即同时按下shift和5),是水平分割 按“(即同时按shift和'),是纵向分割 按上 ...
随机推荐
- Getting Started with TensorFlow.js
使用TensorFlow.js,您不仅可以在浏览器中运行深度学习模型进行推理,你还能够训练它们.在这个简单的样例中,将展示一个相当于“Hello World”的示例. 1.引入TensorFlow.j ...
- vijos2055 移动金币
题目链接 思路 首先这是一个阶梯博弈. 我们将金币两两组合,如果对方移动前一个,那么我们把后一个移动相同的距离,局面相当于没有变化.如果对方移动后一个,就相当于\(NIM\)游戏中,取走了一些石子. ...
- 初识程序设计,Linux使用问题记录
刚开始实在csdn写的,排版csdn更好看,本文链接:https://blog.csdn.net/qq_30282649/article/details/102910972 @[TOC](刚开始学习计 ...
- [LeetCode] 215. Kth Largest Element in an Array 数组中第k大的数字
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...
- [LeetCode] 87. Scramble String 搅乱字符串
Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrin ...
- DVWA XSS (DOM) 通关教程
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容.结构以及样式. DOM型XSS其实是一种特殊类型的反射型XSS,它是 ...
- C++ 10进制, 16进制, ASCII码, 单字节与多字节的相互转换
这些简单的转换是用的比较频繁的, 因此将这些功能全部封装在一个类中 头文件 #pragma once #include <stdlib.h> #include <string> ...
- GreenPlum 大数据平台--segment 失效问题排查
01,segment 检查一: 在master节点上检查失效的segment 正常情况下: :::: gpstate:greenplum01:gpadmin-[INFO]:-Starting gpst ...
- 错误:PermissionError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。"+文件路径"的解决方案
最近在使用python进行筛选图片的时候,想到用python里面的os库进行图片的删除. 具体筛选方法就是,删除掉图片长度或宽度小于100像素的图片,示例代码如下所示: for file in os. ...
- nginx 安装ab小工具方法
nginx 安装ab小工具方法测试工具安装(以centos系统为例)yum -y install httpd-tools 然后测试下ab -V