トップ > 最小システムの構築 >
カーネルのビルド・インストール

  

新システム用にカーネルをビルド・インストールする

これまでの作業で、必要なソフトウェア群は揃い、また、システム設定ファイルやシステム起動ファイルなども揃いました。 ただし、まだカーネルがありません

ここでは、最小システムの構築作業の仕上げとしてカーネルをビルド・インストールします

チェンジルート

まずは、チェンジルート環境に入ります。


/root/chroot.sh

 

Linuxカーネルのビルド・インストール

カーネルのビルド・インストールを行います。

ビルド・インストール前リストの生成

最初に、ビルド・インストール前リストを生成します。


/sources/genprevlist.sh > /dev/null 2>&1

 

ソースファイルの展開

ソースファイルを展開します。


cd /sources
tar xvf linux-4.0.4.tar.xz
cd linux-4.0.4

 

ソースファイルのクリーニング

展開したソースファイルをクリーニングします。


make mrproper

 

make cleanと違って、カーネルコンフィグレーションファイルも削除されます。

カーネルコンフィグレーション

カーネルコンフィグレーションを行います。


make menuconfig

 

カーネルコンフィグレーション画面が開きます。

カーネルコンフィグレーション画面では、キーボードで全ての操作を行うことができます。 まず、カーソルキーの上下()で、次の項目・前の項目へ移動することができます。

カーソルキーの左右()では、画面の下部にあるメニュー項目の <Select>、<Exit>、<Help>、<Save>、<Load> を切り替えることができます。

  
キーボードのEnterキーを押すことで、選択中のメニュー項目を実行することができます。

なお、メニュー項目の<Select>は下位の項目へ移動するために使用し、<Exit>は上位の項目へ戻るために使用します。

キーボードのスペースキーが、各項目の設定値を変更するためのキーです。 オン / オフを設定する項目であれば、オン / オフが切り替わりますし、ビルトイン / モジュール / オフ を切り替える項目であれば、そのように切り替わります。

では、以下のように変更してください。

項目 設定内容
64-bit kernel
オフ [ ]
Device Drivers --->
↓
Generic Driver Options --->
↓
Support for uevent helper
オフ [ ]
Device Drivers --->
↓
Generic Driver Options --->
↓
Maintain a devtmpfs filesystem to mount at /dev
ビルトイン[*]
Device Drivers --->
↓
Block devices  --->
↓
Loopback device support
ビルトイン<*>
Device Drivers --->
↓
Network device support --->
↓
Ethernet driver support --->
↓
全ての< >の項目

※ 初期状態で ビルトイン<*> のものはそのままとする
※ キーボードのMを押すことで直接 <M> に切り替わる
モジュール<M>
File systems --->
↓
The Extended 4 (ext4) filesystem
ビルトイン<*>
File systems --->
↓
Use ext4 for ext2/ext3 file systems
ビルトイン[*]
File systems --->
↓
Ext4 POSIX Access Control Lists
ビルトイン[*]
File systems --->
↓
Ext4 Security Labels
ビルトイン[*]
File systems --->
↓
Overlay filesystem support
ビルトイン<*>
File systems --->
↓
Miscellaneous filesystems --->
↓
SquashFS 4.0 - Squashed file system support
ビルトイン<*>

変更を終えたらトップメニューまで戻り、メニュー項目の<Exit>を実行します。 『Do you wish to save your new configuration?』と聞かれますので、< Yes > を選択して変更内容を保存してください

ビルド

カーネルをビルドします。 それなりに時間がかかります


make

 

ビルドが終了したら、画面に出力された内容を参照し、正常に終了したことを確認します。 以下のように表示されていれば正常に終了しています。

...(省略)...
  LD [M]  net/netfilter/xt_mark.ko
  CC      net/netfilter/xt_nat.mod.o
  LD [M]  net/netfilter/xt_nat.ko
  IHEX    firmware/acenic/tg1.bin
  IHEX    firmware/acenic/tg2.bin
  IHEX    firmware/adaptec/starfire_rx.bin
  IHEX    firmware/adaptec/starfire_tx.bin
  IHEX    firmware/bnx2x/bnx2x-e1-6.2.9.0.fw
  IHEX    firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw
  IHEX    firmware/bnx2x/bnx2x-e2-6.2.9.0.fw
  IHEX    firmware/bnx2/bnx2-mips-09-6.2.1a.fw
  IHEX    firmware/bnx2/bnx2-rv2p-09-6.0.17.fw
  IHEX    firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw
  IHEX    firmware/bnx2/bnx2-mips-06-6.2.1.fw
  IHEX    firmware/bnx2/bnx2-rv2p-06-6.0.15.fw
  IHEX    firmware/sun/cassini.bin
  IHEX    firmware/cxgb3/t3b_psram-1.1.0.bin
  IHEX    firmware/cxgb3/t3c_psram-1.1.0.bin
  IHEX    firmware/cxgb3/ael2005_opt_edc.bin
  IHEX    firmware/cxgb3/ael2005_twx_edc.bin
  IHEX    firmware/cxgb3/ael2020_twx_edc.bin
  IHEX    firmware/cis/LA-PCM.cis
  IHEX    firmware/cis/PCMLM28.cis
  IHEX    firmware/cis/DP83903.cis
  IHEX    firmware/cis/NE2K.cis
  IHEX    firmware/cis/tamarack.cis
  IHEX    firmware/cis/PE-200.cis
  IHEX    firmware/cis/PE520.cis
  IHEX    firmware/cis/3CXEM556.cis
  IHEX    firmware/cis/3CCFEM556.cis
  IHEX    firmware/ositech/Xilinx7OD.bin
  IHEX    firmware/tehuti/bdx.bin
  IHEX    firmware/3com/typhoon.bin
MYLINUX@root:/sources/linux-4.0.4#

カーネルモジュールのインストール

カーネルモジュールをインストールします。 カーネルモジュールは、カーネルによって必要な時にロードされ、不要になったらアンロードされるローダブルモジュールです


make modules_install

 
  
カーネルコンフィグレーションで モジュール<M> と設定したものがモジュール化されます。

カーネルイメージのインストール

カーネルイメージ、つまりカーネル本体をインストールします


cp -va arch/x86/boot/bzImage /boot/vmlinuz-4.0.4

 
  
bzImageというファイル名は、圧縮されたカーネルイメージであることを意味しています。
  
bzImageは、zlib、BZIP2、LZMAなどのフォーマットで圧縮されます。 なお、名前に"bz"が含まれますが、"big zImage"の略でありBzip2とは関係ありません。

システムマップのインストール

システムマップをインストールします。 システムマップは、カーネルイメージのシンボルとアドレスの対応が記録されているファイルです


cp -va System.map /boot/System.map-4.0.4

 
  
top コマンド、ps コマンドなどがカーネルのシンボル情報を必要とします。

カーネルコンフィグレーションファイルの保存

カーネルコンフィグレーションファイルを保存します。 カーネルイメージがどのような設定でビルドされたのかを記録することが目的です


cp -va .config /boot/config-4.0.4

 
  
このファイルを /boot にコピーしなくても動作には影響ありません。 /boot にインストールしたカーネルイメージが、どのようなカーネルコンフィグレーションでビルドされたのかを記録するためだけにコピーしています。

モジュールのロード順の調整

モジュールのロード順を調整します。 USBドライバをモジュール化した場合に必要となる作業です


mkdir -vp /etc/modprobe.d
cat > /etc/modprobe.d/usb.conf << "EOF"
install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
EOF

 

ソースファイル付属文書のインストール

ソースファイルに付属している文書のインストールを行います。


mkdir -vp /usr/share/doc/linux-4.0.4
cp -va Documentation/* /usr/share/doc/linux-4.0.4

 
  
3000 を越えるファイルがあります

後始末

ビルド用ディレクトリを抜けます。


cd ..

 
  
ソースファイルは削除しません。 カーネルの再構築が必要になった時のためです。

インストールリストの生成

最後に、インストールリストを生成します。


/sources/genpostlist.sh > /dev/null 2>&1
/sources/gendifflist.sh kernel

 
  

後始末

チェンジルートを終了し、不要ファイルを削除します。

チェンジルートの終了

チェンジルートから抜けます。


exit

 

不要ファイルの削除

続いて、不要ファイルを削除します。


cd $MYLINUX/tmp
rm -fr * .[a-zA-Z0-9]*
cd $MYLINUX/var/log
mv btmp    $MYLINUX/tmp/
mv wtmp    $MYLINUX/tmp/
mv lastlog $MYLINUX/tmp/
rm -fr * .[a-zA-Z0-9]*
mv $MYLINUX/tmp/btmp    .
mv $MYLINUX/tmp/wtmp    .
mv $MYLINUX/tmp/lastlog .

 
  
$MYLINUX/tmp以下の全てのファイル、および、$MYLINUX/var/log以下の btmp, wtmp, lastlog 以外のファイルを削除しています。
  

バックアップ

1CD Linux用のパーティションをバックアップしておきます。


cd $MYLINUX
tar cvfj ./backups/mylinux.backup-09.tar.bz2 . --exclude=backups --exclude=sources --exclude=lost+found

 

カーネルのビルド・インストール後のバックアップです。

メニュー