玄箱HGメモ/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]
KAGUYA:~# aptitude install less[ENTER]
KAGUYA:~# aptitude install patch[ENTER]
KAGUYA:~# aptitude install gcc[ENTER]
KAGUYA:~# aptitude install ncurses-dev[ENTER]
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]
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が使えるようになったかを確認します。
以下のコマンドがエラーにならなければ成功です。
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