31-Dec-2014
[年末年始の恒例行事にした覚えは無いのだけど]

04-Jan-2014およびそれ以前で何度かやっている、OpenBSD/amd64上でのHAIKUのビルドに挑戦する話の続き。

とりあえず現状のbuildtools/jamの修正haiku/にある各種ファイルの修正。endian.h, regex.hの追加もdiffに含めています。

前回は2.64を設定していたAUTOCONF_VERSION、2.69でも良さそうです。ある時を境にjam @imageを実行するとjamが落ちるという問題が起こるようになりましたが、ulimit -d 33554432を実行して割り当て可能なリソースを増やすことで回避してください。build_cross_tools_gcc4の--disable-ltoは相変わらず必要です。

GitHubにあるソースコードだとこんな感じでなんとなくビルドが進みますが、haiku-os.orgにあるソースコードも同様にこんな感じでなんとなくビルドが進みます。どちらも例によってビルドは完了しないと。

一つ気になるのは、Linux上でhaiku-os.orgにあるソースコードを使用してビルドを試みてもエラーが出て完了しないこと。たまたま拾ったコードに問題があったのか、拾い方に問題があったのか…理由はよく分かりません。適当に時期をおいて、再挑戦することになるのでしょうか。

来年もよろしくお願いします。59.35kg(06:20)

25-Dec-2014
[相模中央青果市場卸売市場裏手の開拓碑。]

とある方から、青果市場の裏手に石碑があることを教えてもらったのでちょっと見てきました。青果市場裏手のエリアって整然とした住宅街(橋本ライフタウン)があるので石碑とは縁遠い場所だと思っていたのですが…

tpc243299.jpg tpc243302.jpg

tpc243300.jpg tpc243301.jpg

開拓碑と記された石碑の裏側には昭和二十四年七月建之、北相開拓農業■同組合、橋本第一開墾組合、橋本第二開墾組合、相原開墾組合、大澤開墾組合と記されています。他にも、関係者の方々の名前等が記されているようなのですが、読み取れませんでした。

相模原市内の石碑ネタで困ったときに検索すると、多くの場合は相模野の自然と文化財がヒットするので何かヒントとなるものはないかな…と探してみたのですが、橋本地区のページには橋本新開の開拓碑とだけ記されており、続きは橋本新開をキーワードに自分で探す必要があります。

詳しく調べるのはとりあえず後回しにして、あんな場所に石碑があった(そして今までそれに気付かないでいた)という驚きだけは、日記に記しておこうかと。58.20kg(05:30)

24-Dec-2014
[CP2110覚え書き(4)]

uhidev(4)に手が入った部分、uhidev.hをみると分かるのですが単に引数の形が変わっただけでなく戻り値の形も変わっていて、思いっきりハマっています。しかも、uhidev_set_report()の戻り値は指定した転送長をそのまま返してくれるのですが、uhidev_get_report()については転送長+1(Report IDのサイズが含まれる)という非対称な作りになっている点も厄介です。

何故uhidev(4)に手が入ったかというと、どうもupd(4)が扱うUPSの中で頓珍漢な値を返してくる物があり、その対策ということらしいのですが…何にせよ面倒な問題に巻き込まれたことは間違いありません。

という訳で、-currentで動くように修正したuslhcom.c, uslhcomreg.hを上げておきます(作業に時間をかけすぎた気がしなくもないのですが)。相変わらずなんとなく動いている感じなので、もう少し動作を確認して、然るべき場所に投げてみるとしましょう。59.20kg(14:15)

20-Dec-2014
[CP2110覚え書き(3)]

OpenBSD-5.6向けにuslhcom(4)なるドライバを作ってみました。最初はuhidcom(4)という名前を使っていましたが、「名前がtoo generic」と言われてしまったのでこんな感じの名前になっています。XR21B1421の評価ボードを買って、uxrcom(4)にした方が良いんじゃないかと今でも思うのですが金がないので仕方がありません。

なんとなく動いているようなので作業中のファイルの中からキモとなる部分であるuslhcom.c, uslhcomreg.hだけ上げておきますが(組み込み方法は説明しなくても大丈夫ですよね?)、-currentではuhidev(4)回りに手が入ってしまいどーしたものかと頭を抱えています。

とりあえず動くコードが手元にある以上、あとは移植だけと考えれば気楽…かな?ちょっとの手直しで済めば良いのだけど。58.8kg(05:40)

17-Dec-2014
[今更なんですが]

超漢字開発環境でお馴染みのGterm 2.05を、OpenBSD上で動かしてみました。なお、開発環境に含まれているGterm 2.03はどう頑張ってもOpenBSD上では動かないので、必ず2.05を使用する必要があります。

ぶっちゃけた話、gterm.[ch]内のgetline()が<stdio.h>内のgetline()と衝突するため、get_line()にリネームするだけでコンパイルは通ります。とりあえずこれに加え、細かいwarning潰しと57600/115200bps対応を突っ込んだdiffを置いときますね

おそらくT-Kernel/x86開発キットに入っているGtermの方がより新しく高機能な気もするのでしょうけど、モノが(高価すぎて)手に入らない以上は試しようもない訳で…59.15kg(12:30)

20-Dec-2014補足:何らかの理由によりDCD信号が適切に設定されない場合、Gtermはうんともすんとも言わない(起動時の<< Gterm ver 2.05 : 020222 >>すら出ない)状態になります。余計なお世話だとは思いますが、open()にO_NONBLOCKを追加しておきました。追加前のdiffはこちらに移します。

14-Dec-2014
[OpenBox移行中。]

今までウィンドウマネージャは長いことBlackBoxを使っていたのですが(どうやら2000年の終わり頃には使っていたようだ)、OpenBSD-5.6になってからか他の理由かは分からないものの、ウィンドウフォーカスの動作が怪しくなり使うのが不便になってしまいました。設定ファイル類はこんな感じで、特におかしなことはしていないはずなのですが….blackboxrc menu DarkGray(※Grayを改造したスタイル)

不便な状態が続くのも困るので、OpenBoxへ移行します。BlackBox/FluxBoxは基本的にそれだけで完結するような作りになっているようですが、OpenBoxの場合、コンフィギュレーション(obconf/obmenu)やパネルは別途アプリケーションを用意してね!という方針に変わっているようです。

とりあえず$HOME/.config/openboxのmenu.xmlを書き直して、rc.xmlをこんな風に修正することで前に近い感じで使えるようになりました(rc.xmlの修正を行わないと、タイトルバーのダブルクリックでウィンドウシェードon、シングルクリックでoffという気持ち悪い動作になる)。BlackBoxの場合はスタイルからbsetrootを呼んで壁紙を設定するようになっていますが、OpenBoxの場合はそんなことはしないのでとりあえず.xsession(.xinitrc)にxsetroot -solid "#2c2c2c"とでも書くことにします。

あとはテーマを微調整して(Clearlooksをそのままグレー系にした物があれば良いのだけど、Syscrashだとヘンな味付けをしているのが辛い)、パネルアプリ探しですかね…Windowsのスタートメニューのようなものは要らなくて、時計とbiff、現在実行中のアプリケーションを表示する程度で十分なのですが。

…そんな訳で、本来やらなければいけないタスクが停滞中です。ここんとこ、他店への応援が週に2〜3回はあって結構神経使っちゃうので早朝に起きられないというのもあり、何も進みません。年賀状も作らないと…58.9kg(06:30)

10-Dec-2014
[CP2110覚え書き(2)]

ちょっと気になったので、50bps/2Mbps動作時の波形を見てみました。左が50bps、右が2Mbpsになるのですが…

sds00001.png sds00002.png

なんか波形の他にも色々な物が表示されていますがそれは脇に置いといて、一応指定した速度は出ているようです。評価ボード(CP2110-EK)上のTXD/RXDを直結した状態でHidUartExample.exeを試すときちんとループバックしてくれますので、おそらくCP2110の動作に問題は無いのではないかと。となると、何故データシートの記述が300〜500kbpsに限定されているのかが気になります。

もっとも、UART側で2Mbps出せたとしても、USB側はwMaxPacketSize=64のインタラプト転送でUARTのFIFOにデータを出し入れするので、ここがボトルネックになります。USB HIDのReport IDで1byte食われるために63byte/msec→6300byte/secがUSB側の最大値のはず。本気でUARTを使うなら他の(バルク転送を使う)適当なチップを選んだ方が良いんじゃないでしょうか。

とはいえ、USBのLow-speedデバイスでCP2110のプロトコルを実装すると面白いんじゃないかなと思うんですよね。なんとなくですけど。58.85kg(16:15)

01-Dec-2014
[CP2110覚え書き]

lsusbするとこんな感じで、やたらと大量のHID reportを返してくる。pastebin.comにも似たようなものを貼り付けたものの、ログインせずに貼ってしまったのでこちらにも上げておく。

CP2110 AN434(CP2110/4 Interface Specification) Rev 0.4のGet/Set UART Configの説明、Baud Rateの設定はビッグエンディアンであることに注意。また、Data Bitsは0x05〜0x08を設定すると書いてあるが実際には0x00〜0x03を設定しないといけない。不正な値を設定した場合、リクエストを受け取る(STALLは返さない)がリクエストの内容は全て無視される模様。また、Baud Rateの範囲は300〜500,000となっているものの、SDK付属のHidUartExample.exeでは50〜2,000,000が設定可能。念のためUSBアナライザでSet UART Configの内容を確認したが、後者の内容でリクエストを発行していた(しかしUARTが実際にこの速度で動いているかどうかまでは未確認)。

この辺については似たようなインタフェースを持つXR21B1421の資料も参考になるんだけど、Silicon Labs, EXARの他にも類似のチップがあるのかなあ?58.20kg(04:50)