カテゴリ
リンク

当サイトは、玄箱PRO (KURO-BOX/Pro)を中心とした組み込み、Linuxと電子工作を扱っています。
会社案内

情報セキュリティおよび個人情報の取り扱いについて


コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。コメントはそれぞれ投稿した人のものです。

■カーネルの再構築
 
 いよいよ、カーネルを再構築します。再構築には、gcc, make, patch コマンドなどが必要です。apt を使ってインストールしておきます。まず、CD-ROM から、カーネル・ソースlinux-2.6.12_lsp.1.10.3.src.tar.gz を玄箱PRO にコピーしておきます。.
 config ファイルとパッチをまとめたファイルkern-patch.tar.gz[1]もコピーします。適当なディレクトリに、カーネル・ソースと kern-patch.tar.gz を展開します。
tar xzf linux-2.6.12_lsp.1.10.3.src.tar.gz
tar xzf kern-patch.tar.gz
 ディレクトリを移動し、.config ファイルをコピーします。
cd linux-2.6.12_lsp.1.10.3
cp ../config .config
 そのままではコンパイルできないので、パッチを当てます。
patch -p1 < ../diff
 実行すると以下のようになりました。
kurobox@kurobox:~/kernel/test/linux-2.6.12_lsp.1.10.3$ patch -p1 < ../../work/diff 
patching file Makefile 
patching file arch/arm/kernel/setup.c 
patching file arch/arm/mm/init.c 
patching file drivers/char/vc_screen.c 
patching file include/asm-arm/bug.h 
patching file include/asm-arm/cpu-single.h 
patching file include/asm-arm/uaccess.h
 .config ファイルの内容を反映させます。
make oldconfig
 実行すると以下のようになりました。
kurobox@kurobox:~/kernel/test/linux-2.6.12_lsp.1.10.3$ make oldconfig 
HOSTCC  scripts/basic/fixdep 
scripts/basic/fixdep.c: In function 'parse_config_file': 
scripts/basic/fixdep.c:245: warning: pointer targets in passing argument 1 of 'use_config' differ in signedness 
scripts/basic/fixdep.c: In function 'parse_dep_file': 
scripts/basic/fixdep.c:299: warning: pointer targets in passing argument 1 of '__builtin_strchr' differ in signedness 
scripts/basic/fixdep.c:299: warning: pointer targets in assignment differ in signedness 
HOSTCC  scripts/basic/split-include 
scripts/basic/split-include.c: In function 'main': 
scripts/basic/split-include.c:113: warning: pointer targets in assignment differ in signedness 
HOSTCC  scripts/basic/docproc 
scripts/basic/docproc.c: In function 'find_export_symbols': 
scripts/basic/docproc.c:184: warning: pointer targets in assignment differ in signedness 
scripts/basic/docproc.c:185: warning: pointer targets in assignment differ in signedness 
scripts/basic/docproc.c:202: warning: pointer targets in passing argument 2 of '
----------------------------------(省略)----------------------------
* Cryptographic options 
* 
Cryptographic API (CRYPTO) [N/y/?] n 
* 
* OCF Configuration 
* 
OCF (Open Cryptograhic Framework) (OCF_OCF) [N/y/?] n 
* 
* Hardware crypto devices 
* 
* 
* Library routines 
* 
CRC-CCITT functions (CRC_CCITT) [N/m/y/?] n 
CRC32 functions (CRC32) [Y/?] y 
CRC32c (Castagnoli, et al) Cyclic Redundancy-Check (LIBCRC32C) [Y/n/m/?] y 
kurobox@kurobox:~/kernel/test/linux-2.6.12_lsp.1.10.3$
 カーネルをコンパイルし、uImage を作成します。
make uImage
 実行すると以下のようになりました(時間がかかる)。
kurobox@kurobox:~/kernel/test/linux-2.6.12_lsp.1.10.3$ make uImage 
CHK     include/linux/version.h 
UPD     include/linux/version.h 
SYMLINK include/asm -> include/asm-arm 
SPLIT   include/linux/autoconf.h -> include/config/* 
CC      scripts/mod/empty.o 
HOSTCC  scripts/mod/mk_elfconfig 
MKELF   scripts/mod/elfconfig.h 
HOSTCC  scripts/mod/file2alias.o 
HOSTCC  scripts/mod/modpost.o 
HOSTCC  scripts/mod/sumversion.o 
scripts/mod/sumversion.c: In function 'parse_file': 
scripts/mod/sumversion.c:260: warning: pointer targets in passing argument 1 of 'grab_file' differ in signedness 
scripts/mod/sumversion.c:277: warning: pointer targets in passing argument 1 of 'parse_string' differ in signedness 
scripts/mod/sumversion.c:283: warning: pointer targets in passing argument 1 of 'parse_comment' differ in signedness 
scripts/mod/sumversion.c: In function 'parse_source_files': 
scripts/mod/sumversion.c:335: warning: pointer targets in initialization differ in signedness 
scripts/mod/sumversion.c:344: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness 
scripts/mod/sumversion.c:357: warning: pointer targets in passing argument 1 of 'parse_file' differ in signedness 
scripts/mod/sumversion.c: In function 'strip_rcs_crap': 
scripts/mod/sumversion.c:465: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness 
scripts/mod/sumversion.c:465: warning: pointer targets in passing argument 1 of 'strlen' differ in signedness
--------------------------------(省略)-------------------------------
AS      .tmp_kallsyms2.o 
LD      vmlinux 
SYSMAP  System.map 
SYSMAP  .tmp_System.map 
OBJCOPY arch/arm/boot/Image 
Kernel: arch/arm/boot/Image is ready 
AS      arch/arm/boot/compressed/head.o 
GZIP    arch/arm/boot/compressed/piggy.gz 
AS      arch/arm/boot/compressed/piggy.o 
CC      arch/arm/boot/compressed/misc.o 
LD      arch/arm/boot/compressed/vmlinux 
OBJCOPY arch/arm/boot/zImage 
Kernel: arch/arm/boot/zImage is ready 
UIMAGE  arch/arm/boot/uImage 
Image Name:   Linux-2.6.12.6-oabi 
Created:      Mon Jun 11 13:14:27 2007 
Image Type:   ARM Linux Kernel Image (uncompressed) 
Data Size:    1933396 Bytes = 1888.08 kB = 1.84 MB 
Load Address: 0x00008000 
Entry Point:  0x00008000 
Image arch/arm/boot/uImage is ready 
kurobox@kurobox:~/kernel/test/linux-2.6.12_lsp.1.10.3$
 arch/arm/boot/uImage が完成した uImage ファイルです。

[1] カーネル再構築に必要な情報・パッチは sushi-k さんのblogを参考にさせていただいています。
2008/02/03 kern-patch.tar.gz を音とび対策したものに変更しました。

 カテゴリ 

  ,

トラックバック(0)

このブログ記事を参照しているブログ一覧: カーネルの再構築とカーネル・モジュールの構築(2/3 起動イメージの作成)

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/937

コメントする

おすすめ書籍
Powered by
Movable Type 4.1