26-Jun-2016
[CROSS2→ESCAPE R 3(2015)]

03-Sep-2010の一ヶ月前からCROSS 2に乗っていましたが、乗り方が荒い(チェーンが伸びても気にしていなかった)せいかスプロケットとチェーンリングが摩耗してしまい、今回も交換するなら買い替えた方が良いよねという事態となりました。CROSS 3200が丸7年もっていたのに対し、CROSS 2は6年切ってます。転職前は自宅〜JR橋本駅を往復する程度でしたが、転職後は自宅〜JR矢部駅近辺まで移動距離が伸びていますので、その分早くガタが来たのでしょう(その前にメンテをこまめにやった方が…)。

で、GIANTのCROSSシリーズがなくなってしまったためにESCAPEかGRAVIERの二択を迫られていたのですが、泥除けがあるという理由でESCAPEで決まりです。ただし、タイヤは太くした方が多少はラフに扱えるだろうという店主の話により、標準のMAXXIS DETONATOR 700×28CからSERFAS TUONO HYBRID 700×32Cに変えました。この手のカスタムでは23Cを履くのが定番だそうですが、生活の足として使うには気難しくなるので止めておきます。

店で受け取って帰宅する程度しかまだ乗っていないので、もう少し乗らないと慣れないなあというのが正直なところです。CROSS 2より軽くてギアも増え、グリップシフトからトリガーシフトに変わったので操作感がだいぶ違います。ギア周りも、ギアクランクはCROSS 3200/CROSS 2のSR SUNTOUR 28/38/48T CG 170mm→PROWHEEL SWIFT 28/38/48T 170mmとサイズも歯数も変わりませんが、ギアはこんな風に

CROSS 3200
SHIMANO MF-HG37 7S 14-28T (14-16-18-20-22-24-28)
CROSS 2
SRAM PG730 7S 12-32T (12-14-16-18-21-26-32)
ESCAPE R 3
SHIMANO HG41 8S 11-32T (11-13-15-18-21-24-28-32)

全く違うものが搭載されていますので、この辺りが操作感の違いに影響しているのは確かそうです。今のところ、CROSS 3200の14Tでは物足りなくCROSS 2の12Tでは重いと感じているので、ESCAPE R 3の13Tがどの程度自分に合っているかを確かめたいです。一方、CROSS 3200の28Tは若干重く、CROSS 2の32Tは軽すぎるので、ここは30Tくらいがちょうど良いのかもしれません。これは何かの折に、SHIMANO HG41/HG51-8-an (11-13-15-17-20-23-26-30)に交換すると分かるのでしょうか…?59.70kg(18:15)

23-Jun-2016
[PCエミュレータ上でDOS/Vを真面目に動かそうとすると]

結構ハマるなあというのが正直なところ。config.sysで$disp.sysをロードする際は、/HS=OFFを付けないと画面表示が荒れるというのは多分序の口で、V-Text環境を作ろうとするとVESA BIOSの壁にぶち当たるという。

SuperVGA(800×600)であればまだ容易そうですが、24ドットフォントを使いたいので1024×768の解像度をとなると難易度はかなり高そうです。あの時代ではS3/Cirrus/ET4000辺りのアクセラレータを使ったディスプレイドライバで実現していましたが、これがエミュレータ上でどこまで動くかは…どうなんでしょうかね?59.95kg(23:20)

16-Jun-2016
[分かれていると不便なので]

この三つを一つにまとめてみました。ROMとフロッピーディスクの両方のデータが揃っていないと動きません。手を入れたついでに、丸付数字や数学記号(√と∫のみ)も変換するようにしています。罫線も変換していますが、ここは好みが分かれるかもしれません。

フロッピーディスクから吸い出したデータの変換コードについては、ROMから吸い出したデータの変換について今まで何処からもクレームがなかったため、こちらを公開しても問題はないだろうと判断しています(多分どちらもグレーなのでしょうが)。58.05kg(06:10)

05-Jun-2016
[OpenBSDでBanana piしてみる・あげいん(2)]

ARMv7 now has a bootloaderということで、OpenBSD-currentではブートローダー(BOOTARM.EFI)とボードに対応したdevice tree blobを使うように改められています。という訳で、fdisk後は以下のような操作に変わります。


# 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=63 hds=255 hid=2048 bsec=131072
# mount_msdos -l /dev/sd1i /mnt
# mkdir -p /mnt/efi/boot
# cd /mnt/efi/boot
# ftp http://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/armv7/BOOTARM.EFI
Trying 150.65.7.130...
Requesting http://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/armv7/BOOTARM.EFI
100% |**************************************************| 65556       00:00    
65556 bytes received in 0.12 seconds (523.64 KB/s)
# cp /path/to/u-boot-2016.05/arch/arm/dts/sun7i-a20-bananapi.dtb /mnt
# cd
# umount /mnt
# 
# disklabel -E sd1
Label editor (enter '?' for help at any prompt)
> p
OpenBSD area: 133120-15523840; size: 15390720; free: 15390720
#                size           offset  fstype [fsize bsize  cpg]
  c:         15523840                0  unused                   
  i:           131072             2048   MSDOS                   
> a b
offset: [133120] 
size: [15390720] 1G
Rounding size to cylinder (16065 sectors): 2099915
FS type: [swap] 
> a a
offset: [2233035] 
size: [13290805] 
FS type: [4.2BSD] 
Rounding offset to bsize (32 sectors): 2233056
Rounding size to bsize (32 sectors): 13290784
> p
OpenBSD area: 133120-15523840; size: 15390720; free: 21
#                size           offset  fstype [fsize bsize  cpg]
  a:         13290784          2233056  4.2BSD   2048 16384    1 
  b:          2099915           133120    swap                   
  c:         15523840                0  unused                   
  i:           131072             2048   MSDOS                   
> w
> q
No label changes.
# newfs /dev/rsd1a
/dev/rsd1a: 6489.6MB in 13290784 sectors of 512 bytes
33 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
super-block backups (for fsck -b #) at:
 32, 414688, 829344, 1244000, 1658656, 2073312, 2487968, 2902624, 3317280,
 3731936, 4146592, 4561248, 4975904, 5390560, 5805216, 6219872, 6634528,
 7049184, 7463840, 7878496, 8293152, 8707808, 9122464, 9537120, 9951776,
 10366432, 10781088, 11195744, 11610400, 12025056, 12439712, 12854368,
 13269024,
# mount /dev/sd1a /mnt
# cd /mnt
# ftp http://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/armv7/bsd
Trying 150.65.7.130...
Requesting http://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/armv7/bsd
100% |**************************************************|  4424 KB    00:04    
4530384 bytes received in 4.30 seconds (1.01 MB/s)
# ftp http://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/armv7/bsd.rd
Trying 150.65.7.130...
Requesting http://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/armv7/bsd.rd
100% |**************************************************| 10198 KB    00:06    
10443500 bytes received in 6.21 seconds (1.60 MB/s)
# cd
# umount /mnt
# 

で、ここまでやってどこまで動くかというと…bsdないしbsd.rdのロードはするようですが、その後disklabelを見つけ出せず、undefined instructionを起こして再起動してしまいます。ファイルのSHA256値は問題ないのでディスクの作成手順に多分問題があるのでしょうが、詳細はよく分かりません。

Orange Pi PCPINE64が気になるのですが、その前に手元のBanana Piと遊んでやれよという理由でこんなことをやっています。ボードが発売されてからずいぶん時間が経ったおかげで、NetBSD/evbarmFreeBSD/armもBanana Piで動くようになったのが嬉しいですね。

特にNetBSD/evbarmはbig endianで楽しむこともできるので、これは何かの折に試してみたいです。59.45kg(04:00)

03-Jun-2016
[OpenBSDでBanana piしてみる・あげいん]

24-Sep-2014の日記に補足を記述して対応しようと思ったのですが、ちょっとそれでは済みそうにないので別立ての話で。やることは一緒なのですがね。

前回はLeMakerのGitHubからソースコードを落としてOpenBSD-5.5上でU-Bootをビルドしましたが、今回は本家denx.deおよびlinux-sunxiのGitHubからソースコードを落としてOpenBSD-5.9上でビルドする話になります。

まずはU-Bootのビルド。パッチ当ては必要ですが、lib/sha1.cの修正は不要になりました。


mkdir ~/workdir; cd ~/workdir
ftp ftp://ftp.denx.de/pub/u-boot/u-boot-2016.05.tar.bz2
tar jxpf u-boot-2016.05.tar.bz2
cd u-boot-2016.05
patch -p1 < /path/to/u-boot-bananapi.diff
gmake CROSS_COMPILE=arm-none-eabi- Bananapi_config
gmake CROSS_COMPILE=arm-none-eabi-

次にscript.binの作成。


cd ~/workdir
git clone https://github.com/linux-sunxi/sunxi-tools.git
git clone https://github.com/linux-sunxi/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

実のところ、script.binを生成する程度であればsunxi-toolsに対するパッチ当ては不要です。rmの-vオプションがあるためにgmake cleanができない問題を解決するための、Makefileの修正しか行っていません。

あとは24-Sep-2014と手順は一緒。

U-Boot(とSPL)の書き込み。以下の例では、/dev/sd1cにSDカードがあるものとしています。


dd if=/dev/zero of=/dev/sd1c bs=1M count=1
dd if=u-boot-2016.05/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: 966/255/63 [15523840 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) [01 - FF]: [0] (? for help) c
Do you wish to edit in CHS mode? [n]
Partition offset [0 - 15523840]: [0] 2048
Partition size [1 - 15521792]: [1] 64M
fdisk:*1> p
Disk: /dev/rsd1c        geometry: 966/255/63 [15523840 Sectors]
Offset: 0       Signature: 0x0
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 0C      0  32  33 -      8  73   1 [        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) [01 - FF]: [0] (? for help) a6
Do you wish to edit in CHS mode? [n]
Partition offset [0 - 15523840]: [0] 133120
Partition size [1 - 15390720]: [1] 15390720
fdisk:*1> p
Disk: /dev/rsd1c        geometry: 966/255/63 [15523840 Sectors]
Offset: 0       Signature: 0x0
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 0C      0  32  33 -      8  73   1 [        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      8  73   2 -    966  80  10 [      133120:    15390720 ] 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=63 hds=255 hid=2048 bsec=131072
#

あとはDOS区画のマウントとscript.binのコピー。


mount /dev/sd1i /mnt
cp script.bin /mnt
umount /mnt

とりあえずこんなログが得られているので、ビルドしたU-Bootの起動はできているようです。ネットワークから必死に起動用のイメージを探すので(これが終わるまでにかなり時間がかかる)、適当に抑止しておく必要がありそうです。59.65kg(05:55)