玄箱HGメモ / Debian / カーネルコンパイル


Last update: 2009-05-14 (木) 15:43:24
実施: 2009/02/13-14

玄箱HGメモ/Debian/カーネルコンパイル

緑文字が入力コマンド。


Debian カーネルコンパイル

カーネルソースに対するパッチファイルが2.6.25.1用が存在しないため、2.6.25を使用します。
カーネル更新2.6.25.1を採用した場合は、2.6.25に下げてください。
その際、カーネルモジュール更新のdepmod -a前に下記のコマンドで2.6.25.1のモジュールを削除する必要があります。
KAGUYA:/lib/modules# rm -rf 2.6.25.1-kuroboxHG[ENTER]

コンパイルに必要なモジュールの導入

各モジュール導入画面(例)

less導入

KAGUYA:~# aptitude install less[ENTER]

patch導入

KAGUYA:~# aptitude install patch[ENTER]

gcc導入

KAGUYA:~# aptitude install gcc[ENTER]


ncurses-dev導入

KAGUYA:~# aptitude install ncurses-dev[ENTER]

bzip2導入

KAGUYA:~# aptitude install bzip2[ENTER]

ソースの準備

ソースの取得と展開

以下の例では/usr/srcに作業するものとして書いています。
wgetでの取得は、取得済みのファイルをSCP/FTPで送信しても問題ありません。

KAGUYA:~# cd /usr/src[ENTER]

wgetコマンドで圧縮されたカーネルプログラムをダウンロードします。

KAGUYA:/usr/src# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2[ENTER]

linux-2.6.25.tar.bz2ダウンロード実行画面(例)

--00:51:26--  http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2
           => `linux-2.6.25.tar.bz2.1'
Resolving www.kernel.org... 199.6.1.164, 130.239.17.4, 149.20.20.133, ...
Connecting to www.kernel.org|199.6.1.164|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 48,601,689 (46M) [application/x-bzip2]

100%[==============================================>] 48,601,689   702.56K/s    ETA 00:00

00:52:40 (658.79 KB/s) - `linux-2.6.25.tar.bz2.1' saved [48601689/48601689]

ダウンロードしたカーネルイメージを展開する。

KAGUYA:/usr/src# tar -jxpvf linux-2.6.25.tar.bz2[ENTER]

linux-2.6.25.tar.bz2展開画面(例)

linux-2.6.25/
linux-2.6.25/.gitignore
linux-2.6.25/.mailmap
linux-2.6.25/COPYING

  :  (省略)

linux-2.6.25/virt/kvm/ioapic.c
linux-2.6.25/virt/kvm/ioapic.h
linux-2.6.25/virt/kvm/iodev.h
linux-2.6.25/virt/kvm/kvm_main.c

ソースのパッチの取得と適用

ソースに玄箱/HG用の修正パッチを適用します。
wgetコマンドでパッチをダウンロードします。&color(red){(2.6.25は2種類)}

KAGUYA:/usr/src# wget http://www.genbako.com/kurobox-sources-2.6.25.patch[ENTER]

kurobox-sources-2.6.25.patchダウンロード実行画面(例)

--00:53:23--  http://www.genbako.com/kurobox-sources-2.6.25.patch
           => `kurobox-sources-2.6.25.patch.1'
Resolving www.genbako.com... 219.198.218.24
Connecting to www.genbako.com|219.198.218.24|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 101,014 (99K) [text/x-diff]

100%[==============================================>] 101,014       19.87K/s    ETA 00:00

00:53:29 (19.84 KB/s) - `kurobox-sources-2.6.25.patch.1' saved [101014/101014]

KAGUYA:/usr/src# wget http://www.genbako.com/kurobox-section-mismatch2625.patch[ENTER]

kurobox-section-mismatch2625.patchダウンロード実行画面(例)

--00:54:47--  http://www.genbako.com/kurobox-section-mismatch2625.patch
           => `kurobox-section-mismatch2625.patch.1'
Resolving www.genbako.com... 219.198.218.24
Connecting to www.genbako.com|219.198.218.24|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3,297 (3.2K) [text/x-diff]

100%[==============================================>] 3,297         --.--K/s

00:54:48 (34.01 KB/s) - `kurobox-section-mismatch2625.patch.1' saved [3297/3297]

先ほどダウンロード展開したカーネルのディレクトリへ移動します。

KAGUYA:/usr/src# cd linux-2.6.25[ENTER]

ダウンロードしてたパッチ2つを当てます。

KAGUYA:/usr/src/linux-2.6.25# patch -Np1 < ../kurobox-sources-2.6.25.patch[ENTER]

patching file arch/ppc/Kconfig
patching file arch/ppc/platforms/Makefile
patching file arch/ppc/platforms/linkstation.c
patching file arch/ppc/platforms/linkstation.h
patching file arch/ppc/syslib/Makefile
patching file arch/ppc/syslib/mpc10x_common.c
patching file config_kurobox
patching file config_kuroboxhg
patching file drivers/char/Kconfig
patching file drivers/char/Makefile
patching file drivers/char/rs5c372-rtc.c
patching file drivers/ide/pci/siimage.c
patching file drivers/net/r8169.c
patching file drivers/net/tulip/tulip.h
patching file include/asm-ppc/serial.h
patching file include/linux/i2c-id.h

KAGUYA:/usr/src/linux-2.6.25# patch -Np1 < ../kurobox-section-mismatch2625.patch[ENTER]

patching file arch/ppc/kernel/pci.c
Hunk #1 succeeded at 709 with fuzz 2.
Hunk #2 succeeded at 770 with fuzz 2.
patching file arch/ppc/kernel/head.S
patching file arch/ppc/kernel/vmlinux.lds.S
patching file drivers/serial/8250_pci.c

コンパイルの実行

コンフィグファイルの生成

元となるコンフィグファイルを準備します。

玄箱ノーマルと玄箱/HGではコピー元のファイルが違います。
以下は玄箱/HGの場合です。

KAGUYA:/usr/src/linux-2.6.25# cp -p config_kuroboxhg .config[ENTER]

アーキテクチャを指定します。

KAGUYA:/usr/src/linux-2.6.25# export ARCH=ppc[ENTER]

カーネルの詳細設定を行います。

KAGUYA:/usr/src/linux-2.6.25# make menuconfig[ENTER]

iptablesを有効にする場合のmake menuconfigの例

KAGUYA:/usr/src/linux-2.6.25# make oldconfig[ENTER]

make oldconfig実行画面(例)

カーネルのコンパイル

KAGUYA:/usr/src/linux-2.6.25# make vmlinux[ENTER]

make vmlinux画面(例)

scripts/kconfig/conf -s arch/ppc/Kconfig
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-ppc
  CC      arch/ppc/kernel/asm-offsets.s

  :  (省略)

  LD      .tmp_vmlinux2
  KSYM    .tmp_kallsyms2.S
  AS      .tmp_kallsyms2.o
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map

1時間以上かかります。

カーネルのインストール

KAGUYA:/usr/src/linux-2.6.25# objcopy -p -O binary vmlinux /boot/vmlinux.bin[ENTER]
KAGUYA:/usr/src/linux-2.6.25# cp -pf System.map /boot/[ENTER]

カーネルモジュールのコンパイル

KAGUYA:/usr/src/linux-2.6.25# make modules[ENTER]

make modules画面(例)

  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CC [M]  fs/binfmt_misc.o
  CC [M]  fs/cifs/cifsfs.o

  :  (省略)

  CC      net/netfilter/xt_state.mod.o
  LD [M]  net/netfilter/xt_state.ko
  CC      net/netfilter/xt_tcpudp.mod.o
  LD [M]  net/netfilter/xt_tcpudp.ko
  CC      net/sunrpc/sunrpc.mod.o
  LD [M]  net/sunrpc/sunrpc.ko

1時間以上かかります。


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

KAGUYA:/usr/src/linux-2.6.25# make ARCH=ppc modules_install[ENTER]

make modules_install画面(例)

  INSTALL drivers/scsi/scsi_wait_scan.ko
  INSTALL drivers/usb/class/usblp.ko
  INSTALL fs/binfmt_misc.ko
  INSTALL fs/cifs/cifs.ko
  INSTALL fs/exportfs/exportfs.ko
  INSTALL fs/fat/fat.ko
  INSTALL fs/isofs/isofs.ko
  INSTALL fs/lockd/lockd.ko
  INSTALL fs/msdos/msdos.ko
  INSTALL fs/nfs/nfs.ko
  INSTALL fs/nfsd/nfsd.ko
  INSTALL fs/ntfs/ntfs.ko
  INSTALL fs/smbfs/smbfs.ko
  INSTALL fs/udf/udf.ko
  INSTALL fs/vfat/vfat.ko
  INSTALL lib/crc-ccitt.ko
  INSTALL lib/zlib_inflate/zlib_inflate.ko
  INSTALL net/ipv4/netfilter/ip_tables.ko
  INSTALL net/ipv4/netfilter/ipt_LOG.ko
  INSTALL net/ipv4/netfilter/ipt_MASQUERADE.ko
  INSTALL net/ipv4/netfilter/ipt_REJECT.ko
  INSTALL net/ipv4/netfilter/ipt_ULOG.ko
  INSTALL net/ipv4/netfilter/iptable_filter.ko
  INSTALL net/ipv4/netfilter/iptable_mangle.ko
  INSTALL net/ipv4/netfilter/iptable_nat.ko
  INSTALL net/ipv4/netfilter/nf_conntrack_ipv4.ko
  INSTALL net/ipv4/netfilter/nf_nat.ko
  INSTALL net/ipv4/netfilter/nf_nat_ftp.ko
  INSTALL net/ipv4/netfilter/nf_nat_irc.ko
  INSTALL net/ipv4/netfilter/nf_nat_sip.ko
  INSTALL net/netfilter/nf_conntrack.ko
  INSTALL net/netfilter/nf_conntrack_ftp.ko
  INSTALL net/netfilter/nf_conntrack_irc.ko
  INSTALL net/netfilter/nf_conntrack_netlink.ko
  INSTALL net/netfilter/nf_conntrack_sip.ko
  INSTALL net/netfilter/nfnetlink.ko
  INSTALL net/netfilter/nfnetlink_log.ko
  INSTALL net/netfilter/x_tables.ko
  INSTALL net/netfilter/xt_MARK.ko
  INSTALL net/netfilter/xt_NFLOG.ko
  INSTALL net/netfilter/xt_TCPMSS.ko
  INSTALL net/netfilter/xt_conntrack.ko
  INSTALL net/netfilter/xt_mark.ko
  INSTALL net/netfilter/xt_policy.ko
  INSTALL net/netfilter/xt_state.ko
  INSTALL net/netfilter/xt_tcpudp.ko
  INSTALL net/sunrpc/sunrpc.ko
  DEPMOD  2.6.25-kuroboxHG

玄箱/HGをリブートします。

確認

カーネルバージョン確認

カーネルバージョンを表示します。
日付がコンパイル日時になっていたら成功です。

KAGUYA:~# uname -a[ENTER]

uname -a表示画面(例)

Linux KAGUYA 2.6.25-kuroboxHG #1 Sat Feb 14 01:35:34 JST 2009 ppc GNU/Linux

iptables確認

iptablesが使えるようになったかを確認します。
以下のコマンドがエラーにならなければ成功です。

KAGUYA:~# iptables -L[ENTER]

iptables導入直後設定表示画面(例)

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

コメント

コメントはありません。 コメント/玄箱HGメモ/Debian/カーネルコンパイル?

Online: 2


FrontPage

Soft

Tips


最新の20件

2021-12-21 2020-04-06 2020-03-10 2013-06-28 2013-11-13 2014-06-24

今日の20件

  • counter: 2170
  • today: 1
  • yesterday: 0
  • online: 2

edit