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

2013年3月13日水曜日

Macのスタートアップ

Windowsで言うところの「スタートアップ」のMacOS MoutainLionでの位置。

システム環境設定〜ユーザーとグループ〜ユーザーを選択〜ログイン項目

で設定する。

2012年9月20日木曜日

MountainLion v10.8.2での不具合ほか

iOS6にあわせてMoutainLionも10.8.2にバージョンアップされた。

V10.8.1にあったバグの修正具合を確認。update2でも変化なし。

(1)自動スリープ後、Ethernetが切れてしまうバグは修正された模様
   IPv6では接続できるがv4では接続できない状況になる。
  未完全な修正だったということで。
(2)画面共有のログイン画面のスリープでスリープできないバグは修正された模様

が、また例によって新しいバグがいる。

 (3)スリープ明け後最初の受信で、メールが高確率で落ちる
メール側の対応漏れかOS側の問題かはわからないが、落ちたらあかん。

どうもスリープ明けの最初の受信メール有り時に高確率で落ちる様子。


(4)DVDプレイヤーで、話の切り替わり目で数秒〜数分が飛んでしまうことがあるバグは治っていない。
 やはりMac go社のMac Blu-ray Playerでは発生しないのでDVDプレイヤーのバグ。
(Mac Blu-ray Player自体もバグだらけなので使いものにならないが。)

(5)スリープ中にリマインダーの通知が来ると、スリープ明けに通知の「閉じる」を押しても閉じない。しかも二度と通知が操作できなくなる。
ユーティリティのアクティビティモニタで「通知センター」を選んで「プロセスを強制終了」すると一応治る。

アップルは少なくとも、まだ5倍はデバッグ要員を増やせ。

Xcode4.5およびiOS6の動作状況はこれから確認。
iOS5/5.1のバグは今回のアプリ開発でだいぶ見つけたのだけど、それらが治っているかどうか。

・・・ついでのXcode4.5の確認・・・

Xcode V4.4.1であったバグが4.5でどうなっているかの確認ちょっとだけ。

(1)Separate Assistant Editorの右側で補完候補がすぐに消えてしまうバグ
やっぱり治ってない。更に悪いことに、Google日本語入力では日本語入力がまともにできなくなった(ことえりでは未確認)。

(2)ソースファイルの改行コードが0x0d+0x0aのとき(Windowsで作っていたファイルを持ってきた時など)、エディターでDelete To End Of Lineを実行すると行末までを削除すると、次の行が接続されてしまう
これは前のバージョンから治ってない。

他は再現させるのが面倒なので省略。今のところ、ファイルの認識間違いは発生していない模様。

後バグじゃないけど、iPhone5対応のため、Launch ImageにRetina(4-inch)が追加されてる。
そのままでは黒画面画像(Default-586@2x.png)を入れられるので、何らかの置き換えが必要。私は、面倒だったので、従来のRetina(3.5-inch)の画像そのまま入れておいた。おいおい書き換えると言うことで。

2012年8月18日土曜日

Xcode 4.4.1とMoutainLion V10.8.1のバグ

MacOSがMountainLionになってXcodeもV4.4.1が出た。

が、いつものごとく幾つものバグがあった。

(1)Finderからのドロップでプロジェクトにファイルを追加すると、コンパイル対象にならない

ファイルはあるはずなのにリンクが通らないという謎の現象が発生し、調査の結果がこれ。

プロジェクトのところでマウス右クリックのAdd File Toを使った場合はこうはならない。
ファイルがあるのにリンクが通らないとエラーが出る場合はこれが原因。
一旦Delete→Remove ReferenceしてからAdd File Toをやり直せばよい。

コンパイル対象でないファイルの追加にはドロップも使える(画像とか)。


(2)エディタで「Open in eparate Assistant Editor」で分割表示しているとき、
右側(Assistant Editor側)で単語補完候補がすぐ消えてしまう

入力がかなり面倒になる。
入力を続けていると、一時的に治ることもある。


(3)リアルタイムエラー検出で使うソースを間違える
例えば
proj-+--a.m,a.h
       +-lib--a.m,a.h
と同じファイル名のソース(.m/.h)が2箇所にあり、proj直下のファイルをプロジェクトにAddしていて、libはフォルダごと登録しているが、この2つのファイルは登録してないとする。
この時、本来lib下のファイルは無視されなければならないが、これがエラー検出に使われる。ソースを見ても絶対にあってるのに警告が出るときは、同一ファイルが複数箇所にないか確認したほうがいい。
これで一体どれだけ無駄なデバッグさせられたか。

同じファイル名のソースが複数出来てしまうのもバグ(に近い仕様)で、プロジェクトにAddするときコピーを作ってしまうとか、グループ間移動をした時ときに発生すると考えられる。


(4)iOS4.x用シミュレーターがないのはバグに近い仕様だと思う。
Device Debugging SupportはiOS3/4用ともまだあるが、シミュレーターは消えている。

まだあるじゃろうiOS4機。それとももう無視していいというお達しなのか?

仕方ないので、うちではVMware Fusion上にLionを構築してXcode4.3.2を復旧させた。
まさかこういう使い出があるとは。->だめ。一旦プロジェクトをXcode4.4用にしてしまうと4.3.2ではエラーが出てしまう。4.3.3にしたら通った。


(5)同名のグループが複数作れてしまう
多分、New Groupで作成したものとドラッグでフォルダごと入れた場合に出来るのだと思う。

(6)IBでClassを変更しても内部的に更新されないことがある。
サブクラスを作ってそれに変更したのに、正しく動作しない。
Cleanかけてもだめ。
結局そのViewを一旦削除して再度貼り付けたら直った。
参照するファイルを間違えるのと同じ原因ではないかと推察中。

(7)ソースコードを修正してもそれをコンパイラが認識しないことがある
発生させる一例。
1.あるメソッドの引数を変更する
2.それを使っている部分で警告が出るようになる
3.その部分を引数付きに書き換える。ただし、エラーが出るようする(間違えておく)
4.メソッドの引数を元に戻す
5.エラーが出ている行も引数を削除し、エラーが出ないようにする
としても、エラーが消えない。コンパイルしなおしてもダメ。
Cleanをかけたら消えた。
別の条件で発生したときはCleanをかけてもダメで、プロジェクトを一旦閉じて再度開いて、更に再ビルドでようやく直った。

幾つかの現象から、どうも、4.4.1にはソースの修正を正しく認識できないバグがいる模様。どうしてもおかしいと思ったら、Cleanをかけてみるか、プロジェクトを一旦閉じて再度読み直すか、IBなら一旦削除して貼り付け直しするのが吉。

(8)Settings.bundle内を編集し続けているとハングアップすることがある
2回発生したから確実かと。

(9)日本語名ファイルがGitで通らない
コミット時にエラーが出る。
コンソールからgitのコマンドを発行するとちゃんといけるので、
Xcode内のgit処理のバグだと思われる。ずっと前のバージョンから治ってない。

(10)gitの管理下にあるファイルで、編集していないのに「M」マークが付くことがある。
しかも、しばらくすると勝手に消えるという謎付き。
実害はない。

・・・

V4.3台で存在した「実機をつないでデバッグしているとき、NSLog()の中に日本語があると文字化けする」バグは「ほぼ」修正された模様。一度に大量に表示させると、まだときおり/???というUnicode形式で表示されることがある。




アップルは、毎度のことながらデバッグが全く足りてない。
この分だと、もうすぐ出てくるiOS6もすぐには対応作業しないほうが吉かも。
どうせバグだらけだろうから。
「アップルのソフトはバージョンアップがあってから入れるのが正解」。
・・・

ついでに、MountainLion(v10.8/10.8.1)のバグも少々。

・省エネルギー設定でコンピューターのスリープを「しない」にしっていしても
勝手にスリープしてしまう。スリープと言うより、アプリを終了してスタンバイ状態に
入ろうとする。

2時間くらいで落ちる気がする。
このため、一晩中処理を走らせ続けたいと思っても出来ない。
(スタンバイになる前にアプリの終了を確認しており、ここで処理が停止してしまうから。)
->これは、「使用しない状態が?分間続いたらログアウト」の設定によると判明。「セキュリティーとプライバシー」〜「一般」〜「詳細」の内にあり。


・画面共有で接続されているとき、ホスト側からスリープに入るよう操作してもスリープしない
要するに遠隔からスリープさせられないということ。だめじゃん。
10.8.1では治っていた。
やっぱり治ってない。
ログイン画面のスリープを押してもスリープしない。
その後ログインしてスリープをかけてもスリープしない。
どうも、ログイン画面でスリープを押すとおなしくなる様子。

・ネット先のドライブが応答しない時、リセットがかかってしまう
 エラーも出ずに急に再起動した。

・USBディスプレイドライバのDIsplayLinkDriver V1.8を入れているとスリープできなくなる=スリープ時にシステムが落ちてしまう

→調査の結果、メーカーサイトの中の http://www.displaylink.com/support/ticket.php?id=331 に情報を発見。
要約すると「スリープ中にBluetoothデバイスの電源を切ると落ちる」らしい。
うちの場合、マウスがそれに相当している(手動で電源を切るだけでなく、デバイスが自動的に電源を切る場合も同様)。
これはOS X v10.8のバグで、10.8.1で修正される予定らしい。

「DisplayLinkを入れると露呈する」とある。
ということで、暫く待つしかなさそう。
→10.8.1では治っていることを確認。

・共有にしているフォルダの内容が更新されないことがある
ファイル削除したらそうなる感じなので、ファイル削除後のディレクトリエントリ作成周りにバグがいると思われる。

・Windows(7)とのファイル共有ができなくなった

今のところ、Win←Macはできているが、逆はできない。
画面共有はLion時はできなくなっていたが、MountainLionでは出来るようになったのに、
更に利用頻度が高いファイル共有ができなくなってどうするよ。
→出来る機体と出来ない機体が存在する。ということで、何かの設定だと思うのだけど、原因は不明。Mac間のファイル共有は出来てる。
→ようやく原因が判明。セキュリティとプライバシー」の設定で「ファイヤーウォール」〜「ファイヤーウォールオプション」〜「smbd」〜「外部からの接続をブロック」を「許可」に直したら治った。
こんなところいじった覚えはないので、10.8.1で勝手に設定されたと思う。

・スリープ明けにEthernetでつないでいるネットワークが切れてしまうことがある
省エネ設定の時間を過ぎて自動スリープに入った時に発生する。
ケーブルの抜き差しでは復旧せず、再起動するしかない。かなり致命的なバグ。
V10.8.3では発生頻度がかなり下がったが、まだ出る。

手動でスリープに入れたときは発生しにくいが、長時間スリープした後だと別症状で発生する。ただし、再度手動スリープして再起動すると治ったこともある。
V10.8.2で直った模様。まだ2回だけでの結果なので、もう少し様子見。
V10.8.2でも発生。IPv6では接続できているがV4では接続できない。
うちのプロバイダはv6を通さないのでインターネット接続ができなくなる。
WiFiでは発生しない。



・DVDプレイヤーで、話の切り替わり目で数秒〜数分が飛んでしまうことがある。
 例えば1話目が終わり、2話目が始まるとき、2話目の最初しばらくが飛ぶ。
 すべてのディスクではないが、かなり高い確率で発生する。
 SnowLeopard/Lionでは発生していなかったので、MoutainLion版のみのバグ。
 10.8.1で確認しているが、10.8.0がどうだったかは不明。
 ちなみに、Mac go社のMac Bru-ray Playerでは発生しない。
 (それはそれで他の問題が多すぎて常用しづらいのだけど。)
10.8.3では発生していないような気がする。

・フリーウエアのMacFaceが動かない
 対応版は出そうにない。まあ、必須ソフトではないけど。

・同muCommander v0.9.0が「ファイルが壊れてる」と出て実行できない(Lionでは動く)
10.8.1でも変わらず。
→「セキュリティーとプライバシー」〜ダウンロードしたアプリケーションの実行許可を「すべてのアプリケーションを許可」にすると実行可能と判明。
しかし、「実行できません」ならわかるけど「ファイルが壊れてる」というのはエラーメッセージが間違っているとしか思えない。


・ロジクールマウスの特殊ボタンが効かなくなった
ドライバーを更新しようにも、日本サイトにあるドライバはMountainLionには対応してない。米国サイト http://www.logitech.com/en-us/home で検索するとMountainLion対応の最新版がある。メッセージ英語のみになってしまうが、まあ、簡単だから問題ないかと。とありあえず日本語版が出てくるまでのつなぎはこれでOK。

・落ちる頻度はLion(10.7.4)より多い
まだ不安定な部分がある様子。
1ファイルへの多重アクセスをすると落ちやすいような気がする。
落ちるというか、無反応になってしまう。
Xcodeでタグ上に残っているファイルをDelete-Move trashとかすると一発。


とにかく、デバッグ要員を10倍くらい増やせ、アップル。新機能より安定性重視。
特に企業に入って行く気ならそれは非常に重要(その気はないのかもしれないが)。

2012年2月11日土曜日

確実にWindows7をBootCampで導入する方法;Mac mini 2011および2014、MoutainLion/Yosemite版(Mac mini 2014では注意点あり)

Windows7をMac mini2011および2014にBootCampで導入した。
BootCamp上でインストールするのは、ハードの性能を最大限引き出すWindows環境がほしかったからである。Fusion上との差などは後述。

Fusion4上に導入したときはキーボード以外では苦労しなかったが、このBootCampでは非常に苦労したので記録しておく。

細かい経緯は省略するとして、まず1つ言えるのは「AppleのBootCampに関する説明は重要な点が抜けてる」ということである。あの説明書通りにやってうまくいくのはまぐれだと思う(2014/11/15追記;今上がっているのは良くなっている)。

で、まずはわかったことのまとめ。
  1. インストールに必要な物。Mac mini2011では8GB以上のUSBメモリと2GB以上のUSBメモリ。Mac mini2014では8GBメモリ1本だけで良い。USB-DVDドライブまたは、DVDドライブを持ったMac(Windows機でも出来るとは思う)。
    Windows7のインストールディスクは当然。
  2. Mac mini2011のBootデバイス順序は、USB1→内蔵HDDである。
    また、MacにはこのBoot順を変える手段がない(少なくとも公開されていない)。
  3. USBは、本体裏面左(中央側)から1~4になっている。
    2011では2~4はBoot対象にはなっていない様子。2014では他のポートからもBoot可能になっている(でもこれが悪さをする原因になっている)。
  4. Option(またはAlt)キーを押しているとHDDから強制起動してMacOS/Windows/ネットワークからの起動選択は出来るが、USB1とHDDの起動順を入れ替えられない。
  5. そのため、USB1にUSBメモリが刺さっていると、必ずそこから起動しようとし、起動できない場合はエラーを表示する。
    「Non-system disk press any key」と表示する割に、キーボードが効かないのでどうしようもなくなる。
  6. USB1にUSB接続のDVDドライブを接続している場合も起動できない。
    DVDの内容が、Windows7のインストールディスクであっても(起動できるはずなのに)。
    「no bootable device -- insert boot disk and press any key」と表示する割に、やはりキーボードが効かないのでどうしようもない。2014では起動はできるが、その後キーボードもマウスも一切効かず操作できない。
(余談。Macは、一旦ブート元を設定すると、そこから起動できない場合でも他からブートするということはしない。Windowsから起動するにして、実際にはWindowsから起動できなかった場合にもOS Xで起動したりしない。 優先順位という考え方がないからだが、実にお馬鹿さんといえよう。この辺りはWindows機の方が圧倒的に優れている。)

ということを前提に、実際にWindows7を「確実に」インストールする手順は以下のようになる。
  1. MacをTimeMachineでバックアップしておく。BOOTCAMP導入中に失敗するとMacOS側もパーになることがあるので、その時もすぐに復旧できるようにするため。自信があれば取らなくてもいいが、私は一度失敗したので、2回目以降は必ず取るようにしている。
  2. USBメモリにWindows7のディスクイメージを入れ込む。以下MacOS上での作業方法。
    1. DVDドライブにWinows7のインストールディスクを挿入
    2. ディスクユーティリティを起動
    3. Windows7のディスクを選択状態にして、ファイル~新規~(Win7の名前)からディスクイメージを選択。
      名前そのまま
      場所適当(デスクトップなど)
      イメージフォーマット~DVD/CDマスター
      暗号化なし
      で保存する。
    4. *.cdrというファイルが出来るので、拡張子を.isoに変更
    5. BootCampアシスタントを起動。「Windows7のインストールディスクを作成」のみを選択。「続ける」でISOイメージに今作ったファイルを指定・・・と言うか、勝手に指定されてる。
      このファイル指定を自動化するため実機上での作成が望ましいが、別の機械で作って実機へコピーしても良い。ちなみに、iMacで作ったら非常に遅かった。MacはDVDドライブの性能が低いからである。USBで接続するDVDドライブのほうが圧倒的に速い。
    6. 内容がすべて入る容量のUSBメモリをUSB1に接続する。Windows7Pro64bitは4GBもあれば入る。さらに、YosemiteのBootCampではこの中にドライバも一緒にコピーするので、+2GBくらいあったほうが良い。8〜16GBあれば問題ない。
      メモリは自動フォーマットにより内容が消去されたあと、コピーが始まる。時間は結構かかる(ISOイメージを作る以上に)。
    このUSBメモリが(インストール用)ブートデバイスになる。
  3. 2011ではBOOTCAMPでWindows用ドライバをダウンロードして、別のUSBメモリに保存する。同じメモリだとブートできなくなる。2014/Yosemiteでは(選択する必要はなく)自動的に同じメモリにドライバも入れる。故に、Marvericksまでで作ったisoイメージUSBメモリはYosemiteでは使えない。作りなおす必要がある。BootCampのメニュー上には別USBメモリにドライバを入れる選択項目があるが、それを使って別メモリにドライバを入れ、それをUSBのほかポートに指しているとWindowsのインストールが出来ないという罠である。
  4. BOOTCAMPで「Windows7をインストール」を選択する。これもYosemiteでは不要で、自動的に起動される。
  5. 最新版のBootCamp(5.1.5759)はWindows7に対応できていないので、Windows起動後の初期設定中に「Windows\system32\drivers\AppleSSD.sys このファイルのデジタル署名を検証できません」と出て先に進まない。なので、以下の対策が必要。
    (5-1)1つ前のバージョン(5.1.5640)のBootCampをここからダウンロードしてくる。
    (5-2)USBメモリをFilderで開き、$WinPEDriver$フォルダを削除する。
    (5-3)ダウロードしてきたBootCampを展開する
    (5-4)その中の$WinPEDriver$をUSBメモリにコピーする
    ここで、BootCampフォルダはコピーしない。5640はMacMini2014に対応してないから。2011ならBootCampフォルダも置き換えたほうが良いのかもしれないが、未検証。
  6. Windows用パーティションサイズを設定し、「インストール」を押す
  7. (パーティション設定が終わったら)自動的に再起動がかかる
    このとき、キーボードを差し込んでおかないとWindowsインストーラーが起動しないかもしれない(うちではそうだった)。
USBからWindowsのインストーラーが起動して、無事インストール画面になる。


とにかく、2011ではUSBに起動順があることを知ってないとはまる。
USB-DVDからでも起動できないのが事態をさらにややこしくしている。
(USB-DVDドライブの中にはMacのUSBバスパワーでは動かずインストールには使えない物があるらしいが、今回の件にはそれは関係ない。ACコンセント付きの物で試したから。)
2014では、2011までと同じやり方でやると失敗するので要注意。これがわかるのに2週間も無駄にしてしまった。
さらに、最新版のBootCampではWindows7対応にバグがあるというお粗末さ。Appleは検証が絶対的に甘すぎる。

・・・
この先はWindows7のインストール。
基本的には普通通りなのだが、Macで作業する上で注意する点がある。
  1. 2014ではキーボードとマウスは有線の物が必須。BluetoothはWindows側でドライバがインストールされるまで使えなくなるから。マウスはなくてもキーボードで操作できるが(それがWindowsの良い所)、キーボードが効かないとどうしようもなくなる。
  2. Windowsの入ったUSBメモリはポート1に指す。2011でも、Windowsドライバの入ったUSBメモリはこの時点ではどのポートにも刺していてはいけない。HDDや光学ドライブも同様。要するに、この時点でUSBポートに指していいのは、1にWindowsの入ったメモリ、他はキーボードとマウスのみとなる。
  3. Windows上で新規インストールをすると、まずは「どこのパーティションに入れるか」聞いてくるので、「ディスク0:パーティション4:BootCamp」を選ぶ。すると、「ここにはインストール出来ない」と言ってくるので、「ドライブオプション(詳細)」からフォーマットを選択する。このパーティションを再フォーマットしてインストール可能にする。
  4. フォーマットはすぐ終了するので「次へ」を押す。この時点で「新しいシステムパーティションを作成できなかったか、既存のシステムパーティションが見つかりませんでした」エラーが出るときは、USBにドライバの入ったメモリやHDDなどが刺さってないか確認する。Windowsは、インストール時に(物理的な)複数ドライブを発見するとこのエラーを発生させる。なので、インストール時には絶対に1ドライブしか接続していてはいけない(インストールディスクの入ったドライブは除く)。Mac mini 2011ではこんなことなかった気がするのだが、2014では発生するので要注意。
  5. インストールが終わり、Windowsが正常起動したら初期設定を行う。此処から先、Windowsが起動してドライバの設定が終わるまではBluetooth機器が使えない。ドライバが入ってないからである。Bluetoothマウスやキーボードが使えない理由はこれ。
  6. 2014(というかYosemiteで作ったメモリ)では初期設定が終わると自動的にBootCampインストーラーが起動しドライバ群がインストールされ、その後再起動する。2011ではドライバをSETUPする。終わったら、USBメモリを外し、再起動する。
    これをしないとディスプレイドライバが標準のままなので、画面の解像度変更とか2画面とかが出来ないし、 ネットワークも繋がらない。このあたりがWindows純正メーカー品との違い。こういう作業に慣れてないと出来ないと思う。
    Bluetooth機器はペアリングが切れるので、コントロールパネルから再ペアリングが必要(2014ではそうだった)。
  7. ここでも注意すべきは、2011では、USB1にはUSBメモリ/DVDドライブ/HDDをつながないことである。起動しなくなる。USB2~4につないでいる状態では起動するので、基本的に、USB1にはキーボードやマウスなど、起動に関係ないデバイスをつなぎ、USB2~4にHDDや光学ドライブを接続することになる。当然、Windows上でReadyBoostをUSBメモリに作る場合もUSB1に接続してはいけない。なお、HUBをつないでいても状況は同じである。2014では問題ない。
なお、インストールを途中で中断すると、以後Macが全く起動できなくなる。Command+Rでの復元起動も効かない。この場合は、Option+Command+P+RでNVRAMクリアすれば起動できるようになる。ただし、MacOS部分が破壊されている場合はやはり起動に失敗するので、Command+Rで復元する。このとき、TimeMachineバックアップがあれば、復元がとても楽になる。

・・・

以上のことを知っていれば、Mac mini 2011でも2014でもBootCampによるWindows7環境を作成できる。なんにしても、Appleの説明は情報が足りない。

ここで言えることは、「MacをWindows機にして使おうなんて、普通の人は思わないほうがいい」である。 価格対性能比(およびデザイン)では決して悪くないが、やはりWindows機とは異なるので壁が高い。
この最初のWindows環境の構築だけでなく、他にもいろいろと問題がある。それについては別の記事にする。「労多くして益少なし」まさにこのことを言う。反省。
Appleにしてみれば、BootCampはおまけであって、完全ではなくても文句は言わないで、というところだろう。

以下は2011での話。
・・・2013/02/16
MountainLion用に更新Mac mini(mid2011) EFIファーム v1.6のアップデートで、「USB記憶装置がホットプラグされている時の起動装置の選択の問題が解決される」は、本当に解決されたようである。

コメントにも頂いたとおり、Option(Windowsキーボードの場合はAlt)を押したまま再起動すると、起動メディア選択ができる(事を確認した)。たぶんファームアップデートで改善されたというのがこれのことだと思う。この時はUSB-DVDドライブに入っているWindowsインストールディスクからの起動もできた。USB1でなくてもOKだった(USB1以外につないでいる場合)。

ただし、 USB-DVDにWindowsディスク、USBメモリにWindowsを入れたものを挿していると、どちらかを起動選択しても、なぜか両方とも起動できないので注意。