ザイリンクスのpetalinuxツールを使用して、組み込みLinuxを構築および使用しています。私のホスト開発マシンは、Ubuntu 14.04.1 LTSを実行しているVMです。私のボードは、ザイリンクスZ7045 Zynq SoCを搭載したザイリンクスZC706です。
特定のコマンド(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
rlwrap
がコマンドをラップするだけのreadlineラッパーであることを知るために、私は十分にグーグルで調べました。 $TERM
は、どの種類の端末(より具体的には端末インターフェイス仕様)と対話する必要があるかをアプリケーションに伝える環境変数であり、terminfo
は実際のインターフェイスを含むデータベースであることを理解しています仕様(/ r/n色かどうか、何でも)。
ls /usr/share/terminfo/x
を実行すると、おそらくxterm-XXXXX
またはxtermX
の20または30のバリアントがありますが、xterm
という名前のファイルはありません。私は現在、これがおそらく上記の警告の原因であると考えています。
上記の警告が表示されるのは、デバイスのFPGA部分にビットストリームをダウンロードするプロセス中、またはザイリンクスのXMD(xilinxマイクロプロセッサデバッガー)を使用してLinuxイメージをプロセッサ側にダウンロードするプロセス中です。これらのプロセスは、USBケーブルを介してホストに接続されている組み込みJTAGモジュールを使用します。
Terminfoデータベースにプレーンなxtermエントリを取得/インストールする方法を教えてください。
だから私はこれを理解しました。 /lib/terminfo/
には別のコンパイルされたterminfoディレクトリがあります。私はそこから上記のディレクトリにxtermファイルをコピーするだけでしたので、
Sudo cp /lib/terminfo/x/xterm /usr/share/terminfo/x
Petalinux(実際にはYocto)のインストール依存関係には、ncursesが含まれています。たぶん、インストールプロセス中に、terminfo xtermファイルが適切なディレクトリにコピーされなかったか、またはpetalinuxがコンパイルされたファイルをこの別のディレクトリに配置するように指示した可能性があります。知りません。警告は停止しました。