« 我が家の御柱様。 | トップページ | 初音ミクが届きました。 »

kernel 2.6.35.5をdebian (lenny)にコンパイルして導入。

目的:

VAIO Z (VPCZ12AGJ) にdebian (lenny)をインストールしようとしたところ、有線LANが認識せず。Googleをさまよった結論としてここはe1000eドライバをあてがう必要があり、これはkernel 2.6.31以降でサポートされ、lennyはkernel 2.6.26である、ということに。

kernel 2.6.31自体はdebianでコンパイル使用できる実績があるようなので、自力コンパイルに挑戦してみる。

選択したカーネルは2.6.35.5。http://www.kernel.org/で公開されていたstable最新版。これで問題が出るようなら、順次古いものに切り替えていく予定。

資料:

概ね前者。「公式の」やりかたとして後者を確認しつつ読んでいたけど、別にみょんなこと(失礼な…)はしていないみたいなので前者にそのまま従うことに。

  1. Yet Another Diary; Debian Lennyでのカーネルコンパイル
  2. Debian リファレンス; 9.7. カーネル

環境構築:

取り敢えず基本的なものと、資料に記載されているものを一通り。

fakerootってなんぞ?とか思ったけど、rootっぽいことができる環境を用意してくれるようね。しかし前者の資料に従った結果全部sudoしてしまったので、結局使わないのであった。どっとはらい。

  • g++
  • kernel-package
  • bzip2
  • build-essential (どーもこれにg++入っているっぽい…)
  • libncurses5-dev (つい出来心でmake menuconfigを起動してみたら要求された)
  • fakeroot

あとは国内法に則って粛々とコンパイルを進めまする。途中で釈放なんてしないモン!

コンパイル中の調整:

以下のエラーが発生。grep対象のinclude/linux/compile.hは存在せず、近いものはcompiler.h。しかしこの中には"LINUX_COMPILER”なる文字列は存在しない。

compiler.hに対してこのgrepを実行しても、出てくるのはヘッダファイルの読み込みチェックに使用する"#ifndef __LINUX_COMPILER_H"周辺なので、どうも目的にあっていない気がする。

uname -a >> debian/buildinfo
echo using the compiler: >> debian/buildinfo
grep LINUX_COMPILER include/linux/compile.h | \
           sed -e 's/.*LINUX_COMPILER "//' -e 's/"$//' >> debian/buildinfo
grep: include/linux/compile.h: そのようなファイルやディレクトリはありません
echo applied kernel patches: >> debian/buildinfo

資料1のほうを確認すると、同じエラーは出ていないものの、"compile.h"に関する記載が見つかる。include/generated/compile.hというものがあるらしい。こちらのファイルを確認したところ、LINUX_COMPLIERとしてコンパイラ名に関する文字列が定義されていたので、たぶんこっちが正解と判断。

ビルド環境下でgrep -R "compile.h" * として、修正対象を探す。debian/ruleset/targets/common.mkが該当するらしいので、これを修正。

make-kpkg cleanは省略して再度コンパイル。

ここは通った後、資料1にあった問題が発生したので記述どおりに対応、再々度コンパイルして完走。

あとは、出来上がったパッケージをインストール、再起動、e1000eドライバを使用するように設定したところ、無事ネットワークに接続しましたとさ。

次は無線LANとWiMAXだが…。なんかこいつらは既に認識しているっぽい気配なんだよな…。

|

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28934/49561563

この記事へのトラックバック一覧です: kernel 2.6.35.5をdebian (lenny)にコンパイルして導入。:

コメント

コメントを書く