Banana piでOpenBSDしてみたいのですが、まずはOpenBSDでBanana piを動かすために必要なU-Bootのビルドを試みてみようかと。
Linuxでのビルド手順はBuilding u-boot, script.bin and linux-kernelのStep by Step, Building u-bootを見れば良いのですが、OpenBSDの場合はU-Bootにパッチを当てる必要があります。U-Bootを得るための手順は、こんな感じになるでしょうか。
mkdir ~/workdir; cd ~/workdir
git clone https://github.com/LeMaker/u-boot-bananapi.git
cd u-boot-bananapi
patch -p1 < /path/to/u-boot-bananapi.diff
gmake CROSS_COMPILE=arm-none-eabi- Bananapi_config
gmake CROSS_COMPILE=arm-none-eabi-
|
次に、Building script.binの手順。
cd ~/workdir
git clone https://github.com/LeMaker/sunxi-tools.git
git clone https://github.com/LeMaker/sunxi-boards.git
cd sunxi-tools
patch -p1 < /path/to/sunxi-tools.diff
gmake
cd ..
sunxi-tools/fex2bin sunxi-boards/sys_config/a20/Bananapi.fex script.bin
|
得られたu-boot-sunxi-with-spl.binとscript.binを使って、起動用のSDカードを作る手順はlinux-sunxi.orgのBootable SD cardに従えば良さそうです。まずはU-Boot(とSPL)の書き込み。以下の例では、/dev/sd1cにSDカードがあるものとしています。
dd if=/dev/zero of=/dev/sd1c bs=1M count=1
dd if=u-boot-bananapi/u-boot-sunxi-with-spl.bin of=/dev/sd1c bs=1024 seek=8
|
fdiskで区画の作成と、DOS区画のフォーマット。
$ su
# fdisk -e /dev/rsd1c
Enter 'help' for information
fdisk: 1> p
Disk: /dev/rsd1c geometry: 3759/64/32 [7698432 Sectors]
Offset: 0 Signature: 0x0
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
0: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
fdisk: 1> edit 0
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
0: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
Partition id ('0' to disable) [0 - FF]: [0] (? for help) c
Do you wish to edit in CHS mode? [n]
Partition offset: [0] 2048
Partition size: [0] 64M
fdisk:*1> p
Disk: /dev/rsd1c geometry: 3759/64/32 [7698432 Sectors]
Offset: 0 Signature: 0x0
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
0: 0C 1 0 1 - 64 63 32 [ 2048: 131072 ] Win95 FAT32L
1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
fdisk:*1> edit 3
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
Partition id ('0' to disable) [0 - FF]: [0] (? for help) a6
Do you wish to edit in CHS mode? [n]
Partition offset: [0] 133120
Partition size: [0] 7565312
fdisk:*1> p
Disk: /dev/rsd1c geometry: 3759/64/32 [7698432 Sectors]
Offset: 0 Signature: 0x0
Starting Ending LBA Info:
#: id C H S - C H S [ start: size ]
-------------------------------------------------------------------------------
0: 0C 1 0 1 - 64 63 32 [ 2048: 131072 ] Win95 FAT32L
1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: A6 65 0 1 - 3758 63 32 [ 133120: 7565312 ] OpenBSD
fdisk:*1> quit
Writing MBR at offset 0.
# newfs_msdos /dev/rsd1i
/dev/rsd1i: 130780 sectors in 32695 FAT16 clusters (2048 bytes/cluster)
bps=512 spc=4 res=1 nft=2 rde=512 mid=0xf8 spf=128 spt=32 hds=64 hid=2048 bsec=131072
#
|
あとはDOS区画のマウントとscript.binのコピー。
mount /dev/sd1i /mnt
cp script.bin /mnt
umount /mnt
|
とりあえずこんなログが得られているので、ビルドしたU-Bootの起動はできているようです。あとは、OpenBSDカーネルを食わせたらどうなるかですね…58.80kg(16:00)
11-Apr-2015補足:U-Bootのconfigや.fexのファイル名、現在はBananapiではなくBananaPiと記述する必要があります。