GeForce 7300 で Unity 3D を動かす

KernelやAndroidのビルドに利用しているデスクトップPCのほうには、GeForce 7300という少々(かなり?)古めのビデオカードが刺さっています。この充分に枯れたカードで、今まで Compiz が問題なく使えていたのに、Ubuntu 11.04 にアップグレードしたところ、なぜか Unity が有効になりません。

おかしいなと思って調べてみると、何とブラックリスト入りしていました。

hide@ubuntu %  /usr/lib/nux/unity_support_test -p
OpenGL vendor string:   NVIDIA Corporation
OpenGL renderer string: GeForce 7300 SE/7200 GS/PCI/SSE2
OpenGL version string:  2.1.2 NVIDIA 173.14.30

Not software rendered:    yes
Not blacklisted:          no
GLX fbconfig:             yes
GLX texture from pixmap:  yes
GL npot or rect textures: yes
GL vertex program:        yes
GL fragment program:      yes
GL vertex buffer object:  yes
GL framebuffer object:    yes
GL version is 1.4+:       yes

Unity supported:          no

調べてみると、同じ状況で困っている人はいるようで、NVIDIA の Version 173 のドライバをインストールして、/etc/environment に次の記述を追加することで起動するようになりました。

UNITY_FORCE_START=1

NVIDIAのドライバは、[システム]-[システム管理]-[ハードウェア・ドライバ]からインストールできます。

Unity を使ってみた感じなんですが、悪くないです。まだ発展途上な感じは否めないものの、短期間で良くここまで仕上げたなという印象。ネットブックはもうUbuntuでいいかもしれません。

関連リンク:
» Geforce Go 7300/7400 blacklisted, can I still run Unity? - Ask Ubuntu

さようなら、Nexus S

帰宅途中で道路に落としてしまったようです。発見した時には、こんな無残な姿になっていました。短い間だったけど、適切な画面サイズと手になじむ形状で Nexus S はとても良い端末でした。

あぁ…

Macを買ったら/再インストールしたら最初にする設定

Mac を使うようになって5年くらい経ちましたが、時代の移り変わりとともに利用するソフトウェアも変わってきています。特に最近は多くの作業が Web で行えるようになっているので、インストールしているソフトウェアもだいぶ少なくなりました。

ちょうど先日、OS Xをクリーンインストールしたので、次回のために再インストールしたソフトウェアや設定などを書き留めておこうと思います。自分が使っているのは、MacBook Proなので少し偏りがあるかもしれませんが。

1. StartupSound.prefPane

自分がまず最初にする設定はこれです。起動時のジャーンていう音を消してくれます。外で使う時に鳴ってしまうと恥ずかしいのと大人のマナーとして。

ダウンロード

2. Expose & Spaces

(1)Expose

画面右上のコーナーにカーソルを持って行くと起動するようにしています。

(2)Spaces

昔はこの仮想デスクトップ機能がなかったので VirtueDesktops というソフトを使っていたのですが、Leopard から標準機能となりました。自分は一つの画面を Ubuntu 専用に確保して切り替えています。

3. キーボード設定

(1)ファンクションキーを有効にする

デフォルトでは特殊機能のほうが優先になっているので、これを F1〜F12が使えるようにします。F9でExposeとかF12でダッシュボードを表示できるようになります。

設定は、[システム環境設定]-[キーボード]から

(2)caps lock → Ctrl

自分の MacBook は、USキーボードなので Ctrl キーがおかしな場所にあります。Caps Lockは使わないので、Ctrlに変更します。これは基本ですね。

設定は、[システム環境設定]-[キーボード]-[修飾キー]から

(3)Spotlightのショートカットを無効化

デフォルトで、Ctrl+スペースが Spotlight に設定されています。Emacs使いとしてはこれはあり得ないので無効にします。

設定は、[システム環境設定]-[キーボード]-[キーボードショートカット]から

4. KeyRemp4MacBook

標準の設定ではできないようなさらに細かい設定はこちら。Webブラウザの新しいタブで開く時や文字列をペーストするさいにマウスの真ん中ボタンをの使えなくなってしまいました。これらを直すためのソフトです。

自分はソースをダウンロードしてきて、自分専用の設定を追加してコンパイルして利用しています。特にMiddleClickが使えるのと使えないのでは、効率が雲泥の差です(当社比)。

・Command_L と Option_L を入れ替え
・Command_R をかな/英数トグル
・Option_R を MiddleClick

のように設定しています。

ダウンロード

5. Witch / WindowFlow

Mac の Command+Tab によるアプリケーション切り替えはなぜかウィンドウごとでなく、アプリケーションごとなので一つのアプリで複数ウィンドウ開いている時に不便です。Windows のようの Alt+Tab で切り替えられるようにしています。

Witch はいつからか有料になってしまったのですが、昔ダウンロードしたバージョンを今も使っています。今だけ期間限定で無料の WindowFlow でもいいかもしれません。

ダウンロード

6. Dockを右側に配置

完全に好みですが、MacBookは横長画面で縦方向が狭いので左右どちらかに配置した方が画面を広く使えます。自分はなぜか右派。

設定は、[システム環境設定]-[Dock]から

7. Activity Monitor

コンピュータを使っているときは、CPUの利用率が常に見えていないと不安です。これを解消するために Dock の見える場所に常に表示しておきます。

[アプリケーション]-[ユーティリティ]-[アクティビティモニター]から起動して、Dock上のアイコンを右クリックして[Dockアイコン]から"CPUの履歴を表示"にチェックしておきます。また、次回から自動で起動するように[オプション]から"ログイン時に開く"にもチェックしておくと良いでしょう。


8. Deep Sleep

MacBook の電源を落とすことってまずなくて、蓋を閉じてスリープさせておくことが多いと思います。しかし、これはいわゆるサスペンド状態なので、外出時などそのまま持ち歩いているとバッテリーを消費しています。このウィジェットを使うと、クリックひとつでハイバネート状態にまで落とすことができます。移動時などしばらく起動する必要がない時などに重宝しています。

ダウンロード


9. Fraise

以前は Smultron という名前だったオープンソース&無料のテキストエディタです。あまり使うことはないですが、標準のテキストエディットでは寂しすぎるので。

ダウンロード

10. LimeChat

IRCだけでなく、Twitterクライアントとして利用しています。CSSで自分の好きなように見た目をカスタマイズできます。細かい設定方法などはまた別のエントリで書きます。

ダウンロード

11. iTerm2

自分はプログラミングなどの黒い画面を使った開発作業は、ほぼ VMware Fusion 内の Ubuntu で行っているのですが、たまに使ったりするのでインストールしておきます。

ダウンロード

12. QuickSilver

アプリケーションランチャーです。今は、Spotlight でも充分かもしれませんが昔からの名残で使っています。

ダウンロード

13. Growl

説明が必要ないくらい有名なポップアップ通知してくれるソフトウェア。Ubuntu のようにOSの標準機能して欲しいくらい。

ダウンロード

14. VMware Fusion / VirtualBox

最初の頃は OS X 上に Web 関係の開発環境を用意して使っていたのですが、今は開発環境は VMware 内の Ubuntu に移してしまいました。最近は Homebrew のお陰で良くなっていると思いますが、MacPortsだといちいちコンパイルが必要だったり、OS X に最初から入っているソフトウェアと重複したりとOS X特有のノウハウが必要なのが面倒になりました。

Web関係のサーバはだいたい Linux なので、OS X上で動いていたものが本番環境に持って行って動かなかったりするのは避けたいです。また、Mac が壊れたり、買い替えたりしてもVMイメージをコピーするだけで、すぐに新しいマシンの上で慣れ親しんだ環境を使い始めることができます。

よくあるリビングの光景

Palm時代からできることはそれほど変わってない。まだまだこれから。

Ubuntu 11.04 へアップグレードして困ったこととその対策

Ubuntu を 11.04 にアップグレードしました。スクリーンショットを見て分かる通り、僕は Ubuntu を VMware Fusion 内で動かしていて、ウィンドウマネージャには awesome を使っているので Unity 何それ状態です。何が変わったか分かりません。

逆に困ったことがあって、Natty の Kernel だと純正の VMware Tools がコンパイルエラーになります。このため、HGFS やクリップボード共有といった便利な機能が使えなくなってしまいました。ここで紹介されているパッチを当てれば HGFS の read は可能になるものの、書き込みで Segmentaion Fault が発生してしまうような状況です。

なので、仕方なく今は open-vm-tools を使っています。

  • open-vm-dkms
  • open-vm-tools

の2つのパッケージをインストールすることで、共有フォルダをマウントできるようになりました。また、純正ツールと違ってそのままでは起動時に自動マウントしてくれないため、/etc/fstab に以下の設定を記述しています。

.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0

これで HGFS に関しては問題なく動作するようになりました。設定ファイルの類は VM ホスト上にインストールした Dropbox フォルダをマウントして参照しているので、これが使えないと限りなく無力なのです。

しかし、あちらを立てればこちらが立たずで、open-vm-tools にしたら、今度はクリップボードの共有ができなくなってしまいました。こちらは、その昔、「仮想な背中」というサイトで公開されていた vmw コマンドを使うようにしました。

kill-ringをクリップボードと同期するための .emacs 設定

;; share clipboard
(defvar prev-yanked-text nil "*previous yanked text")
(defun copy-from-host ()
  (let ((coding-system-for-read 'utf-8))
    (let ((text (shell-command-to-string "vmw paste")))
      (if (string= prev-yanked-text text)
          nil
        (setq prev-yanked-text text)))))

(defun paste-to-host (text &optional push)
  (let ((process-connection-type nil))
    (let ((proc (start-process "vmwcopy" "*Messages*" "vmw" "copy")))
      (set-process-coding-system proc 'utf-8 'utf-8)
      (process-send-string proc text)
      (process-send-eof proc)))
  (message "Copied to clipboard."))

(setq interprogram-cut-function 'paste-to-host)
(setq interprogram-paste-function 'copy-from-host)

awesome/rc.lua 用の設定

awful.key({ modkey }, "c",
          function () awful.util.spawn_with_shell(
                "xclip -o -selection clipboard | vmw copy")
          end),
awful.key({ modkey }, "v",
          function () awful.util.spawn_with_shell(
                "vmw paste | xclip -i -selection clipboard")
          end)

とりあえず今はこれで凌いでいますが、早く純正の VMware Tools が使えるようになって欲しいところです。

2011/05/05追記:
.emacsでペースト用の設定が抜けていたので追記しました。
elispがうまくハイライトされていなかったのを修正しました。