linux编译出现串口错误,Vmware Ubuntu16.04 x64位开启物理串口,并且通信,apt安装minicom失败,自行编译安装,解决error: BC undeclared (first...

vmware添加windows物理端口

关闭虚拟机

打开虚拟机设置

419e3601a50d0a2e2e86c6f7ab35a557.png

选择“使用主机上的物理串行端口(P)”

3dba7a22eeb1ac22f070343b0e63f074.png

选择物理串口,这里我选择了“自动检测”

4d55fbab3c6ffd794d0497c2a4db4f30.png

开启虚拟机

编译安装 minicom

首先尝试使用apt命令安装,提示找不到包:

$ sudo apt install minicom

...

E: Package 'minicom' has no installation candidate

Ubuntu x64 版本的 apt 命令一般只寻找 32 位的程序,看来需要自己下载编译安装了,首先执行下面的命令下载相应的程序包并且解压:

$ wget -c https://launchpadlibrarian.net/368498010/minicom_2.7.1.orig.tar.gz

$ tar xf minicom_2.7.1.orig.tar.gz

尝试常规操作:

$ cd minicom_2.7.1

$ mkdir build

$ cd build

$ ../configure --prefix=

$ make -j

但是报错了,报错信息如下:

../../src/window.c:2003:3: error: BC undeclared (first use in this function)

BC = tgetstr("bc", &_tptr);

查看相应的代码,推测应该是某些依赖库没有装,往上翻阅../configure阶段的输出,发现一系列“no”:

51738fd75b0691c361f5ce1d9c0eef00.png

很明显了,是ncurses库没有安装,执行 apt 命令安装 ncurse 库依然提示找不到包。(Ubuntu 64 位真心不好用)只能自己下载代码编译安装,我下载的是ncurses-6.0.tar.gz。

编译安装 ncurses

在 Ubuntu x64 中编译安装 ncurses 是简单的,执行基本步骤即可。

$ tar xf ncurses-6.0.tar.gz

$ cd ncurses-6.0

$ mkdir build

$ cd build

$ ../configure

$ make -j

$ sudo make install

注意,我这里因为 ncurses 是一个通用库,将其安装到系统目录了,如果希望将其安装到指定目录,可以使用 ../configure --prefix= 指定。

安装完 ncurses 后,再去安装 minicom 就可以了。(记得重新 ../configure)

e56327760ab5a5345374e11a3c60004d.png

添加软链接

同样的,因为minicom是一个通用工具,我在系统目录添加了软链接:

$ sudo ln -s /minicom-2.7.1/bin/minicom /usr/local/bin/minicom

现在在终端下就可以直接输入 minicom 命令了。

使用 minicom 与板卡通信

首先打开 vmware,在下方找到串口图标,点击连接

d2ac8d5bcb42144306588143aeff8cab.png

连接后,进入终端,输入下面的命令:

$ dmesg |grep ttyS

[ 1.152085] 00:05: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A

[ 1.174890] 00:06: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A

从输出看,我们要使用的端口应该是 /dev/ttyS0 或者 /dev/ttyS1,输入下面的命令:

$ sudo minicom -s

进入串口设置页面:

2f5612628324e760d2f0c8fef79cb2de.png

选择 Serial port setup,输入不同的字母可以设置不同的选项:

fc3b80da001457fe6f6b93c007f634d4.png

这里我们主要修改 Serial Device 和 Hardware Flow Control,前者很明显应该修改为前面 dmeg命令输出的两个 ttyS,后面的选项可以决定我们是否能够输入,将后者设置为 No,按下回车确认选择 Exit 进入 minicom:

f3063780a9eb87da19fcb510242e32b0.png

可见,我们成功的与板卡通信了,并且支持键盘输入交互。

怎么退出 minicom

其实 minicom 的界面已经告诉我们了,输入 ctrl+A 然后松开,再按下 Z,即可打开帮助页面,如下所示,此时按下 X,再确认下就可以退出 minicom 了:

9e768b11eb0804da64e1898b7881d4ea.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值