4

I am using Xilinx' petalinux tools to build and use embedded linux. My host development machine is a VM running Ubuntu 14.04.1 LTS. My board is a Xilinx ZC706 with a Xilinx Z7045 Zynq SoC.

When issuing a certain command (petalinux-boot --JTAG -- Whatever/option/I/use), I get a warning back that says

rlwrap: $TERM is xterm but rlwrap can't find it in the terminfo database. 
Expect some problems. Inappropriate IOCTL for device

I have googled and researched enough to know that rlwrap is a readline wrapper which is just wrapping up commands. I understand that $TERM is the environment variable that tells applications what kind of terminal (or more specifically, the terminal interface specifications) with which it must interact, and that terminfo is a database that contains the actual interface specs (/r /n color or not, whatever).

When I run ls /usr/share/terminfo/x there are probably 20 or 30 variants of xterm-XXXXX or xtermX, but there is not a file named xterm. I am currently of the opinion that this is probably the cause for the above warning.

When I get the above warning it is during the process of either downloading a bitstream to the FPGA part of the device or when using the Xilinx' XMD (xilinx microprocessor debugger) to download the linux image to the Processor side. These processes use an embedded JTAG module that is connected to my host via a USB cable.

How do I get/install a plain xterm entry into the terminfo database?

1 Answer 1

2

So I figured this out. There is another compiled terminfo directory in /lib/terminfo/. I only needed to copy the xterm file from there to the above directory, so:

sudo cp /lib/terminfo/x/xterm /usr/share/terminfo/x

The install dependancies of petalinux (which is really Yocto) include ncurses. I think that perhaps during the install process the terminfo xterm file either didn't get copied over to the appropriate directory, or maybe petalinux instructed the compiled file to be in this other directory. I don't know. Warning has stopped.

1
  • an alternative might be: sudo mv /usr/share/terminfo /usr/share/terminfo.backup then sudo ln -s /lib/terminfo /usr/share/terminfo. or bind-mount in a similar fashion.
    – quixotic
    Apr 3, 2017 at 5:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .