約 4,339,235 件
https://w.atwiki.jp/oxon/pages/66.html
Emacs Unixで長い歴史を持つ定番のエディタである。OS Xにも/usr/binに標準でインストールされている。 キーバインディング Cocoa?で記述されたアプリケーションのキーバインディングは、bashやEmacsの主要なキーバインディングと一致する。そのため、Cocoaのキーバインディングに慣れたユーザにとっては、Emacsは馴染みやすいエディタであろう。 X Window System対応 /usr/bin/emacsはコンパイル時のフラグのせいで、X Window Systemでの使用ができない。そのため、-nwオプションをつけたのと同じ動作しかしてくれない。X Window System上でEmacsを使用したいユーザは、Finkから導入するのが簡単である。 日本語入力 Carbon Emacsをインストールすることで、ことえり?やATOK?での日本語入力に対応する。またFinkなどからCannaなどを導入することもできる。 Leopardからは、Terminal.appで起動したEmacsが日本語入力を受け付けるようになった。そのため、LeopardでEmacsを使う分には、普段使用していることえり?がそのまま使えるので、Carbon Emacsなどを導入しなくともよい。 Last Updated 2008-04-11
https://w.atwiki.jp/okadai-riron/pages/8.html
設定 ホームディレクトリの ".emacs" の最後に以下を追加。 (require tex-site) (setq TeX-default-mode japanese-latex-mode) (setq japanese-TeX-command-default "pTeX") (setq japanese-LaTeX-command-default "pLaTeX") (setq japanese-LaTeX-default-style "jsarticle") (setq TeX-file-extensions ("tex" "sty" "cls" "ltx" "texi" "texinfo" "dtx")) (setq kinsoku-limit 10) (setq TeX-output-view-style (("^dvi$" "." "pxdvi %d"))) 使い方 C-c C-e とすると、\begin{...}, \end{...}などの環境を挿入してくれる。 保存して、C-c C-c とすると、コンパイル。 コンパイルが成功したらもう一度 C-c C-c とすると、dvi-viewer (pxdvi) が立ち上がってできたdviファイルを閲覧できる。 ソースファイルを分割している場合は、それぞれのファイルの末尾に以下の4行を追加。 (分割していなければ必要ない。) 親分 (他のソースファイルを読み込むTeXの本体) %%% Local Variables %%% mode japanese-latex %%% TeX-master t %%% End 子分 (includeなどで読み込まれるファイルの場合) %%% Local Variables %%% mode japanese-latex %%% TeX-master "親分のファイル名(拡張子は除く)" %%% End
https://w.atwiki.jp/kenichiro/pages/107.html
Carbon Emacsにやてふを入れる。 Help Carbon Emacs Package Net-Install YaTeX でYaTexをダウンロード。これでYaTexが入る。 .emacsに以下を記述してやてふモードが起動するようにする (setq auto-mode-alist (cons (cons "\\.tex$" yatex-mode) auto-mode-alist)) (autoload yatex-mode "yatex" "Yet Another LaTeX mode" t) ついでに^C T Jでコンパイル。^C T Pでビューになる設定。 (add-hook yatex-mode-hook (lambda () (setq tex-command "platex") (setq dvi2-command "xdvi") ))
https://w.atwiki.jp/macmini2011/pages/12.html
0. はじめに 本ページはMac mini 2011にてSnow Leopardを動作させる為の備忘録です。 過去の情報として、Snow Loepardがインストールできる別のMacで一旦インストールを行い、そのコピーやHDDそのものを取り出す、Snow Leopardがインストールできる機種と接続し、Mac miniをターゲットディスクモードで起動し、インストールするなどありますが、メディアからクリーンインストールする方法を対象とします。 動作確認機種 Mac mini 2011 Server Core i7 2.0GHz IGPU Intel HD 3000(macmini5,3) Mac mini 2011 Core i5 2.5GHz dGPU Radeon 6630M(macmini5,2) 2016.01.23追加 ※Core i5モデルのmacmini5,1も動作すると思いますが、未検証です。 本手順は、管理人の備忘録で、動作保証はしていません。使用に伴い機器の故障等が発生しても保証できません。内容を参考にする場合は、自己責任で実施してください。また、他のまとめサイトへの掲載や内容の無断転載は厳禁とします。 1. 事前準備 Snow Loopardが動作する最終機種はMacBook Pro 2011、およびiMac 2011です。それ以降の機種は、10.7 Lion以降がプレインストールされており、Snow Leopardにダウングレードさせることができません。 Snow Leopardのメディア販売は10.6.3までですが、10.6.3のカーネルが対応しているCPUは第一世代のCore iシリーズ(Nahalem)までで、Mac mini 2011に登載されている第二世代のSandy Bridgeには対応していないからです。また、CPU内蔵GPUのIntel HD 3000にも対応していないため、GPUアクセラレーションが全く働きません。 Mac mini 2011のハードウエア構成をみると、スペックとしてはMacBook Pro (13-inch, Early 2011)がMac mini 2011に近いことがわかります。出荷時のOSバージョンをみると、MacBook Pro 2011は10.6.6以降で動作するので、MacBook Pro 2011のリカバリディスク(10.6.6、10.6.7)がクリーンインストールのキモになります。 リカバリディスクの入手方法ですが、Snow LeopardがプレインストールされたMacBook Pro 2011、iMac 2011の付属として入手する、秋葉原等のジャンクショップからディスクのみ入手する、オークションで入手するなどいくつか方法はありますが、一般には販売されていないので、普通に入手するのは困難です。 管理人は、ヤフオクを定期的にチェックし、オークションで入手しました。幸いMacBook Pro 2011の10.6.7のメディアが1600円〜1800円で複数出品されており、ディスクの入手には手間取りませんでした。 2. リカバリディスクの機種チェックをはずす Macに付属するリカバリディスクは、機種ごとにカスタマイズされています。MacBook Pro 2011、iMac 2011に付属するリカバリディスクは10.6.6/10.6.7ですが、ソフトウエアアップデートで提供されるアップデートを適用した10.6.6/10.6.7とは構成が異なります。 具体的には、ソフトウエアアップデートによる10.6.6/10.6.7のカーネルはSandy Bridgeに対応していません。アップデートで対応するのはSnow Leopard最終の10.6.8からです。また、GPUドライバもIntel HD 3000のドライバが含まれません。 該当機種で10.6.7への専用のアップデートファイルが提供されていたりするのはこの為です。 Mac OS X 10.6.7 アップデート - MacBook Pro (Early 2011) Mac OS X 10.6.7 アップデート for iMac(Early 2011)1.0 専用のカスタマイズが施されていること、該当機種でしか動作確認が行われないこと、マーケティングの問題など様々な要因から、リカバリディスクには機種チェックが入っています。 そこで、メディアの中身を編集し、インストール時の動作機種チェックを外します。 ディスクユーティリティからリカバリディスクのディスクイメージを作成し、そのイメージを編集し、DVDに焼き直すこともできますが、結構手間がかかるので、リカバリディスクの内容をディスクユーティリィでSDカードもしくはUSBメモリに復元し、その中身に直接反映します(DVDのままでは編集できないのは当たり前なので)。 リカバリディスクの機種チェックは下記で行われています。 /Volumes/Mac OS X Install DVD/System/Installation/Packages内のOSInstall.mpkg内のDistributionスクリプト 機種チェックの回避は、OSInstall.mpkgをxarコマンドでばらして、Distributionスクリプトを書き換えます。 Distributionスクリプトのロジックを確認するとわかりますが、チェック関数installCheckScript()で該当機種でない場合、エラーを返すようになっているので、機種チェックの関数自体を削除し、mpkgパッケージに戻します。 MacBookPro 2011のリカバリディスクで機種チェックに関連する関数は以下の通りです。 function hwbeModelCheck() { try { var modelProp = system.sysctl( hw.model ); } catch(e) { system.log( hwbeInstallCheck threw exception + e); } var machineCount = hwbeSupportedMachines.length; for ( var i = 0; i machineCount; i++ ) { if ( modelProp == hwbeSupportedMachines[i] ) { return true; } } return false; } function hwbeInstallCheck() { if ( !hwbeModelCheck() ) { my.result.message = " "; my.result.type = Fatal ; return false; } return true; } var hwbeSupportedMachines = [ MacBookPro8,1 , MacBookPro8,2, MacBookPro8,3 , ]; この関数が、installCheckScript()から呼び出されるので、下記の呼び出し側を削除します(hwbeInstallCheck()の結果に関わらずtrueを返すようにしても良いです)。 if (typeof(isFNI) == "undefined" typeof(hwbeInstallCheck) != "undefined") { if (!hwbeInstallCheck()) { return false; } } なお、Distribustionスクリプト修正による機種チェック回避は、昔からある手法なので、こちらを参考にしてください。 2. インストール 機種チェックが外れたので、通常通りリカバリディスクからのインストールができるようになります。 インストール作業行うとわかりますが、ここで一点問題があり、動作が表示に遅いです。 Snow Leopardは10.6.3以降、パワーマネージメントが強化されており、CPUだけでなく、GPUの動作クロックも動的に変更しています。Mac mini 2011が動作に必要とするドライバは全て用意されているのですが、Snow LeopardがMac mini 2011で動作することを想定しておらず、パワーマネージメントが適切に働きません。 CPUは負荷に応じて本来、ベースクロック(BCLK)の8倍から最大29倍で動作するのですが、この時点では常に8倍固定(800MHz)で動作しています。また、GPUに関しても同様です。 この時点では動作が遅いだけでインストール自体はできるので、パフォーマンスの改善についてはインストール後に設定します。 また、GPUドライバはロードされるフレームバッファを確認すると、接続ポート数が足りなかったり、ディスプレイポートのみの接続となっていたりとMacBook Pro 2011用になっています。その為、HDMIで接続させると色がおかしく、ドライバがロードされるとピンク色かかったりなど、表示がおかしくなるので、本体付属のHDMI-DVI変換アダプタ等を使用し、DVI接続で表示するようにしてください。 3. パフォーマンスの改善 インストール直後は、Xbenchを走らせるとわかりますが、下記の通りCPU、GPUともに本来のパフォーマンスを発揮していません。 Results66.91 System InfoSystem Version10.6.7 (10J4139) Physical RAM4096 MB ModelMacmini5,3 Drive TypeAPPLE HDD HTS727550A9E362 CPU Test63.95 GCD Loop82.944.37 Mops/sec Floating Point Basic55.851.33 Gflop/sec vecLib FFT41.961.38 Gflop/sec Floating Point Library114.2219.89 Mops/sec Thread Test218.81 Computation200.774.07 Mops/sec, 4 threads Lock Contention240.4110.34 Mlocks/sec, 4 threads Memory Test178.46 System160.00 Allocate244.89899.31 Kalloc/sec Fill113.715528.80 MB/sec Copy170.313517.64 MB/sec Stream201.74 Copy205.884252.38 MB/sec Scale191.273951.65 MB/sec Add218.624657.10 MB/sec Triad193.504139.37 MB/sec Quartz Graphics Test85.35 Line72.244.81 Klines/sec [50% alpha] Rectangle79.3323.68 Krects/sec [50% alpha] Circle67.985.54 Kcircles/sec [50% alpha] Bezier77.841.96 Kbeziers/sec [50% alpha] Text218.6213.68 Kchars/sec OpenGL Graphics Test38.49 Spinning Squares38.4948.83 frames/sec User Interface Test73.38 Elements73.38336.76 refresh/sec Disk Test36.38 Sequential48.66 Uncached Write140.3786.18 MB/sec [4K blocks] Uncached Write41.4723.46 MB/sec [256K blocks] Uncached Read24.677.22 MB/sec [4K blocks] Uncached Read95.9048.20 MB/sec [256K blocks] Random29.04 Uncached Write10.241.08 MB/sec [4K blocks] Uncached Write80.2525.69 MB/sec [256K blocks] Uncached Read53.890.38 MB/sec [4K blocks] Uncached Read109.9820.41 MB/sec [256K blocks] MSRDumper.kextを入れて、CPUの倍率を確認するとわかりますが、常に8倍固定で動作していることがわかります。 Jan 17 01 19 25 Mac-mini-2011 kernel[0] CoreCount 4 Jan 17 01 19 25 Mac-mini-2011 kernel[0] ThreadCount 8 Jan 17 01 19 25 Mac-mini-2011 kernel[0] 0xE2 0x404 Jan 17 01 19 30 Mac-mini-2011 kernel[0] MSRDumper CoreMulti(8) Jan 17 01 19 30 Mac-mini-2011 kernel[0] MSRDumper PStatesReached 8 また、kextstat -lやIORegistryExplorerで確認するとわかりますが、AppleGraphicsPowerManagment.kextが読み込まれておらず、GPUの動作クロックも一番低いままとなっています。これは、動作プラットフォームとしてMac mini 2011(macmini5,x)を認識していない為です。 IOPlatformPluginFamily.kextのプラグインのACPI_SMC_PlatformPlugin.kextにMac mini 2011の定義が無いことが原因なので、Mac mini 2011の定義を追加します。今回、使用しているMac mini 2011はServerモデルで、macmini5,3なので、macmini5_3.plistを追加しました。 bash-3.2# pwd /Volumes/Macintosh HD/System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources bash-3.2# ls -la total 936 drwxr-xr-x 48 root wheel 1632 Jan 17 03 55 . drwxr-xr-x 11 root wheel 374 Jan 17 03 55 .. -rw-r--r-- 1 root wheel 7886 Apr 22 2011 MacBook1_1.plist -rw-r--r-- 1 root wheel 7886 Apr 22 2011 MacBook2_1.plist -rw-r--r-- 1 root wheel 13928 Apr 22 2011 MacBook3_1.plist -rw-r--r-- 1 root wheel 11620 Apr 22 2011 MacBook4_1.plist -rw-r--r-- 1 root wheel 6992 Apr 22 2011 MacBook5_1.plist -rw-r--r-- 1 root wheel 7419 Apr 22 2011 MacBook5_2.plist -rw-r--r-- 1 root wheel 7824 Apr 22 2011 MacBook6_1.plist -rw-r--r-- 1 root wheel 7772 Apr 22 2011 MacBook7_1.plist -rw-r--r-- 1 root wheel 17227 Apr 22 2011 MacBookAir1_1.plist -rw-r--r-- 1 root wheel 10827 Apr 22 2011 MacBookAir2_1.plist -rw-r--r-- 1 root wheel 12514 Jun 8 2011 MacBookAir3_1.plist -rw-r--r-- 1 root wheel 12515 Jun 8 2011 MacBookAir3_2.plist -rw-r--r-- 1 root wheel 11249 Apr 22 2011 MacBookPro1_1.plist -rw-r--r-- 1 root wheel 11249 Apr 22 2011 MacBookPro1_2.plist -rw-r--r-- 1 root wheel 11249 Apr 22 2011 MacBookPro2_1.plist -rw-r--r-- 1 root wheel 11249 Apr 22 2011 MacBookPro2_2.plist -rw-r--r-- 1 root wheel 14062 Apr 22 2011 MacBookPro3_1.plist -rw-r--r-- 1 root wheel 14221 Apr 22 2011 MacBookPro4_1.plist -rw-r--r-- 1 root wheel 7524 Apr 22 2011 MacBookPro5_1.plist -rw-r--r-- 1 root wheel 7524 Apr 22 2011 MacBookPro5_2.plist -rw-r--r-- 1 root wheel 8006 Apr 22 2011 MacBookPro5_3.plist -rw-r--r-- 1 root wheel 7551 Apr 22 2011 MacBookPro5_4.plist -rw-r--r-- 1 root wheel 7551 Apr 22 2011 MacBookPro5_5.plist -rw-r--r-- 1 root wheel 8988 Apr 22 2011 MacBookPro6_1.plist -rw-r--r-- 1 root wheel 8988 Apr 22 2011 MacBookPro6_2.plist -rw-r--r-- 1 root wheel 7444 Apr 22 2011 MacBookPro7_1.plist -rw-r--r-- 1 root wheel 11353 Jun 8 2011 MacBookPro8_1.plist -rw-r--r-- 1 root wheel 11808 Jun 8 2011 MacBookPro8_2.plist -rw-r--r-- 1 root wheel 11808 Jun 8 2011 MacBookPro8_3.plist -rw-r--r-- 1 root wheel 802 Apr 22 2011 MacPro1_1.plist -rw-r--r-- 1 root wheel 802 Apr 22 2011 MacPro2_1.plist -rw-r--r-- 1 root wheel 8724 Apr 22 2011 MacPro3_1.plist -rw-r--r-- 1 root wheel 6213 Apr 22 2011 MacPro4_1.plist -rw-r--r-- 1 root wheel 6213 Apr 22 2011 MacPro5_1.plist -rw-r--r-- 1 root wheel 7039 Apr 22 2011 Macmini3_1.plist -rw-r--r-- 1 root wheel 6987 Apr 22 2011 Macmini4_1.plist -rw-r--r-- 1 root wheel 15193 Aug 24 2012 Macmini5_3.plist -rw-r--r-- 1 root wheel 2569 Apr 22 2011 Xserve3_1.plist -rw-r--r-- 1 root wheel 7483 Apr 22 2011 iMac10_1.plist -rw-r--r-- 1 root wheel 6552 Apr 22 2011 iMac11_1.plist -rw-r--r-- 1 root wheel 6552 Apr 22 2011 iMac11_2.plist -rw-r--r-- 1 root wheel 6553 Apr 22 2011 iMac11_3.plist -rw-r--r-- 1 root wheel 6553 Apr 22 2011 iMac12_1.plist -rw-r--r-- 1 root wheel 6553 Apr 22 2011 iMac12_2.plist -rw-r--r-- 1 root wheel 11667 Apr 22 2011 iMac8_1.plist -rw-r--r-- 1 root wheel 7479 Apr 22 2011 iMac9_1.plist macmini5_3.plistの定義は、MacBookPro8_1.plistをコピーし作成してもよいのですが非常に大変です。そこで、Mac mini 2011はOS X Lion 10.7が動作するので、10.7から定義をコピーします。 管理人環境は、もう一つのHDDにLion Server 10.7.5がインストールしてあるので、10.7.5の定義をコピーしました(10.7.5の定義は上記と同じ場所にあります)。 Mac mini 2011の定義を追加し、カーネルキャッシュを再作成し再起動すると、負荷に応じた適切なパワーマネージメントが働くようになり、CPU本来のパフォーマンスが出るようになります。 Results188.05 System Info Xbench Version1.3 System Version10.6.7 (10J4139) Physical RAM4096 MB ModelMacmini5,3 Drive TypeAPPLE HDD HTS727550A9E362 CPU Test221.37 GCD Loop291.6615.37 Mops/sec Floating Point Basic192.994.59 Gflop/sec vecLib FFT142.844.71 Gflop/sec Floating Point Library406.7370.82 Mops/sec Thread Test677.74 Computation652.8413.23 Mops/sec, 4 threads Lock Contention704.6130.31 Mlocks/sec, 4 threads Memory Test513.14 System536.90 Allocate817.053.00 Malloc/sec Fill370.2718003.24 MB/sec Copy601.3412420.37 MB/sec Stream491.39 Copy487.0510059.79 MB/sec Scale480.739931.75 MB/sec Add512.0010906.69 MB/sec Triad486.9410416.86 MB/sec Quartz Graphics Test316.05 Line252.0616.78 Klines/sec [50% alpha] Rectangle312.1193.18 Krects/sec [50% alpha] Circle263.9821.52 Kcircles/sec [50% alpha] Bezier274.846.93 Kbeziers/sec [50% alpha] Text818.2251.18 Kchars/sec OpenGL Graphics Test136.27 Spinning Squares136.27172.87 frames/sec User Interface Test433.75 Elements433.751.99 Krefresh/sec Disk Test60.70 Sequential136.27 Uncached Write194.65119.51 MB/sec [4K blocks] Uncached Write188.75106.79 MB/sec [256K blocks] Uncached Read69.9020.46 MB/sec [4K blocks] Uncached Read216.81108.97 MB/sec [256K blocks] Random39.05 Uncached Write12.961.37 MB/sec [4K blocks] Uncached Write143.2445.86 MB/sec [256K blocks] Uncached Read84.870.60 MB/sec [4K blocks] Uncached Read152.7628.35 MB/sec [256K blocks] 4. その他設定 IORegistryExplorerで確認するとわかりますが、CPU0@0で、IOPlatformEnablerが読み込まれていないことがわかります。 これは、ApplePlatformEnabler.kextがMac mini 2011を認識していないからです。定義は埋め込まれているので、バイナリエディタでApplePlatformEnablerの中身を直接書き換えてエントリを追加します。 Mac mini 2011 serverモデルのボードIDはMac-7BA5B2794B2CDB12なので、これを追加します(元の定義ではMac-942452F5819B1C1Bにあった所を上書きし、一番最後にエントリを追加しています)。 bash-3.2# pwd /Volumes/Macintosh HD/System/Library/Extensions/ApplePlatformEnabler.kext/Contents/MacOS bash-3.2# strings ApplePlatformEnabler IO80211Interface IOMACAddress CFB68B9A-40AF-437A-AFFE-FE671C6193C5 ApplePlatformEnabler.kext/Contents/PlugIns/ApplePlatformEnablerLib.plugin ApplePlatformEnablerUserClient IOUserClientClass IOCFPlugInTypes MacBookAir1,1 MacBookAir2,1 DVDSupported ODSSupported SSAltDefault Macmini4,1 Macmini3,1 board-id ApplePlatformEnabler Mac-942C5DF58193131B Mac-7BA5B2794B2CDB12 com.apple.driver.ApplePlatformEnabler 2.0.2d1 3の設定追加で、AppleGrapchicsPowerManagement.kext(AGPM)がロードされるようになりますが、AGPMのplistにはMac mini 2011の定義はありません。MacBookPro8,1のIGPU定義と同じでよいので、下記定義を追加します。 key Mac-7BA5B2794B2CDB12 /key dict key IGPU /key dict key Heuristic /key dict key BusyDownThresholdPercent /key integer 70 /integer key BusyUpThresholdPercent /key integer 90 /integer key DiagnosticModeDefault /key integer 0 /integer key EvaluateDownInterval /key integer 350000 /integer key EvaluateUpInterval /key integer 66000 /integer key ID /key integer 2 /integer key SensorOption /key integer 1 /integer /dict key control-id /key integer 16 /integer key max-power-state /key integer 15 /integer key min-power-state /key integer 0 /integer /dict /dict 5. 動作結果 全ての設定を終えると下記の通り本来のパフォーマンスを発揮するようになります。 ※ インストール時のメモリ構成は標準のDDR3-1333 2GBx2で行いましたが、インストール後、DDR3-1600 8GBx2に変更しています。 Macmini5,3での動作結果 GeekBench 3 Score 10.6.8にアップデートし、設定が戻ってしまった場合は、3、4の設定をやり直してください。 6. 補足(2016.01.23) ATI6000Controller.kextにはRadeon 6630MのID(0x67411002)も登録されており、Radeon 6630Mを搭載したMac mini 2011(Macmini5,2)で動作を確認できました。 ただし、MacBookPro 2011 13インチ 10.6.7のリカバリディスクでは、GPUモデル名を正しく判別できません。 10.6.8へアップデートすることで、GPUモデル名も正しく判別するようになります。 Macmini5,2も動作プラットホームとしての定義がない為、インストール直後はパワーマネージメントが働かず(CPU倍率は8倍固定)、下記の通りの動作となります。 Results92.46 System Info Xbench Version1.3 System Version10.6.7 (10J3250) Physical RAM16384 MB ModelMacmini5,2 Drive TypeTOSHIBA MK5065GSXF CPU Test57.23 GCD Loop80.904.26 Mops/sec Floating Point Basic49.531.18 Gflop/sec vecLib FFT36.701.21 Gflop/sec Floating Point Library99.1017.26 Mops/sec Thread Test119.89 Computation120.092.43 Mops/sec, 4 threads Lock Contention119.685.15 Mlocks/sec, 4 threads Memory Test150.80 System120.80 Allocate122.16448.63 Kalloc/sec Fill111.115402.42 MB/sec Copy130.722700.06 MB/sec Stream200.63 Copy206.274260.47 MB/sec Scale197.474079.57 MB/sec Add214.234563.57 MB/sec Triad186.673993.39 MB/sec Quartz Graphics Test79.46 Line64.134.27 Klines/sec [50% alpha] Rectangle77.8623.25 Krects/sec [50% alpha] Circle65.455.33 Kcircles/sec [50% alpha] Bezier70.671.78 Kbeziers/sec [50% alpha] Text197.6112.36 Kchars/sec OpenGL Graphics Test86.07 Spinning Squares86.07109.18 frames/sec User Interface Test46.79 Elements46.79214.76 refresh/sec Disk Test40.99 Sequential77.76 Uncached Write97.3759.78 MB/sec [4K blocks] Uncached Write72.4641.00 MB/sec [256K blocks] Uncached Read62.2518.22 MB/sec [4K blocks] Uncached Read88.4644.46 MB/sec [256K blocks] Random27.83 Uncached Write11.801.25 MB/sec [4K blocks] Uncached Write50.4516.15 MB/sec [256K blocks] Uncached Read44.830.32 MB/sec [4K blocks] Uncached Read59.2310.99 MB/sec [256K blocks] その為、ACPI_SMC_PlatformPlugin.kextに、Macmini5,2.plistを追加(Macmini5,2.plistは10.7.5からコピー)をすることで本来のパフォーマンスが出ることを確認しました。 Results200.24 System Info Xbench Version1.3 System Version10.6.7 (10J3250) Physical RAM16384 MB ModelMacmini5,2 Drive TypeTOSHIBA MK5065GSXF CPU Test238.75 GCD Loop327.2417.25 Mops/sec Floating Point Basic219.275.21 Gflop/sec vecLib FFT144.304.76 Gflop/sec Floating Point Library452.9978.88 Mops/sec Thread Test465.19 Computation462.549.37 Mops/sec, 4 threads Lock Contention467.8620.13 Mlocks/sec, 4 threads Memory Test518.56 System480.88 Allocate561.162.06 Malloc/sec Fill425.1020669.38 MB/sec Copy475.269816.22 MB/sec Stream562.65 Copy546.4811287.34 MB/sec Scale543.2811224.09 MB/sec Add588.6312539.03 MB/sec Triad574.7612295.50 MB/sec Quartz Graphics Test368.44 Line280.1918.65 Klines/sec [50% alpha] Rectangle379.55113.32 Krects/sec [50% alpha] Circle318.3825.95 Kcircles/sec [50% alpha] Bezier315.607.96 Kbeziers/sec [50% alpha] Text945.7459.16 Kchars/sec OpenGL Graphics Test366.92 Spinning Squares366.92465.46 frames/sec User Interface Test497.78 Elements497.782.28 Krefresh/sec Disk Test51.97 Sequential100.88 Uncached Write102.4462.90 MB/sec [4K blocks] Uncached Write85.0148.10 MB/sec [256K blocks] Uncached Read104.5630.60 MB/sec [4K blocks] Uncached Read116.7958.70 MB/sec [256K blocks] Random35.00 Uncached Write13.511.43 MB/sec [4K blocks] Uncached Write70.5522.59 MB/sec [256K blocks] Uncached Read59.130.42 MB/sec [4K blocks] Uncached Read108.8520.20 MB/sec [256K blocks] CPUに負荷をかけると、倍率が8倍から32倍で動作することをMSRDumperで確認できます。 Jan 24 02 10 44 Mac-mini-2011 kernel[0] MSRDumper CoreMulti(8) Jan 24 02 10 44 Mac-mini-2011 kernel[0] MSRDumper PStatesReached 8 30 Jan 24 02 10 45 Mac-mini-2011 kernel[0] MSRDumper CoreMulti(30) Jan 24 02 10 45 Mac-mini-2011 kernel[0] MSRDumper PStatesReached 8 30 Jan 24 02 10 45 Mac-mini-2011 kernel[0] MSRDumper CoreMulti(32) Jan 24 02 10 45 Mac-mini-2011 kernel[0] MSRDumper PStatesReached 8 30 32 Jan 24 02 10 47 Mac-mini-2011 kernel[0] MSRDumper CoreMulti(27) Jan 24 02 10 47 Mac-mini-2011 kernel[0] MSRDumper PStatesReached 8 27 30 32 Jan 24 02 10 47 Mac-mini-2011 kernel[0] MSRDumper CoreMulti(8) Jan 24 02 10 54 Mac-mini-2011 kernel[0] MSRDumper PStatesReached 8 27 30 32 Jan 24 02 10 55 Mac-mini-2011 kernel[0] MSRDumper CoreMulti(28) Jan 24 02 10 55 Mac-mini-2011 kernel[0] MSRDumper PStatesReached 8 27 28 30 32 また、ApplePlatformEnabler.kextにはMacmini5,2のボードIDを追加(Mac-942C5DF58193131Bの定義をつぶして、Mac-4BC72D62AD45599Eで上書き)します。 bash-3.2# strings ApplePlatformEnabler IO80211Interface IOMACAddress CFB68B9A-40AF-437A-AFFE-FE671C6193C5 ApplePlatformEnabler.kext/Contents/PlugIns/ApplePlatformEnablerLib.plugin ApplePlatformEnablerUserClient IOUserClientClass IOCFPlugInTypes MacBookAir1,1 MacBookAir2,1 DVDSupported ODSSupported SSAltDefault Macmini4,1 Macmini3,1 board-id ApplePlatformEnabler Mac-4BC72D62AD45599E Mac-7BA5B2794B2CDB12 com.apple.driver.ApplePlatformEnabler 2.0.2d1 AGPMへのplistには下記を追加します(10.7.5から拝借)。 key Mac-4BC72D62AD45599E /key dict key GFX0 /key dict key QSC /key dict key Enabled /key integer 1 /integer key Mode /key integer 1 /integer key hwPState /key array integer 0 /integer integer 1 /integer integer 1 /integer integer 1 /integer integer 1 /integer integer 1 /integer integer 1 /integer integer 1 /integer integer 2 /integer /array key qscOnTime /key array integer 0 /integer integer 0 /integer integer 2000 /integer integer 4000 /integer integer 5000 /integer integer 6000 /integer integer 8000 /integer integer 9000 /integer integer 0 /integer /array /dict key control-id /key integer 17 /integer key max-power-state /key integer 8 /integer /dict /dict Macmini5,2での動作結果は下記となりました。 ※メモリはインストール時からDDR3-1333 8GBx2に変更 GeekBench 3 Score (スクリーンショットを取った時のスコアはアップロードし忘れました...) 戻る
https://w.atwiki.jp/macmini/pages/30.html
■ Snow Leopardを64bitカーネルで動作させる Snow Leopardの機能強化の目玉の一つとしてはカーネルの64bit化が挙げられる。概要は、「やっぱりスゴい! Snow Leopardの「64bit対応」で纏められている。 しかしながら売りであるカーネルの64bit化だが、下記記事の通り、従来のデバイスやアプリケーションの互換性を重視して、現状では多くの機種においてデフォルトで32bitカーネルがロードされる。 「64bit完全対応のSnow Leopard、実はデフォルト起動は32bitカーネル!?」 64bitカーネルが動作する為の必要条件は、 CPUが64bitに対応している EFIが64bitに対応している(参考情報) の2点である。 Mac mini(Early 2009)のハードウエア情報 bash-3.2# system_profiler SPHardwareDataType -detailLevel mini Hardware Hardware Overview Model Name Mac mini Model Identifier Macmini3,1 Processor Name Intel Core 2 Duo Processor Speed 2 GHz Number Of Processors 1 Total Number Of Cores 2 L2 Cache 3 MB Memory 4 GB Bus Speed 1.07 GHz Boot ROM Version MM31.0081.B06 SMC Version (system) 1.35f0 bash-3.2# uname -a Darwin mac-mini.local 9.8.0 Darwin Kernel Version 9.8.0 Wed Jul 15 16 55 01 PDT 2009; root xnu-1228.15.4~1/RELEASE_I386 i386 bash-3.2# ioreg -l -p IODeviceTree | grep firmware-abi | | "firmware-abi" = "EFI64" カーネルは起動時に32bit/64bitが選択できるのだが、Mac mini, Mac Book, Mac Book Airにおいては、Appleは上位機種との差別化の為、EFIが64bitに対応していても64bitカーネルがロードできないよう意図的に制限をかけている。32bitカーネルでも32GBまでのメモリを扱える為、実用的には問題ないのだが、これはユーザをがっかりさせる結果を招いた。 64bitカーネルのロードを制限する条件として、SMBIOSの機種情報を疑ってみたが、SMBIOSをMac miniと同等のものに書き換えても64bitカーネルがロードできることが確認でき、SMBIOSの内容は制限の条件ではなかった。 ZOTAC GF9300-D-E(CPU L3110/MEM 8GB)でSMBIOSをMac miniの情報に設定し、PC EFI対応のブートローダを組み込んで、Snow Leopardを64bitで起動させたが64bitカーネルが有効 bash-3.2# uname -a Darwin Mac-Pro.local 10.0.0 Darwin Kernel Version 10.0.0 Fri Jul 31 22 46 25 PDT 2009; root xnu-1456.1.25~1/RELEASE_X86_64 x86_64 bash-3.2# system_profiler SPHardwareDataType -detailLevel mini Hardware Hardware Overview Model Name Mac mini Model Identifier Macmini3,1 Processor Speed 3 GHz Number Of Processors 1 Total Number Of Cores 2 L2 Cache 6 MB Memory 8 GB Bus Speed 1.33 GHz Boot ROM Version MM31.00C1.B00 SMC Version (system) 1.30f3 ところが、海外のサイトをみていた所、Mac Bookで64bitカーネルをロードすることに成功した事例がみつかり、64bitカーネルのロードを制限している条件が判明した。 詳細はこちらに記載されているが、EFI boot loader(boot.efi)でカーネルロード時に機種を判別して制限しており、下記の通り該当アドレスの値をバイナリエディタで書き換えれば、64bitカーネルがロードできるようになる(boot.efiは誤って削除されないようにuchgフラグが立っているのでchflagsコマンドで解除する必要あり)。 Model (with 64-bit EFI) Byte Position in boot.efi Old Value New Value Mac mini 0x266D80x266DB 0x00 0x040x80 MacBook 0x266E8 0x00 0x04 MacBook Air 0x266F80x266FB 0x00 0x040x80 iMac 0x267180x2671B 0x00 0x0c 0x80 注. 引用元の情報は誤っており動作確認できなかった。実機で確認した所、macmini3,1では0x266DBの値を0x00から0x080に修正が必要。2009/09/09修正 上記の修正は、もちろんAppleの保障外であるが、この修正により64bitEFIを搭載する全てのIntel MacでSnow Leopardが64bitカーネルで起動するようになる。ただし、グラフィックスアダプタとしてIntelチップセットのGMA950を採用している前モデルのMac miniなどは、GMA950用のKEXTが32bitのままの為、QE/CI/OpenGLのアクセラレーションは働かず、ソフトウエアによるエミュレーション動作になる。 前モデルMac mini (Mid 2007)は、CPUは64bit対応しているが、EFIが32bitのままの為、グラフィックスアダプタのソフトウエアエミュレーション動作以前に、64bitカーネルはロードできない。 bash-3.2# file/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 /System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 Mach-O object i386 なお、boot.efiを直接修正した場合は、OSのアップデートパッチで上書きされ、ファイルの内容が元に戻る可能性がある。その為、実際は直接boot.efiを修正するのではなく、修正したものをboot64.efiなどと別の名前で保存し、元のboot.efiの代わりにboot64.efiを使うようにblessし直すと良い。 Mac mini用64bit対応 boot.efi bash-3.2# shasum boot64.efi 0f615922c4dde555e38f203caa28ce56f76212d6 boot64.efibash-3.2# hexdump boot.efi boot_efi.txtbash-3.2# hexdump boot64.efi boot64_efi.txtbash-3.2# diff boot_efi.txt boot64_efi.txt 9235c9235 00266d0 30 47 01 00 00 00 00 00 00 00 00 00 00 00 00 00--- 00266d0 30 47 01 00 00 00 00 00 00 00 00 80 00 00 00 00 ・boot.efiの置き換え手順 Step 1. ダウンロードしたboot64.efiを/System/Library/CoreServicesに置く bash-3.2# cp boot64.efi /System/Library/CoreServices Step 2. boot64.efiのパーミッションを変更 bash-3.2# chown 0 0 boot64.efibach-3.2# chflags uchg boot64.efi Step 3. boot64.efiをオリジナルのboot.efiの代わりに使うようにblessする bash-3.2# bless --info /finderinfo[0] 133 = Blessed System Folder is /System/Library/CoreServicesfinderinfo[1] 203585 = Blessed System File is /System/Library/CoreServices/boot.efifinderinfo[2] 0 = Open-folder linked list emptyfinderinfo[3] 0 = No OS 9 + X blessed 9 folderfinderinfo[4] 0 = Unused field unsetfinderinfo[5] 133 = OS X blessed folder is /System/Library/CoreServices64-bit VSDB volume id 0xA4E143A7BD6DA256bash-3.2# bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot64.efi bash-3.2# bless --info /finderinfo[0] 133 = Blessed System Folder is /System/Library/CoreServicesfinderinfo[1] 218968 = Blessed System File is /System/Library/CoreServices/boot64.efifinderinfo[2] 0 = Open-folder linked list emptyfinderinfo[3] 0 = No OS 9 + X blessed 9 folderfinderinfo[4] 0 = Unused field unsetfinderinfo[5] 133 = OS X blessed folder is /System/Library/CoreServices64-bit VSDB volume id 0xA4E143A7BD6DA256 Step 4. 64bitモードで起動するように変更し、再起動 bash-3.2# nvram boot-args="arch=x86_64"bash-3.2# nvram boot-argsboot-argsarch=x86_64bash-3.2# reboot Mac miniで64bitカーネルのロードに成功 64bit起動時のメッセージ(Kernel is LP64) bash-3.2# dmesgnpvhash=4095Darwin Kernel Version 10.0.0 Fri Jul 31 22 46 25 PDT 2009; root xnu-1456.1.25~1/RELEASE_X86_64vm_page_bootstrap 899025 free pages and 84015 wired pageskext submap [0xffffff7f80600000 - 0xffffff8000000000], kernel text [0xffffff8000200000 - 0xffffff8000600000]standard timeslicing quantum is 10000 usmig_table_max_displ = 73AppleACPICPU ProcessorId=0 LocalApicId=0 EnabledAppleACPICPU ProcessorId=1 LocalApicId=1 Enabledcalling mpo_policy_init for QuarantineSecurity policy loaded Quarantine policy (Quarantine)calling mpo_policy_init for SandboxSecurity policy loaded Seatbelt sandbox policy (Sandbox)calling mpo_policy_init for TMSafetyNetSecurity policy loaded Safety net for Time Machine (TMSafetyNet)Copyright (c) 1982, 1986, 1989, 1991, 1993The Regents of the University of California. All rights reserved.MAC Framework successfully initializedusing 16384 buffer headers and 4096 cluster IO buffer headersIOAPIC Version 0x11 Vectors 64 87ACPI System State [S0 S3 S4 S5] (S3)mbinit done (64 MB memory set for mbuf pool)rooting via boot-uuid from /chosen BDF77677-73B7-357E-B72D-7568A902D286Waiting on dict ID="0" key IOProviderClass /key string ID="1" IOResources /string key IOResourceMatch /key string ID="2" boot-uuid-media /string /dict com.apple.AppleFSCompressionTypeZlib load succeededAppleIntelCPUPowerManagementClient readyGot boot device = IOService /AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/SATA@B/AppleMCP79AHCI/PRT0@0/IOAHCIDevice@0/AppleAHCIDiskDriver/IOAHCIBlockStorageDevice/IOBlockStorageDriver/SAMSUNG MMDOE56G5MXP-0VB Media/IOGUIDPartitionScheme/Untitled@2BSD root disk0s2, major 14, minor 2Kernel is LP64FireWire (OHCI) Lucent ID 5901 built-in now active, GUID 002500fffed159ce; max speed s800.systemShutdown falseBootCache hit rate below threshold (892 hits on 1793 lookups)AppleIntelCPUPowerManagement initialization completeWaiting for DSMOS...NTFS driver 3.0 [Flags R/W].NTFS volume name Windows XP, version 3.1.NVDANV50HAL loaded and registered.Previous Shutdown Cause 0BTCOEXIST onwl0 Broadcom BCM4328 802.11 Wireless Controller5.10.91.19DSMOS has arrivedNVEthernet Ethernet address 00 25 00 d1 59 ceAirPort_Brcm43xx Ethernet address 00 24 36 f0 52 3fIO80211Controller dataLinkLayerAttachComplete() adding AppleEFINVRAM notificationIO80211Interface efiNVRAMPublished() NVEthernet setLinkStatus - Valid but not ActiveNVEthernet mediaChanged - Link is downNVEthernet setLinkStatus - Valid but not ActiveAirPort Link Down on en1. Reason 1 (Unspecified).Auth result for 00 0d 02 76 2a fe MAC AUTH succeededAirPort Link Up on en1bash-3.2# uname -aDarwin Mac-mini.local 10.0.0 Darwin Kernel Version 10.0.0 Fri Jul 31 22 46 25 PDT 2009; root xnu-1456.1.25~1/RELEASE_X86_64 x86_64 万一、起動しなくなったり、不安定な状態になってしまった場合は、メディアブート後、元のboot.efiでblessし直せば環境の修復が可能である。 最後に、Mac mini Early 2006, Late 2006は、CPUが32bitのCore Solo/Duoの為、そもそも64bitカーネル自体実行できない。 おまけ 1. 32bitカーネル起動に戻す場合は、起動時の引数指定を無くせばよい。 bash-3.2# nvram -d boot-argsbash-3.2# reboot 2. Mac mini/MacBook/MacBook Air/iMac対応boot.efi修正スクリプト ・オリジナルのboot.efiからパッチを適用したboot64.efiを作成 ・パッチが適用されたboot64.efiでblessし直す ・bless設定が初期化された場合、既存のboot64.efiを用いてblessの再設定のみを行う。 <パッチ内容> sudo perl -pi -e 's|\x30\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\x30\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efisudo perl -pi -e 's|\x38\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\x38\x47\x01\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efisudo perl -pi -e 's|\x40\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\x40\x47\x01\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efisudo perl -pi -e 's|\x56\x47\x01\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00|\x56\x47\x01\x00\x00\x00\x00\x00\x08\x00\x00\x80\x00\x00\x00\x00|g' /System/Library/CoreServices/boot.efi 参考: Mac OS X Snow Leopard — Booting into 64-bit mode ■追記1. (2009/09/11) 2009/09/11に10.6.1のアップデートが配布されたが、boot.efiは更新対象とはなっていなかった。その為、バイナリエディタで直接上書更新していても問題ない。なお、boot.efiはカーネルをロードする為のブートローダという役割から、頻繁に更新される可能性は低く、アップルが64bitカーネルの使用を再度無効にする意図がない限りは、修正が入る可能性は低いと思われる。 また、EFIファームウエアアップデートを実行し、ファームウエアのバージョンを1.2に上げた所、10.6においてカーネルが32bit/64bitに関わらずメモリを8GB(4GBx2)搭載しても、安定動作するようになった。 ■追記2. (2009/10/09) 10.6.2のベータアップデートプログラムには、インテルチップセットの内蔵GPU(GMA950、GMAX3100)用64bitドライバが含まれており、インテルGPU搭載機でもEFIが64bitなら64bitカーネルでCI/QE/OpenGLのアクセラレーションが働くようになる。 Mac mini(Eary 2009)での64bitカーネル解禁に繋がるとは思えないが、CPU、EFI共に64bitに対応しているが、グラフィックスアダプタのドライバが32bitしか用意されていなかったIntel GPU搭載のMac Book(Late 2007, Early 2008、Late 2008)、Mac Book Air (Early 2008)などには朗報であろう。 ただし、前モデルのmini (Mid 2007)はEFIが32bitなので、GMA 950用の64bitドライバが提供されても残念ながら使用できない。 ■追記3. (2009/10/29) Late 2009 iMacのプレインストールSnow Leopardの情報を確認したが、OSは10.6.1であるものの、カーネルは10.1.2とアップデートがされていた(Late 2009 Mac miniのカーネルは10.0.0のまま)。 更にLate 2009 iMacのkext情報を確認してみると、10.6.2のベータアップデートプログラムで確認できた内容を取り込んでおり、10.6.1.5とも呼べる内容になっていた。 $ uname -aDarwin localhost 10.1.2 Darwin Kernel Version 10.1.2 Wed Sep 9$ file /System/Libray/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 /System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 Mach-O universal binary with 2 architectures/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 (for architecture x86_64) Mach-O 64-bit kext bundle x86_64/System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 (for architecture i386) Mach-O object i386$ file /System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 /System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 Mach-O universal binary with 2 architectures/System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 (for architecture x86_64) Mach-O 64-bit kext bundle x86_64/System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 (for architecture i386) Mach-O object i386$ ls /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/ AppleAirPortBrcm4311.kext/ IO80211NetBooter.kext/ AirPortAtheros21.kext/ AppleAirPortBrcm43224.kext/ $ file /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/MacOS/AirPortAtheros /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/MacOS/AirPortAtheros Mach-O object i386$ file /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21 /System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21 Mach-O universal binary with 2 architectures/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21 (for architecture x86_64) Mach-O 64-bit kext bundle x86_64/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros21.kext/Contents/MacOS/AirPortAtheros21 (for architecture i386) Mach-O object i386 最後に一点気になることだが、boot.efiのハッシュ値が従来と異なっており、10.6.2では内容が更新されることが予想される。本項で記載した64bitカーネルロード手法は、10.6.2以降では対応できない可能性が懸念され、正式リリース後に再度確認する必要がある。 ■追記4. (2009/11/10) 2009/11/09の深夜にMac OS X 10.6.2 Updateがリリースされた。一般的には、不具合の修正やアプリケーション互換性の改善を確認するのが重要であるが、本wikiでは以下を確認した。 なお、10.6.1までに確認されていた、ゲストアカウントでログイン後に再ログインすると該当アカウントのホームディレクトリがクリアされる深刻なバグは本アップデートで修正された為、極力アップデートすることを推奨する。 ・確認ポイント 1. boot.efiの64bitカーネルロードチェック MacOSXUpd10.6.2.pkgの中身を覗いたが、boot.efiの更新は無く、既存のローダーには影響を与えない。また、裏を返せば、10.6.2でもアップルはMac miniにおいて64bitカーネルのサポートをしないということである。 bash-3.2# shasum /System/Library/CoreServices/boot.efi 2fb9fc10e5b4bb06f62c38b01bd9836a433897f8 /System/Library/CoreServices/boot.efi なお、アップデートデータをダウンロードし、アップデートを実行すると下記の通りbless指定がクリアされる(ソフトウエア・アップデートから実行した場合はクリアされない)。 bash-3.2# bless --info /finderinfo[0] 133 = Blessed System Folder is /System/Library/CoreServicesfinderinfo[1] 203585 = Blessed System File is /System/Library/CoreServices/boot.efifinderinfo[2] 0 = Open-folder linked list emptyfinderinfo[3] 0 = No OS 9 + X blessed 9 folderfinderinfo[4] 0 = Unused field unsetfinderinfo[5] 133 = OS X blessed folder is /System/Library/CoreServices64-bit VSDB volume id 0xA4E143A7BD6DA256 その為、boot64.efiを読み込むよう変更していた場合は、再指定が必要。 bash-3.2# bless --folder /System/Library/CoreServices --file /System/Library/CoreServices/boot64.efibash-3.2# bless --info /finderinfo[0] 133 = Blessed System Folder is /System/Library/CoreServicesfinderinfo[1] 218968 = Blessed System File is /System/Library/CoreServices/boot64.efifinderinfo[2] 0 = Open-folder linked list emptyfinderinfo[3] 0 = No OS 9 + X blessed 9 folderfinderinfo[4] 0 = Unused field unsetfinderinfo[5] 133 = OS X blessed folder is /System/Library/CoreServices64-bit VSDB volume id 0xA4E143A7BD6DA256 以降の内容はMac mini Early 2009には関係ない。 2. Radeon HD43x0-46x0の追加サポート ATI4500Controller.kext、ATI4600Controlller.kext追加を確認。また、Radeon HD4シリーズにおいて、OpenCLの互換性及びパフォーマンスが向上している。 GeForce 9400MではOpenCLのパフォーマンスについて違いはみられなかった。 3. Intel Atomの非サポート かねてから噂があった通り、Intel Atomが動作しないように対策が取られた(症状としては何も出力されずに再起動)。Atomで動作をさせたい場合は、10.6.2のカーネルソース公開後、ブロックしている部分を修正し、ソースから自力でビルドする必要がある。 また、10.6.2ではEISTが無い場合は、AppleIntelCPUPowerManagement.kextでKernel Panicが発生する (デスクトップ用のAtomはEIST機能が無い為、その対策も兼ねていると推測する)。エラー内容からはCore i5/i7用の実装の結果とも思われるが、Mac miniへの影響はない。 (追記 2009/11/11) カーネル(march_kernel)バイナリを直接編集すればAtom起動不可チェックを回避できる。 4. Core i5/i7のサポート Late 2009 iMacでCore i5/i7(Lynfield)が採用され、10.6.2で正式にサポートされた(10.6.2以前はカーネル起動時にリブートしてしまい対応していない)。 5. その他 ・Atherosチッップの64bitサポート(AirPortAtheros21.kextの追加) ・Intel内蔵GPUの64bitサポート(AppleIntelGMA950.kext、AppleIntelGMAX3100.kextの64bitバイナリの追加) ■追記5. (2009/11/14) Snow Leopard OSX Serverのカーネルローダboot.efiを確認したが、Snow Loepardと全く同一のものであることが確認できた。 bash-3.2# uname -aDarwin myserver.private 10.0.0 Darwin Kernel Version 10.0.0 Fri Jul 31 22 47 34 PDT 2009; root xnu-1456.1.25~1/RELEASE_I386 i386bash-3.2# shasum /System/Library/CoreServices/boot.efi 2fb9fc10e5b4bb06f62c38b01bd9836a433897f8 /System/Library/CoreServices/boot.efi サーバ版は、サーバとして提供するサービスをクライアント版に追加し、各種管理コンソールの機能を追加したものなので、カーネルをはじめとした基盤システムはクライアント版と共通である。 ■追記6. (2010/03/30) 2010/03/29の深夜にMac OS X 10.6.3 Updateがリリースされた。 ・確認ポイント 1. カーネルローダboot.efiでの64bit機種チェックロジックの変更有無 boot.efiの変更は無く、従来の方法で64bitカーネルが使用できる。bless指定がクリアされた場合は、Step3を参考に指定し直す。 以降の内容はMac mini Early 2009には関係ない。 2. Apple非対応CPU機種チェックロジックの変更有無(Atom対策) 10.6.2同様、カーネル(march_kernel)バイナリを直接編集すればAtom起動不可チェックを回避できる。 3. カーネルのClarkdaleコア(Core i3/i5)対応有無 10.6.3ではClarkdaleコアにはまだ対応していない為、従来通り修正カーネルを使用する必要がある。 4. 10.6.2で対応されたIntel 内蔵GPUの64bitサポートの変更有無 10.6.2で64bitサポートが追加されたIntel 内蔵GPUのGMA950、GMAX3100だが、ベータアップデートで確認されていた通り、64bitサポートが打ち切られた。 bash-3.2# file /System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 /System/Library/Extensions/AppleIntelGMA950.kext/Contents/MacOS/AppleIntelGMA950 Mach-O object i386bash-3.2# file /System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 /System/Library/Extensions/AppleIntelGMAX3100.kext/Contents/MacOS/AppleIntelGMAX3100 Mach-O object i386 5. AppleHDA.kextの変更 Mac Pro オーディオアップデート 1.0を適用(ModelがMacPro4,1の場合に可能)した際に見られたことだが、実機に採用されている音源チップではない派生チップではオーディオが正しく動作しない。例えば、IONプラットフォームで採用例が多いRealtek ALC662や888/888b/889などが該当する。これは、内部でオーディオコーデックIDをチェックするようになったからである。また、2009年末以降に発売された機種に限られるが、HDMI Audioもサポートされる。 ・10.6.3(64bit kernel)でのパフォーマンス最適化 10.6.3アップデートでは、"OpenGL ベースアプリケーションの互換性の問題”が改善され、OpenGLのパフォーマンスが向上した。 ・XBench 1.3 64bit kernel 10.6.2 Results149.88System InfoXbench Version1.3System Version10.6.2 (10C540)Physical RAM8192 MBModelMacmini3,1Drive TypeSAMSUNG MMDOE56G5MXP-0VBCPU Test141.75GCD Loop234.1212.34 Mops/secFloating Point Basic113.892.71 Gflop/secvecLib FFT93.433.08 Gflop/secFloating Point Library224.0439.01 Mops/secThread Test183.57Computation386.847.84 Mops/sec, 4 threadsLock Contention120.345.18 Mlocks/sec, 4 threadsMemory Test188.32System228.60Allocate479.871.76 Malloc/secFill165.238033.62 MB/secCopy200.514141.52 MB/secStream160.12Copy153.173163.65 MB/secScale153.023161.41 MB/secAdd168.993599.81 MB/secTriad166.653565.07 MB/secQuartz Graphics Test178.26Line139.949.32 Klines/sec [50% alpha]Rectangle174.5152.10 Krects/sec [50% alpha]Circle149.2912.17 Kcircles/sec [50% alpha]Bezier161.594.08 Kbeziers/sec [50% alpha]Text437.3927.36 Kchars/secOpenGL Graphics Test67.65Spinning Squares67.6585.82 frames/secUser Interface Test238.32Elements238.321.09 Krefresh/secDisk Test232.23Sequential197.02Uncached Write279.66171.71 MB/sec [4K blocks]Uncached Write272.28154.06 MB/sec [256K blocks]Uncached Read96.9828.38 MB/sec [4K blocks]Uncached Read364.56183.22 MB/sec [256K blocks]Random282.78Uncached Write116.9812.38 MB/sec [4K blocks]Uncached Write323.90103.69 MB/sec [256K blocks]Uncached Read1390.859.86 MB/sec [4K blocks]Uncached Read558.70103.67 MB/sec [256K blocks] ・XBench 1.3 64bit kernel 10.6.3 Results178.67System InfoXbench Version1.3System Version10.6.3 (10D573)Physical RAM8192 MBModelMacmini3,1Drive TypeSAMSUNG MMDOE56G5MXP-0VBCPU Test141.53GCD Loop234.4812.36 Mops/secFloating Point Basic113.882.71 Gflop/secvecLib FFT92.963.07 Gflop/secFloating Point Library224.2639.05 Mops/secThread Test212.09Computation307.686.23 Mops/sec, 4 threadsLock Contention161.816.96 Mlocks/sec, 4 threadsMemory Test182.89System219.15Allocate469.571.72 Malloc/secFill153.527464.54 MB/secCopy198.174093.15 MB/secStream156.93Copy150.413106.75 MB/secScale148.463067.20 MB/secAdd165.703529.69 MB/secTriad164.733523.95 MB/secQuartz Graphics Test175.69Line137.769.17 Klines/sec [50% alpha]Rectangle168.8850.42 Krects/sec [50% alpha]Circle148.5312.11 Kcircles/sec [50% alpha]Bezier160.224.04 Kbeziers/sec [50% alpha]Text433.7927.14 Kchars/secOpenGL Graphics Test127.44Spinning Squares127.44161.67 frames/secUser Interface Test242.07Elements242.071.11 Krefresh/secDisk Test234.75Sequential195.48Uncached Write284.04174.39 MB/sec [4K blocks]Uncached Write258.15146.06 MB/sec [256K blocks]Uncached Read97.0428.40 MB/sec [4K blocks]Uncached Read361.94181.91 MB/sec [256K blocks]Random293.77Uncached Write118.6012.55 MB/sec [4K blocks]Uncached Write351.96112.67 MB/sec [256K blocks]Uncached Read1649.0911.69 MB/sec [4K blocks]Uncached Read575.80106.84 MB/sec [256K blocks] ・OpenGLのパフォーマンスは、10.6(67.75)になり、10.5(125)の半分にまで落ち込んでいたが、10.6.3(127.44)へのアップデートで10.5と同等までにパフォーマンスが改善した。 ・libdispatchの最適化によりマルチスレッド処理が向上している。 ■追記7. OS X 10.6.3 Supplemental Update (2010/04/13) Mac miniではソフトウエアアップデートでの自動通知はないが、4/12付けでMac OS X v10.6.3 v1.1 統合アップデートがリリースされた。 中身をざっと確認してみたが下記の通りであり内容に変更は無く、アップデートプログラムの安定性を向上させるものである。 ・カーネルローダー(boot.efi)の変更はなし ・カーネルの変更はなし(Clarkdale非サポート) ・Intel 内蔵GPUのGMA950、GMAX3100のkextは32bitのまま Appleの説明では下記の通りで、先にリリースされた10.6.3適用済みでソフトウエアアップデートで通知されなければ再度インストールする必要は無い。 ・About the Mac OS X v10.6.3 Update Additional InformationThe Mac OS X v10.6.3 combo update also includes improvements provided in the Mac OS X v10.6.1 Update and Mac OS X v10.6.2 Update.In order to receive all the improvements listed above, some systems require the Mac OS X v10.6.3 Supplemental Update, which is available via Software Update.Tip If you don't see the Mac OS X v10.6.3 Supplemental Update in Software Update, you don't need to install it.Note The Supplemental Update is for any system that was updated from Mac OS X v10.6 using the Mac OS X Update Combined v10.6.3, build 10D573. It is not needed on systems that were updated from Mac OS X v10.6.1 or 10.6.2, and it is not needed on systems that were updated from Mac OS X v10.6 using the Mac OS X Update Combined v10.6.3, v1.1. ■追記8. Darwin Kernel Version 10.3.1 (2010/04/15) 4/13に発表された新MacBook Proに対応したソフトウエア・アップデートが公開された。本アップデートは、MacBook Proユーザにはソフトウエア・アップデートで配布されるが、その他のユーザーも手動ダウンロードすることで入手できる。 MacBook Pro (15 and 17-inch, Mid 2010) - ソフトウェア・アップデート 1.3 アップデートデータの中身を確認すると、GPU内蔵のIntel CPU(Clarkdale/Arrandaleコア)のグラフィックスドライバAppleIntelHDGrapchis.kextが収録されているだけでなく、Clarkdale/Arrandaleに対応したカーネル10.3.1も収録されている。また、内蔵GPUと独立GPUを自動で切り替える機能も提供されている。 該当機種以外にはインストールできないが、10.6.4に取り込まれると思われる。 ■追記9. MacBook Pro Early 2010のカーネルついて (2010/04/21) GeForce 9400M(MCP7A)の後継のGeForce 320M(MCP89)を採用したMacBook Pro 13inchのModel IdentifierはMacBook Pro 7,1で、カーネルのバージョンも10.3.2とCore i5/i7を搭載したMacBook Pro 17(MacBook Pro6,1)/15(MacBook Pro6,2)よりもバージョンが新しいものが採用されている。 CPUに統合されるGPU性能の低さ(IntelのCPU内蔵GPUはSandyBridge世代でも現行の性能とあまり変化が無い)から、AppleはAMDを新しいパートナーに考えているという噂もあるが、10.6.4は2010年までにリリースされた全てのIntel CPU(ただし、Intel Atomは意図的に除かれる)をサポートする初めてのバージョンとなると考える。 (追記 2010/06/01) Mac OS X 10.6.4 Update (delta), Mac OS X Snow Leopard 10.6.4 build 10F564にてClarkdale/Arrandaleの動作サポートを確認。 MacBook Pro 17inch [Core i5/Intel HD+GeForce 330M+H55] 3chip (CPU/GPU=MCM 1chip) $ uname -a Darwin Kernel Version 10.3.1 Mon Mar 22 15 12 14 PDT 2010; root;xnu-1504.3.52~1/RELEASE_I386 i386$ md5 mach_kernel MD5 (mach_kernel) = 60dff518338fe6882e8b4bfbb70c589c $system_profilerHardware Hardware Overview Model Name MacBook Pro Model Identifier MacBookPro6,1 Processor Name Intel Core i5 Processor Speed 2.53 GHz Number Of Processors 1 Total Number Of Cores 2 L2 Cache (per core) 256 KB L3 Cache 3 MB Memory 4 GB Processor Interconnect Speed 4.8 GT/s Boot ROM Version MBP61.0057.B00 SMC Version (system) 1.57f16 Serial Number (system) Hardware UUID Sudden Motion Sensor State Enabled *Serial Numberは削除 MacBook Pro 13inch [Core 2 Duo 2.4GHz + GeForce 320M (MCP89)] 2chip $ uname -aDarwin Kernel Version 10.3.2 Wed Mar 17 14 55 00 PDT 2010; root xnu-1504.5.30~3/RELEASE_I386 i386$ md5 /mach_kernel MD5 (/mach_kernel) = 8cd985c7894ce61d35f328194a562216 $system_profilerHardware Hardware Overview Model Name MacBook Pro Model Identifier MacBookPro7,1 Processor Name Intel Core 2 Duo Processor Speed 2.4 GHz Number Of Processors 1 Total Number Of Cores 2 L2 Cache 3 MB Memory 4 GB Bus Speed 1.07 GHz Boot ROM Version MBP71.0039.B05 SMC Version (system) 1.62f5 Serial Number (system) Hardware UUID Sudden Motion Sensor State EnabledGraphics/Displays NVIDIA GeForce 320M Chipset Model NVIDIA GeForce 320M Type GPU Bus PCI VRAM (Total) 256 MB Vendor NVIDIA (0x10de) Device ID 0x08a0 Revision ID 0x00a2 ROM Revision 3533 Displays Color LCD Resolution 1280 x 800 Pixel Depth 32-Bit Color (ARGB8888) Main Display Yes Mirror Off Online Yes Built-In Yes Display Connector Status No Display ConnectedSerial-ATA NVidia MCP89 AHCI Vendor NVidia Product MCP89 AHCI Link Speed 3 Gigabit Negotiated Link Speed 1.5 Gigabit Description AHCI Version 1.30 Supported Hitachi HTS545025B9SA02 Capacity 250.06 GB (250,059,350,016 bytes) Model Hitachi HTS545025B9SA02 Revision PB2AC60W Serial Number Native Command Queuing Yes Queue Depth 32 Removable Media No Detachable Drive No BSD Name disk0 Rotational Rate 5400 Medium Type Rotational Partition Map Type GPT (GUID Partition Table) S.M.A.R.T. status Verified Volumes Macintosh HD Capacity 249.72 GB (249,715,376,128 bytes) Available 211.01 GB (211,014,455,296 bytes) Writable Yes File System Journaled HFS+ BSD Name disk0s2 Mount Point / NVidia MCP89 AHCI Vendor NVidia Product MCP89 AHCI Link Speed 3 Gigabit Negotiated Link Speed 1.5 Gigabit Description AHCI Version 1.30 Supported HL-DT-ST DVDRW GS23N Model HL-DT-ST DVDRW GS23N Revision SB07 Serial Number Native Command Queuing No Detachable Drive No Power Off Yes Async Notification No *Serial Numberは削除 戻る
https://w.atwiki.jp/yuichi0619/pages/13.html
使用しているテキストエディタemacsについて mew(2008/6/9) sshでメールが見れるようにしたい。 なんで、emacsでメールを読めるようにする。 opensuseにはパッケージがないんで自分でビルド。mew-6.1を落としてくる。 まずは、 $ ./configure 次にmakeする前にopensuseはsite-lispが/usr/local/share/emacs/ではなく、/usr/share/emacs/にあるので、 prefix=/usr/local ↓ prefix=/usr とMakefileを書き換える。 その後、 $ make info $ make jinfo $ make install $ make install-jinfo とし、インストールを完了した。そして、.emacsに以下を追加した。 (autoload mew "mew" nil t) (autoload mew-send "mew" nil t) ;;; Makefile の etcdir で指定したディレクトリ (setq mew-icon-directory "/usr/local/lib/emacs/etc/Mew") (if (boundp read-mail-command) (setq read-mail-command mew)) (autoload mew-user-agent-compose "mew" nil t) (if (boundp mail-user-agent) (setq mail-user-agent mew-user-agent)) (if (fboundp define-mail-user-agent) (define-mail-user-agent mew-user-agent mew-user-agent-compose mew-draft-send-message mew-draft-kill mew-send-hook)) そして、.mew.elファイルを作った。内容は参考サイト参照。 参考サイト Mewのオフィシャルページ ttp //www.mew.org/index.html.ja scheme(2008/2/1) schemeを勉強するかもしれない。とりあえずemacsに環境を整えておこう。 以下を.emacsに追加。 ; scheme (setq scheme-program-name "/opt/local/bin/gosh") C-x C-eでgoshを起動。 コメントアウト(2008/1/28) comment-regionが便利な事に気がついた。 だからキーに割り当てた。 以下を.emacsに追加。 ;Ctrl c r を comment-regionのショートカットに ;Ctrl c u を uncomment-regionのショートカットに (global-set-key "\C-cr" comment-region) (global-set-key "\C-cu" uncomment-region) CarbonEmacsのメニューバーの消去(2008/1/28) carbonEmacsが起動する度メニューバーが出てくるのがうざい。 ぶっちゃけいらない。だから起動時に隠すようにした。 以下を.emacsに追加。 ;; メニューバーの消去 (tool-bar-mode -1) フレームの半透明化(2008/1/28) 何となくフレームを透けさせる。 だってかっこ良くない? 以下を.emacsに追加。 ;Emacsのフレームを透明に (modify-all-frames-parameters (list (cons alpha (80 40 50 30)))) 括弧の対応の色付(2007/7/23) 括弧の対応を色付け。 対応がわからんくてイライラするから色を付ける。 以下を.emacsに追加。 ;括弧の対応を色付 (show-paren-mode t) 全角スペースへの色付(2007/7/17) 全角スペースのせいでコンパイラが通らないことはよくあるが、 非常に見付けににくい。なんで全角スペースに色を付ける。 以下を.emacsに追加。 ;全角スペースに緑の色づけ。全角スペースは罠だよ =( (defface my-face-b-1 ((t ( background "green"))) nil) (defvar my-face-b-1 my-face-b-1) (defadvice font-lock-mode (before my-font-lock-mode ()) (font-lock-add-keywords major-mode ((" " 0 my-face-b-1 append) ))) (ad-enable-advice font-lock-mode before my-font-lock-mode) (ad-activate font-lock-mode) shortcut(2007/6/1) goto-lineを打ち込むのが面倒。 ショートカット化する。 以下を.emacsに追加。 ;Ctrl L を goto-lineのショートカットに (global-set-key "\C-l" goto-line) haskell-mode(2007/6/1) haskellの勉強をするために、haskell-modeの設定をする。 調べてみたが設定がわからなかったので、最新verでは無く、ver2.1を落とし、haskell-ghci.elを以下のように修正。 (if haskell-ghci-mode-map nil (setq haskell-ghci-mode-map (copy-keymap comint-mode-map))) ↓ (if nil ;haskell-ghci-mode-map nil (setq haskell-ghci-mode-map (copy-keymap comint-mode-map))) 更に以下の文を.emacsを追加。 意味はわかっていない。 ;haskell-modeのパスを定義 (setq load-path (cons "~/haskell/haskell-mode" load-path)) (setq auto-mode-alist (append auto-mode-alist (("\\.[hg]s$" . haskell-mode) ("\\.hi$" . haskell-mode) ("\\.l[hg]s$" . literate-haskell-mode)))) (autoload haskell-mode "haskell-mode" "Major mode for editing Haskell scripts." t) (autoload literate-haskell-mode "haskell-mode" "Major mode for editing literate Haskell scripts." t) (add-hook haskell-mode-hook turn-on-haskell-decl-scan) (add-hook haskell-mode-hook turn-on-haskell-doc-mode) (add-hook haskell-mode-hook turn-on-haskell-indent) (add-hook haskell-mode-hook turn-on-haskell-ghci) (setq haskell-literate-default latex) (setq haskell-doc-idle-delay 0) 追記(2007/8/5) haskell-mode ver2.3を導入。英語のれあdめを読んで導入する。 windowsでは以下の文を.emacsに追加した。前回入力したのはコメントアウト。 (load "~/haskell/haskell-mode/haskell-site-file") (add-hook haskell-mode-hook turn-on-haskell-doc-mode) (add-hook haskell-mode-hook turn-on-haskell-indent) (add-hook haskell-mode-hook font-lock-mode) (add-hook haskell-mode-hook turn-on-haskell-ghci) Debianではrootで、 $ apt-get install haskell-mode のみで、インストール完了。 .emacsには以下の文だけ追加。 (add-hook haskell-mode-hook turn-on-haskell-ghci) 追記(2008/1/9) macでは、carbonemacsには標準でhaskell-modeが入っているので、 .emacsに以下を追加。 (add-hook haskell-mode-hook turn-on-haskell-hugs) (add-hook haskell-mode-hook turn-on-haskell-doc-mode) (add-hook haskell-mode-hook turn-on-haskell-indent) 日本語化(2007/6/1) cannaは使いにくかったのでanthy化。 以下を.emacsに追加する。 意味はわかっていない。 ; 日本語をデフォルトにする。 (set-language-environment "Japanese") ; anthy.el をロードできるようにする (必要に応じて)。 (push "/usr/local/share/emacs/site-lisp/anthy/" load-path) ; anthy.el をロードする。 (load-library "anthy") ; japanese-anthy をデフォルトの input-method にする。 (setq default-input-method "japanese-anthy") 色付け(2007/6/1) Cやjavaのソースに色を付けるために、以下を.emacsに追加。 ;色を付ける (global-font-lock-mode t)
https://w.atwiki.jp/mymac/pages/24.html
20091003 MacBook Proを購入 6年ぶりくらいに買い替えた ものすごく早い! 購入したPCのOSはLeopardだったので、アップグレードする デベロッパ含めて20G程度? problem MacPort経由でpgplotをインストールしようとすると、エラーが発生する... g95のodcctoolsの問題? うまくいかねー
https://w.atwiki.jp/fedora-custom/pages/32.html
emacsをwindowsでつかいたい!! とか思っちゃたんでこれから頑張っていったら書いていきます。 emacs をインストール emacsはgnupackなるものをインストールしました^^ ペンギンがなんともかわいい(笑) gnupackのbasicを選びましょう develは開発過程? とにかくbasicが無難ですよ yatexをインストール yatexを解凍(yatex1.77いう名前になる) gnupackのhomeにsite-lispという名前のフォルダを作り、 yatex1.77をyatexという名前にして移す(ここでyatexという名前でないとエラーが出る) 完成! 今は忙しいのでメモ程度に!! (setq tex-command "C /tex/bin/platex.exe") dvioutで英字、数字がうまく表示されません。 フォントの問題?? これを見ているのは研究に没頭している理系が主だと思います! 理系じゃ女の子との接点少ないですよね?? 下のURLは無料ポイントだけで遊ぶのもOK!! ってか無料ポイントを活用しないてはないでしょ^^ ぜひぜひ無料ポイントで出会っちゃってくださいな(*^_^*) はぴめ!!
https://w.atwiki.jp/nkym_memo/pages/28.html
.emacs(ドットemacs;emacs 設定ファイル) ホームディレクトリ(/home/(user),~/) 内に配置 または~/.emacs.dl 、~/.emacs.d/initi.el も初期化ファイルにすることができる 優先順位は ~/.emacs.dl ~/.emacs ~/.emacs.d/init.el .emacs 基本的な設定 ;;;スタートアップを非表示 (setq inhibit-startup-screen -1) ;;;ビープ音を消す (setq ring-bell-function ignore) ;;;ツールバーを非表示 (tool-bar-mode -1) ;;;メニューバーを非表示 (menu-bar-mode -1) ;;;Xでのクリップボードを共有 (setq x-select-enable-clipboard t) ;;; 行の先頭でC-kを一回押すだけで行全体を消去する (setq kill-whole-line t) ;;; 対応する括弧を光らせる (show-paren-mode 1) ;; 現在行に色をつける (global-hl-line-mode 1) ;; その行の色 (set-face-background hl-line "DarkSeaGreen1") ;;; バックアップファイルを作らない (setq backup-inhibited t) ;;; タイトルバーにファイル名を表示する (setq frame-title-format (format "emacs@%s %%f" (system-name))) ;;; カーソルの位置が何文字目かを表示する (column-number-mode t) ;;; yes-or-noをy-or-nに省略 (defalias yes-or-no-p y-or-n-p) ;; 履歴を次回Emacs起動時にも保存する (savehist-mode 1) ;;; 圧縮されたファイルも編集できるようにする (auto-compression-mode t) フレーム設定 ;;; 初期フレームの設定 (setq initial-frame-alist (append ( (width . 47) ; フレーム幅(文字数) (height . 63)) ; フレーム高(文字数) initial-frame-alist)) ;;; 新規フレームのデフォルト設定 (setq default-frame-alist (append ((width . 47); フレーム幅(文字数) (height . 63)); フレーム高(文字数) default-frame-alist)) ファイル更新日の自動更新 ;;; ファイル更新日を自動的に書き換える。 ;;; ファイルの上から8行目以内に "Last Updated "をつけくわえる ;;; そしてLast Updated の後に空白2つ以上いれると置換 ;;; 日本語で日付を入れたくないのでlocaleをCにする ;;; 例)2010/06/30 Wed 16 20 12 (require time-stamp) (defun time-stamp-with-locale-c () (let ((system-time-locale "C")) (time-stamp) nil)) (if (not (memq time-stamp-with-locale-c write-file-hooks)) (add-hook write-file-hooks time-stamp-with-locale-c)) (setq time-stamp-active t) (setq time-stamp-start "Last Updated ") (setq time-stamp-format "%04y/%02m/%02d %3a %02H %02M %02S") (setq time-stamp-end " ") キーバインドの変更 ;;;「Alt-g 行数」で指定の行に移る (global-set-key "\M-g" goto-line) ;;; undoをC-zに (global-set-key "\C-z" undo) ;;; hippie-expandをC-;に (global-set-key [?\C-;] hippie-expand) ;;; M-x compile を C-. に (global-set-key [?\C-\.] compile) ;;; ウィンドウの移動をM-tに (global-set-key "\M-t" other-window) ;;; C-hをBackSpaceに (global-set-key "\C-h" delete-backward-char) .emacsのログ 2014.10.08 2011.10.20 2011.07.08 2010.11.16 2010.11.22 2010.12.16 2010.12.20
https://w.atwiki.jp/ntemacs/pages/48.html
■ Windows版 Emacs 共通の設定 (一部の設定を除き、Linux版 Emacs にも適用可能) 【お知らせ】 2021/12/16 追記 相互リンク。こちらも参考になると思います。 https //ploversky.net/archives/463 2020/04/23 追記 ワンショットモディファイアの機能を利用し、左右の Alt キーに IME の切替えを割り当てられるようにしました。Keyhac の設定と連携することで動作します。US のキーボードを利用している場合にお試しください。 なお、次の設定も同じ操作性にできるように見直しました。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) 2020/04/13 追記 「IME を無効にするキー設定」と「IME を有効にするキー設定」を追加しました。初期設定では、「無変換」キーと「変換」キーを割り当てています。C-o の設定はトグル動作となっていますが、設定の中のコメントを見直すことで変更可能です。お勧めは、C-o のトグル設定は残して C-j に英数への切替えを設定するものです。日本語への切替えが C-o によるトグル操作による切替えの他、C-j C-o での一発切替えが可能となります。(helm 利用の際に C-j がバッティングしますが、C-o で逃げれます。) なお、次の設定も同じ操作性にできるように見直しました。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) 2019/05/17 追記 wdired 利用時に C-o による日本語入力を可能とする設定を追加しました。 2018/08/12 追記 mozc-im-mode 変数をバッファローカル変数にする方法を make-variable-buffer-local 関数を使う方法から defvar-local で定義する方法に見直しました。Emacs-24.3 以降で有効な設定となります。 https //qiita.com/tadsan/items/9d287a57c26711387043 2018/01/04 追記 mozc-candidate-dispatch の advice が helm の仕様変更により動作しなくなっていましたので見直しました。この対応で、dired 利用時に + キーで動作する dired-create-directory でも日本語が正常に入力できるようになりました。 2017/05/04 追記 本設定は Windows Subsystem for Linux でも利用可能です。設定は次のページから始めてください。 emacs-mozc を動かすための設定(WSL 設定編) 2016/12/01 追記 次のページで報告されている問題について対策しました。 https //github.com/d5884/mozc-im/pull/1 2016/09/13 追記 5) で mozc_emacs_helper.exe に対し IME を ON にするために発行しているキーを「Hiragana」から「Hankaku/Zenkaku」に変更しました。この対応で、Google日本語入力のキー設定が「MS-IME」以外の「ことえり」などでも emacs-mozc を使えるようになりました。(ただし、「Hankaku/Zenkaku」キーは「Hiragana」キーと異なり、IME の ON/OFF をトグルするキーとなります。必要な場合に一度のみ発行するように注意して利用する必要があります。(本設定を利用すれば問題は発生しません。)) 2015/12/07 追記 本設定とは直接関係ありませんが、isearch でキルリングを張り付けるには、C-s RET C-y とすればいいのですね。知りませんでした..。 http //kouritool.com/itdiary/emacs%E3%81%A7%E5%BC%B5%E3%82%8A%E4%BB%98%E3%81%91%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2/ 【本題】 【重要】 WSL版 Emacs の利用者は、最初に「emacs-mozc を動かすための設定(WSL 設定編)」を参照してください。 【重要】 Windows版 Emacs の利用者は、事前に「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」を参照してください。 【重要】 「emacs-mozc を動かすための設定(サーバ準備編)」を行う方法もありますが、特に理由がなければ mozc_emacs_helper.exe を利用する方法をお勧めします。 【重要】 Linux で mozc(Google日本語入力ではなく)を利用する場合は、次の対応を行った後、(共通)の設定を進んで下さい。 $ sudo apt install emacs-mozc-bin $ sudo apt install mozc-utils-gui NTEmacs で emacs-mozc を動かすための Emacs 設定編です。 以下は設定手順です。 1) (共通)melpa package から、mozc、mozc-im、mozc-popup をインストールする。 ※ mozc-candidate-style を overlay に設定した場合、動作が遅く使用に耐えません。これを改善するのが mozc-popup です。tabbar との相性も良いとの情報もあります。 ※ mozc-im を使うことで、isearch の中でも mozc による日本語入力が可能となります。 2) (共通)次のページから mozc-cursor-color.el をダウンロードし、~/.emacs.d/site-lisp 等の load 対象となるディレクトリ配下にサブディレクトリを作成し格納する。 https //github.com/iRi-E/mozc-el-extensions 3) (「サーバ準備編」利用の場合)サーバ準備編で git により作成された vagrant-emacs-mozc ディレクトリ以下に mozc-emacs-helper.sh というファイルがあるので、このファイルを ~/bin 等の PATH の通ったフォルダにコピーする。既存の Linux環境を利用する場合は、mozc-emacs-helper.sh の中身を確認し、Linuxマシンに自動ログインできるスクリプトに書き換える。置き換えるスクリプトは以下のようなもの。 ssh user @localhost -p port mozc_emacs_helper "$@" また、MinGW版 Emacs を利用している場合は、「fakecygpty を使うための設定」を利用し、fakecygpty-program-list に "mozc-emacs-helper.sh" を追加する。 4) (共通)init.el 等に以下の elisp の設定を追加する。 (require mozc-im) (require mozc-popup) (require mozc-cursor-color) (require wdired) (setq default-input-method "japanese-mozc-im") ;; popupスタイル を使用する (setq mozc-candidate-style popup) ;; カーソルカラーを設定する (setq mozc-cursor-color-alist ((direct . "red") (read-only . "yellow") (hiragana . "green") (full-katakana . "goldenrod") (half-ascii . "dark orchid") (full-ascii . "orchid") (half-katakana . "dark goldenrod"))) ;; カーソルの点滅を OFF にする (blink-cursor-mode 0) (defun enable-input-method ( optional arg interactive) (interactive "P\np") (if (not current-input-method) (toggle-input-method arg interactive))) (defun disable-input-method ( optional arg interactive) (interactive "P\np") (if current-input-method (toggle-input-method arg interactive))) (defun isearch-enable-input-method () (interactive) (if (not current-input-method) (isearch-toggle-input-method) (cl-letf (((symbol-function toggle-input-method) (symbol-function ignore))) (isearch-toggle-input-method)))) (defun isearch-disable-input-method () (interactive) (if current-input-method (isearch-toggle-input-method) (cl-letf (((symbol-function toggle-input-method) (symbol-function ignore))) (isearch-toggle-input-method)))) ;; IME をトグルするキー設定 (global-set-key (kbd "C-o") toggle-input-method) (define-key isearch-mode-map (kbd "C-o") isearch-toggle-input-method) (define-key wdired-mode-map (kbd "C-o") toggle-input-method) ;; IME を無効にするキー設定 (global-set-key (kbd "C- f1 ") disable-input-method) (define-key isearch-mode-map (kbd "C- f1 ") isearch-disable-input-method) (define-key wdired-mode-map (kbd "C- f1 ") disable-input-method) ;; (global-set-key (kbd "C-j") disable-input-method) ;; (define-key isearch-mode-map (kbd "C-j") isearch-disable-input-method) ;; (define-key wdired-mode-map (kbd "C-j") disable-input-method) ;; IME を有効にするキー設定 (global-set-key (kbd "C- f2 ") enable-input-method) (define-key isearch-mode-map (kbd "C- f2 ") isearch-enable-input-method) (define-key wdired-mode-map (kbd "C- f2 ") enable-input-method) ;; (global-set-key (kbd "C-o") enable-input-method) ;; (define-key isearch-mode-map (kbd "C-o") isearch-enable-input-method) ;; (define-key wdired-mode-map (kbd "C-o") enable-input-method) ;; mozc-cursor-color を利用するための対策 (defvar-local mozc-im-mode nil) (add-hook mozc-im-activate-hook (lambda () (setq mozc-im-mode t))) (add-hook mozc-im-deactivate-hook (lambda () (setq mozc-im-mode nil))) (advice-add mozc-cursor-color-update around (lambda (orig-fun rest args) (let ((mozc-mode mozc-im-mode)) (apply orig-fun args)))) ;; isearch を利用する前後で IME の状態を維持するための対策 (add-hook isearch-mode-hook (lambda () (setq im-state mozc-im-mode))) (add-hook isearch-mode-end-hook (lambda () (unless (eq im-state mozc-im-mode) (if im-state (activate-input-method default-input-method) (deactivate-input-method))))) ;; wdired 終了時に IME を OFF にする (advice-add wdired-finish-edit after (lambda ( rest args) (deactivate-input-method))) gnupack 等で W32-IME の設定がされている場合は、以下の箇所をコメント化してください。 gnupack-11系: 「@ime」セクション gnupack-12,13系: 「@ language - input method」セクション、「@ screen - cursor」セクション、「@ search - isearch」セクションの後半 MinGW版 Emacs を使っている場合は、以下の設定を追加してください。 ;; IME が ON の時、カーソルの移動が遅くなるのを改善する (setq w32-pipe-read-delay 10) helm を使っている場合は、以下の設定を追加してください。 (require cl-lib) ;; helm でミニバッファの入力時に IME の状態を継承しない (setq helm-inherit-input-method nil) ;; helm の検索パターンを mozc を使って入力した場合にエラーが発生することがあるのを改善する (advice-add mozc-helper-process-recv-response around (lambda (orig-fun rest args) (cl-loop for return-value = (apply orig-fun args) if return-value return it))) ;; helm の検索パターンを mozc を使って入力する場合、入力中は helm の候補の更新を停止する (advice-add mozc-candidate-dispatch before (lambda ( rest args) (when helm-alive-p (cl-case (nth 0 args) ( update (unless helm-suspend-update-flag (helm-kill-async-processes) (setq helm-pattern "") (setq helm-suspend-update-flag t))) ( clean-up (when helm-suspend-update-flag (setq helm-suspend-update-flag nil))))))) ;; helm で候補のアクションを表示する際に IME を OFF にする (advice-add helm-select-action before (lambda ( rest args) (deactivate-input-method))) 5) (「mozc_emacs_helper コンパイル編」利用の場合)init.el 等に以下の elisp の設定を追加する。 ;; Windows の mozc では、セッション接続直後 directモード になるので hiraganaモード にする (advice-add mozc-session-execute-command after (lambda ( rest args) (when (eq (nth 0 args) CreateSession) ;; (mozc-session-sendkey (hiragana))))) (mozc-session-sendkey (Hankaku/Zenkaku))))) 6) (「サーバ準備編」利用の場合)init.el 等に以下の elisp の設定を追加する。 ;; https //github.com/igjit/vagrant-emacs-mozc (setq mozc-helper-program-name "mozc_emacs_helper.sh") (setq mozc-helper-process-timeout-sec 10) 7) (「mozc_emacs_helper コンパイル編」利用の場合)mozc のキーバインドを設定する。 「Google日本語入力」のプロパティで、「キー設定」を「ことえり」に選択してください。「ことえり」は Emacsキーバインドをベースとしたキー設定となっており、更に以下のキーが近いキー位置で利用可能となっています。 C-i (文節を縮める) C-o (文節を伸ばす) C-j (ひらがなに表示切替) C-k (全角カタカナに表示切替) C-l (全角英数に表示切替) C-; (半角に表示切替) C- /C- (半角英数に表示切替) ※ ターミナルソフトから Emacs を利用する場合、C-;、C- 、C- は利用できません。他のキーに置き換えてご利用ください。 8) (「サーバ準備編」利用の場合)mozc のキーバインドを設定する。 Linuxサーバ の mozc のキーバインドの設定は mozc_tool というコマンドで行いますが、Vargent で作成した Linuxサーバには mozc_tool はインストールされていません。このため、Windows PC に「Google日本語入力」をインストールして 7) の設定を行い、設定した結果が格納されている以下のファイルを Linux 側の ~/.mozc ディレクトリにコピーすることで対応してください。ファイルをコピーした後は Linuxサーバを再起動してください。 c /Users/ user /AppData/LocalLow/Google/Google Japanese Input/config1.db コマンド実行手順は以下のとおりとなります。 $ ssh -p 2422 -i ~/.vagrant.d/insecure_private_key vagrant@127.0.0.1 mkdir -p ~/.mozc $ cd c /Users/ user /AppData/LocalLow/Google/Google Japanese Input $ scp -P 2422 -i ~/.vagrant.d/insecure_private_key config1.db vagrant@127.0.0.1 ~/.mozc $ cd gitした場所 /vagrant-emacs-mozc $ vagrant reload なお、Linuxサーバに mozc-utils-guiパッケージ をインストールすれば、mozc_tool コマンドの表示を Cygwin/X 等の Xサーバに表示させることができます。コマンドは以下のとおりです。 $ sudo apt install mozc-utils-gui $ /usr/lib/mozc/mozc_tool --mode=config_dialog ただし、「emacs-mozc を動かすための設定(サーバ準備編)」でインストールした Linuxサーバ では、LANG の設定をしただけでは日本語の表示はできないようです。 9) (共通)Emacs で C-o を入力することにより、mozc-emacs-helper が起動し、漢字が入力できることを確認する。 ※ 「emacs-mozc を動かすための設定(WSL 設定編)」から本ページに来た場合は、まだ漢字入力はできません。このまま進んでください。 10) (共通)Windows の IME の切換えキーで mozc を切り替えられるように調整する。 ※ Virtualbox の Linux で Emacs を動作させている場合は、本設定で利用している Keyhac は有効に機能しません。本設定は、Windows版 Emacs や Windows の Xサーバソフトを経由して Emacs を動作させている場合に有効な設定です。 Windows の IME の切換えキー(「半角/全角」(日本語キーボード用)や Alt-`(英語キーボード用))で mozc を切り替えられるようにするには、「Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版)」の併用を検討ください。(Fakeymacs extension の real-emacs を有効にしてください。)IME の切換えの対応のみ行いたい場合には、以下の設定が利用できます。設定の方法はコメントの URL を参照してください。 これらの設定は、NTEmacs(gnupack 含む)と Windows の Xサーバで動く Emacs で機能するようにしています。Windows の Xサーバで Emacs が動作しているかどうかは、ウィンドウのタイトルで判定しています。Emacs の設定でタイトルの表示内容を変更している場合には、re.search 内の検索する正規表現を調整することで対応してください。 # -*- mode python; coding utf-8-with-signature-dos -*- # http //qiita.com/hshimo/items/2f3f7e070ae75243eb8b import re from keyhac import * def configure(keymap) def is_real_emacs(window) if (window.getClassName() == "Emacs" or (window.getProcessName() in ["mstsc.exe", # WSLg "msrdc.exe", # WSLg "XWin.exe", # Cygwin/X "XWin_MobaX.exe", # MobaXterm/X "XWin_MobaX_1.16.3.exe", # MobaXterm/X "XWin_Cygwin_1.14.5.exe", # MobaXterm/X "XWin_Cygwin_1.16.3.exe", # MobaXterm/X "Xming.exe", # Xming "vcxsrv.exe", # VcXsrv "GWSL_vcxsrv.exe", # GWSL "GWSL_vcxsrv_lowdpi.exe", # GWSL "X410.exe", # X410 "Xpra-Launcher.exe", # Xpra ] and # ウィンドウのタイトルを検索する正規表現を指定する # Emacs を起動しているウィンドウを検索できるように、Emacs の frame-title-format 変数を # 次のように設定するなどして、識別できるようにする # (setq frame-title-format (format "emacs-%s - %%b " emacs-version)) # (別途公開している sglstart コマンドを利用している場合、%%b の後のスペースは必要) re.search(r"^emacs-", window.getText()))) return True else return False keymap_real_emacs = keymap.defineWindowKeymap(check_func=is_real_emacs) # IME 切り替え用のキーの置き換え keymap_real_emacs["(243)"] = keymap.InputKeyCommand("C-Yen") # 半角/全角 キー keymap_real_emacs["(244)"] = keymap.InputKeyCommand("C-Yen") # 半角/全角 キー keymap_real_emacs["A-(25)"] = keymap.InputKeyCommand("C-Yen") # Alt-` キー keymap_real_emacs["(29)"] = keymap.InputKeyCommand("C-F1") # 無変換 キー keymap_real_emacs["(28)"] = keymap.InputKeyCommand("C-F2") # 変換 キー # keymap_real_emacs["O-LAlt"] = keymap.InputKeyCommand("C-F1") # 左 Alt キーの単押し # keymap_real_emacs["O-RAlt"] = keymap.InputKeyCommand("C-F2") # 右 Alt キーの単押し 変更履歴 2014/10/30 このページを作成した。 2014/11/02 minibuffer-setup-hook の設定を追加した。 2014/11/04 wdired を使う際の設定を追加した。 2014/11/18 「emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編)」に対応した。 2014/11/20 IME が ON の時、カーソルの移動が遅くなる対策を追加した。(w32-pipe-read-delay の値を デフォルトの 50 から 10 に変更した。) 2014/11/24 minibuffer-setup-hook 内の unless の判定を Emacs-24.3 以前のバージョンでも有効なものに変更した。 2014/11/27 helm の検索パターンを mozc を使って入力した場合にエラーが発生することがある対策を追加した。 2014/11/29 helm の検索パターンを mozc を使って入力する場合、入力中は helm の候補の更新を停止するようにした。 2014/12/12 helm で候補のアクションを表示する際に IME を OFF にするようにした。 2015/01/17 mozc-popup を最新と思われるサイトのものの利用に変更した。 2015/03/11 mozc-helper-process-recv-response のアドバイスの内容を簡略化した。 2015/07/22 Emacs-24.3 以上の対応の記載とした。 2015/09/10 advice を Emacs-24.4 以降の書式に見直した。 2015/10/30 mozc-im を利用するように設定を全面的に見直した。 2015/11/12 mozc-candidate-dispatch の advice を一度削除していたが、やはりあるべき設定のようなので復活させた。 2015/12/28 keyhac の設定の内容を、Keyhac for Windows ver 1.70 用に見直しをした。 2016/12/01 https //github.com/d5884/mozc-im/pull/1 で報告されている問題について対策した。 2017/07/11 Emacs で mozc を利用する際に Windows の IME の切換えキーを mozc の切り替えキーとして機能させるための設定を見直した。 2017/12/21 keyhac の設定で import re の行が不足していたので、追加した。 2019/05/17 wdired 利用時に C-o による日本語入力を可能とする設定を追加した。 2020/04/13 「IME を無効にするキー設定」と「IME を有効にするキー設定」を追加した。 2020/04/19 ワンショットモディファイアの機能を利用し、左右の Alt キーに IME の切替えを割り当てられるようにした。