31-Oct-2014
[忙しい…]

他店への応援に行ってみたり、日曜出勤があったり、子供の七五三やったり…休みは何処へ行ったという感じで。そろそろ家でぐったりしたいんですが、無理っすかね。

Ingress、Lv8エージェントになれたのは良いのですが、自分の行動圏内では少ないポータルを多数のエージェントが取り合うだけでなく、自分と同一の陣営ががっちり押さえてしまっているので動きが何もない(=稼ぐ余地が無い)事態になっていました。おそらくこうなるだろうなと思ってはいましたが。

何日か前からアイテム/AP増量キャンペーンが始まったおかげであちこちで敵陣営の攻勢が活発化して、どうにか食える状態になったのは嬉しいものの…Lv9になれるだけのAPが溜まってもメダルが取れないので昇格できない。

キャンペーン終了時にInnovatorという記念メダルが発行されるのですが、これのSilverがどうしても欲しくて、Lv9が必要なんです。手に入れることでLv10への昇格も楽になるというのは脇に置いといて、単純に「カッコいい」と思ったので。

1000本のリンクを張ることで得られるConnectorのSilverメダルを取れれば手が届きそうなんだけど、残り192本のリンクを張るチャンスがどれだけ残っているか、割と悲観的に考えています。それでも挑んでみますけど。

という訳で、Banana Piいじりが全然できていないのでありました。朝ご飯作らなきゃ…58.15kg(06:20)

19-Oct-2014
[SDカードの抜き差しも面倒なので]

OpenBSD-current/i386機でtftpdを動かして、Banana PiのU-Bootにはここから起動用イメージを取ってきてもらおうということに。OpenBSD起動時にtftpdを起動してもらう方法は6.10 - How do I boot using PXE? (i386, amd64)の真ん中くらいに書いてあるように、/etc/rc.conf.localにtftpd_flags="/tftpboot"を書き加えておけばok。

tftpdの使用するディレクトリの作成は、mkdir /tftpboot; chown 777 /tftpboot; chmod nobody:nobody /tftpboot mkdir /tftpboot; chmod 777 /tftpboot; chown nobody:nobody /tftpbootとしているケースが多いのでそれに倣う。ディレクトリを作り忘れるとtftpdは起動しないので注意(作り忘れました)。あとは/tftpbootにファイルを突っ込んで、tftpでファイルを取ってこれるかどうかを確認。横着してファイルへのシンボリックリンクを入れてみたけど、これはダメなようだ。

転送速度があんまり出ていないのが気になるんですが、これはそーゆうもんなんですかねえ?3Mbyte程度のファイルの転送に30秒くらいかかっています。

さて、あとはBanana Pi(U-Boot)側のuEnv.txtの書き換え。OpenBSD-currentを動かしているNetBookは無線LANで繋がっているのに対し、Banana Pi側は有線LANでつなげる必要があって…手元にLANケーブルが無いというのが何とも(作るのも買うのも面倒くさいという状態)。もうしばらくの間、SDカードスロットの耐久テストでもやるか…59.20kg(06:50)

13-May-2015補足:chown/chmodの記述を間違えていたので、修正しました。

15-Oct-2014
[OpenBSD-current/armv7をクロスビルドした後は]

得られたbsdを、U-Bootがロードできる形式に変換する必要がある。


/usr/cross/armv7/usr/arm-unknown-openbsd5.6/bin/arm-unknown-openbsd5.6-objcopy \
 -O binary /usr/src/sys/arch/armv7/compile/GENERIC-SUNXI/bsd bsd.bin
./u-boot-bananapi/tools/mkimage -A arm -O linux -T kernel -C none \
 -a 0x40800000 -e 0x40800000 -n boot -d bsd.bin bsd.umg

objcopyによる、ELF→binary形式への変換は忘れやすいので注意。

mkimageによるU-Boot形式の変換では-Cオプションによる圧縮の指定が行えるものの、配布されているbsd.umgに倣い無圧縮(none)としている。

OpenBSD/i386ないしamd64の場合、ブートローダでboot -cとやって起動するとカーネル起動後にUKC(User Kernel Config)モードに入るが、armv7の場合はU-Bootのコマンドラインからsetenv bootargs "sd0i:bsd -c"とする。uEnv.txtに記述する場合は、bootargs=sd0i:bsd -c。

なお、RAMDISKカーネルの場合は-cオプションによるUKCモードへの移行は不可という点に注意が必要(tech@で-cが使えないと大騒ぎしたのは自分です)。59.50kg(12:45)

12-Oct-2014
[散歩ネタふたつ]

18-Apr-2010の続き。下九沢分水池の看板が、なんか立派なものに掛け替えられていました。

tpa113095.jpg tpa113096.jpg

以前は木材に筆で書いていたものが、今度は木材を削って作っているようです。…木材を使うのが伝統なんですかね?

tpa113097.jpg tpa113098.jpg tpa113099.jpg tpa113100.jpg tpa113101.jpg

金属部分の錆が木材に付いているのを見るに、掛け替えてからそこそこの時間は経過しているように見えます。とはいえ、ここの看板はしばらくチェックしていなかったので掛け替えのタイミングを見逃したのは痛い。

在日米軍相模原補給廠の一部が返還されるのに伴い、補給廠では何やら動きがあるようです。返還予定となる箇所は広報さがみはらのPDFを見て頂くとして、道路で隔てられた共同使用区画を結ぶ橋が作られているようです。

tpa113102.jpg

場所は大体この辺り。ストリートビュー見れば分かるよという話ではありますが、開通前の様子は残しておいた方が良かろうということで撮ってみました。

tpa113109.jpg tpa113110.jpg tpa113103.jpg tpa113105.jpg tpa113104.jpg tpa113108.jpg tpa113106.jpg tpa113107.jpg tpa113113.jpg tpa113115.jpg tpa113114.jpg

この近辺の歩道では、防衛省の境界標(?)を二つ見つけています。

tpa113112.jpg tpa113111.jpg

建て替え完了後の都留線をきちんと撮り直しておきたいのですが、なかなか時間が取れません。57.60kg(05:10)

05-Oct-2014
[OpenBSDではよくある話。(2)]

28-Oct-2009に書いた、OpenBSD/amd64上でbinutils-2.18 + gcc-3.4.6 + newlib-1.17.0で無理矢理作った超漢字開発環境の話の続き。OpenBSD-5.5にしたことでまた開発環境(に使われているgccとbinutils)の作り直しが必要になって、非常に面倒だったのでしばらく放置していたのですが…どうせやるんだったらbinutils-2.19.1 + gcc-4.2.4 + newlib-1.19.0で作ったらどうなるだろうとちょっと実験してみることに。まあ既に誰かがやっているとは思うのですが。

実はあれを書いた当時もgcc-4.2系を使おうかと思っていたのですが、specsの扱いがよく分からなかったという理由でgcc-3.4系に逃げていました。gcc-2.95系に作られたヘッダやバイナリとの互換性を考えても、3.4系を選ぶ方が良かろうというのもありまして。とはいえ、十分な時間も過ぎたことですし、どうせダメならgcc-3.4系の環境で作り直せばいいやということでえいやあと作業。

gcc/binutilsの挿げ替えは、28-Oct-2009のReadMeに書かれているbinutils/gcc/newlibのバージョン番号を読み替えるだけで大丈夫そう。specsについてはこんな感じのものをとりあえず$(BD)/tool/gnu/lib/gcc/i386-unknown-elfに置いて、これを呼び出すよう$(BD)/tool/gnu/i386-unknown-elf/bin/gcc386を修正

参考:技術/Linux/uClibc/03, x86(32bit) PC環境でuClibcを試す

specsの置き場所はどこでも良いので、もっと他に良い場所があればそこへ置いて下さい。あと、02-Feb-2009の時と同様に、試しにビルドした/usr/local/brightv/util/sample/pcatの中身(ただしMakefileは除く)を提出しておきます。57.90kg(06:30)

01-Oct-2014
[OpenBSD-current/i386環境の用意]

OpenBSD/sgi クロス開発環境の構築を参考に、OpenBSD-current/armv7のクロス開発環境をOpenBSD-5.5/amd64上で行ってみたんですが…どうもOpenBSD-current/armv7のビルドはOpenBSD-current上で行わないとダメみたいで。という訳で、そこに転がっていたNetBookにOpenBSD-current/i386を放り込んで開発環境を用意してみるかと。

OpenBSD/armv7向けのクロス開発環境の構築と、これを使ったカーネルのビルドは簡単で、5 - Building the System from Source等の手順に従って/usr/srcにソースツリーを用意した状態で


cd /usr/src
make obj
TARGET=armv7 make cross-tools
cd /usr/src/sys/arch/armv7/conf
config GENERIC-SUNXI
cd ../compile/GENERIC-SUNXI
make CC=/usr/cross/armv7/usr/arm-unknown-openbsd5.6/bin/arm-unknown-openbsd5.6-cc \
 LD=/usr/cross/armv7/usr/arm-unknown-openbsd5.6/bin/arm-unknown-openbsd5.6-ld -j2

とでもすればok。

問題はここから先。script.binは使わないけれど、これを作成するために必要なsunxi-toolsの構築は前回にある通り。ただしgit, gmake, libusb1をpkg_addしておく必要あり。OpenBSD-5.5の時はcommon.hにle32toh(x), le16toh(x)の定義を追加していたけれど、-currentでは<endian.h>側でこれらをサポートするようになるのでsunxi-tools.diffはそのうち直さないといけないかもしれない。

問題は、U-Bootの構築に使うtoolchain。binutils-2.24 + gcc-4.8.3 + newlib-2.0.0の組み合わせだとgcc-4.8.3のビルド中にcore吐いて落ちるので(OpenBSD-5.5/amd64ではそんなことはなかったのに)、binutils-2.24 + gcc-4.7.4 + newlib-2.0.0の組み合わせで。ARMバイナリさえ吐ければ良いという理由につき、gcc-4.7.4/gcc/config/arm/t-arm-elfの修正は一切無し。configureの設定はいつもと同じで、binutils-2.24は../configure --target=arm-none-eabi --prefix=/usr/local --enable-interwork --enable-multilib --disable-nls --disable-werror、gcc-4.7.4は../configure --target=arm-none-eabi --enable-languages=c --prefix=/usr/local --enable-interwork --enable-multilib --with-newlib --disable-nls --disable-libssp --disable-libgomp --with-gmp=/usr/local --disable-lto。

とりあえずこれでU-Bootの構築ができることを確認して…今日は時間切れ。59.75kg(18:30)