2009年10月5日月曜日

U-Boot (mkimage) のインストール

クロスコンパイルで、BeagleBoard 用カーネルの vmlinux まで生成できたのですが、やはり mkimage がないと uImage を生成できないことが分かりました。(当たり前か)

ということで、U-Boot をインストールしています。バージョンは u-boot-2009.08 です。今、ビルド中。。。こんな感じです。

$ export PATH=クロスコンパイラの入ったパス:$PATH
$ make CROSS_COMPILE=arm-unknown-linux-gnu- omap3_beagle_config
$ make CROSS_COMPILE=arm-unknown-linux-gnu- dep
$ make CROSS_COMPILE=arm-unknown-linux-gnu-

とりあえず、ビルドはできました。(しかし、なんで make install が無いんだ?)

さて、make uImage です。

  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-2.6.28-00008-g7f78d9f
Created:      Mon Oct  5 23:15:42 2009
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2702880 Bytes = 2639.53 kB = 2.58 MB
Load Address: 80008000
Entry Point:  80008000
  Image arch/arm/boot/uImage is ready

じゃかじゃーん。果たして、これで BeagleBoard はちゃんと起動するのでしょうか?

後記

無事にカーネルをブートできました。偶然かも知れませんが、元々動かしていたカーネルも、今回生成したカーネルも、GCC 4.3.2 によるものでした。以下に、ブートメッセージの一部を示します。

Linux version 2.6.28-00008-g7f78d9f (yokoyama@hogehoge) (gcc version 4.3.2 (crosstool-NG-1.4.2) ) #1 Mon Oct 5 22:38:50 JST 2009
CPU: ARMv7 Processor [411fc082] revision 2 (ARMv7), cr=10c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: OMAP3 Beagle Board
Memory policy: ECC disabled, Data cache writeback
OMAP3430 ES2.1
SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000
Reserving 15728640 bytes SDRAM for VRAM
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootwait rootfstype=ext3 ro
Clocking rate (Crystal/DPLL/ARM core): 26.0/332/500 MHz

これで、カーネル周りの開発も行けそうです。ちょっと嬉しい。

ところで udev

BeagleBoard の Debian に dosfstools を入れて、mkdosfs をできるようにしたのですが、なんと /dev/sda1 がありません。udev のマニュアルとか眺めて頭を抱えていたのですが、実は /dev/mmcblk0p1 という名前で参照できることが分かりました。かなり時代に取り残されている私です。

0 件のコメント:

コメントを投稿

フォロワー