next up previous
次へ: 実験課題2 上へ: モジュールの作成と実行(ロード・アンロード) 戻る: カーネルモジュールのロードとアンロード

実験課題1

「LINUXデバイスドライバ 第3版」の「4.2.1 printk」(P.76)を読むこと。

hello.cにおけるprintkのログレベルをKERN_EMERGから KERN_DEBUGまで順番に変えてコンパイルし、モジュールのロードとアン ロードによってメッセージが表示されるかどうかを確かめなさい。

KERN_EMERGからKERN_DEBUGまでの文字は<0>から <7>までの数字に対応しており、数字が小さいほど深刻度(重要度)が高い。


\begin{boxedminipage}{11cm}
\begin{verbatim}printk(KERN_EMERG ''Hello, world\n'');\end{verbatim}
\end{boxedminipage}

は、


\begin{boxedminipage}{11cm}
\begin{verbatim}printk(''<0> Hello, world\n'');\end{verbatim}
\end{boxedminipage}

のようにマクロ展開され、重要度が一番高い。


\begin{boxedminipage}{11cm}
\begin{verbatim}printk(KERN_DEBUG ''Hello, world\n'');\end{verbatim}
\end{boxedminipage}

は、


\begin{boxedminipage}{11cm}
\begin{verbatim}printk(''<7> Hello, world\n'');\end{verbatim}
\end{boxedminipage}

のようにマクロ展開され、重要度が一番低い。

重要度が低いばあいは、メッセージがコンソールに表示されない。 このような場合は、/var/log/messages/ファイルを参照すればよい。

次の4種類の参照方法を試すこと。


\begin{boxedminipage}{9cm}
\begin{verbatim}(1)  ...

この4つのコマンド(cat more less tail)は、よく使われるので覚えて おくこと。

dmesgコマンドを使う方法もある。

次の2つの方法で試すこと。


\begin{boxedminipage}{7cm}
\begin{verbatim}(1)  ...



MANOME Yoichi 平成19年1月6日