ラベル Windows の投稿を表示しています。 すべての投稿を表示
ラベル Windows の投稿を表示しています。 すべての投稿を表示

2010年2月18日木曜日

[VMWare]: VMWare FusionのVMイメージはWindowsのVMWare Serverでは動かない

手元のMacBook AirのVMWare FusionでWindows Vistaを走らせ,その上でVisual Studioを走らせて開発していたのだが,いかんせんMacBook Airではパワー不足で開発に支障が出るほどの遅さ(主にメモリサイズが原因)のため,余っていたWindowsマシンにVMをコピーして走らせることにした.

その時のmemo
※:最終的にはVMWare Serverでは動かなかったため,VMWare Playerをインストールして動かした.

コピー元環境
  • MacBook Air
  • VMWare Fusion 3
  • VM: Windows Vistaの載った合計25GB程度のイメージ
コピー先環境
  • Thinkpad X61 tablet
  • VMWare Server 2.0.2

 単純にMacBook AirとThinkpadをLANで接続し,ホームディレクトリの「Virtual Machines」ディレクトリ内にあるVMイメージをThinkpadへコピーし,VMWare Server側でAddしてみたところ,vmware-hostdが強制終了してしまった.何度か再起動して試してみても,毎回VMを読み込むところで落ちる.
 調べてみたところ,どうやらFusionの採用しているvmdkのバージョンにVMWare Serverが対応していないのが原因のようだ


 一応VMWare Fusion側でvmdkをダウングレードしてからVMWare Serverに持ってくれば起動できるようだが,25Gのイメージをまた処理してコピーし直す時間が惜しかったので,VMWare Playerを試してみた.バージョンは3.0

VMWare Player

VMWare Playerは仮想マシンの構成変更ができないのでやや不便なのだが,一応vmxファイルを直接編集すればメモリ量の変更などの最低限の修正は可能.インストール時にVMWare Serverをアンインストールさせられるので注意.

インストール後は,vmxファイルがVMWare Playerに関連づけられるので,ダブルクリックすればVMが起動した.
こちらはきちんと最新のvmdkに対応しているようで,問題なく起動した.

2009年4月21日火曜日

[Qt][Windows]: Qt CreatorでBuildに失敗する




Qt 4.5 & Qt Creator 1.0.0でのTips.

Windows環境でBuildに失敗するときはプロジェクトパスに日本語が含まれている可能性がある.
Qtライブラリに入っているQStringやQDir,QFileは完全Unicode対応なので,見落としやすい.
恐らくqmakeをコマンドライン経由で叩いている関係なのだろう.

Windows環境は色々と面倒な事が発生して大変だなぁ.みんなMac OS X環境になれば楽なのに:-P

2009年4月18日土曜日

[Windows][Qt]: Windows&Qt 4.5環境でstatic linkedなプログラムを作る



Windows上でQt SDK 4.5を使ってコードを書いていて,コンパイルすると,通常はshared libraryなコードがはき出される.
shared linkはファイルサイズが小さくなって良いのだが,動作環境にQt 4.5のライブラリが無いと動かないので,配布には不向きである.

というわけで,Qtでqmakeしたコードがstatic linkになるように設定する.
Qt公式ドキュメントでは,Qtのインストールディレクトリで
configure -static
すればいいことになっている.

しかし,Qt 4.5でこれをやると途中で止まってしまい,Makefileが生成されない.具体的には

Generating Makefiles...
Could not find mkspecs for your QMAKESPEC(win32-g++) after trying:
C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt\mkspecs
Error processing project file: C:/Qt/2009.01/qt/projects.pro
Qmake failed, return code 3

といって止まってしまう.

エラーメッセージをよく見ると,mkspecsのパスがC:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt\mkspecsというところに決め打たれているのが原因であることが分かる.
そもそも本来のmkspecsはデフォルトではC:\Qt\2009.01\qt\mkspecsになるはずである.

調べてみると,とりあえずの回避策が見つかった.
http://www.qtcentre.org/forum/archive/index.php/t-19227.html

具体的には,JunctionというWindows上でシンボリックリンクを実現するソフトを使い,決め打たれているパスから正しいmkspecsへのリンクを貼ってやる事になる.
まずはJunctionのダウンロードページからJunctionをダウンロードし,インストールする.

その後,C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Trollディレクトリまでを手動で作成し,以下のコマンドをコマンドプロンプトで実行する.

junction C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0 C:\qt\2009.01

この後,Qtのインストールディレクトリで通常通り
configure -static
mingw32-make.exe

すれば良い.Qtの再コンパイルには相当な時間がかかる.僕の手元では7時間以上かかった.

コンパイルが終われば,後は通常通りQt CreatorからプロジェクトをCleanしてBuildすれば良い.
これでstatic linkされたバイナリが作成できる.

2009年1月20日火曜日

[ThinkPad]: TPFanControlでCPUファンの騒音を軽減する

現在,Lenovo(IBMと書けないところが何となく寂しい)のThinkPad X61 TabletをWindowsメインマシンとして使っているのだが,どうもファンがやたらとうるさい.
どうやら全力で回ったり止まったりを繰り返しているようで「ファン停止状態->温度上がる->ファン全力回転->ファン停止」を繰り返しているようだ.

これではファンが動作しているときにうるさくてたまらないので,ファンをもっと低速で回す方法は無いかと思い,インストールしたのがTPFanControlである.

TPFanControl by troubadix


TPFanControlはその名の通りThinkPadのファンを任意の動作で動かすことのできる常駐ソフトで,Modeを「BIOS」にすればThinkPad標準の動作,「Smart」にすればTPFanControlの設定ファイル(TPFanControl.ini)を元にした動作,「Manual」にすれば一時的に強制的にファンを回したり止めたり,と言ったことができる.

基本的にはデフォルト設定で「Smart」で起動させておけば問題ない.
インストールされたTPFanControl.exeのショートカットを「プログラム->スタートアップ」にでも入れておけばいちいち起動する手間も省けて良い.

もし自分で動作を変更したい場合は「プログラム->TPFanControl->TPFanControl.ini」をテキストエディタで開き,編集する.
編集すべき所は最終行の辺りで,僕は現在以下の設定にしている.

// Celsius: // Fahrenheit: (Level FAN 0>80 -> Fahrenheit) Level=60 0 // Level=140 0
Level=70 1 // Level=150 1
Level=75 3 // Level=170 3

見て分かる通り「Level=[温度] ファンの状態」の書式で書けば良く,上記の設定であれば,

摂氏60度以下 -> 停止
摂氏70〜75度 -> 1(最低速)で稼働
摂氏75度以上 -> 3(3/7)の速度で稼働

と言うことになる.
ファンの回転速度は最高が7で最低が0(停止)の8段階で,最高速で回るとうるさいので僕は早くても3で回すようにしている.

また,回転速度は各温度に達した時点で判定される様なので,上記の例なら70度になるとファンが回転し始め,60度になるまでは止まらない.
この辺りは細かく設定したい人は好きなように設定すれば良い.
ただ,コメントアウト部分にも書いてあるが,温度の部分を80よりも大きい値にすると華氏温度と認識されるので注意が必要である.

そんなわけで最近のThinkPadの動作音がやかましいと感じる人は試してみると良い.
・・・それにしてもThinkPadはLenovoになってから品質が下がってしまったのが残念である.キーボードとか,細かい部分への配慮が足りなくなっている様に感じる.
個人的な一番の名器はX40/X41なのだが,さすがに今メインで使うのにはスペックが低くて厳しい.
# それでもThinkPadを使い続けてるのは,品質が落ちてもなお他社製ノートPCよりも使いやすいからなのだけれどね :-P

2009年1月14日水曜日

[Windows Vista]: スクリーンセーバーをOFFにしても勝手にログオン画面へ戻されるのを防ぐ

ThinkPad X61 tabletでWindows Vistaを使っているのだが,10分くらい操作をしないと勝手にログイン画面に戻される(画面のロック)ので色々といじってみた.
まずは電源周りを疑い,スリープ関連の設定を片っ端から切ってみたが,うまくいかなかった.
次にスクリーンセーバーにこれと同等の機能「再開時にログオン画面に戻る」というのがあるので,これを疑ってみたが,そもそもスクリーンセーバーを「なし」に設定してあるので影響が無いと思っていた.
後は,何か別のセキュリティ設定があるのかと思い,コントロールパネルをひっくり返してもだめで,今度はThinkPadの付属ソフト「ThinkVantage」の特殊な設定の可能性も考え,片っ端から設定を眺めてみたが,該当する項目は見つからなかった.

しかし,最終的な結論から言うと,スクリーンセーバーの設定が犯人だった.

スクリーンセーバーを「なし」に設定すると「再開時にログオン画面に戻る」チェックボックスが無効になる.

これを見れば普通の人は,スクリーンセーバーが無しならログオン画面に戻ることもないと思うのだが,ところがどっこいスクリーンセーバーの有効/無効と自動ログオフの有効/無効は別々に制御されているようなのだ.
なので,一度適当なスクリーンセーバーに設定し,このチェックボックスを外し,またスクリーンセーバーを「なし」に設定する.

これで数分後に強制的にログオン画面に戻されることは無くなった.

・・・これはUIが良くない気がする.

2009年1月11日日曜日

[Emacs]: Emacsで文字コードを指定して保存する

WindowsからMac OS Xに移行してテキストエディタとして最近Emacsを使い始めた人で,文字コードを指定して保存する方法が分からなくて困っている人をよく見かけるので紹介.

保存のためのコマンドは「C-x RET f」である.初心者の人に分かりやすく書くと「Ctrl+xの後にReturn(Enter)キーを押し,さらにfキーを押す」ということになる.
ここまで正常に実行されると「Coding system for saving file (default nil): 」と表示されるので,保存したい文字コードの名前を入力する.
対応する文字コードはTABキーを二回押すことでリストされるので,どのような名前で指定すれば良いか分からない場合はこの中から選択することもできる.


通常日本語環境で使うのはウィンドウズで標準の「shift-jis-dos」または「sjis-dos」,Mac OS XやXMLなどで標準の「utf-8」,古いUNIX系システムで使われている「euc-jp-unix」あたりだろう.

ちなみに現在編集中のファイルの文字コードは画面下部のステータス部の先頭をよく見ると分かる.
「-u」となっていればUTF-8,「S(DOS)」となっていればSJIS-DOS,「-E」となっていればEUC-JPとなる.

[Windows]: Windows標準のメモ帳でUTF-8のファイルを作成する

いつの間にかWindows標準のメモ帳がShift-JIS以外の文字コード指定に対応していたのでメモ.
普通にスタートメニューから「プログラム->アクセサリ->メモ帳」で起動しファイルメニューの「名前を付けて保存」から「UTF-8」や「Unicode」を選択できる.

これでUTF-8のファイルをちょっと編集する時に,秀丸やEmEditorをインストールする必要が無くなった.
他人のPCを使ってファイルを見せる程度なら十分だろう.

ちなみにVistaだけでなくXPも問題なく文字コードを選択できるようになっている.