28-Sep-2014
[OpenBSDでBanana piしてみる(2)]

U-BootにOpenBSDカーネルをどう食わせたもんかなと悩んでいたのですが、OpenBSD 5.5 on A10-OLinuXino-LIME, sorta succeedingに答えが書いてありました。前回作成した起動用ディスクのDOS区画に、uEnv.txtとbsd.umg(bsd.rd.SUNXI.umg等をリネームしたもの)を放り込んでおけばok。

uEnv.txtを見れば分かるのですが、script.binは使いません。また、readelfでbsd.rd.SUNXIを調べるとEntry point addressが0x40800000となっているものの、fatload/bootmに指定するアドレスは0x40200000となっている点に注意が必要です。

一応OpenBSD 5.6-currentのカーネルをロードできているようなのですが、うまく起動できていない感じです…とりあえずこんなログが得られています。また、fatload/bootmに指定するアドレスを試しに0x60000000にしてみたのですが、結果はあんまり変わりません

そういえばU-Bootのbdinfoコマンドの実行結果を晒す必要がありそうな気がしたので、そうしておきます。


sun7i# bdinfo
arch_number = 0x000010BB
boot_params = 0x40000100
DRAM bank   = 0x00000000
-> start    = 0x40000000
-> size     = 0x40000000
eth0name    = dwmac.1c50000
ethaddr     = 02:99:03:c2:d2:6e
current eth = dwmac.1c50000
ip_addr     = <NULL>
baudrate    = 115200 bps
TLB addr    = 0x7FFF0000
relocaddr   = 0x7FF87000
reloc off   = 0x35F87000
irq_sp      = 0x7FB66EF0
sp start    = 0x7FB66EE0
sun7i#

いちいちSDカードを抜き差ししてカーネルを入れ替えるのも面倒なので、今後はTFTPサーバからカーネルを取ってくるようにuEnv.txtを書き換えないとちょっと辛そうな感じです。58.55kg(04:50)

26-Sep-2017補足:OpenBSD 5.5 on A10-OLinuXino-LIME, sorta succeedingへのリンクが切れていたので、修正しました。

24-Sep-2014
[OpenBSDでBanana piしてみる]

Banana piでOpenBSDしてみたいのですが、まずはOpenBSDでBanana piを動かすために必要なU-Bootのビルドを試みてみようかと。

Linuxでのビルド手順はBuilding u-boot, script.bin and linux-kernelStep 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.orgBootable 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と記述する必要があります。

13-Sep-2014
[今更なんだけど]

TTLレベルでおしゃべりするUSB-UARTアダプタも手にしたことだし、VIA APC(8750)のシリアルコンソールに出てくるログでも採取してみようかな、と。これなんだけど。

接続方法はVIA APC: UART/Serialにあるように、pin2がTX, pin3がRX, pin6がGNDになっているのでそれぞれを結線し、8bit/non-parity/115200bpsの設定で。

既にAndroid Root Console and Full Boot Text of VIA APC Nano-PCにログは上がっているけども、すごく読みにくいよねコレ…

今更ARM11ですか時代はCortex-Aでしょってことで、そろそろAPC Rock欲しいなあと思ったらOut of stockになってました。まあ8750を積み基板にしていたのでRock買っても同じことになると思いますが。

GitHubを見ると、なんかRock IIなる後継モデルが出そうなんですがこれいつ出るんでしょう。あと、何を載せてくるのかも気になります。RockはWM8950らしいのですが、Cortex-A9×2のWM8980ですかねえ。

そういえばVIAってSpringboard(VAB-600)出してますが、これどうなるんでしょうか。こちらもWM8950搭載機らしいという話なんですが。58.55kg(06:20)

15-Sep-2014補足:VIA APC(8750)上のLinuxのdmesgを見ていて、PCIバスがあるのか…?と疑問に思ったのでもう少し調べてみました。

U-boot上のprintenvとlspci(ただしLinux純正ではなくbusyboxの簡略化された奴)のログをなんとなく取ってみたのですが、kernel/arch/arm/common/pci_wmt.cを見ると、SoC内のデバイスのI/OアドレスををフェイクのPCIデバイスを作って渡してるのかなーという気がします。

イマドキの環境だとDevice Treeを使うのがセオリーなのかなとも思うのですが、何か事情でもあるのですかね…

06-Sep-2014
[Ingress: 達成。]

tlevelup_20140905_215241_0.jpg tprofile_20140906_050247_0.jpg

16-Jul-2014にIngressを開始して、今日で52日が経過。これを書いている時点のAPが1,202,874なので、最終的には一日23,000くらいのAPを稼いでいる計算になる。

流石にLv9を目指すにはメダル(実績)を集めないといけないのでこうはいかないし、ちょっと熱くなりすぎていたのでここから先はのんびりやる予定というかのんびりやらないと色々問題になるので(ゴミを捨てに行くという名目で早朝に出歩いていたのはもう妻にバレています)のんびりやるんです。流石にちょっと疲れてきてもいますし…間違いなく歳だな。

ゲームについて思うことを色々書きたいところなのですが、内容が内容になりそうなのでもしかするとIngress Resistance Tokyoで書くかもしれないし、時間が無いという理由で全く書かないかも。57.90kg(06:00)

01-Sep-2014
[一年(厳密には明日で一年なんだけど)。]

プログラマーから薬剤師に転職してから、一年が経過。

もう一年と言うべきか、まだ一年というべきかはなかなか難しいところ。とりあえず長期間のブランクに加えて異業種からの転職という状況で、一年は続いたという事実があることは確かそう。

さて、今日も頑張りましょう。57.60kg(04:50)