27-Jan-2016
[公共下水道水準点?]

自転車で通勤中、南橋本四丁目交差点付近で水準点のようなものを見つけました。

tp1263589.jpg tp1263590.jpg

ぐるっと回って見てみると、それぞれの面に「相」「模」「下」「水」と書かれています。

tp1263591.jpg tp1263593.jpg tp1263594.jpg

「相」の面には「S53 BM-6 H=127.317」、「下」の面には「公共下水道 水準点」と書かれた金属製のプレートが取り付けられています。

tp1263595.jpg tp1263596.jpg

基準点成果等閲覧サービスでこの付近を見てみましたが、特に水準点らしきものは見当たりません。国土地理院の管轄ではないものと考える必要がありそうです。31-Dec-2011にも似たような(国土地理院の管轄にない)水準点を見ていますので、多分そういうものなのでしょう。

他にも、以下のような場所でこれと似たものを見つけました。南橋本四丁目交差点付近で見たものと異なり、どれも金属製のプレートは取り付けられていません。

富士見6丁目交差点近く(サンロード脇)と永井こども医院近辺。

tp1263597.jpg tp1263598.jpg tp1263599.jpg tp1263600.jpg

矢部二丁目交差点近くと矢部四丁目交差点近く。

tp1263602.jpg tp1263603.jpg tp1263605.jpg tp1263606.jpg

セブンイレブン相模原矢部1丁目店近くと南橋本一丁目交差点近く(雪に埋もれています…)

tp1263607.jpg tp1263608.jpg tp1283613.jpg tp1283614.jpg

探せば他にもまだまだありそうな感じですが、相模原市のものであれば市に尋ねたら所在地の一覧とか出てきそうですね…って誰に聞けば良いんだろう?58.90kg(10:05)

28-Jan-2016補足:南橋本一丁目交差点近くのものは撮り直した写真に置き換えました。あと、清新一丁目交差点付近にも水準点がありました(ExifのGPS座標は若干ずれています)。

tp1283611.jpg tp1283612.jpg

05-Feb-2016補足:とんでん星ヶ丘店前にもありました。

tp20130618.jpg tp20130619.jpg

25-Jan-2016
[EduCake、続き。]

86duino IDEに入っているhardware/86duino/x86/cores/arduino/uart.cppを見るに、


#ifdef _VORTEX86EXC_UART_WORKAROUND
	/* To avoid Vortex86EX(D) write sync. issue. */
	io_DisableINT();
	{
		lcr = io_inpb(port->LCR);  
		io_outpb(port->LCR, 0x80); 
		
		do {
			io_outpb(port->DLLSB, port->lsb);
		} while (io_inpb(port->DLLSB) != port->lsb);
		
		do {
			io_outpb(port->DLMSB, port->msb);
		} while (io_inpb(port->DLMSB) != port->msb);
		
		io_inpb(0x80); // do IO delay
		io_outpb(port->LCR, lcr);  
	}
	io_RestoreINT();
#else
	_16550_DLAB_Out(port, port->DLLSB, port->lsb);
	_16550_DLAB_Out(port, port->DLMSB, port->msb);
#endif

LCRレジスタの設定に失敗する可能性だけでなく、DLL, DLMレジスタの設定に失敗する可能性も併せて考える必要がありそうです。

一旦ダミーの値をDLL, DLMレジスタに書き込んでから必要とする値を書き込むようなコードを動かして様子を見ると(diff)、確かに失敗していますね…


setting tty flags
comparam: dlbl: 0c -> 0c dlbh: 00 -> ff
comparam: lsr was 60
comparam: dlbl: 0c -> ff dlbh: 00 -> 00
comparam: dlbl: 0c -> ff dlbh: 00 -> 00
comparam: lsr was 60
comparam: dlbl: 0c -> 0c dlbh: 00 -> ff
comparam: lsr was 60
pf enabled

あまり気が乗りませんが、LCR, DLL, DLMレジスタがきちんと書き込まれたかどうか、全てチェックするようなコードにしないとダメなのかもしれません。

よく分からないのですが、86duinoのuart.cpp、#define _VORTEX86EXC_UART_WORKAROUNDをコメントアウトして上記のworkaroundを無効化したコードがcommitされています(86duino Coding 210に入っています)。

これを書いている時点ではCoding 211がリリースされていますが、こちらではworkaround有効となっており、一体どういうことなのか説明してくれないかなというのが正直な感想です。59.25kg(06:10)

17-Jan-2016
[はいれぞ、始めました。]

OTTAVAPrimeSeatでハイレゾ配信を始めるというので、ちょっと機材を入れてみました。

t20160117.jpg

TEAC Storeで特別限定販売品となっていたA-H01-BとLS-WH01-Bのセット、お値段\24,800+消費税。DSDには対応していませんが、USB-DAC内蔵プリアンプとスピーカーのセットがこの値段ならどうにか手が届くかなということで。

早速動作確認のためWindows10マシンに繋げてみたのですが、最初は音切れがひどく何じゃこりゃ…という状態でした。これはUSB2.0(EHCI)のポートではなくUSB3.0(xHCI)のポートに繋げることで改善されたので、多分そういうものなんだと思います。

OpenBSD-5.8では、「uaudio0: audio descriptors make no sense, error=4」というありがたいお言葉により動作しません。lsusbで各種descriptorを取得してみましたが、A-H01-Bのdescriptorは今まで使っていたMM-SPU2WHのと比べるとずいぶん複雑ですね…

Windows機とはUSB接続、OpenBSD機とはS/PDIF接続で使うことを考えていたので現状のままでも良いのですが、折角なので何とかできないか、とりあえず、USB Audio Class 2.0の仕様書に目を通して足掻いてみましょうか。

その前に、86duino EduCakeの問題も片付けたいところです。

sys/dev/ic/com.cのcomparam()の中、Make sure the transmit FIFO is empty before proceeding.のコメントの処理の後にあるbus_space_write_1(iot, ioh, com_lcr, lcr)の設定でおかしくなること、この時点ではUARTのFIFOもシフトレジスタも空になっていることまでは掴んでいます。

ちょっとした処理を挟めば改善しそうな気がしますが、どうしたものか…58.95kg(06:50)

21-Jan-2016補足:USB Audio Class 1.0と2.0は別物で、ちょっと手を入れて…という程度ではどうにもならない感じに見えます。なお、A-01-BをUSB1.1接続するとUSB Audio Class 1.0で動作するようですね(descriptorが変わります)。

14-Jan-2016
[進捗。]

web日記、改修中です。

それにしても、昔の日記を読むのって意外と(精神的に)ツラい…58.40kg(05:50)

17-Jan-2016補足:一部を除き、ほぼ完了しました(色の変更がまだ終わっていません)。

24-Feb-2016補足:一部の月で行っていた文字色・背景色の変更に関しても対応を行いました。これに伴い、CSSの誤りを見つけているので全ての日記に対し修正を行いました。

12-Jan-2016
[困ったことに]

過去の日記を読み返した際に、いくつかの日記において文字化けが発生しているのを見つけました。この日記は当初ISO-2022-JPで記述しており、その頃に使用していた半角カナが後のUTF-8化によって正しく変換されなかったようです。変換後のチェックを怠っていたため、今になって見つかりました。

という訳で、バックアップを見ながら修正しているところです。文字化けした箇所にはESC(0x1b)が混じっているので、これの有無から修正対象を絞り込み、直しているところです(Jan/2006以降は直しました)。これと併せて、過去の日記全てを目視でもチェックしてみますが…目で見るよりも機械的に弾いた結果の方が多分確実です。

修正が終わったら、Jun-2013Mar-1999およびそれより前の日記のスタイルを現在と同じものに直すことも考えています。これをやってしまうと過去の日記とは一体何なのかという疑問はありますが、AutoPagerize等での利便性を考えるとやっておいても良さそうかなと。

とはいえ、「それより前の」日記をどう直すかが頭痛の種です。これは手作業じゃないと無理…59.00kg(05:50)

06-Jan-2016
[あけましておめでとうございます。]

色々積み残したものが多い昨年ですが(未だに普通二輪の教習は二段階のみきわめが取れない…)、できそうなものは片付けていきたいかなと。

86duino EduCakeでOpenBSDを動かすとシリアルポートの動作がなんとなく不安定という問題を引きずっていて、どうにかならないのかなーと悩んでいたのですが、とりあえずprintf()すればdmesgにログ残るよねということに昨日気付いたのでちょっといじっています。

まずはこんな感じでレジスタの内容を残すようにしてみると、それっぽいものが引っかかりました。


comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 00 c1 83 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 83 0b 60 b0 00 0d 0d c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 0d 0d c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 00 b0 00 0d 0d c1 83 0b 00 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 0d c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 0d c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 00 b0 00 01 0d c1 83 0b 00 b0 00
comparam: ff 0d c1 03 0b 00 b0 00 01 0d c1 83 0b 00 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 0d c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 0d c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 00 b0 00 01 0d c1 83 0b 00 b0 00
comparam: ff 0d c1 03 0b 00 b0 00 01 0d c1 83 0b 00 b0 00
comparam: ff 00 c1 83 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 83 0b 60 b0 00 0d 0d c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 0d 0d c1 83 0b 60 b0 00
comparam: ff 00 c1 03 0b 00 b0 00 0d 0d c1 83 0b 00 b0 00
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00

理由は分かりませんが、DLL/DLMレジスタの内容が正しく設定されていない状況と、LCRレジスタのDLABが正しくクリアされていない状況が起こっているようです。これでは、確かにシリアルポートは動作しませんね…

とりあえずLCRレジスタの書き込みチェックをしてみました。起動時に偶然出てきたメッセージを見るに、LCRレジスタの書き込みに失敗するのは確かそうです。


clock: unknown CMOS layout
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b1 00 
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00 
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00 
Automatic boot in progress: starting file system checks.
/dev/wd0a (e92757a70c986904.a): file system is clean; not checking
setting tty flags
comparam: ff 00 c1 03 03 60 00 00 0c 00 c1 83 03 60 00 00 
comopen: ff 0d c1 03 0b 60 00 00 0c 00 c1 83 0b 60 00 00 
comparam: ff 00 c1 03 03 60 00 00 0c 00 c1 83 03 60 00 00 
comopen: ff 0d c1 03 0b 60 00 00 0c 00 c1 83 0b 60 00 00 
comsetlcr: failed to set lcr 100000
comparam: ff 00 c1 83 03 60 00 00 0c 00 c1 83 03 60 00 00 
comopen: ff 0d c1 83 0b 60 00 00 0c 0d c1 83 0b 60 00 00 
pf enabled
starting network

LCRレジスタの書き込みをリトライするようにしてみましたが、一度リトライすれば良さそうなのでリトライ回数は減らしておくことにします。


Wed Jan  6 11:00:44 JST 2016
comsetlcr: failed to set lcr 1
comparam: ff 00 c1 03 0b 20 b0 00 01 00 c1 83 0b 20 b0 00 
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00 
comparam: ff 00 c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00 
comopen: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00 
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00 
comparam: ff 0d c1 03 0b 60 b0 00 01 00 c1 83 0b 60 b0 00 

OpenBSD/i386 (educake.localdomain) (tty03)

login: 

という訳で、この修正で少し使ってみることにします。なにしろ「なんとなく不安定なんだよなー」という微妙な問題なので、修正の効果を評価するのがなんとも…

という訳で、今年もよろしくお願いします。58.55kg(12:00)