我正在使用 Xilinx 的 petalinux 工具来构建和使用嵌入式 Linux。我的主机开发机器是运行 Ubuntu 14.04.1 LTS 的 VM。我的主板是 Xilinx ZC706,带有 Xilinx Z7045 Zynq SoC。
当我发出某个命令时(petalinux-boot --JTAG -- Whatever/option/I/use
),我收到一条警告,提示
rlwrap: $TERM is xterm but rlwrap can't find it in the terminfo database.
Expect some problems. Inappropriate IOCTL for device
我在 Google 上搜索并做了大量研究,知道这rlwrap
是一个 readline 包装器,只是包装命令。我理解这$TERM
是一个环境变量,它告诉应用程序必须与哪种终端(或更具体地说,终端接口规范)进行交互,这terminfo
是一个包含实际接口规范(/r /n 颜色或非颜色,等等)的数据库。
当我运行时,ls /usr/share/terminfo/x
可能有 20 或 30 个变体xterm-XXXXX
,xtermX
但没有名为 的文件xterm
。我目前认为这可能是上述警告的原因。
当我收到上述警告时,要么是在将比特流下载到设备的 FPGA 部分,要么是在使用 Xilinx 的 XMD(xilinx 微处理器调试器)将 Linux 映像下载到处理器端的过程中。这些过程使用通过 USB 电缆连接到我的主机的嵌入式 JTAG 模块。
如何获取/安装普通的 xterm 条目到 terminfo 数据库中?
答案1
所以我搞明白了。 中还有另一个已编译的 terminfo 目录/lib/terminfo/
。我只需要将 xterm 文件从那里复制到上述目录,因此:
sudo cp /lib/terminfo/x/xterm /usr/share/terminfo/x
petalinux(实际上是 Yocto)的安装依赖项包括 ncurses。我认为在安装过程中,terminfo xterm 文件可能没有复制到适当的目录,或者 petalinux 指示编译后的文件位于另一个目录中。我不知道。警告已停止。