高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1141
Disabling a Processor on a Multiprocessor System


Q: 私は、マルチプロセッサ搭載の Macintosh コンピュータを持っています。プロセッサの 1 つを一時的に無効にして、シングルプロセッサの環境で自分の Mac OS X 製品をテストしてみたいのですが、これはどのようにすれば可能でしょうか?

A: Open Firmware を持つすべての Power Macintosh システムでは、プロセッサの数が実際に存在するよりも少ないとシステムに信じさせるように設定を変更できます。Mac OS X の Terminal アプリケーションを使って、nvram コマンドを入力してシステムをリブートできます。または、Open Firmware 環境内で利用できる方法もあります。



Mac OS X の Terminal アプリケーションを使ってプロセッサの数を 1 に設定

次の指示は、Mac OS X の場合にのみ有効です。プロセッサの数を変更するには root のパスワードまたは管理者のパスワードを知っている必要があります。設定変数、boot-args を設定するには、Terminal アプリケーションを使って nvram コマンドを発行します。次の手順に従います。

手順 1:Terminal アプリケーションを起動します。Terminal アプリケーションは /Applications/Utilities/Terminal にあります。

手順 2:boot-args の現在の設定を見るには、次のコマンドを入力します。


         % nvram boot-args


手順 3:次のコマンドを入力します。


         % sudo nvram boot-args="cpus=1"

boot-args の現在の値を維持する場合は、その値を再入力する必要があります。たとえば、手順 2 の結果が次のようになったとします。


         boot-args       debug=0x4

その場合、nvram コマンドを次のように入力します。


         % sudo nvram boot-args="debug=0x4 cpus=1"


手順 4:パスワードを要求されたら、root のパスワードまたは管理者のパスワードを入力します。

手順 5:システムを再起動します。

以上のコマンドにより、不揮発性 RAM(NVRAM)に、Open Firmware の設定変数、"boot-args" が設定されます。このことは、システムを再起動しても設定が維持されることを意味します。 再起動する前に設定を変更した場合は、後に行った設定が前の設定を上書きします。boot-args のスペルを間違えたとしても、警告は出ず、新しいエントリが(おそらく無意味に)NVRAM に作られ、使われるプロセッサの数は再起動後も変わりません。

重要な注意点 - プロセッサの数は、少なくとも 1 つ以上でなければならず、またシステムに実際に存在している数を越えて指定することはできません。不正なプロセッサの数を指定すれば、システムが、ブート処理の最中に停止する場合もあります。これが起こった場合は、次節の 「cpus 設定のクリア」で説明する PRAM クリアを実行する必要があります。

Open Firmware においても boot-args 設定変数を設定できます。このオプションについては、この Q&A の最後の「Open Firmware における cpus を使った Mac OS X のプロセッサ数の設定」の節で説明します。



cpus 設定のクリア

cpus は NVRAM に設定され、その設定は、変更あるいはクリアされるまで、何度再起動しても維持されます。cpus を別の値に設定するには、上記の手順を使います。cpus 設定をクリアするには次の 3 つの方法があります。

1. Terminal アプリケーションを使って boot-args 設定変数をクリアします。たとえば、Terminal アプリケーションにおいて次のコマンドを入力します。


         % sudo nvram boot-args=""

このコマンドシーケンスは boot-args の値をクリアします。

2. PRAM クリアにより boot-args の値をクリアできます。システムを再起動し、2 度目の起動ビープ音が聞こえるまで Command-Option-P-R キーを押したままにします。その後キーを離すとシステムは通常通りすべての CPU を認識した状態で再起動されます。この方法の場合、独自に設定したほかの NVRAM 設定もクリアされることは忘れないでください。

3. 最後に、「システム環境設定」を選択し「起動ディスク」をクリックすることによって、cpus 設定をクリアできます。その後起動ディスクを別のボリュームに切り替えます。この方法では、boot-args 設定変数のすべての内容がクリアされます。Terminal アプリケーションを使って設定をクリアする場合と同様です。



Open Firmware における cpus を使った Mac OS X のプロセッサ数の設定

Open Firmware ユーザインタフェースを使って、NVRAM に同じ cpus の設定を行うことができます。NVRAM に設定された後は、その設定はシステムの再起動後も維持されます。

Open Firmware 内で cpus の値を設定するには、次の手順に従います。

手順 1. Open Firmware の環境に入ります。
システムを再起動し、Open Firmware の画面が表示されるまで Command-Option-O-F を押したままにします。

手順 2. boot-args の現在の設定値を見るために、次のコマンドを入力します。


         cr boot-args type cr

(Open Firmware の愛用者の中には、printenv boot-args でも同じことができると気付いている人もいるかもしれません。しかしこの方法では boot-args にある各文字が、人が読めるテキスト文字列ではなく 16 進数の値で出力されてしまいます。)

手順 3. 次のコマンドを入力します。


         setenv boot-args cpus=1

このコマンド行では、Terminal アプリケーションを使ったときのように、2 重引用符は使いません。

boot-args の現在の値を維持する場合は、その値を再入力する必要があります。例えば、手順 2 の結果が次のようになったとします。


         debug=0x4
          ok

その場合、コマンドを次のように入力します。


         setenv boot-args debug=0x4 cpus=1


手順 3. ok が返されたら、次のコマンドを入力してブート処理を続けます。


         mac-boot

設定をクリアする場合は、上記「cpus 設定のクリア」の節で説明したオプションを参照してください。



参考文献

Tech Note 1061 Fundamentals of Open Firmware, Part I: The User Interface, Part I in the Open Firmware Technote Series

Tech Note 2004 Debugging Open Firmware Using Telnet

Tech Note 1062 Fundamentals of Open Firmware, Part II: The Device Tree Part II in the Open Firmware Technote Series

[2002 年 3 月 22 日]