カーネルパニックを画面に表示する方法はありますか?

カーネルパニックを画面に表示する方法はありますか?

ユーザーがカーネルパニックの原因を画面に表示できますか?

答え1

Linux は画面定義に従って画面にパニックダンプを実行します。

Linuxが実際に行うことは、システムコンソールにダンプするだけです。通常、これは画面ですが、シリアルコンソール(または他の場所)にすることもできます。

しかし、ほとんどの人はデスクトップ上でXを実行します。これはコンソールいいえ画面にはフレームバッファがあります。この場合、Linuxをフレームバッファにダンプする必要がありますが、これは実際にあなたが探しているものだと思います。

あなたは一つを持っていて幸運ですこれに専念するプロジェクトUbuntuから。このプロジェクトがどれほど進行しているかはわかりませんが、有望に見え、ここから始める必要があります。

答え2

免責事項:あなたが次のように言ったので、この回答を投稿しました。求めるコンキ。エラーメッセージなどではなく、実際のカーネルパニックについて話している場合、カーネルがパニックに忙しくて他の操作を実行できないため、これは機能しません。


conkyディストリビューションリポジトリにある必要があるため、インストールは簡単です。これを完了したら、ファイルを作成する必要があります~/.conkyrc。私はもう少し複雑です。以下は、.conkyrc最後の8行を素晴らしい形式で表示する最小限の作業です。dmesg

    double_buffer yes
     background yes
    update_interval 1
    total_run_times 0
    own_window yes
    own_window_type desktop
    own_window_transparent yes
    own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
    minimum_size 230 5
    maximum_width 230
    gap_x 1365
    gap_y 40

TEXT

${execpi 3 dmesg |tail -n8}

しかし、これは少し見苦しく見えるので、出力フォーマットを指定し、長い行を縮小し、同じメッセージで行をグループ化するためにインデントするスクリプトがあります。これを使用するには、以下のスクリプトを次のように保存して~/bin/conkyLogging実行可能にし、最後の行chmod a+x ~/bin/conkyLoggingを次のように変更します。

 ${execpi 3 dmesg |tail -n8 | /home/USERNAME/scripts/conkyLogging.pl} 

スクリプトは次のとおりです。

#!/usr/bin/env perl
my $lim=32;
my @a;
while(<>){/.*?\]\s*(.+)$/;
 push @a,$1;
}
my $k;
for($n=$#a;$n>=0; $n--){
    $_=$a[$n];
    @c=split(/[\s]+/);
    @b=split(//);
    my $k=0;
    my $kk=0;
    print "    ";
    for($i=0;$i<=$#b; $i++){
    $_=$b[$i];
    if (/^\s+$/){
        $k+=length($c[$kk+1]);
        $kk++ ;
    }
    if($k>$lim){
        s/([=,\-\s])/$1\n\t  /;
        $k=0;
    }
    print STDOUT;
    }
    print STDOUT "\n";
}

さまざまなconky変数と設定方法の詳細については、.conkyrc以下を参照してください。ここそしてここ

答え3

おそらく原因を画面にプッシュすることは、カーネルが情報を画面にダンプするように強制するという意味です。

まだ専門家ではありませんが、私が知っている方法はありません。カーネルパニックが発生すると、情報をコンソールにダンプしてからクラッシュします。これは、何も実行されないため、パニック後は何も実行できないことを意味します。

xtermではなく実際のttyを使用している場合は、メッセージが表示されると確信しています。しかし、そうでなければ幸運ではありません。「カーネルパニック」とは何ですか?これに関する情報があるようです。

答え4

パニックが複数回発生する場合の最善の方法は、他の(おそらく低電力)デバイスを接続し、シリアルケーブルを介してそのデバイスにログインすることです。ネットワークコンソール。 Netconsoleには、すでに実行されている他のデバイスを使用できるという確かな利点があります(必要に応じてホームルーターにログインすることもできます)。

関連情報