xconfigとgconfigを使ってみました
GUIベースのカーネル設定ツール(ようは.configに書いてあるカーネルコンポーネントのn/m/yを切り替えるGUIフロントエンド)を使ってみたのでそのことについてのメモです。
この記事を9割くらい書き終わった段階でid:meechさんの記事*1を見つけてしまいました。二番煎じですが、気にせず書きます。いいですよね。ソフトウェアのバージョンもあがってますし。
今まではカーネルビルドの際は.configファイルを直接手で編集してました。しかし、その方法だと複数の自作ドライバを組み込んだカーネルをデバッグする際に結構記述(漏れ|ミス)が発生します。
ということでGUIベースの設定ツールを探すとxconfigとgconfigという2つのツールがあることが分かりました。さっそくセットアップして使ってみます。makeはカーネルツリーのトップで実行します。
環境:Linux debian 3.0.0-1-amd64 [debian wheezy]
まずxconfigの方はGUIライブラリがQTなので開発用ライブラリをインストールします。qt4だと今回の環境ではダメでした。
#apt-get install qt3-dev
$make xconfig
xconfigの方は3つのペインでできていて、左側のペインからドライバを探して選択すると右上のペインに展開した結果が表示されます。その中から項目を選択すると右下のペインに詳細が表示されます。
項目の横にはチェックボックスがあり、クリックするごとに変わります。「 」がn、「●」がm、「レ点」がyを意味しています。
必要なだけ変更したらEdit->Saveをクリックすれば変更が反映されたconfigファイルが出力されます。
次はgconfigです。こちらはgtkベースでさらにフレームワークでgladeを使ってあるので必要なパッケージをインストールします。gconfigの方がインストールするパッケージは多いです。すでにインストール済みの方は別ですが・・・
#apt-get install gtk+-2.0 glib-2.0 libglade2-dev
$make gconfig
gconfigは2つのペインからできており、上側のペインで項目を選択すると下側のペインに詳細が表示されます。
xconfig同様、項目の左側にチェックボックスがあり、n/m/yを切り替えることができます。チェックボックスをダブルクリックするか、Valueの値をシングルクリックることで切り替えることができます。「 」がn、「ー」がm、「レ点」がyを意味しています。
こちらも必要なだけ変更したらFile->Saveでconfigファイルを出力しておきましょう。
ちなみにxconfigもgconfigも項目名はKconfigのtristateから、詳細はhelpから読み取っているようです。例えば上のIntelのGM500ドライバの例でいくと以下のKconfigから詳細情報を読み取ることになります。
drivers/gpu/stub/Kconfig
config STUB_POULSBO tristate "Intel GMA500 Stub Driver" depends on PCI depends on NET # for THERMAL # Poulsbo stub depends on ACPI_VIDEO when ACPI is enabled # but for select to work, need to select ACPI_VIDEO's dependencies, ick select BACKLIGHT_CLASS_DEVICE if ACPI select VIDEO_OUTPUT_CONTROL if ACPI select INPUT if ACPI select ACPI_VIDEO if ACPI select THERMAL if ACPI help Choose this option if you have a system that has Intel GMA500 (Poulsbo) integrated graphics. If M is selected, the module will be called Poulsbo. This driver is a stub driver for Poulsbo that will call poulsbo.ko to enable the acpi backlight control sysfs entry file because there have no poulsbo native driver can support intel opregion.
※まとめ
「GUIの完成度の高さ、操作が直感的にできるかどうか」としてはgconfigの方が上かなあと思いました。
#僕がGNOMEユーザだということもあるかもしれませんが
ただ、xconfigがEdit->Findでキーワード検索ができる点は機能的に勝っているかなと思います。
*1:「make *config 〜カーネルいじっちゃお!〜Add Star」http://d.hatena.ne.jp/meech/20101212/1292165676