30-Nov-2011
[食事メモだけ。]

29-Nov-2011: 朝昼:いつもの。夕:スーパーで買ったおにぎり、パン。

30-Nov-2011: 朝昼:いつもの。夕:桃華飯店にて。61.15kg(23:20)

28-Nov-2011
[実は、父親になりまして。]

It's a girl!のツイートで気付いた方もおられるかもしれませんが、表題も含めてつまりはそういうことだったという訳です。

入院して陣痛促進剤でも使ってのんびり自然分娩でもするのかなーと思いきや、いきなり「胎児がちょっと危険な状態にあるみたいだから帝王切開で出産するって」とかいきなり妻から電話が掛かってきてうろたえましたよ。現場にいないために得られる情報も限られている以上、病院へ着いても待つしかできない訳で。

とは言え、そんな状況でも出産はできるのですから、今の医療は凄いもんです。現代の医療技術、そしてそれを支える医療スタッフの皆様には、ただだ感謝するばかりです。

で、自分は初日に何をしたかというと、結局何もしてません。顔は見ましたし泣き声は聞いたけど検査だか何だかで結局娘はずーっとどこか他所に行っちゃってるし…トータルで20分くらいしか一緒に居なかったという。

こんなんで大丈夫なんですかねえ?会社へ出かけるときに「また来てねー」とか言われるような身になりやしないか、今から頭が痛いです。とりあえず、未熟者ですがよろしくお願いします>娘

朝:いつもの。昼:食べてない。夕:スーパーで買ったおにぎり、パン。60.40kg(22:10)

27-Nov-2011
[えーと]

色々省略です。当初の予定から随分遅れているので、こちらも気が気ではないというか。まあ最初はそういうもんらしいですし、少なくともこちらでどうこうできる類のことではありませんからねえ…60.35kg(23:05)

22-Nov-2011
[久々にマシンを組み立てました]

19-Oct-2011で突撃したA8-3850に、ASRockのA75 Pro4を組み合わせて、メモリを8G載せてみました。HDDは値上がり始めた頃に押さえておいた1TBの物を使っています。ケースや電源、光学ドライブはDOSPARA通販で適当に。

組み立ては2時間半くらい掛かってます。理由はこんな感じ。

ケースのばらし方に悩む
部屋が明るくても、黒いケースなので何が何やら。懐中電灯大活躍。フロントパネルだけ外せば良かったのに他のパネルも外してしまったりとか。
電源の取り付けに悩む
イマドキのケースって電源は上じゃなく下に置くみたいですが、電源の向きはどっちでも良いって説明書に書かれても困っちゃうよねー。とりあえず、電源に付いてるファンが上を向くようにしておきました。
HDD/光学ドライブの取り付け方に悩む
イマドキのケースって、ネジを使わずにこれらのドライブを固定できるんですね。思わずネジを用意して取り付けそうになりましたよ。
CPUクーラーの取り付け方に悩む
リテール品ではなくCOOLER MASTERのVortex Plusを付けてみたのですが、取り付けに使う金具はたくさんあるし説明書読んでも取り付け方向がなんだかよく分からないし分かったとしても金具が固くてリテンション壊しそうになったし。
配線の引き回しに悩む
ファンはたくさん付いてるしなんかLED用の電源まであるしで、もうどうしろと…

なんか最近の自作って、昔より難しい気がします。FDD/HDDのコネクタの逆挿しとかを心配しないで済むのはありがたいのですが、他の部分で神経をがっつり削られる感じです。ゴミ(空き箱)も結構出ますし。

やっぱり今後はBTOか完成品にするか…

ちなみに、OS(Windows7)だけ揃っていません。とりあえず今晩はmemtest86を回して、適当なLinuxでも突っ込んで慣らし運転でもしますかね。

20-Nov-2011: 朝:パン。昼:白飯、肉野菜炒め。夕:市内某所で焼肉。

21-Nov-2011: 朝昼:いつもの。夕:焼きうどん。

22-Nov-2011: 朝昼:いつもの。夕:白飯、焼き魚、スーパーで買った惣菜。60.40kg(23:20)

19-Nov-2011
[うわちゃー…]

どうもあれこれやってみたんだけど、GCCでCortex-M3開発にあるblx <label>問題を踏んでいる模様(ARMv6-M/ARMv7-Mでは、blx <Rm>しか許されない)。


Disassembly of section .text:

00000200 <_text_start>:
     200:       4811            ldr     r0, [pc, #68]   ; (248 <die+0x4>)
     202:       f380 8809       msr     PSP, r0
     206:       2002            movs    r0, #2
     208:       f380 8814       msr     CONTROL, r0
     20c:       f000 e882       blx     314 <board_setup> ; ←これ。

参考にならないと思いますが、野良ビルドしたbinutils/gccでコンパイルしたKOZOS/LPC1114のソースとバイナリ(動きません)を置いてみます。

そういえばKOZOSのCFLAGSって何故か-nostdinc -nostdlib -fno-builtinを指定していますが、-ffreestandingでないのが気になったのでこちらに置き換えています…というか、置き換えないとビルドが通りません。これに伴い、リンカスクリプト(ld.scr)も少し手を入れています。

現時点においては、LPCXpressoやCodeSourcery等の出来合いの開発環境を使うならともかくとして、ソースコードから野良ビルドして開発環境を自前で用意したいという人にCortex-M0(ARMv6-M)は向いていないような気がしています。まだ、Cortex-M3(ARMv7-M)の方がマシなんじゃないかなあと思うのですが…

というか、開発環境周りでこんなに無駄な時間使って一体何やってるんですかね。その時間で他の人達はずっと先に進んじゃっているんですけど>俺

18-Nov-2011: 朝昼:いつもの。夕:白飯、スーパーで買ったサラダ、茹でたソーセージ。

19-Nov-2011: 朝:即席麺。昼:白飯、スープカレー。夕:うどん、ゴボウと肉の煮物(?)。60.55kg(23:30)

17-Nov-2011
[Cortex-M0向けにgccを野良ビルドしてみたは良いんだけど…]

昔作ったKOZOS/LPC1114が動かない…多分まだまだ色々問題があるんだと思う。

configureに指定した物を晒しておくと、

binutils-2.20.1a
../configure --target=arm-none-eabi --prefix=/usr/local --enable-interwork --enable-multilib --disable-nls --disable-werror
gcc-4.6.2
../configure --target=arm-none-eabi --enable-languages=c --prefix=/usr/local --enable-interwork --enable-multilib --disable-newlib --disable-nls --disable-libssp --disable-libgomp --disable-libmudflap --with-gmp=/usr/local --disable-lto
../configure --target=arm-none-eabi --enable-languages=c --prefix=/usr/local --enable-interwork --enable-multilib --with-newlib --disable-nls --disable-libssp --disable-libgomp --disable-libmudflap --with-gmp=/usr/local --disable-lto

binutilsは、どう頑張っても-march=armv6-mを指定した際のSVC命令なんざ知らんというバグを回避できなかったので2.21.1aでなく2.20.1aを使いました。2.21.1a向けのパッチがあるにはあるらしいですが、安易な方向に逃げています。

gccは、libgccのconfigure中にlto関連のモジュールのロードに失敗してビルドがコケてしまうため、--disable-ltoで殺しています。t-arm-elfはこんな感じに数行追加しただけです。

newlib-1.19は、trap.SがCortex-M0未対応ということで--disable-newlibを指定して無効化しています。これもパッチがあるような感じではあるのですが以下省略。

newlibはAnonymous CVSから最新のを取ってきてビルドするのですが、さらにnewlib/libc/sys/arm/trap.Sに以下のような修正が必要でした(libgloss/arm/trap.Sと同一の内容であれば良い)。多分この辺りはそのうち直るんじゃないでしょうか。


uaa@framboise:/usr/local/src/newlib-cvs/newlib/libc/sys/arm$ cvs diff -u
cvs diff: Diffing .
Index: trap.S
===================================================================
RCS file: /cvs/src/src/newlib/libc/sys/arm/trap.S,v
retrieving revision 1.2
diff -u -r1.2 trap.S
--- trap.S      7 Feb 2006 18:44:54 -0000       1.2
+++ trap.S      19 Nov 2011 06:14:29 -0000
@@ -1,5 +1,6 @@
+#include "arm.h"
         /* Run-time exception support */
-#if !defined(__thumb2__)
+#ifndef THUMB_V7_V6M
 #include "swi.h"

 /* .text is used instead of .section .text so it works with arm-aout too.  */
cvs diff: Diffing machine
cvs diff: Diffing sys
uaa@framboise:/usr/local/src/newlib-cvs/newlib/libc/sys/arm$

Twitter上で助言を下さったkikairoyaさん、どうもありがとうございました。

14-Nov-2011: 朝昼:いつもの。夕:白飯、刺身、とろろ。

15-Nov-2011: 朝昼:いつもの。夕:妻にお任せ(白飯、スープ、惣菜屋のハンバーグ)。

16-Nov-2011: 朝昼:いつもの。夕:白飯、野菜炒め、焼いた鶏肉。

17-Nov-2011: 朝昼:いつもの。夕:白飯、鍋物もどき。61.60kg(22:50)

19-Nov-2011補足:newlibを含めないとどうも上手くいかないので、最新のnewlib+一部修正でビルドするように手順を変えています(以前ビルドした時の残骸が何か悪さをしていたのか、まっさらな状態から全てビルドし直したらldがcannot find -lcとゴネるようになってしまったので…)。

13-Nov-2011
[…]

02-Jan-2011で詰まっていたarm-none-eabi向けのgcc-4.5.2の構築、gcc-4.5.3.tar.gzを取ってきてtar zxpf gcc-4.5.3.tar.gz; cd gcc-4.5.3; mkdir arm-none-eabi; cd arm-none-eabi; ../configure --target=arm-none-eabi --enable-languages=c --with-newlib --prefix=/usr/local --enable-interwork --enable-multilib --disable-nls --disable-libssp --disable-libgomp --disable-libmudflap --with-gmp=/usr/local; gmake; gmake installで上手くいきました。※newlib関連の手順については省略しています

gccのバージョンを上げて(ついでにcoreではなくフルセットを用意して)、gmpのディレクトリの指定を追加しただけなんですが…何故?

で、随分昔に作った、KOZOS/LPC1114をビルドしてみたらSVC命令なんざ知らんと怒られる羽目に。


uaa@framboise:~/kozos-3052-experimental/lpc1114/12/os$ gmake
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L startup.S
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L board_setup.S
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L main.c
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L interrupt.c
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L intr.c
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L lib.c
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L serial.c
/usr/local/bin/arm-none-eabi-gcc -c -Wall -march=armv6-m -mthumb -nostdinc 
-nostdlib -fno-builtin -I. -Os -DKOZOS -DCPU_CLOCK=48000000L kozos.c
/tmp//ccHV3ak8.s: Assembler messages:
/tmp//ccHV3ak8.s:681: Error: SVC is not permitted on this architecture
gmake: *** [kozos.o] Error 1
uaa@framboise:~/kozos-3052-experimental/lpc1114/12/os$

ぐーぐる先生にエラーメッセージの意味を問い合わせてみたところ、どうもbinutils-2.21に含まれているgasのバグを踏んだ模様。binutilsの入れ替えか、面倒な…

10-Nov-2011: 朝昼:いつもの。夕:焼きうどん。

11-Nov-2011: 朝昼:いつもの。夕:牛丼もどき。

12-Nov-2011: 朝:妻にお任せ(パンとサラダ)。昼:市内某所にて。夕:白飯、納豆、即席味噌汁。

13-Nov-2011: 朝:即席麺。昼:スーパーで買った弁当。夕:白飯、焼いたラム肉、冷凍庫にあったスープ。61.05kg(22:50)

09-Nov-2011
[それなりに動いているみたいなので]

RSSに対応してみました…と言っても、13-Sep-2008で実験していた、ごくごく簡単なRSSフィードをそのまま持ってきているだけですが。

日記の更新日のみ記したフィードを生成するため、RSSリーダーで全ての記事をチェックするような使い方はできませんし、15-Sep-2008で触れている不具合に関しては相変わらず放置したままですが…場末のweb日記を巡回する労力を多少は軽減できれば良いかなと。

朝昼:いつもの。夕:妻にお任せ(白飯、野菜スープ、納豆)。(23:05)

08-Nov-2011
[…]

そろそろ書いた方が良い気もするのですが、事態が収束するまであの件については何も書かないことにします。

03-Nov-2011: 朝:妻にお任せ(トースト)。昼:市内某所にて。夕:忘れた。

04-Nov-2011: 朝昼:いつもの。夕:白飯、刺身、野菜スープ。

05-Nov-2011: 朝:妻にお任せ(トースト、野菜他)。昼:実家にて。夕:即席そば。

06-Nov-2011: 朝:妻にお任せ(トースト、野菜他)。昼:カップヌードル。夕:パン他。

07-Nov-2011: 朝昼:いつもの。夕:煮込みうどん。

08-Nov-2011: 朝昼:いつもの。夕:白飯、エビチリ(キット使用)、惣菜屋のサラダ。(22:45)

02-Nov-2011
[さくらVPS上のOpenBSD 4.9を5.0にアップグレードしてみる]

自己責任でよろしく。

  1. VPSコントロールパネルのリモートコンソールからrootでログインする。
  2. cd /; mv bsd.rd bsd.rd.4.9; ftp http://ftp.jaist.ac.jp/pub/OpenBSD/5.0/amd64/bsd.rd ※念のためbsd.rdはSHA256を確認しておくこと
  3. rebootしてOpenBSDのブートローダーが起動した後は、boot> boot bsd.rdでOpenBSD 5.0 RAMDISKカーネルが起動する。
  4. あとはいつもの手順どおり。Location of sets?にhttpもしくはftpと答えることさえ忘れなければデフォルトのままで問題無い。
  5. アップグレード後はrebootし、要らなくなったbsd.rd.4.9を削除。Upgrade Guide: 4.9 to 5.0の手順に従って仕上げ作業。
  6. /etc等にある設定ファイルをsysmergeでお手軽に更新する場合は、ftp http://ftp.jaist.ac.jp/pub/OpenBSD/5.0/amd64/etc50.tgz; ftp http://ftp.jaist.ac.jp/pub/OpenBSD/5.0/amd64/xetc50.tgz; export PAGER=less; sysmerge -s etc50.tgz -x xetc50.tgz
  7. 最後にPKG_PATHを適当に設定してから、pkg_add -ui でパッケージの更新。

CD等のインストール用メディアが無いのでかなり緊張しましたが、意外に何とかなりますね…

01-Nov-2011: 朝昼:いつもの。夕:スーパーで買った弁当。

02-Nov-2011: 朝昼:いつもの。夕:白飯、スーパーで買ったおでん、妻が買ってきたサラダ他。(22:15)