オーディオLilu.kextとLiluプラグイン.kextを設定するためのとても詳細なガイドがtonymacx86にありましたのご紹介します。今回はAppleALCの使い方の部分の抄訳です。原文は下のリンクを見てください。...Liluの開発にも携わっているjaymonkeyさんが書いてくださったガイドです。前回は、WhatEverGreenを紹介しました。WhatEverGreenの使い方https://bootmacos.com/entry/2019/11/23/234944Lilu.kextとLiluプラグイン.kextを設定するためのとても詳細なガイドがtonymacx86にありました。ここからLiluとWhatEverGreenの部分を抄訳して紹介します。原文は下のリンクを見てください。Liluの開発にも携わっているjaymonkeyさんが書いてくださったガイドです。...AirportBrcmFixupに関しても後ほど紹介したいと思います。改名問題AppleALCとはAppleALCはLiluのプラグインです。kextに動的にパッチを当てます。同様に、オーディオを有効にするために従来使用していた多くのパッチとkextを置き換えてくれます。AppleALCを使用する前には、既にあるAppleHDAを有効にするパッチ、ダミーのkext、DSDTへの変更などを取り除いておき、AppleHDAをオリジナルの状態のkextに戻しておく必要があります。GPUでHDMIオーディオを有効にします。必要な作業は、LiluとAppleALCをインストールする事だけです。HDMIをサポートしたNvidiaカードが使われていたら、AppleALCはこれを検出して、HDMIオーディオコントローラを有効にします。サポートされたNvidiaデバイスはこちらのページを見てください。Nvidiaデバイスのこのリストの最後にあります。(ALC)、Conexant、IDTなどの多くのビルトイン(オンボードの)オーディソコーデックをサポートします。場合、やるべきことは、LiluとAppleALCをインストールして、config.plistに簡単な変更を加えるだけです。その作業の前に、AppleALCがどのように機能するか知っておくと良いです。AppleALCはどのように動くのかAppleALCの動作は従来の、AppleHDAに予めパッチを当てたり、ダミーを使ったりする方法と少し違います。AppleALCはコネクター、レイアウト、プラットフォームパッチの大規模なデータベースと理解できます。ロードされる際に、LiluとAppleALCは使用されているオーディオコーデックのタイプを自動的に検出し、データベースからパッチを探して、ApleHDAに動的にパッチを当てます。AppleALCが使うパッチは、インデックス識別子により定義されています。バックワード互換性のために、パッチセットのインデックス識別子はlayout-idと呼ばれるプロパティ値で定義されています。kextの)のレイアウトを選択する値です。verbの面倒を見てくれます。Commanderをインストールしたり使用する必要はありません。(訳注:コンピュータがスリープするとオーディオアンプもoffになります。スリープから目覚めるときに、アンプがonにならなくて、スリープ復帰後に音が出ない問題が発生する事があります。verbはスリープ復帰時にアンプをonにするための特別なデータのようです。これを流す事でアンプがonになるようです。〜という理解で正しいでしょうか?間違っているようでしたらコメントで指摘してください。)LiluとAppleALCのインタラクション(訳注:この節の内容は理解できませんでした。すみません)Liluがロードされると、Liluはlayout-idの値を見つけて、その値をAppleALCに渡します。この値を継承して、AppleALCはalc-layout-idという名前の新しいデバイスプロパティを作ります。AppleALCは次に、layout-idの値を新しいターゲットID(通常は7)に設定し、AppleHDAのターゲットレイアウトに(Liluのパッチエンジンを使って)パッチします。この時、指定した(alc-layout-idで指定された)コーデックのための、コネクターID情報、infoファイル、プラットフォームファイルが使われます。この方法により、AppleALCはMojaveのドロップドレイアウトIDを無視します。(詳細はこの記事のオーディオの節を見てください)。いうのは、インジェクトされたlayout-id値は、AppleALCのコーデックパッチデータベースのインデックスとしてのみ使われるからです。AppleALCはこのlayout-idによる再マップする枠組みを、Mojaveだけでなく、全てのバージョンのmacOSで使います。使用しようとしているコーデックをAppleALCがサポートしているかどうかは、ソースコードのResoucesフォルダの中で名前を探せば確認できます。コーデックがサポートされていなかったら、公式のAppleALCヘルプスレッドに投稿して、次のバージョンで入れてもらうよう依頼してください。そのコーデックの詳細(このスレッドの#1投稿を見てください)を投稿します。達人の誰かが、その投稿を見て、手助けを申し出てくれるでしょう。Linuxを使ってコーデックのダンプを用意する必要があります。このガイドの対象外の話題なので、ここでは詳細に関して説明しませんが、あなたの投稿を見た誰かがダンプの取り方を説明するリンクを示してくれるはずです。使用しようとしているコーデックが、既にAppleALCでサポートされていたら、どのレイヤーがサポートされているかを、対応するコーデックフォルダにある、info.plistフィイルを開いて知ることができます。これから、どのレイヤーIDが使用可能なのかがわかり、また、コメントかそのうちのどれを使うべきかを知ることができます。ALC295コーデックを搭載しています。そこで、ALC295フォルダの中のinfo.plistを開きます。この例では、Mironeさんのパッチが必要なパッチであり、これがレイアウト3であることがわかります。このように、コメントを読めば、システムに必要なレイアウトの記述を簡単に見つけられます。全ての使用可能なレイアウトID値のリストが不明な場合、一つ一つ試して動く値を探します。Hackintoolを使ってどのレイアウトがサポートされているのか(下の方法で詳細を説明します)知ることもできます。AppleALCの設定AppleALC.kextをインストールした後ですべきことは、layout-idを設定することです。2つの方法があります。Injectで設定する(古い方法)Liluはconfig.plist内のレガシーなパラメータであるClover/Device/Audio/Injectからlayout-id値をCloverに問い合わせる機能があります。IDに設定すれば良いです。</dict>LiluがClover/Devices/Audio/Injectからlayout-idを取得するというレガシーな方法をサポートしなくなる可能性があることは注意すべきです。次に示す方法2が良いです。RecommendedAppleALCとLiluをインストールした後、config.plistを編集して、Devices/Audio/Injectを”No”にします。Propertyとして設定します。Propertyコードを作成するために、Hackintoolを使います。HackintoolのAudioアイコンをクリックすると、検出されたコーデックタイプが表示されます。ここで設定したいHDAオーディオデバイスを選びます。Infoに詳細な情報が出て、ドロップメニューでLayoutを選べるようになります。IDのみが表示されます。項目選択が終了したらPatchアイコンを押し、Patch機能を呼び出します。Audioオプションを選択します。この時Advancedページの他の項目は全てチェックを外します。Patchをクリックします。ここに現れたコードをコードを、config.plistの該当する部分にコピーペーストします。以下のようになります。(訳注:Z390チップセット搭載マザボのALC1220を対象に同じ操作をしたのですが、心当たりのないmodel名になっていたり、hda-gfxという項目があったりしました。model名は適当に編集して、hda-gfxの項目は削除して良いのだと思います。</dict>config.plistの変更が完了したら、再起動してオーディオが動いているかどうかテストします。動いていなければ、他の有効なlayout-IDを試してください。全ての有効な値を試してもオーディオがまだ動かない場合は、新しいパッチセットが必要なコーデックを使っているのかもしれません。サポートされていないコーデックに関しては、AppeleALCのヘルプスレッドを利用してください。AppleALCのトラブル対策AppleALCがロードされていることを確認するAppleALCが正しくロードされて初期化されていることは、IORegisteryExplorerで確認できます。これはこちらのリンクからダウンロードできます。IORegisteryExplorerを動かして、HDEFという文字を検索ボックスrに入れます。ioregディレクトリーツリーにHDEFデバイスが見えるはずです。上の例では、次のように見えます。HDEFが見えないようでしたら、LiluとAppleACLのインストール手順を確認してください。上のスクリーンショットでは、AppleALCが動的に新しいプロパティalc-layout-idを作り出している事がわかります。ここでの3という値は、config.plistで設定した値です。同様に、layout-idという項目は7とあります。これは、AppleALCがぱちを当てようとしている対象のAppleHDAでのレイアウトで、macOSが使っているものです。HDEFの中にlac-layout-idが見つからない場合、AppleALCが正しくロードされていない、もしくは初期化されていないのかもしれません。この原因は、kextが正しくインストールされていないからです。kextを削除して、インストールを再度試みてください。Timer)上記のステップが正常でもなお音が出ない場合、HPETによってIRQの衝突が発生している可能性があります。macOSにおいて、HPETは基本的に必要な仕組みです。これが正しく働く必要があります。このフォーラム(訳注:tonymacx86のフォーラム)のほとんどのガイドでは、BIOSでHPETを有効に設定していることを前提としています。いくつかのマザーボードとラップトップでは、HPETに関するネイティブなDSDTコードがIRQ衝突を引き起こし、AppleHDAの正しい初期化を妨げたり、雑音を出す事があります。この問題を確認する一つの方法は、ターミナルで次のコマンドを入力する事です。kextがリストアップされるはずです。AppleHDAHardwareConfigDriverとインストールされています。AppleHDAです。(com.apple.driver.AppleHDA)が出力に現れていなかったら、HPETオプションが正しく有効になっているかどうかを確認してください。有効になっていてもAppleHDAが現れなければ、DSDTのHPETコードにパッチを当てる必要があります。FixHPETをtrueにする事です。<true/>この方法はほとんどのユーザで有効です。CloverのHPETフィックスでもまだAppleHDAがロードされない場合、DSDTに直接パッチを当てる必要があるかもしれないです。RehabManさんがこのパッチを作ってくれていて、MaciASLを使って適用できます。(BUF0)\n}\nend;このパッチをDSDTに当てるためには、MaciASLを使い、Patchボタンを押し、上記のコードをパッチエディターにコピーペーストします。Applyボタンをクリックして、DSDTを保存します。詳しい情報は、Rehabmanさんのガイドを見てください。DSDTにパッチを当てた場合は、Cloverのfixは無効にしておきましょう。AppleALCとLiluはDSDTの中のACPIの名称を適切に自動的に改名してくれます。時々失敗することもあり、手作業で改名する必要があります。この改名が正しく実施されているかどうかは、IORegistryExplorerを開いて、HDEFを検索してみればわかります。HDEFがioregに存在すれば、これ以上の作業は不要です。い、もし存在していなければ、ここまで述べた作業が正しく行われているかどうかを確認してください。それでも解決しなければ、HDEF名称変更を手作業で行ってみる必要があります。バニラな状態のDSDTをMaciASLで開いて、HDEFで検索して、元々のHDAデバイスの名前を確認します。検索結果がなければ、HDASで検索します。それがなければAZALで検索します。HDAデバイスがHDEFと名付けられていたら、デバイスを改名する必要はありません。HDASと呼ばれていたら、次のコードをconfig.plistのACPI/Pachesに追加します。</data></dict>もしAZALでしたら、以下のパッチを追加します。PMこの記事を参考にして、voodooから移行できました。ありがとうございます!Voodooでは小さかった音量も直りました。PMお役に立ててよかったです。Voodooは成功率が高いですが、音が割れたりなど色々不具合がありますよね。macOSさん、>hda-gfxという項目があったりしました。model名は適当に編集して、>hda-gfxの項目は削除して良いのだと思います。0x1458A0C3にIntelのコーデック用として出力してるのかと。Panic起こしちゃいますね。ノートPCとかiGPUのみを表示環境で使って実際ににHDMI接続経由で外部ディスプレイに出しつつ音も出したいなどの特定環境下では必要になるかも?です。AM>LiluとAppleALCのインタラクション>(訳注:この節の内容は理解できませんでした。すみません)たしかに、原文読んでもなんだかわけわかな難しい節ですね。AppleALCの助けて書き込みとかで、自分がどのLayout-IDを指定したら良いのか教えてくれみたいな内容のときとか、分かんない時は1か7使えや!言ってる人いたような記憶がありますね。HDEのDSDTとか自分でこしらえて、ACPI>patchedに入れてると、起動時にLiluがAppleALCと連携して7へマップするよってことを言いたいのかも?て気もします。そんなこんなでこの7と1なんかは多分なにかしらの使えるLayout-IDだから、7を先ずは試してみれば?っていう話に繋がるんかなぁとか思って読ませてもらいました。それとMojaveのドロップドレイアウトIDのとこは、たしかMojaveになったとき、ALCで音が出なくなって、いろいろ調べてLayout-ID変えた気もします。その時の記憶ではMojaveになったら、今までの古い?Layout-IDがAppleがドロップしちゃったんで使えなくなった時代のこと言ってをなんか説明してるんでしょうね?私はALC1220使ってますけど、今でも該当するマザボのLayout-IDは人によってまちまちで16使えやという人もいれば、10が良いと信じてるという人もいる感じで、それ使ってれば万事OKだと言い切れないのも悩み。アンプ基板をつなげて、ちょっとましな内蔵スピーカーとして使ってます。Phoneジャックに入れたときに自動でOFFになって切り替わるっていうレイアウトにしたい場合は16でも10でも7でもなく、だれも推奨してない1でした。そんなこんなで変態的なというかサラウンドとか組んでる人は、ソースコードのResoucesフォルダとか覗きに行って、どんなLayout-IDが使えるかをあらかじめ調べていろいろ試してみないといけなくなるケースもありますね。あとは、てきとうModで内蔵スピーカーをつけてるんで、音が微妙に好みにもってけないんで、EQで調整してなんとかして自分好みの音に持ってくためにこれをCatalinaに入れて使ってます。音楽好き必須!アンプ要らずでMacの音質を簡単に向上させるのにオススメの無料イコライザーアプリ「eqMac2」https://shoji014.com/eqmac2/※Catalinaで使う場合は、このアプリをFinderから選択して、このパッケージの内容を表示>Contents>ResouceフォルダからeqMac2Driver.kextを/Libraly/Extentionに手動で放り込めば使えるっぽいです。VoodooHDAはWindowsと共存して古いサウンドブラスターを使い人とか、なんらかの事態(新しいMacが出たときのOSUpdateとか。)ALCが突然動かなくなった時など、緊急で一時的にもVoodooHDAに変えたら動くっていうこともあるし、意外とまだ使う機会もあったりしますね。VoodooHDAもPlistにちゃんとPinConfigrationを自分でこしらえて作れるくらいの人だと、2.9のバージョンだと音が出るという意味での品質上の問題はないっぽい気もします。Pin-configrationは、理解力がある人じゃないと苦闘するんで、私も楽ちんなAppleALCに今では依存しちゃってますね。コメントをキャンセルメールアドレスが公開されることはありません。date*「名前」「メールアドレス」「サイト」は空白でも投稿できますが、日本語が含まれない投稿は無視されます。