Link

  • 子ども用PCのテーマに♪

  • 美女Linux

Tweets

無料ブログはココログ

« 子ども用Live USBを作ってみよう(改訂第2版) | トップページ | Ubuntu 13.10の最小(CUI)インストールメモ »

2013年6月26日 (水)

Ubuntu 12.04でのカスタムカーネルの作り方

Image17

今日は、こちらの投稿ではしょってしまったカーネルの再構築のやり方に関して書きたいと思います。
子ども用Live USBに仕込むカーネルは、パソコンの内蔵HDDへのアクセスができないように、NTFS, ext3, ext4などの一般的なファイルシステムのドライバーを削除しておくべきなのですが、Ubuntu 12.04のカーネルはNTFSはモジュールはともかく、他のファイルシステムは抱え込んでしまっています。
仕方がないので、カーネルを再構築して、ドライバーの削除を行うことにしましょう。


Image1

今回のカーネルの再構築のスクショはmini.isoからVirtualBoxの仮想マシンにインストールしたUbuntu 12.04を使って行っています。諸事情があってDesktop版を使うのが面倒になっただけですので、これを真似する必要はありません。
Desktop版でターミナル(端末)を開いた状態と考えてください。


Image2

とりあえずは、ソフトウェアを最新にするために、パッケージリストを更新します。

$ sudo apt-get -y update

Image3

パスワードを聞かれるので入力します。


Image4

リストの更新が終わりました。


Image5

ここから先は、管理者権限が必要な作業ばかりなので、管理者権限を取っておきます。
最初にやっておくのを忘れました…
ついでに(スクショをとるのを忘れたのですが)、ソフトウェアのアップデートをしておきましょう。

$ sudo -s
# apt-get upgrade

Image8

カーネルの再構築に必要なソフトウェアのインストールを行います。

# apt-get -y install libncurses-dev build-essential kernel-package linux-source

これぐらい指定しておくと、依存関係により、いろいろ勝手にインストールしてくれます(たぶん)。


Image9

インストールが終わりました。


Image10

/usr/srcにlinux-source-3.2.0.tar.bz2というファイルがあるので確認しましょう。これがカーネルのソースを一まとめにして圧縮したファイルです。

# cd /usr/src
# ls

Image11

カーネルのソースを展開します

# tar xvjf linux-source-3.2.0.tar.bz2

Image12

数多くのファイルが出てきます。


Image13

いま使用しているカーネルのコンフィグレーションを、カーネルの再構築時に使用される.configというファイルにコピーします。この時に使用していたカーネルは3.2.0-48-generic-paeのようですが、ご自身が使用しているPC合わせたファイルを使用してください。
unameというコマンドで確認できます。

# cd linux-source-3.2.0
# cp /boot/config-3.2.0-48-generic-pae .config

Image14

今コピーしたファイルは、古いカーネルのコンフィグレーションだったりするので、それを今回再構築するために必要なファイルに変換する作業っぽいです。

# make oldconfig

Image15

処理が終わったようです。


Image16

次にカーネルのコンフィグレーションの変更を行います。
次の方法でメニュー形式でのカスタマイズが可能です。

# make menuconfig

Image17

このような画面が表示されます。


Image18

とりあえず、カーソルキーで"General Setup"を選んで<ENTER>を押します。


Image19

カーソルキーで"Local version"を選択して<ENTER>を押します。


Image20

この"Local version"は必ず指定しなくてはならないそうです。
ここでは"-kodomo"としました。


Image21

<ENTER>を押して前の画面に戻ります。


Image22

<TAB>を押すと、カーソルキーで"Exit"が選べるようになるので、<ENTER>で前の画面に戻ります。


Image23

カーソルキーで"File systems"を選んで、<ENTER>を押します。


Image24

カーソルキーで"Second extended fs support"に合わせます。そこで<SPACE>キーを"*"マークになるまで押します。"*"になると、カーネル内にビルトインされることを意味します。

またカーソルキーで、"Ext3 journalling file system support"を選択して、" "(空欄)になるまで<SPACE>を押します。これで、このカーネルはExt3ファイルシステムに対して非サポートになります。
続いて"The Extended 4 (ext4) filesystem"も空欄に、後はお好みで不要なファイルシステムを非サポートにします。

00_20130225_000040

私は、Ubuntuのインストール時に選択できるファイルシステムを参考にして、ext4, ext3, ReiserFS, btrfs, JFS, XFSを非サポートにしました。


Image26

このような感じです。


Image27

カーソルキーで下のほうにスクロールさせていくと、"DOS/FAT/NT Filesystems"という項目がありますので、そこにカーソルを合わせて<ENTER>を押します。


Image28

ここで"NTFS file system support"を外します(重要)
"Exit"を選んで、前の画面に戻りましょう。


Image29

他にもいろいろな滅多に使わないモジュールやビルトインの項目があるのですが、ここを気にしすぎるとドツボにはまると思うので、やり過ごします。
例えば、モジュールをたくさん外せば起動時間や省メモリーに効いてくるようですし、PAE非対応のCPUでも動作するカーネルを作る事も可能です。
私はふと目に付いた"Virtualization"だけ外しておきました。

ここで、"Exit"を選択して<ENTER>を押します。


Image30

セーブするかどうか聞いてきますので、"Yes"を選択して<ENTER>を押します。


Image31

メニューが終わってコマンド入力待ちの状態になります。


Image32

最初なので不要とは思いますが、先人の知恵?参考にさせて頂いたサイトで実施しているので、cleanしておきます。

# make-kpkg clean

Image33

処理が終わりました。


Image35

いよいよカーネルのビルドです。もはやここまでくると単なるチャーム…
とりあえず、"--revision="の後には、自分が区別出来るような任意の文字列を指定します。私は日付を使うことにしました。

# CONCURRENCY_LEVEL=4 make-kpkg --rootcmd fakeroot --initrd --revision=20130619 kernel_image kernel_headers

Image37

さんざん待たされてカーネルの再構築が終了します。C2D 1.2GHz のノートPCで動く、メモリー512MBの仮想マシンで実行したら、ひどい目にあいました。
ともかく、ここにあるlinux-*debのファイルがカーネルのイメージとヘッダーです。
確認しましょう。

# ls

いかがでしたでしょうか?
子ども用カーネルの一丁あがり!です。
蛇足ですが、ext3, ext4などの主要なファイルシステムを非対応にしたカーネルですから、ご自身のPCには絶対にインストールしないでください。十中八九起動しなくなります。
それでは、元のエントリーに戻って、Live USBの作成を続けましょう♪

« 子ども用Live USBを作ってみよう(改訂第2版) | トップページ | Ubuntu 13.10の最小(CUI)インストールメモ »

パソコン・インターネット」カテゴリの記事

子ども用パソコン know-how」カテゴリの記事

Ubuntu」カテゴリの記事

Live USB」カテゴリの記事

コメント

これで上手く出来て居るか分かりませんが、Ubuntu14.04(linux-source-3.13.0)だと
CONCURRENCY_LEVEL=4 make-kpkg --initrd --revision=20130619 kernel_image kernel_headers
としないと失敗しますね。

HamaJyunさん、こんにちわ。
"--rootcmd fakeroot" が不要だったという事ですね?
この辺は参考にさせて頂いたHPからのパクリなので、私も詳しい意味がわかっていないです。
ただ、14.04になってから何度か、私も同じやり方でカーネルを作ってますので、全ての皆さんが上手くいかない訳ではないと思います。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Ubuntu 12.04でのカスタムカーネルの作り方:

« 子ども用Live USBを作ってみよう(改訂第2版) | トップページ | Ubuntu 13.10の最小(CUI)インストールメモ »