shimada-kの日記

ソフトウェア・エンジニアのブログです

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

f:id:shimada-k:20120105023506p:image:w480

xconfigの方は3つのペインでできていて、左側のペインからドライバを探して選択すると右上のペインに展開した結果が表示されます。その中から項目を選択すると右下のペインに詳細が表示されます。

項目の横にはチェックボックスがあり、クリックするごとに変わります。「 」がn、「●」がm、「レ点」がyを意味しています。

f:id:shimada-k:20120105032557p:image:w360

必要なだけ変更したらEdit->Saveをクリックすれば変更が反映されたconfigファイルが出力されます。

次はgconfigです。こちらはgtkベースでさらにフレームワークでgladeを使ってあるので必要なパッケージをインストールします。gconfigの方がインストールするパッケージは多いです。すでにインストール済みの方は別ですが・・・

#apt-get install gtk+-2.0 glib-2.0 libglade2-dev
$make gconfig

f:id:shimada-k:20120105023507p:image:w480

gconfigは2つのペインからできており、上側のペインで項目を選択すると下側のペインに詳細が表示されます。

xconfig同様、項目の左側にチェックボックスがあり、n/m/yを切り替えることができます。チェックボックスをダブルクリックするか、Valueの値をシングルクリックることで切り替えることができます。「 」がn、「ー」がm、「レ点」がyを意味しています。

f:id:shimada-k:20120105034942p:image

こちらも必要なだけ変更したら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