【Ubuntu 9.10】カーネル再構築 2.6.31 [ubuntu]
※ブログの都合上、コマンドに勝手に折り返しがついている部分があります。
※注意してください。
Ubuntu 9.10でカーネル再構築をしてみました。
コンパイルしたカーネルソースは、
linux-source-2.6.31
元のOSは、
vmlinuz-2.6.31-16-generic
です。
PCの構成は下記のとおり、
------
元のディストリビューション:Ubuntu 9.10 日本語Rimix(32bit)
CPU:Intel Core 2 Duo E8600
Motherboard:P5Q
Graphicboard:ATI Radeon HD 4870
-----
基本的に、
http://d.hatena.ne.jp/adsaria/20081104/1225766991
のページを参考にしました。感謝m(_ _)m
ここでは、rootになったようにかいてありますが、
私は全てsudoを使ってやりました。
1)環境設定
root@ubuntu:~# apt-get install build-essential
root@ubuntu:~# apt-get install kernel-package
ところが・・
libncurses-dev ncurses-dev libqt3-dev
の3つのパッケージが見つからない・・
適当にlibncurses5関連、ncurses-base、libqt3,libqt4関連を入れてしまった・・
そしたら、特にmake menuconfig やmake xconfigが動いてしまった・・
ちゃんと必要なパッケージだけインストールすればよかった。
2)ソースを持ってくる。
下記のコマンドで検索して、
root@ubuntu:~# apt-cache search linux-source
下記のコマンドで持ってくる。
root@ubuntu:~# apt-get install linux-source-2.6.31
そうすると/etc/srcに下記のファイルがダウンロードされます。
linux-source-2.6.31.tar.bz2
4)ソース展開&.configコピー&oldconfig
ソースの展開は、
root@ubuntu:-# cd /usr/src
root@ubuntu:/usr/src# tar xf linux-source-2.6.31.tar.bz2
次に、.configのコピー
root@ubuntu:/usr/src# cd linux-source-2.6.31
root@ubuntu:/usr/src/linux-source-2.6.31# cp /boot/config-2.6.31-16-generic .config
そして現在のconfigを反映させるために、
root@ubuntu:/usr/src/linux-source-2.6.31# make oldconfig
5)カーネルの設定&コンパイル設定
カーネル設定メニューを起動
root@ubuntu:/usr/src/linux-source-2.6.31# make menuconfig
または、(GUIでやりたければ)
root@ubuntu:/usr/src/linux-source-2.6.31# make xconfig
それで、設定をするのですが・・項目多すぎ・・
そしたら、下記のページを見つけて参考にしながら設定。
http://en.gentoo-wiki.com/wiki/Asus_P5Q-E
もちろん、processor type は Core 2にしました。
それと作成されたカーネルのsuffixを変えるためにMakeFileをいじります。
下記の行が多分 .3とかになっているので、
EXTRAVERSION = -16-custom01
などと直しました。
6)コンパイル
下記のコマンドでコンパイル。
root@ubuntu:/usr/src/linux-source-2.6.31# fakeroot make-kpkg --initrd --revision=100105 kernel_image kernel_headers
ネットで調べるとfakerootを使ってるのと使ってないのがありました。
絶対必要なのかはよくわかりません。
revisionは私は安直に日付にしてます。
1時間弱待って、
root@ubuntu:/usr/src# ls
fglrx-8.681
linux-headers-2.6.31-16-custom01_100105_i386.deb
linux-image-2.6.31-16-custom01_100105_i386.deb
linux-source-2.6.31
linux-source-2.6.31.tar.bz2
と2つの.debファイルができます。
一番上にfglrx-8.681というディレクトリがあるのですが、
これはAITのディスプレイドライバのソースでディスプレイドライバがATIであるがゆえに困った問題が多発しました。
7)インストール
下記のコマンドでインストール。
root@ubuntu:/usr/src# dpkg -i linux-image-2.6.31-16-custom01_100105_i386.deb
しかし、普通にインストールしようとすると下記の場所でエラーになる。
run-parts: executing /etc/kernel/postinst.d/nvidia-common
そしたら、実際に/etc/kernel/postinst.dのディレクトリにnvidia-commonなるものが存在する。
私はATIユーザーなので消しました!!
その代わり、/etc/kernel/postinst.dのディレクトリにdkmsが存在してます。
ATIドライバのインストールと、カーネル再構築を同時にしていて気がついたのですが、どうやらdkmsが無いカーネル持ってくると、ATIドライバ入れ直しになるようです。
それでコマンドを入れると、
未選択パッケージ linux-image-2.6.31-16-custom01 を選択しています。
(データベースを読み込んでいます ... 現在 169640 個のファイルとディレクトリがインストールされています。)
(linux-image-2.6.31-16-custom01_100105_i386.deb から) linux-image-2.6.31-16-custom01 を展開しています...
Done.
linux-image-2.6.31-16-custom01 (100105) を設定しています ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Running postinst hook script update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found linux image: /boot/vmlinuz-2.6.31-16-custom01
Found initrd image: /boot/initrd.img-2.6.31-16-custom01
Found memtest86+ image: /boot/memtest86+.bin
Found Windows Vista (loader) on /dev/sda1
done
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms
VistaとのデュアルブートにしているのでGrubに見つけられちゃいました。
最後にdkmsを実行しているのが分かると思います。
続いてヘッダーのインストール。
root@ubuntu:/usr/src# dpkg -i linux-headers-2.6.31-16-custom01_100105_i386.deb
ところが。。
未選択パッケージ linux-headers-2.6.31-16-custom01 を選択しています。
(データベースを読み込んでいます ... 現在 172692 個のファイルとディレクトリがインストールされています。)
(linux-headers-2.6.31-16-custom01_100105_i386.deb から) linux-headers-2.6.31-16-custom01 を展開しています...
linux-headers-2.6.31-16-custom01 (100105) を設定しています ...
dpkg: 警告: obsolete option '--print-installation-architecture', please use '--print-architecture' instead.
と警告が出てしまった。
調べたところどうやら、ATIドライバが怪しそうなのですがよくわかりません。
とりあえず、インストールするPCもターゲットPCもおなじなのでいいか・・
※注意してください。
Ubuntu 9.10でカーネル再構築をしてみました。
コンパイルしたカーネルソースは、
linux-source-2.6.31
元のOSは、
vmlinuz-2.6.31-16-generic
です。
PCの構成は下記のとおり、
------
元のディストリビューション:Ubuntu 9.10 日本語Rimix(32bit)
CPU:Intel Core 2 Duo E8600
Motherboard:P5Q
Graphicboard:ATI Radeon HD 4870
-----
基本的に、
http://d.hatena.ne.jp/adsaria/20081104/1225766991
のページを参考にしました。感謝m(_ _)m
ここでは、rootになったようにかいてありますが、
私は全てsudoを使ってやりました。
1)環境設定
root@ubuntu:~# apt-get install build-essential
root@ubuntu:~# apt-get install kernel-package
ところが・・
libncurses-dev ncurses-dev libqt3-dev
の3つのパッケージが見つからない・・
適当にlibncurses5関連、ncurses-base、libqt3,libqt4関連を入れてしまった・・
そしたら、特にmake menuconfig やmake xconfigが動いてしまった・・
ちゃんと必要なパッケージだけインストールすればよかった。
2)ソースを持ってくる。
下記のコマンドで検索して、
root@ubuntu:~# apt-cache search linux-source
下記のコマンドで持ってくる。
root@ubuntu:~# apt-get install linux-source-2.6.31
そうすると/etc/srcに下記のファイルがダウンロードされます。
linux-source-2.6.31.tar.bz2
4)ソース展開&.configコピー&oldconfig
ソースの展開は、
root@ubuntu:-# cd /usr/src
root@ubuntu:/usr/src# tar xf linux-source-2.6.31.tar.bz2
次に、.configのコピー
root@ubuntu:/usr/src# cd linux-source-2.6.31
root@ubuntu:/usr/src/linux-source-2.6.31# cp /boot/config-2.6.31-16-generic .config
そして現在のconfigを反映させるために、
root@ubuntu:/usr/src/linux-source-2.6.31# make oldconfig
5)カーネルの設定&コンパイル設定
カーネル設定メニューを起動
root@ubuntu:/usr/src/linux-source-2.6.31# make menuconfig
または、(GUIでやりたければ)
root@ubuntu:/usr/src/linux-source-2.6.31# make xconfig
それで、設定をするのですが・・項目多すぎ・・
そしたら、下記のページを見つけて参考にしながら設定。
http://en.gentoo-wiki.com/wiki/Asus_P5Q-E
もちろん、processor type は Core 2にしました。
それと作成されたカーネルのsuffixを変えるためにMakeFileをいじります。
下記の行が多分 .3とかになっているので、
EXTRAVERSION = -16-custom01
などと直しました。
6)コンパイル
下記のコマンドでコンパイル。
root@ubuntu:/usr/src/linux-source-2.6.31# fakeroot make-kpkg --initrd --revision=100105 kernel_image kernel_headers
ネットで調べるとfakerootを使ってるのと使ってないのがありました。
絶対必要なのかはよくわかりません。
revisionは私は安直に日付にしてます。
1時間弱待って、
root@ubuntu:/usr/src# ls
fglrx-8.681
linux-headers-2.6.31-16-custom01_100105_i386.deb
linux-image-2.6.31-16-custom01_100105_i386.deb
linux-source-2.6.31
linux-source-2.6.31.tar.bz2
と2つの.debファイルができます。
一番上にfglrx-8.681というディレクトリがあるのですが、
これはAITのディスプレイドライバのソースでディスプレイドライバがATIであるがゆえに困った問題が多発しました。
7)インストール
下記のコマンドでインストール。
root@ubuntu:/usr/src# dpkg -i linux-image-2.6.31-16-custom01_100105_i386.deb
しかし、普通にインストールしようとすると下記の場所でエラーになる。
run-parts: executing /etc/kernel/postinst.d/nvidia-common
そしたら、実際に/etc/kernel/postinst.dのディレクトリにnvidia-commonなるものが存在する。
私はATIユーザーなので消しました!!
その代わり、/etc/kernel/postinst.dのディレクトリにdkmsが存在してます。
ATIドライバのインストールと、カーネル再構築を同時にしていて気がついたのですが、どうやらdkmsが無いカーネル持ってくると、ATIドライバ入れ直しになるようです。
それでコマンドを入れると、
未選択パッケージ linux-image-2.6.31-16-custom01 を選択しています。
(データベースを読み込んでいます ... 現在 169640 個のファイルとディレクトリがインストールされています。)
(linux-image-2.6.31-16-custom01_100105_i386.deb から) linux-image-2.6.31-16-custom01 を展開しています...
Done.
linux-image-2.6.31-16-custom01 (100105) を設定しています ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Running postinst hook script update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.31-16-generic
Found initrd image: /boot/initrd.img-2.6.31-16-generic
Found linux image: /boot/vmlinuz-2.6.31-16-custom01
Found initrd image: /boot/initrd.img-2.6.31-16-custom01
Found memtest86+ image: /boot/memtest86+.bin
Found Windows Vista (loader) on /dev/sda1
done
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/dkms
VistaとのデュアルブートにしているのでGrubに見つけられちゃいました。
最後にdkmsを実行しているのが分かると思います。
続いてヘッダーのインストール。
root@ubuntu:/usr/src# dpkg -i linux-headers-2.6.31-16-custom01_100105_i386.deb
ところが。。
未選択パッケージ linux-headers-2.6.31-16-custom01 を選択しています。
(データベースを読み込んでいます ... 現在 172692 個のファイルとディレクトリがインストールされています。)
(linux-headers-2.6.31-16-custom01_100105_i386.deb から) linux-headers-2.6.31-16-custom01 を展開しています...
linux-headers-2.6.31-16-custom01 (100105) を設定しています ...
dpkg: 警告: obsolete option '--print-installation-architecture', please use '--print-architecture' instead.
と警告が出てしまった。
調べたところどうやら、ATIドライバが怪しそうなのですがよくわかりません。
とりあえず、インストールするPCもターゲットPCもおなじなのでいいか・・
コメント 0