Linux dmesg ユーティリティの使用 - 2020.1 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

カーネルおよびモジュールが適切に設計されていれば、カーネル リング バッファーを介して問題がレポートされます。これは Vitis テクノロジ モジュールの場合も同様で、アクセラレータ ボードと通信する最下位 Linux レベルでのデバッグが可能になります。

dmesg ユーティリティは、カーネル リング バッファーを読み出すための Linux ツールです。カーネル リング バッファーでは、循環バッファーにカーネル情報メッセージが格納されます。リソース要件を制限するため固定サイズの循環バッファーが使用されており、1 番古いエントリが次に入ってくるメッセージで上書きされます。

ヒント: ほとんどの場合、詳細度の低い xbutil 機能でも問題を検出するのには十分です。このツールをデバッグに使用する場合の詳細は、ザイリンクス xbutil ユーティリティの使用 を参照してください。

Vitis テクノロジでは、情報メッセージは xocl モジュールおよび xclmgmt ドライバー モジュールによりリング バッファーに書き込まれます。このため、アプリケーションのハングやクラッシュが発生したり、予期しない動作 (ビットストリームをプログラムできないなど) が見られる場合は、dmesg ツールを使用してリング バッファーを確認する必要があります。

次の図に、ターゲット プラットフォームに関連付けられたソフトウェア プラットフォームのレイヤーを示します。

図 1. ソフトウェア プラットフォーム レイヤー

Linux ツールからのメッセージを確認するには、まずリング バッファーをクリアする必要があります。

sudo dmesg -c

これにより、すべてのメッセージがリング バッファーから消去されるので、xocl および xclmgmt からのメッセージを見つけやすくなります。その後、アプリケーションを開始して dmesg を別のターミナルで実行します。

sudo dmesg

dmesg ユーティリティで、次の例のような情報が表示されます。

図 2. dmesg ユーティリティの例

上記の例の場合、AXI Firewall 2 が作動しているので、xbutil ユーティリティを使用して検証することをお勧めします。