「 2016年01月 」一覧

N3150M で ESXi 6.0 を動かす

Braswell 環境では ESXi のインストールが正常にできず、
ESXi を使用することが出来ない、と以前は結論付いたのですが、
制限がありながらも動作させることができた、という情報を元にチャレンジしてみました。

制約は、ローカルの画面が使えないこと。いわゆるヘッドレスという状態での使用しか出来ないことです。画面は出せないが、内部的に動作は正常に行えている、という状態ですね。

esxi60-usb-5

必要なもの

  • USBメモリ (8GB)
  • カスタムの ESXi 6.0 イメージ
  • VMware player

手順

概要としては以下のようなステップとなります。

  • カスタムの ESXi 6.0 イメージを準備する
  • VMware playerを用いて起動可能USBメモリを作る
  • そのUSBメモリにはシステムの設定を施しておく
  • N3150M に準備したUSBメモリを装着して起動
  • sshやvSphereClientを用いて別PCより接続

要はインストールが実機で行えないので、仮想マシンを利用して設定を済ます、というイメージです。 続きを読む


DevTexThumb 0.9.1 に更新しました

テクスチャ画像ファイルのサムネイル拡張の DevTexThumb を更新しました。
今回 0.9.1 では、TGA や DDS で一部読み込めないファイルが存在していた点への対応です。

DevTexThumb のページはこちら。

TGA ではインデックスカラー(パレット)のタイプへの対応と、16bit 形式でアルファチャンネルがついたものの処理を見直しました。


EGL_MESA_platform_gbm 拡張

今更かもしれませんが、 EGL_MESA_platform_gbm という拡張が出現しているようでした。
さらりと中身を見てみると、 Xorg 関連の初期化不要で、 EGL と GBM の初期化だけで OpenGL ES が使えるようになるものと思われます。

手元の環境では VMware Player 6 のドライバおよび Fedora23 では、この拡張が出現しませんでしたが、 Mesa の今後の Version アップにより使えるようになるといいなと思いつつ待つことにします。


X-Window なしで OpenGL ES2 を使う その2

前回 実装はしたので、これらがちゃんと各環境で動くのかを確認してみたいと思います。

VMPlayer 6

VMPlayer6上での Fedora23 での結果は以下の通りです。
OpenGL ES 3.0 のコンテキストが生成されています。ベンダ名やレンダラ名から一応完全ソフトウェアエミュレーションで動いているというわけではなさそうです。
動作速度的にもドライバがちゃんと機能していそうです。

Radeon

Debian8 で RADEON HD 7750 が刺さっている環境での結果は以下の通りです。
OpenGL ES 3.0 のコンテキストが生成されており、オープンソースドライバで動いているようです。

ここでは省略ですが、DisplayPort, HDMI, DVI の端子を保持するボードのため、
これらの情報も Connector として検知できているようでした。

Intel

Debian8 で オンボードの Intel チップ(G41)でも同じように試してみました。
古いチップではありますが OpenGL ES 2.0 で描画可能でした。

こちらは VGA 出力でしたがコネクタタイプも正しく検知できてました.

NVIDIA

Debian8 で NVIDIA Geforce 750Ti で試してみました。

見ての通りオープンソースドライバで動いているようです。
こちらについても接続端子の情報はうまく取得できていました。

まとめ

簡単ですが各環境での動作確認を行いました。試してみた範囲ではうまく動作できているようです。
Linux におけるメーカー公式ドライバではちょっとインストールに手間取り十分な確認ができていませんのでご注意ください
(おそらく NVIDIA 公式 Linux ドライバでは動作しないと思われます・・・)


Vulkan の情報

2015年に Vulkan がAPI公開、ベータドライバ公開という大きな変更がくるかなと思っていましたが、それは起こらず静かに終わりました。
しかし、最近になって Vulkan の情報が徐々に増えてきているのを感じています。

その中でも、 NVIDIA のドキュメントがすごく理解しやすい感じにまとめられていたので紹介します。

https://developer.nvidia.com/engaging-voyage-vulkan

DirectX12 を既に理解して触られている方は、 Vulkan ではこうなっているんだね、という程度で難しいところはないと思います。
ただ逆に DirectX12 を触ってみたけど、何やっているかよくわからない、という人にとってはこの情報はその理解を助けるものになるんじゃないかとも感じました。少なくとも自分は、 Allocation Management の図が非常に良い図に仕上がっていると思います。


X-Window なしで OpenGL ES2 を使う

今まで Linux で OpenGL を使うといえば、 X Window (X11, Xorg) が必須と考えていました。組み込みな何かならフレームバッファ直指定で OpenGL が使えると思いますが、デスクトップ環境においては使えないと思っていました。
 しかし、割と最近になって Linux 側のほうで KMS (KernelModeSetting), DRM が進化して、X Windowなしでも OpenGL(ES2) を初期化して使用することが可能になっていたようです。 kernel 3.x 以降で /dev/dri/card0 などが存在している環境で使えるようです。
もちろん従来の方法で、EGL+GLES2 を X11 上で使うことも可能です。(このEGL,GLES2 を X11 で動かした日記はこちらに)

必要なもの

Fedora や Ubuntu なら以下のパッケージらが必要です。

X-Window が起動している必要はありませんでしたが、ライブラリは必要なようです。詳しく確認出来ていませんが、EGL,GLESv2 らが要求してしまうのかもしれません。

結果

X-Window なしで動いているのですが、スクリーンショットではわからないですね。VMware の中で動作させています。
kms-gles2-cube

実装方法など

X関連のコードは不要になのですが、代わりに色々と必要になるものがあります。ひとつは DRM (Direct Rendering Manager), もうひとつが GBM (Graphics Buffer Manager) です。これらの初期化が必要になります。

今回試しに Gist によるコード貼り付けで以下を説明していきます。 続きを読む


Linux でも使える Git の GUIクライアント

git 操作はコンソールで行うのが一番確実で柔軟に対応できるのですが、GUIがあっても損ではないので調べてみました。ただ実用的に使えるかどうかまでは調べていませんのでご注意ください。

Gitk
本家定番のツール。これで出来ないこともないけれど他のツールのほうが優れているならそちらを使用したい。

GitForce
WindowsとLinuxに対してツールを提供している。
ぱっと見たところログのグラフが無いようなのでつらいかも。

QGit
2007年で開発停止。スクリーンショットを見る限りでは普通。

git-cola
Windows, Mac, Linux(archlinux,debian,fedora,gentoo,ubuntu,opensuse) と対応範囲が広い。Pythonで実装されている模様。
スクリーンショットを見る限りこれは検討するに値しそう。

tig
text mode interface for git ということらしい。GUIではないけれど、git のコマンドラインラッパーということで。
単純なコマンドたたきはつらいが、これなら使える気にさせてくれるかも。

Giggle
開発が停止している模様.こちらもログの描画はそれなりに出来る模様。

git-cola を試してみる

インストール

Fedora23 で試したときには以下のコマンドを実行しました。

起動

git-cola とタイプすれば起動します。即座にはコードのコミットを行うモードとなっているようです。

コミット要約のテキストボックスと、コミット詳細のそれぞれのメッセージを入力する部分が独立しているので、コミットメッセージの書き方をある程度整えることが出来そうです。
またこの画面でメニューから項目を選ぶことでリポジトリ操作が可能なようになっていました。

git-cola-1

グラフィカルな履歴を見る場合には、メニューから “View/DAG” と選択します。
コマンドラインで直接 git-dag とタイプしても起動できるようです。

git-cola-2
複数のブランチを集約してグラフ化する方法はちょっと見つけられませんでした。
コミットログの確認の部分がやりにくいため、自分のスタイルには合わなさそうでした。ただログを確認せずガンガン進むような人は扱いやすいのかもしれません。

tig を試してみる

tig: text mode interface for git を試してみます。
最初の感想としてはこれは常用アリかなと思っています。CUIだけどマウス操作もちょっとできたりして驚きです。

インストール

Fedora23 で試したときには以下のコマンドを実行しました。

起動

実行するには tig とタイプします。デフォルトではカレントブランチの情報しか出ないため、すべてを表示するには “–all” オプションを使用します。

起動すると以下のようになります。コミットログを確認するモードで立ち上がりました。

git-tig-1

ブランチへの派生グラフがスラッシュ、バックスラッシュを使わない描画のためか、自分には割とこれが見やすかったりします。

git らしくコミットのフェーズがステージング、コミットと分かれた方法になっています。
ステータスビュー(“S”)に切り替えた後、コミット対象を”u” で選んで、”C”(Shift+s) でコミットメッセージ入力となります。

これらのヘルプを確認するには、”h” となっています。

git-tig-2
いくつか機能としては足りていない部分があり、たとえばブランチの切り替えはこのツールでは見当たらない感じだったので、git コマンドを操作することになりそうです。
ただ設定ファイル(.tigrc) で拡張コマンドを定義できたりデフォルトの設定を変えたりと柔軟なことが出来そうだったので、カスタマイズをちゃんと行えば出来る範囲は広がっていくものと思われます。

その他

カーソルキーではビューの移動になってしまい、スクロール関連に戸惑いました。
アクティブのビューでのページスクロールは PageUp/Down で、1行単位での行スクロールは、”j”, “k” となっています。
git add -p のように部分的な変更をステージングへ登録する際にはこれも使用することになります。行を選択して “u” で、その部分をステージング登録できます。
これは git add -p を直接実行するよりは使い勝手がよいと感じています。

git-tig-3

まとめ

とりあえず gitk を卒業して tig で Linux での git 生活を始めてみようと思います。


DRM/KMS についてメモ

以下のメモは概要把握としては間違っていないようには心がけたつもりですが、
間違っている可能性が大いにありますので、鵜呑みにしないようご注意ください。

DRI, DRM, KMS の目的

昔は Xサーバーが描画を一手に引き受けていたため、描画に関するコードが X依存になってしまっていた。OpenGL など最近のグラフィックスを描画使用したいケースで問題になってしまう。また Xorg の設計が古くて現状耐えられない状況にきていたりもするようで。

LibDRM

DRMカーネルモジュールはユーザー空間に危険な(不安定な)APIを公開しているので、
アプリが直接この DRMのモジュールを使うべきではない。その代わりに libDRM が提供されているので、アプリはこちらを使用する。この libDRM は Xからも使用される。

DRM (DRMcore)

カーネルモジュールです。これはすべてのカードに適用されるモジュールです。
このモジュールがロードされるとカード固有の DRM ヘルパモジュールが動きだして、
機能ポインタのセットを含めた状態でシステムに登録される。
これにより /dev/dri/card0 などのデバイスファイルが作成・登録される

KMS (Kernel Mode Setting)

ユーザースペースではなくカーネル空間側でディスプレイの解像度・色深度を設定するモジュールです。他の利点としてシステムは素早くグラフィックスの機能を使用可能になったり、ちらつきの問題改善などがあるらしい。

DRM/KMS

これらをまとめて DRM/KMS という表記をしている模様。つまり KMS をサポートしたドライバがあるなら libDRM を直接叩いて描画コードを作れば、X11(Xorg) なしでも画面描画が可能になりそうな感じです。Xサーバーの実装さえ、この libDRM 経由っぽいですし。

これらの関係らをブロック的に表すとこういうことだろうかと思います。
libdrmkms