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


Ubuntu で NVIDIA のボード&ドライバを使って試してみました。

NVIDIA のプロプライエタリドライバをインストール

今回使用したのが NVIDIA の Geforce 750 Ti だったのですが、
Ubuntu 15.10 の標準インストールで使える nouveau ドライバでは通常の描画からして異常で使い物になりませんでした。
そこでプロプライエタリドライバをインストールするに至りました。

ドライバのインストールは以下のようにして行いました。

このドライバをインストールしてもうまく動かないようならば、
最初の描画不正の点も相まってボード故障も疑うところでした。
実際のところ、ドライバのインストール後の再起動したあとからは正常に描画できるようになりました。

コマンドでインストールしましたが、GUIからもインストールは可能だと思います。
(Additinal Drivers 関連かSoftwareセンターからできるかと思われます)

プログラムの実行

X-WindowなしでのOpenGLなプログラムを実行してみました。
そもそもこのドライバ使用でも /dev/dri/card0 が出現していたので、
KMS有効であると考えて、先日のプログラムは動くのではないかと思った次第です。

しかし結果は drmOpen で失敗してしまうようで、動作確認に至りませんでした。
NVIDIA のプロプライエタリドライバでも/dev/dri/card0 へのアクセス可能なようでしたが、 drmModeGetResources で失敗してしまうようでした。もう一歩でうまくいきそうな感じがするだけに、残念です。

追記

どうやら KMS サポートしているという見え方がダミーだったようです。
/dev/dri/card0 あたりがすでにダミーデバイスノードとの情報を見つけました。
そのせいもあって、 weston も動作しないという情報もあるようです。

http://wayland-bugs.freedesktop.narkive.com/4zE7PwYd/bug-90323-weston-launch-drmmodegetresources-failed


TortoiseGit で git add -p 相当できた


git には部分コミットを行う機能があります。これがコマンドでは git add -p ですが、 TortoiseGit からもこれと同じことが実現できることがわかったので記録しておきます。

まずは以下のように題材となるデータを用意してみました。
ある要求に対応するコードを実装したものの、途中で発見したバグを同時に直してしまったというケースです。このような場合にはバグ修正と機能追加といったように2つのコミットに分割するのが正しいです。

git-add-1

続きを読む


Ubuntu で Vulkan を試す (成功編)


ようやく Ubuntu で Vulkan のアプリケーション動作をさせてみることができたので、そこまでの方法をまとめておきます。若干強引な作業をしていたり、そもそもベータドライバだったりするので、試す際には自己責任でお願いします。

ubuntu-vulkan-sample-particle

以降の作業は Ubuntu 14.04.4 AMD64 版で、Geforce GTX 750 Ti が刺さっている環境の話でとなります。
また、Ubuntu はクリーンインストールした直後から始めている想定です。

この状態で nouveau ドライバがロードされているため、まずはこれを無効化します。
続きを読む


ようやくUbuntu で Vulkan 確認できた


Ubuntu で NVIDIA の Vulkan ドライバを入れて動作させようとがんばっていたわけですが、ようやく動作させることに成功しました。
ドライバのインストールを強行してなんとかなっているだけなので、綱渡り状態での動作です。サンプルのビルドにもちょっと手間がかかりましたが、以下のように動作させることには成功しました。

結局 Ubuntu 14.04, NVIDIA Geforce GTX 750 Ti という状態でここまでこれたので、正しく導入する方法をこれから探っていきたいと思います。

ubuntu-vulkan-sample-particle


Ubuntu で Vulkan を試す(失敗編)


NVIDIA Geforce GTX 750 Ti が刺さっている Ubuntu環境があったので、
これを Vulkan のドライバを入れてみることにしました。
その作業をここに記録しておきます。

ドライバをダウンロード

Nvidia Vulkan Driver: https://developer.nvidia.com/vulkan-driver
からドライバをダウンロードします。
ここでは、 Linux 64-bit を選択して、 NVIDIA-Linux-x86_64-355.00.27.run というファイルをダウンロードしました。

このファイルを後ほど実行するため、以下のコマンドで実行属性をつけておきます。

ドライバのインストール

既存のドライバを削除して、ダウンロードしたドライバをインストールします。
この過程でウィンドウシステム(X-Window)が一度シャットダウンされるので注意が必要です。

まずはドライバを削除します。

CTRL+ALT+F2 でコンソール画面に切り替えてから、ドライバをインストールします。

これでインストールが始まります。あとはインストーラーの指示に従ってください。
途中で”The distribution-provided pre-install script failed!” と表示されてしまう場合があるかもしれません。これの解決法は不明です。

自分の場合には、まさにこれでしたがインストールを強行することにしました。
その後インストーラーはエラーを出さなかったのですが、再起動したらグラフィカル画面が全く出なくなってしまいました。

追記

インストール&動作に成功できた記事を別途用意しました。こちらを参照ください


xperia z1 compact の電池換装


Z1fでも同じような症状が起こっており、わりと XPERIA 界隈では有名な話っぽいですが、いきなり端末のシャットダウンが発生するようになってしまいました。

原因は電池周りの不具合のせいらしいですが、原因の根幹には電池の劣化があるようです。

電池残量を正しく報告しない&瞬間的な電圧降下により残量ゼロとみなしてOSがシステムをシャットダウンしているとのことです。
そのため、90% くらい残量があると表示されていても、ブラウザでページを開こうとしていきなりシャットダウンとかザラにあります。あまりにもこれらがひどくなり、連続稼働10分を切ってしまったこともあって、何とかしようと乗り出しました。

交換パーツ

すでにやられている人がそこそこいるのか情報は検索すれば手に入りました。
また amazon でも電池パックだけが購入できたりするのでそちらを購入しました。

”Sony Xperia Z1 Compact 交換用 バッテリー 内蔵電池 ソニー 純正品 PSE”

というものです。約2000円程度だったのでダメ元でトライするにちょうどいいです。

ほかにもケースオープナーとかのヘラがあれば問題なく開くことができました。

z1compact-battery

交換過程

裏蓋を熱して、吸盤ではがしてスキマにヘラを突っ込んでこじ開ける!という定番の方法です。これも参考サイトを元に作業しました。
思いの外接着力が強かったので、はがすのに時間がかかりましたけど・・・。

また NFC のアンテナは、旧バッテリから白い包装ごと切り取って移植しました。
最初ははがそうと努力していたのですが、きれいにはがすことができず、
ちぎれそうな気配を感じたため仕方なくです。
z1compact-nfc

参考

こちらのサイトの情報が役立ちました&助かりました。

http://hatahuri.blogspot.jp/2015/10/xperia-z1-comapct.html

検証

交換前後でのバッテリの状態を確認してみます。
以前は以下のように充電状態であっても充放電を繰り返していることがわかります。
z1compact-graph-1
交換後は以下のようになりました。きれいに充電できていることがわかります。
z1compact-graph-2

この後使用を続けていますが、以前のような急なシャットダウンは発生しておらず、
交換した甲斐はあったと思っています。失ったのは防水性能ですが、使えないよりはマシということで。

充電状態が先のグラフのようになってきたら、電池交換しか復帰する方法はないという感じでしょうか。電池の状態を視覚化しておくって状態把握に大事だなと感じました。

使ったものなど

Amazon で購入したものについて紹介しておきます。

電池パックはこちらを購入しました。他にもあったのですがコネクタの位置問題があるようだったのでこちらを選択しました。

ケースオープナーは消耗品なので、念のため2種類ほど買ってみました。

ケースオープナーセット


Vulkan 公開された!


先日 Vulkan の情報まとめを作ったところで、今日 2/17 に Vulkan がパブリックリリースとなりました。公開はもう少し先だろうと予測していたのですが、まさかの事態に驚きました。

情報がたくさん出てきて追い切れないですが、最初必要そうになりそうな部分だけリンク張っておきます。Vulkan は Windows7 以降の OS で使用可能なので、 Windows10 必須の DirectX12 よりは触ってみるのに敷居が低めですね。(APIを扱うのが楽かどうかは別問題です・・・)

NVIDIA の対応ドライバ(ベータ)のページ
https://developer.nvidia.com/vulkan-driver

AMD の対応ドライバ(ベータ)のページ
http://gpuopen.com/gaming-product/vulkan/
ここの “Radeon™ Software Beta for Vulkan™ ¹” という文字列でリンクがはってあるのでここからジャンプしたページでダウンロードできます。

Vulkan のリファレンスページ
https://www.khronos.org/registry/vulkan/specs/1.0/apispec.html

ヘッダや仕様がまとめてあるページ
https://www.khronos.org/registry/vulkan/

サンプルのページ
https://github.com/McNopper/Vulkan
https://github.com/nvpro-samples/gl_vk_threaded_cadscene

今回は C++ の API ラッパーもオープンソースで用意されているようです。
https://github.com/nvpro-pipeline/vkcpp

導入までについて

Project-Asura さんがブログにて、導入までを解説してくれました!


Vulkan の情報まとめ


以前にも Vulkan の情報が出てきたときにリンクを張りましたが、
現在は NVIDIA が Vulkan の情報をいろいろと公開してくれているので再度まとめてみました。

Vulkan の各オブジェクトの関連や概要など。
https://developer.nvidia.com/engaging-voyage-vulkan

Vulkan でのシェーダーリソースバインディングに関するドキュメントです。
https://developer.nvidia.com/vulkan-shader-resource-binding

Vulkan でのメモリ管理のドキュメントです。
https://developer.nvidia.com/vulkan-memory-management

OpenGL から Vulkan への移行に関するドキュメントのようです。
https://developer.nvidia.com/transitioning-opengl-vulkan

OpenGL で Vulkan に迫る性能を出すためのドキュメントです。 NV拡張の Command_list を使ったりバインドレスを駆使するようです。OpenGLでなんとかがんばりたい人には魅力的なものじゃないでしょうか。
https://developer.nvidia.com/opengl-vulkan

しかし、ずいぶんと Vulkan の情報が増えてきました。
amazon でも Vulkan の赤本が予約可能になっているようですし、
とうとう今年、 Vulkan の API が触れるようになると考えて良さそうですね!楽しみです。

※ Vulkan 赤本は8月頃のようです・・・


VisualStudio 2015 と VMwareWorkstation


Windows10 環境にしたこともあり、VisualStudio 2015 も普段使いの環境に追加していました。このときに、 VMware Workstation 12 で仮想マシンを構築・起動をしようとした際に、「64ビットのゲストOSはこのホストではサポートされていません」というエラーメッセージが出てしまいました。

このエラーは、仮想化支援の機能が BIOS で OFF にされていたり、 そもそも CPU が対応していなかったりすることでみるものなのですが、今回はそれら以外でこのエラーを見たのでここにメモしています。

Android 開発もできるようになったとのことで、 VisualStudio 2015 のインストール時に、 Visual Studio Emulator for Android という開発用のエミュレータをインストールしてしまったことにありました。

このエミュレータはクライアント Hyper-V の機能をベースとして使っているようで、これが原因となっていました。

仮想化支援の機能は基本的にはすでに使用されていると次のアプリでは使用できないため、このような症状になったというわけです。(近年は、Nested な仮想化支援環境も構築できるよう進んでいますが、Hyper-V はこのあたり非対応のままのようです)

早速、コントロールパネルから Windows の機能の部分で Hyper-V に関するところを確認してみたら、インストール済みとなっていましたので、チェックを外して無効化しました。この後再起動を要求されます。

再起動後は、 VMwareWorkstation では当初出ていたメッセージが消えました。一方で、案の定ですが VisualStudio の Android エミュレータは使用不可能となっていました。両立できないのは残念ですが、仕方のないことではありますね・・・。


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より接続

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