web-dev-qa-db-ja.com

プライムセレクトインテルの後、ログイン時にUbuntuがフリーズする

Intel 560およびNvidia GTX 1050を搭載したAsus GL553を使用していますが、nvidia-primeでハイブリッドカードを構成しようとしています。 Ubuntu Gnome 17.04をインストールしてからnvidia-381をインストールし、prime-selectインテルを実行しました。ハードリブートする必要があり、システムにログインしようとするとフリーズしました。これらすべてのトピックを調査し、読みましたが、解決策が見つかりません。

誰もがnvidiaを適切に設定できましたか?

3
Glats

やっとやった。

1.- SSDTファイルを保存するフォルダーを作成します。次に、ACPIテーブルから抽出します(この部分をルートとして実行します)。

# mkdir dsdt
# cd dsdt
# SSDT_FILES=`ls /sys/firmware/acpi/tables/ | grep SSDT`
# for file in $SSDT_FILES ; do cat "/sys/firmware/acpi/tables/$file" > "$file.dat"; done
# cat /sys/firmware/acpi/tables/DSDT > DSDT.dat

2.- IASLがインストールされていることを確認してください。 Ubuntuでは、Sudo apt install iaslで十分です。ソースをダウンロードし、自分でコンパイルして最新バージョンを取得しましたが、それは必要ではないと思います。

3.- 1つのSSDTファイルに重複した定義があるため、分解できません。それがどれであるかを見つけて削除します:

# grep PRT0 *.dat
Binary file DSDT.dat matches
Binary file SSDT1.dat matches
# mv SSDT1.dat SSDT1.bak

したがって、私の場合はSSDT1です。入手したものに置き換えてください。 DSDT.datに触れないでください

4.-次に、変更する必要のあるコードを含むSSDTファイルを見つけます。 「NVID」と「OSYS」の両方があるファイルを探します:(おそらくgrepでこれを行うより良い方法があります)

# grep NVID *.dat
Binary file SSDT10.dat matches
Binary file SSDT3.dat matches
# grep OSYS SSDT10.dat
# grep OSYS SSDT3.dat
Binary file SSDT3.dat matches

したがって、私の場合はSSDT3でしたが、それと異なる場合は、それ以降のSSDT3のすべてのインスタンスを、入手したものに置き換えます。

5.-分解!

# iasl -e *.dat -d SSDT3.dat

6.-うまくいけば、この時点でエラーは表示されません。宣言を除くOSYSのすべてのインスタンスをWindows 7の定数に置き換え、定義ブロック番号を1つ増やします。

# sed -i '/^ *External/! s/OSYS/0x07D9/g' SSDT3.dsl
# sed -i '/^ *DefinitionBlock/ s/0x00001000/0x00001001/g' SSDT3.dsl

別のBIOSを使用している場合、定義ブロック番号は1000ではない可能性があります。テキストエディターでSSDT3.dslを開き、DefinitionBlockを探します。その行に表示される番号に関係なく、1ずつ増やします。

7.-すべてをコンパイルし、エラーがないことを望みます。

# iasl -ve -tc -p SSDT3 SSDT3.dsl

8.-画像を作成します。

# mkdir -p kernel/firmware/acpi
# cp SSDT3.aml kernel/firmware/acpi/ssdt3.aml
# find kernel | cpio -H newc --create > acpi_gpufix

8.- UbuntuおよびGRUB2に対応する以下のすべての指示。ブートフォルダーにコピーします。 initrd.imgは、ブートフォルダーのデフォルトのimgです。

# cp acpi_gpufix /boot/

/etc/grub.d/10_linuxを編集して、GRUBに永続的に追加できます。行initrd ${rel_dirname}/${initrd}initrd ${rel_dirname}/acpi_gpufix ${rel_dirname}/${initrd}に変更する必要がありました。次に、update-grub2を実行します。

UPDATE:GRUBが追加のinitrdをサポート:GRUB_EARLY_INITRD_LINUX_CUSTOM = acpi_gpufix.imgを/ etc/default/grubに追加

9.-動作するかどうかを確認するには:

$ dmesg | grep ACPI | grep override
[    0.000000] ACPI: Table Upgrade: override [SSDT-PegSsd- PegSsdt]
[    0.000000] ACPI: SSDT 0x000000007A715080 Physical table override, new table: 0x0000000079493000

フリーズなしでGPUを変更できるようになりました

ソース:

https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-306543064https://devtalk.nvidia.com/default/topic/1012369/linux/ laptop-freezes-changing-video-cards

0
Glats