Ubuntu11.10 Kernelにpatchを当てコンパイルする方法

シンプルにUbuntu11.10 カーネルにpatchを当てコンパイルする。

ここに記するカーネルコンパイルはPatchをあてるだけを目的にシンプルに書いたものである。詳細はhttps://help.ubuntu.com/community/Kernel/Compileを参照のこと。今回はSSD対応にするpatchを当てる例で書いている(これはMacBook+SSDにUbunutをインストールしたときを例にしているだけで、コンパイル手順はPCでも全く同じ、念の為)

ソースとコンパイルに必要なパッケージをインストール
sudo -sでrootへ(これ以後、操作に注意)
apt-get install linux-source kernel-package
フォルダを作成し、ソースを展開
mkdir ~/src
cd ~/src
tar xjvf /usr/src/linux-source-<version-number-here>.tar.bz2
cd linux-source-<version-number-here>
現在のubuntuの設定を使う
cp /boot/config-<your current kernel config> ./.config
設定を反映
make oldconfig
patchを反映
cat ~/Download/<patch> | patch -p1
コンパイルし、debianのパッケージを作成(環境にもよるが2時間ぐらいの処理)
make-kpkg --initrd --append-to-version c1 kernel_image
<deb file>が../.に生成される。


インストール
dpkg -i <deb file>

ボクの環境(ubuntu 11.10 macbookpro 6,1)では...
<linux-src>はlinux-source-3.0.0
<your current kernel config>は3.0.0-14-generic
<version-number-here>は3.0.0
<deb file>はlinux-image-3.0.9c1_3.0.9c1-10.00.Custom_amd64.deb
<patch>はssd対応の場合リンク先から取得
  i5s_3400s_ahci_handling_for_incapable_efi.patch 



再起動後、プロプライエタリなドライバーが外れてしまうが、再インストールすれば戻る。
今回の場合はこれでresume後でもAHCIが設定され。SSDが高速に安定して使えた。
尚、SSD対応のためAHCIにする方法は「1つ前の記事を参考


エラーが以下のように表示された場合
ERROR: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] undefined!
sudo -sを忘れたか、make oldconfigを実行忘れた可能性がある。もう一度、じっくりやる。

コメント

このブログの人気の投稿

日本でコンピュータサイエンスを学ぶ難しさ

How to preview nif file on the ubuntu.