シリアルポート
シリアルポートは、コンピューター間の単純な低レベル通信メカニズムです。
利点:
- 簡単なセットアップ1回(ハードウェアがある場合)
- データ送信は単純なワイヤとカーネルAPIのみに依存するため、信頼性が高く、TCP / IPサブシステムよりもパニックの影響を受けにくい。
欠点:
- 最新のラップトップのほとんどは、スペースを節約するためのシリアルポートをもう備えていません(露出?)。しかし、デスクトップと仮想マシンはまだあります。
- また、データを受信するためにシリアルポートを備えた2台目のコンピューターも必要ですが、これは基本的にRaspberry Piなどのすべての組み込み開発ボードの場合です。
- 無制限のTCP / IPネットワークとは異なり、物理層シリアルケーブルの長さによって制限されます。ただし、これは、シリアルとTCP / IP間のインターフェイスを備えたデバイスで回避できます。しかし、2つの間で変換するデバイスがあります。
シリアルポートは次のようになります。
RPIでは、GPIOを介して利用できます。
次に、必要なハードウェアがある場合、2番目のコンピューターからメインコンピューターに次のように接続します。
screen /dev/ttyS0 115200
これは実際にシェルを提供します。
次に、メインマシンで、パニックを引き起こす操作を開始します。
パニックが発生すると、パニックダンプが2番目のマシンにストリーミングされます。ターミナルで上にスクロールすると、すべてを確認できます。
その他の方法
上記のハードウェアの制限を克服する他の方法もありますが、より複雑で信頼性が低くなります。注目すべき方法:
- netdump:TCP / IPでパニックをストリーミングします。破損していないTCP / IPサブシステムに依存します。
- kdump:https ://askubuntu.com/a/104793/52975で言及されているlinux-crashdumpの基盤となるメカニズムのようです。2 番目のLinuxカーネルを起動して、クラッシュしたカーネルを調べます。何が間違っている可能性がありますか?!:-)
この素晴らしい回答も参照してください:https : //unix.stackexchange.com/questions/60574/determining-cause-of-linux-kernel-panic
ステップデバッグ
最終的に、パニック出力を取得するにはいくつかのカーネル機能が動作する必要があり、カーネル機能はパニックによって破損する可能性があります。
しかし、カーネルでGDBを使用できる場合、誰がパニックを必要としますか?あなたがその筋金入りなら、見てください:
すべての問題が完全に可視化されると(そして十分な時間があると!)落ちます。