GENODE OSとGalliumドライバ

GENODE OS上でGalliumのドライバを動かせたという話
(記事を読む限りだと、4,5年前にはすでに実現していて
今でもメンテナンスされてますよ、って話なのかな)

Doing Graphics Hardware Acceleration With Microkernels
http://www.phoronix.com/scan.php?page=news_item&px=GPU-Microkernel-Support

まず、GENODE OSってのは知らなかった。
セキュアな環境を実現するためのMicrokernelなOS。
Microkernelにすることでカーネル自体のコード行数を減らし、
コードの検証をやりやすくする、ってことみたい。

まぁ、Micro kernelでもMonolithic kernelでも、
責任の所在がどっちになるかという問題のような気がしてて、
個人的にはどちらでも良いけど…。
(もちろん、見通しの問題もあるだろうけど、あまり利点があるとは思えない)

GalliumはLinuxのグラフィックスドライバのフレームワークの名称。
Mesa(Linux向けのOpenGLドライバ実装)の中に
このGalliumの仕組みを使ったグラフィックスドライバが実装されている。

この記事の面白いところは、Galliumの実行はLinuxでないと無理だろうなぁと
思い込んでいたけど、やろうと思えば他のOSでもできるという点。
ざっと見た感じだと、DRM(Direct Rendering Manager : Linuxカーネルドライバのうち
グラフィックスのリソースなどを管理するドライバ)に相当する部分を
Graphics Execution Managerという仕組みでユーザランドで実現している。
この辺りの話は2010年の以下の資料にのっていた。

http://genode.org/documentation/release-notes/10.08#Gallium3D_and_Intel_s_Graphics_Execution_Manager

極端な話、iTRONとか組み込み系のOSでもできなくはないんだろうな。

Posted at : 2015-09-25 11:48:22 / Category : none

ESP-WROOM-02用のピッチ変換基板を作る (3)

データをgithub上に上げてみました。
使ってみたい方はご自由にどうぞ〜

https://github.com/yasuharu/esp-wroom-02_conv_board

Posted at : 2015-09-24 11:37:11 / Category : none

ESP-WROOM-02用のピッチ変換基板を作る (2)

回路図、ボード図と実装完了したら、次にデザインルールのチェックをする。
EAGLE用のDRUファイルが以下にあるので、ダウンロードして使用する。

https://www.switch-science.com/pcborder/techguide/

最初はずらーっとエラーが出るので、一つ一つ対応していく。
今回作ったものだと、ほとんどがシルクとパッドが接触している、というエラーが多かった。
ライブラリの段階でダメなものが多かったので、
ライブラリをコピーして適当にシルクを修正した。

エラーが出なくなったら、最後に提出用データの作成。
上記のURLからCAMファイルをダウンロードしてきて、
CAM Processorからファイルを読みこませる。
(Mac版の場合、メニューバーからFile -> Open -> Job...を選択
上のメニューに出てると思わなかったので、一瞬わからなかった)
Proceed Jobを実行すると必要なファイルが出力される。

出力されたファイル

出力されたファイルで必要な物だけ取り出して、zipでまとめる。
これでデータの作成は完了。簡単にできるね…。

後はデータをアップロードして、先方からの確認がないか待つのみ。
ミスがないといいなぁ…。

Posted at : 2015-09-24 10:54:39 / Category : none

ESP-WROOM-02用のピッチ変換基板を作る (1)

ESP-WROOM-02というWifi付きのSoCが気になって、早速秋月で買ってきた。

Wi-Fiモジュール ESP-WROOM-02
http://akizukidenshi.com/catalog/g/gM-09607/

特徴は以下のとおり。

  • 安い(10個購入時で450円)
  • 技適に通っている
  • Wifi付きのSoCなので単体でいろいろとできる

ピンピッチが1.5mmなのでこれを変換する基板を用意する必要がある。
専用のものも探せば売っているので、それを使うのも一つの手。

と思ってたんだけど、そういえばこんなのあったな、と。

基板製造サービス「スイッチサイエンス PCB」ベータテスト開始 - スイッチサイエンス
https://www.switch-science.com/pressrelease/pcb_betatest/

9月中なら10枚たったの1713円で作れるという…。すごい。
今後使う可能性もあるので、ちょうど良いテスト基板として作ることにしてみた。

とりあえず、一通り作ったのがこんな感じ。

基板

Posted at : 2015-09-24 10:09:32 / Category : none

VPS再検討…が、現状のまま

今現在、VPSの契約が2つある

  • さくらのVPS / メモリ2GByte, HDDプラン
  • Conoha / メモリ1GByteプラン

どちらもそこそこ負荷はかかっているので、2つある事自体は問題なし。
ただ、気になってるのは、後者のほうの以下の点

  • メモリ1GByteだとたまに上限に引っかかる
  • ネットワークが遅い(というより、さくらが速いので相対的に感じる)

AWSにしようか、とか、いっそHerokuに一部移すかとかも
考えてみたけど、どちらもコスト的にいまいち。
動かしているサービスで利益が出ているのであれば、
投資と考えられるけど、現状は特に無いので最小限のコストで。
そうなると、現状のままでいっか…となりました。

Posted at : 2015-09-21 08:44:52 / Category : none

HTMLのnbspにはまった話

HTMLの&nbspが半角スペースだと思ってたんですが、実は違ったんだね…。
半角スペースはUnicodeでU+0020、対して&nbspはU+00A0となり、
別々の文字コードとなる。当然見た目は同じなんだけどね。。。

どういう状況でこれに困るかというと、スクレイピングしたデータをパースしたい場合。
Rubyで例えば、以下のようにsplitしたとき区切り文字がnbspだとうまくいかない。

1irb(main):001:0> s ="2503 Hoge Fuga"
2=> "2503 Hoge Fuga"
3irb(main):002:0> s.split(" ")
4=> ["2503 Hoge Fuga"]

じゃあどうするか?

1irb(main):003:0> s.split(/\u{00A0}/)
2=> ["2503", "Hoge", "Fuga"]

Unicodeを直接指定すればできる、と。
空白のはずなのにsplitできなくて小一時間悩んだ。

Posted at : 2015-09-05 15:41:40 / Category : none