eGPU error code12対策のためのDSDTの編集の際の注意点


eGPU error code12対策のためのDSDTの編集の際の注意点

laptopに外部GPUをつなげたがerror code12が生じて使えなかったため,試したことの一つの備忘録.
ただ,私のerror code12はこれでは解決できなかったのでさらに別の方法を試す.

参考

(e)GPUを接続する時にデバイスマネージャ上のgpuに黄色三角アイコンがついてerror code12が表示されているときの対策の一つとして
DSDTの編集によってLerge Memoryを確保する方法がある.
error code12の対応策を含め,eGPU関連の問題は以下のスレッドが詳しい.

今回のerror 12の対応策はとしてのDSDT編集は以下の方法をとる

日本語記事は以下のサイトが詳しい.(ただしで紹介されているうちのIntel Methodのみ)

egpu.ioの方はコミュニティに(無料)メンバー登録することで見れる記事なのでここでは詳しくは書かないが,やることとしては

  1. 現状のdsdt構成の読み取り
  2. dsdt設定ファイル(.dslまたは.asl)の編集および.amlをコンパイル
  3. .amlの読み込みと再起動

である..dsl.aslは内容的には同じで

  • .dslを用いて.amlを作るのがintel method
  • .aslを用いて.amlを作るのがmicrosoft method

と名付けられていた.
多くの場合intel methodが推奨されているが,lenovoの一部laptopを使用している場合microsoft methodが推奨されているようである.

dslファイル編集の注意点

件のGUIDEでdatからdslファイルをデコンパイルし,編集してamlにコンパイルする際,多くの場合syntax errorが起こる.
上述した日本語記事でも同様のsyntax errorが起きているようである.

このsytax errorは環境によって異なるようで私が直面したsyntax errorの場所は前述した2つの記事とは異なる.
ただしsyntax errorはいずれもiaslでデコンパイルするとき一部コードの前後を間違えてしまっていることに依るものであるようだった.

これに対し,.aslファイルも同様の情報を持っていて,それこそsyntaxが違うだけなため,
.aslファイルの内容から.dslで書かれるべき内容を予測してそれっぽく.dslのsyntaxをまねればsyntax errorを修正できる.

私が直面したsyntax errorとその修正例を載せる:

これを修正すると今度は変数が多重に宣言しているみたいなことで怒られが生じるので
ファイルの初めの方に書いてあるExternal(...)という感じで宣言されている変数を削除したらコンパイルが通った.

変数の多重宣言の解消法としてこれが正しいのかは分からず雰囲気で対応したが,一応件のGUIDEのステップ3で紹介されているLarge Memoryの確認はできていた.