zoukankan      html  css  js  c++  java
  • 交叉编译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、解压和交叉编译,下面是编译脚本:

    1 ./configure --prefix=`pwd` 
    2         --host=aarch64-linux-gnu 
    3         --disable-shared
    4 
    5 make
    6 make install

    下载和编译ncurses

    1、下载ncurses: https://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz

    2、解压和交叉编译,下面是编译脚本:

    1 ./configure --prefix=`pwd` 
    2         --host=aarch64-linux-gnu 
    3         --with-default-terminfo-dir=/usr/share/terminfo 
    4         --with-terminfo-dirs="/etc/terminfo:/lib/terminfo:/usr/share/terminfo"
    5 
    6 make
    7 make install

    下载和编译tmux

    1、下载tmux:https://github.com/tmux/tmux/releases/download/2.1/tmux-2.1.tar.gz

    2、解压和交叉编译,下面是编译脚本:

     1 export CFLAGS="-I/home/pengdl/work/Third_Part/tmux/libevent-2.1.10-stable/include/ 
     2         -I/home/pengdl/work/Third_Part/tmux/ncurses-6.1/include 
     3         -I /home/pengdl/work/Third_Part/tmux/ncurses-6.1/include/ncurses"
     4 
     5 export LDFLAGS="--static -L/home/pengdl/work/Third_Part/tmux/libevent-2.1.10-stable/lib/ 
     6         -L/home/pengdl/work/Third_Part/tmux/ncurses-6.1/lib"
     7 
     8 ./configure --prefix=`pwd` 
     9         --host=aarch64-linux-gnu 
    10         --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
    
    13 directories, 43 files

    启动开发板,查看当前TERM

    [root@aarch64 ]# echo $TERM
    vt102

    可以根据自己的喜好,选择相应的配置,个人感觉linux配置不过,设置方法:

    export TERM=linux

    修改终端size

    stty rows 30 cols 120

    可以根据实际情况修改终端大小。查看当前终端大小:stty size 或者 stty -a

    [root@aarch64 ]# stty rows 30 cols 120
    [root@aarch64 ]# stty size
    30 120

    启动tmux

    tmux new -s wk

    完。

  • 相关阅读:
    功能测试--电梯测试项
    进程
    基于UDP协议的socket编程
    自定义报头解决粘包问题
    基于TCP协议的socket编程
    python3 中encode 和decode的使用方法。
    反射---hasattr、getattr、setattr、delattr
    摘要算法---hashlib模块下MD5和SHA的使用
    日志模块---logging
    staticmethod、classmethod的使用
  • 原文地址:https://www.cnblogs.com/pengdonglin137/p/11960623.html
Copyright © 2011-2022 走看看