スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windows 8 を Machintosh 上にフリーズしないようにインストールする

・初めに
今回の Winodws8 のバージョンアップにより,全体的にパフォーマンスが向上したらしいことと,価格が Windows 7 以前の物と比べ桁違いに廉価になったので導入してみることにしました.
Windows 8 がリリースされたので覚書程度に記載します.

!!!!!!!!!!注意!!!!!!!!!!!
Windows 8 は,リリースされて間もないので BootCamp も現段階(v4.0)では正式には未対応です.
また,その他のプログラムも互換性の問題で正常に動作しない場合もありますので,バージョンアップの際には慎重に考えてみて下さい.


<目次>
環境と状況
Windows 8 のクリーンインストール
BootCamp 4.0 のインストール
ユーザプロファイルの D ドライブへの移動
Windows 8 に BootCamp をインストールしたら起動しなくなった場合


<環境と状況>
・インストール先の PC のスペックなど
モデル: MacBookPro5,5 (13-inch, Mid 2009)
プロセッサ: Intel(R) Core(TM)2 Duo CPU P8700 (2.53GHz×2)
メモリ: 8GB
ストレージ: SSD + HDD
グラフィックス: NVIDIA GeForce 9400M

・その他
バージョンアップ前は Windows 7 Ultimate(x64) を使用していました.



<Windows 8 のクリーンインストール>
他のサイトにもいくつも情報があるので特に詳細は説明しませんので,詳細が知りたい場合は別のサイトを参考にしてください.
  1. Windows 8 の入手
    Microsoft の公式ページから Windows 8-UpgradeAssistant.exe を使って,Windows 8 を ISO ファイルなどでダウンロードし,DVDなどのメディアに記録します.
  2. 1で入手した Windows 8 のディスクを元にウィザードに従ってインストールします.
  3. アクティベートする.
    面倒ですが,アップグレード版ということもあり,クリーンインストールをする前に一度アクティベートしておくことをお勧めします.
  4. Windows 8 をクリーンインストールする.
    今回は,一度パーティションを削除して,クリーンインストールしました.
  5. なお,Windows 8から(?)は,アップグレード版でもプロダクトキーさえあればクリーンインストールできるようです.


<BootCamp 4.0 のインストール>
BootCamp 4.0 をインストールすると再起動から数分程度で高確率でフリーズします.
どうやら CPU のドライバがちゃんとインストールされていないことが原因のようです.
ですから,1回目のインストールを終えたら再起動後は素早く手順をこなしてください.
詳細は後述します.

・BootCamp 4.0 を入手する.
これは,OS X で BootCamp マネージャを使用して入手しておいてください.
この際に,Windows からアクセスできる媒体(USBメモリ,HDD,DVDなど)に保存しておいてください.

・BootCamp 4.0 をインストールする(1回目)

1回目のインストールは WindowsSupport\setup.exe を実行して,再起動をします.

=========== 注意!! ===================
ここからの処理は,時間との闘いです.
上述しましたが,BootCamp 4.0 のインストールしてから再起動後,数分経つと高確率でフリーズします.
しかも,一旦フリーズすると強制終了しか方法がない上に,ブートローダーの画面で停止して立ち上がらなくなります.
対処法は,本ページ末尾に記載しますが,フリーズするより先に処理を行うことが先決です.
=========================================

・トラックパッドの設定で右クリックメニューを開けるようにする(マウスがない場合)
トラックパッドではデフォルトで右クリックのメニューが出せません.そこで,一番最初に行うことは,右クリックでメニューを出せるようにすることです.
スタートメニューの中からデスクトップを選択する.
画面右下の通知領域から BootCamp のアイコンをクリックしメニューを開く.
BootCamp コントロールパネルを開き,トラックパッドの項目から〝副ボタンのクリック”か〝副ボタンのタップ”にチェックを入れる.

・コマンドプロンプトを管理者権限で立ち上げる.
Windows 8 を立ち上げた直後に Command+Q で〝cmd”を検索すると現れる,コマンドプロンプト項目を右クリックすると下にメニューが現れる.その中から〝管理者として実行”を選択する.

・Dynamic Ticks を無効にする.
Dynamic Ticks は動的に CPU のクロック周波数を制御する仕組みのようで,これがフリーズの原因となっています.
bcdedit /set disabledynamictick yes
ここまで終わればフリーズはしなくなると思います.

・BootCamp 4.0 をインストールする(2回目).
BootCamp 4.0 の互換性モードを Windows 7に設定して,再度インストールします.
WindowsSupport\setup.exe
を右クリック→プロパティ→[互換性]タブ→全てのユーザーの設定を変更→[互換性モードでこのプログラムを実行する:]にチェックを入れ,コンボボックスから[Windows 7]を選択→[管理者としてこのプログラムを実行する]にチェックを入れる→OKでプロパティウィンドウを全て閉じる
WindowsSupport\setup.exeを実行し,再起動する.

・プロセッサのドライバをインストールする.
コントロールパネル→システム→デバイス マネージャーを開くと,プロセッサの部分で警告が出ていると思います.
手動でプロセッサの再インストールをします.
警告が出ている項目(プロセッサの名前)を右クリック→プロパティ→[ドライバー]タブを選択→ドライバの更新→[コンピューターを参照してドライバー ソフトウェアを検索します(R)]を選択→[次の場所でドライバー ソフトウェアを検索します:]で WindowsSupport\Drivers\NVidia\NVidiaChipset64(OSが32bitならNVidiaChipset32にする)を参照します→次へ→閉じる

・Dynamic Ticks を有効にする.
効果があるかどうかは定かでは無いですが,省エネになるようなので Dynamic Ticks を有効にします.
bcdedit /set disabledynamictick no
数日試してみないとわかりませんが,プロセッサのドライバのインストールが終わっていれば,フリーズはしなそうです.

以上で,ドライバの再インストールは完了です.


<ユーザプロファイルの D ドライブへの移動>
Windows 7 の場合と同じですが,私が選んだもので最も安定している方法は,プロファイルディレクトリのレジストリを書き換えてユーザを追加する方法が最も簡単かつ安定していると考えています.
レジストリをいじる操作なのであまりお勧めはしませんが.


<Windows 8 に BootCamp をインストールしたら起動しなくなった場合>
前述したように,Windows 8 に BootCamp をインストールしたらまず間違いなくフリーズします.
その後,強制終了をするとブートローダの読み込み画面(白い画面)のまま止まってしまいます.
最初はかなり焦ると思いますが,気長に待ちましょう.
私の場合,10分程度白い画面のまま動かなくなっていました.
20~30分待っても動かない場合は,NVRAM や SMC のリセットを行ってから,再度起動まで待ってください.
モデルによって若干異なるようですが,Appleの公式に記載されていますので自分のモデルに合ったリセット方法調べてみて下さい.

以下,Apple のサポートから引用
NVRAM のリセット
  1. Mac をシステム終了します。
  2. キーボードで「command (⌘)」「option」「P」「R」の各キーの場所を確認します。手順 4 でこの 4 つのキーをすべて同時に押す必要があります。
  3. コンピュータの電源を入れます。
  4. 「command + option + P + R」キーを同時に押し続けて、グレイの画面を表示します。
  5. コンピュータが再起動し、2 度目の起動音が聞こえるまで、キーを押したままにします。
  6. キーを放します。
SMC のリセット
  1. コンピュータを終了します。
  2. MagSafe 電源アダプタを電源に接続し、まだ接続されていない場合は Mac に接続します。
  3. 内蔵キーボードの左側にある「shift-control-option」キーを押しながら電源ボタンを押します。
  4. すべてのキーと電源ボタンを同時に放します。
  5. 電源ボタンを押してコンピュータを起動します。

スポンサーサイト

テーマ : コンピュータ関連
ジャンル : コンピュータ

ASIS for GNAT の導入

ASIS for GNAT の導入
<目次>
  1. ASIS とは
  2. 準備するもの
  3. インストール手順


今回の内容はそもそも需要があるのかどうか,微妙なところですが,自分のメモとして書いときます.

1.ASIS とは
ASIS (Ada Semantics Interface Specification) とは,Ada プログラムをコンパイル単位で意味や構文にクセスするためのライブラリです.
ASIS の利用方法には以下のものがあります.
  • ソースコードの静的解析
  • 関数や変数の依存関係のツリー構造を解析
  • プログラミング言語の変換(例えば,Ada から COBOL IDL への変換)
などです.



2.用意するもの
  • ASIS for GNAT
  • Ada コンパイラ環境※1
  • cygwin環境
  • GnuWin32 環境

※1)  gnatmakeとASISのバージョンを合わせる必要があります.

ASIS for GNAT 
例のごとく,AdaCore のLibre からダウンロードします.

お使いのコンパイラのバージョンと同一のものを導入してください.Ada Libre では 国際規格(ISO / IEC 15291:1995)であり、コンパイラに依存しないように設計されている”と記載されているのですが,前述のとおり,ASIS ではコンパイラの情報を利用します.このため,コンパイラに依存する可能性があるので,バージョンが一致した AdaCore から配布されているコンパイラを利用するほうが無難かと思われます.
(GNAT GPL のバージョンの確認方法)
gnatls コマンドを使い確認します.
> gnatls -v
自分の環境では次のように表示されます.
GNATLS GPL 2011 (20110428)
Copyright  (C)  1997-2011, Free Software Foundation, Inc.
GNATLS GPL の次の数字(自分の環境の場合,2011 (20110428))が GPL のバージョンです.

(ASIS のバージョンの確認方法)
.\asis-<version>-src\gnat\gnatvsn.ads の37行目辺りに,
Gnat_Static_Version_String : constant String := "2011 (20110428)";

と記載されていると思います.

この ”2011 (20110428)”が ASIS のバージョンです.
・Ada コンパイラ環境
Ada のコンパイラに関しては,GPS(Ada の統合開発環境)の導入の記事を読んでください.
ただし,上述のとおり,ASISインターフェースはコンパイラ環境に依存しますので,バージョンは必ず揃えて利用してください.

Cygwin 環境
ASIS のインストール時に利用します.Cygwin のインストール自体は特に難しいことではないのと他の方が書かれているので,触れません.ただし,make コマンドがインストールされていることが必須です.
※Cygwin を利用した理由:
ASIS のMake ファイルは基本的に Unix ユーザ向けに作られており,Windows ユーザの場合は,Make ファイルを編集する必要があります.最初は Make ファイルを編集していたのですが,パスやコマンドの書き換えなどが煩雑なので Cygwin を利用することにしました.Cygwin を利用したくない方は Make ファイルを編集してインストールを行なっても大丈夫です.
 
・make 環境
最初は,スマートに makefile を Windows 用に書き換える事ばかり考えていたのですが,どうもコンパイル時の挙動がおかしいので調べた結果,パスやコマンドの問題で makeコマンドを利用しての  ASIS のインストールは厳しいと判断しました.
そこで,少しトリッキーな方法でのインストールを行ないます.
make コマンドを利用するのは厳しいといいましたが,インストール時には make コマンドが必要なので,GnuWin32 のこちらからインストールして下さい.


3.インストール手順
  1. make コマンドのインストール
  2. インストール自体は難しい作業でないので,特に説明はしませんがパス(環境変数)の設定は忘れずに行なっておいて下さい.
  3. asis-<version>-src.tgz の展開
    7-zip などを利用して,適当な場所に asis-<version>-src.tgz を展開してください.(今回は,Cドライブ直下の tmp ディレクトリを作業ディレクトリとしました.
  4. ASIS のインストール
    1. ASIS の makefile の挙動を確認
      コマンドプロンプトを開き,asis の解凍先で以下のようにコマンドを実行します.

      C:\tmp\asis-<version>-src> make all install prefix=C:\GNAT\2011 -n > tmp.txt

      このとき,tmp.txt には以下の内容が書き込まれているはずです.
      ここでは,make コマンドを実際には実行せずに,どのように makefile が実行されるかのみを出力できるオプション(-n)を用いています.
    2. インストール用バッチファイルの作成(tmp.txt の編集)
      tmp.txt の内容をコマンド,コマンドに対応するオプション,パスの点で Windows のコマンドプロンプトに対応させるように書き換えます.
      具体的には以下のように置換機能などを使い置き換えます.コマンドやオプションは特に解説しませんが,コピー時のパーミッションの設定などで恐らく抜けている部分があるかと思います.どうしても気になる方は,Attribute や Robocopy などを使用してみるのも良いかもしれません.(私は,その辺は詳しく知りません .. ( _ _ ;))
      • cp -> copy
      • mv -> move
      • パス: (/) -> (¥)
      • && -> 削除して改行
      • cd -> cd した後に元のディレクトリに戻るように変更
    3. バッチファイルの実行
      Windowsコマンドに置き換えた tmp.txt を tmp.bat にリネームし,実行します.
  5. インストールができているかの確認
    インストールの確認には,標準で付属しているツール(ASIStant)を利用します.
    > asistant
    以下のように表示されれば,インストールが完了しています.
    ASIStant - ASIS Tester And iNTerpreter, v1.5
    (C) 1997-2011, Free Software Foundation, Inc.
    Asis Version: ASIS 2.0.R

    >

    quit と入力することで終了できます.
    > quit

以上でインストール完了です.
以下は,私の実行環境でのバッチファイルを記載します.

cd gnat
gnatmake xsnamest
start xsnamest.exe
move snames.ns snames.ads
move snames.nb snames.adb
cd ..
gnatmake -Pasis_bld -XBLD=prod -XOPSYS=default_Unix
pause
gnatmake "-Ptools/asistant/asistant" "-XBLD=prod" "-XOPSYS=default_Unix"
pause
del C:\GNAT\2012\include\asis
del C:\GNAT\2012\lib\asis
mkdir C:\GNAT\2012\bin
mkdir C:\GNAT\2012\include\asis
mkdir C:\GNAT\2012\lib\asis
mkdir C:\GNAT\2012\lib\gnat
mkdir C:\GNAT\2012\share\gps\plug-ins
mkdir C:\GNAT\2012\share\doc\asis\html
mkdir C:\GNAT\2012\share\doc\asis\info
mkdir C:\GNAT\2012\share\doc\asis\pdf
copy lib\*.ali C:\GNAT\2012\lib\asis
attrib +r C:\GNAT\2012\lib\asis\*.ali
copy lib\libasis.a C:\GNAT\2012\lib\asis
attrib +r C:\GNAT\2012\lib\asis\libasis.a
cd C:\GNAT\2012\lib\asis
attrib +r *.ali
cd C:\GNAT\2012\lib\asis
attrib +r libasis.a
cd C:\Users\Take\Downloads\asis-gpl-2012-src\
copy gnat\*.ads C:\GNAT\2012\include\asis
copy asis\*.ads C:\GNAT\2012\include\asis
copy gnat\*.adb C:\GNAT\2012\include\asis
copy asis\*.adb C:\GNAT\2012\include\asis
copy asis\asis.gpr C:\GNAT\2012\lib\gnat
copy documentation\gps_index.xml C:\GNAT\2012\share\gps\plug-ins\asis.xml
copy documentation\asis_*.html C:\GNAT\2012\share\doc\asis\html\
copy documentation\asis_*.pdf  C:\GNAT\2012\share\doc\asis\pdf\
copy documentation\asis_*.info C:\GNAT\2012\share\doc\asis\info\
copy tools\asistant\asistant.exe C:\GNAT\2012\bin

テーマ : プログラミング
ジャンル : コンピュータ

VCS 利用時のトラブルシューティング

GPS の VCS 利用時のトラブルシューティング
※とりあえず,解決できたものだけ掲載します.

エラー1: "○○ is not working copy."
  1. 作業コピーが C ドライブ以外に存在している場合.
  2. 一時ディレクトリ(C:\Users\username\AppData\Local\Temp)が C ドライブ以外に存在する場合.
  3. インストールされている Subversion のバージョンが,".svn"のバージョンより下である場合.



エラー1-1
: 作業ディレクトリが C ドライブ以外に存在している場合.
原因: GPS のバージョン管理は基本的に,作業コピーが C ドライブ以下にある場合のみを想定して作られていると思われる.

対策1: C ドライブ以下に作業コピーを作成する.
もっとも簡単な方法.単純に,C ドライブの好きな場所に作業コピーを作成する.

対策2: 別ドライブにある作業コピーにシンボリックリンクを張る.
SSD の導入などで,システムディスクを C ドライブ,データディスクを D ドライブというように分けたい場合に有効.詳細は,Google 先生に!!




エラー1-2
: 一時ディレクトリ(C:\Users\username\AppData\Local\Temp)が C ドライブ以外に存在する場合.
原因: エラー1-2と似た状況である.GPS のバージョン管理は基本的に,C ドライブ以下にある一時ディレクトリを参照していると思われる.しかし,D ドライブなどに一時ディレクトリを移動している場合,参照先がないため,.

対策1: C ドライブ以下に一時ディレクトリを戻す.
もっとも簡単な方法.単純に,C ドライブの元の場所に一時ディレクトリを戻せばいい.

対策2: 別ドライブにある一時ディレクトリにシンボリックリンクを張る.
SSD の導入などで,別ドライブにTEMPディレクトリを置きたい場合に有効.上記と同様.詳細は Google 先生に!!当然,パス(環境変数)が変更されていることが前提.




エラー1-3: インストールされている Subversion のバージョンが,".svn"のバージョンより下である場合.
原因: バージョン互換の問題.具体的には,Subversion 自体のバージョンが,それよりもバージョンが新しい TortoiseSVN で生成された作業コピーより古いことなどが原因.
例)SilkSVN(v1.6),TortoiseSVN(v1.7)をインストールしているPC環境で,TortoiseSVN によりチェックアウトした作業コピーを扱う場合,SilkSVNのバージョンが TortoiseSVN の1.7より下回る場合エラーが生じる.

対策: TortoiseSVN のバージョン以上の Subversion にアップグレードする.

テーマ : プログラミング
ジャンル : コンピュータ

整数(integer) 型

 型名 Integer
 分類 単純型 ― スカラー型 ― 離散型 ― 整数型 ― 一般整数型
 意味 正数型
 値の範囲 -2^15+1 .. +2^15-1 (-32767 .. +32767) ※1
 宣言 暗示的宣言 type int_group2 is 1 .. 2000; ※2
 定義 一般形 int1 : Integer;
 代入 int2 : Integer := 10;
 範囲指定 int3 : Integer range 0 .. 100 ;
 代入+範囲指定 int4 : Integer range -10 .. 10 := 0;
 派生型※3 自然数 subtype Natural is Integer range 0 .. Integer'Last;
 正数 subtype Positive is Integer range 1 .. Integer'Last:
※1: 環境依存なので実装と異なる場合がある.詳しく知りたい場合は,Integer'First を出力してみればわかる.
※2: "1 .. 2000"と定義することで暗示的に Integer 型であると,宣言されている.
※3: 派生型とは,Integer 型を元に予め定義されている型のことである.


例1: Integerの派生)
subtype Small_Int is Integer range -10 .. 10;            -- Integer 型の縮小版.
subtype Buffer_Size is Integer range 0 .. Max;         -- バッファ.

例2: Integer型を使った本の例)
type Page_Num  is range 1 .. 2_000;                       -- ページ数が1から2000ページである.
type Line_Size is range 1 .. Max_Line_Size;           -- 行数は1から最大行数である. 
subtype Column_Ptr is Line_Size range 1 .. 10;       -- コラムは複数行からなっており,1から10個以内である.

テーマ : プログラミング
ジャンル : コンピュータ

型の定義

今回は,基本となる型の定義の仕方をご紹介します.
内容は簡単ですし,既に何度も使っているので今更ですので分かっている方は飛ばしていただいても結構です.

<目次>
・定義できる場所
・定義の仕方

<<<定義できる場所>>>
Ada のプログラミングにおける構成物(プロシージャ,パッケージ,タスクなど)は,宣言部(declaration part)と機能部(body part)から出来ています.

何らかの実体(変数?)を定義するのは,必ずその構成物の宣言部でなければなりません.

・代表的な宣言部
例1: プロシージャ内)
--EX1.adb
with Ada.Text_IO;
use Ada.Text_IO;

procedure EX1 is
--------
--ここ--
--------
begin
null;
end EX1;


例2: パッケージ内)
--EX2.ads
package EX2.ads is
--------
--ここ--
--------

end EX2;


例3: タスク内)
--EX3.adb
procedure EX3 is
task Ta is
--------
--ここ--
--------
end Ta;

task body Ta is
...
end Ta;

begin
--EX3の本文
end EX3;


<<<定義の仕方>>>
定義の仕方は,実体(変数)がどの型を使用するのかで決まります.
細かいやり方に関しては,今後取り扱うものとします.

例: 一般的な定義)

X : Integer; --X は整数型
Y : Float := 100.0; --Y は100.0を初期値とする浮動小数型
C : String(1..100); --C は100文字まで代入できる文字列型


以上です.

テーマ : プログラミング
ジャンル : コンピュータ

メールフォーム

名前:
メール:
件名:
本文:

項目
最新記事
最新コメント
最新トラックバック
訪問者数
QRコード
QR
プロフィール

ぷー太★☆

ぷー太★☆
 

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。