8.0-RELEASE をソースも一緒にインストールすれば Marvell Orion
88F5182 サポートが含まれています.なので KUROBOX-PRO へのイ
ンストールを試してみました.

カーネルは NAND フラッシュに置いてルートファイルシステムはハー
ドディスクや USB メモリに置くことにします.


工場出荷時に戻す方法を確認しておく

   http://kuroutoshikou.com/products/kuro_box_pro/updata/kbpfw102.zip
   http://kuroutoshikou.com/products/kuro_box_pro/updata/defenv.zip

   TFTP サーバ準備(たとえば MacOS X の場合)

      mac$ sudo cp initrd.buffalo uImage.buffalo /private/tftpboot
      mac$ sudo /sbin/service tftp start

   KUROBOX を TFTP ブート

      必要であれば環境変数を defenv.txt からペーストしたのち,

      Marvell>> setenv bootcmd 'tftp 0x00100000 uImage.buffalo; bootm 
0x00100000'
      Marvell>> setenv nand_boot no
      Marvell>> boot
      (中略)
      KUROBOX-PRO login: root
      Password: 
      ~ # update_mtd.sh all
      ~ # shutdown -h
      (再起動)


buildworld

   # cd /usr/src
   # make -j 8 buildworld TARGET_ARCH=arm
   # export DESTDIR=/somewhere  (または setenv)
   # mkdir -p $DESTDIR
   # make installworld TARGET_ARCH=arm
   # make distrib-dirs TARGET_ARCH=arm
   # make distribution TARGET_ARCH=arm

   $DESTDIR/etc/fstab を用意.例えば,

      /dev/ad0    /       ufs     rw 1 1
      proc        /proc   procfs  rw 0 0

   作成した DESTDIR の内容を UFS フォーマットしたハードディ
   スクか USB メモリにコピーする.あるいは,はじめから
   DESTDIR にマウントしておく.これを,あとで KUROBOX に取り
   つける.


buildkernel

   必要に応じ /usr/src/sys/arm/conf/DB-88F5XXX を編集する.
   ・ options pci をコメントにしないと起動中にフリーズした.
   ・ options ROOTDEVNAME=\"ufs:/dev/da0\" など適宜追加.

   # make buildkernel TARGET_ARCH=arm KERNCONF=DB-88F5XXX


uImage 作成

   $ cp /usr/obj/arm/usr/src/sys/DB-88F5XXX/kernel.bin どこか
   $ cd どこか
   $ mkimage -A arm -O freebsd -T kernel \
        -C none -a 0x900000 -e 0x900000 \
        -n 'fbsd8arm' -d kernel.bin \
        uImage.fbsd8

   mkimage は ports/devel/u-boot で用意できる.


NAND フラッシュ上の uImage.buffalo の置き換え

   ファイル共有などの方法で uImage を KUROBOX にコピー

      mac$ cp uImage.fbsd8 /Volumes/mtd\ device/

   KUROBOX で update_mtd.sh を使い NAND フラッシュに
   uImage を書き込み,再起動する.

      ~ # mv /mnt/mtd/uImage.fbsd8 /boot/uImage.buffalo
      ~ # /usr/local/bin/update_mtd.sh uImage
      ***** Cleaning and collect badlist /dev/mtd1 *****
      ***** copying /boot/uImage.buffalo to /dev/mtd1 *****
      Done.
      ~ # reboot


U-BOOT のプロンプトで必要な設定をしたのち起動

   Marvell>> setenv default_kernel_addr 0x00900040
   Marvell>> setenv bootargs
   Marvell>> setenv nand_boot yes
   Marvell>> nboot $(default_kernel_addr) 0 $(nand_uImage_offset)
   Marvell>> bootm

   問題なければ再起動し,そのときに saveenv しておく.


感想などを別便で.


齊藤@湖西市

メールによる返信