13

Vmware Ubuntu16.04 x64位开启物理串口,并且通信,apt安装minicom失败,自行编译安装...

 3 years ago
source link: https://blog.popkx.com/vmware-ubuntu-open-physical-serial-port-and-communicate/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

发表于 2019-12-13 15:12:00   |   已被 访问: 720 次   |   分类于:   杂谈 , Linux笔记   |   暂无评论

vmware添加windows物理端口

  • 关闭虚拟机
  • 打开虚拟机设置
打开虚拟机设置

打开虚拟机设置

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

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

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

选择物理串口

  • 开启虚拟机

编译安装 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”:

一系列“no”

一系列“no”

很明显了,是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)

编译和安装 minicom 完成

编译和安装 minicom 完成

添加软链接

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

$ sudo ln -s <minicom绝对路径>/minicom-2.7.1/bin/minicom /usr/local/bin/minicom

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

使用 minicom 与板卡通信

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

连接串口

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

$ 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

进入串口设置页面:

串口设置页面

串口设置页面

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

设置

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

成功和板卡通信

成功和板卡通信

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

怎么退出 minicom

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

退出 minicom

退出 minicom

阅读更多:   杂谈 , Linux笔记


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK