Ubuntu 17.04 Gnome 3.24 Wayland Session - не может заставить работать гибридная графика

На прошлой неделе я боролся с gnome 3.24 над многими дистрибутивами.

У меня есть dell XPS 9560, который использует технологию NVIDIA Optimus, которая в основном имеет двойной графический процессор (встроенный процессор + дискретный ). В моем случае это графическое изображение Kaby Lake из моего i7 и NVIDIA GTX 1050.

Я попытался установить Ubuntu 17.04 Gnome, поскольку это самый последний дистрибутив, и я подумал, что было бы лучше из коробки чем у многих неудачных попыток (arch, tumbleweed, fedora 26).

Я могу начать сеанс Wayland (после новой установки), но я не могу использовать дополнительный GPU (nvidia) для открытия приложений , игры и т. д. он не отображается нигде в настройках.

Затем я запустил сеанс Xorg, чтобы получить дополнительные драйверы, и установил nvidia один, перезагрузился, а мой графический процессор по умолчанию стал NVIDIA, в сеанс Xorg, однако я не могу начать сеанс Wayland.

Итак, я открыл настройки Nvidia и в Prime Profiles переключил свой GPU на Intel один, перезагрузился, и теперь я могу начать сеанс Wayland, но теперь Xorg, я бы просто получил серый экран. И даже в Wayland с драйвером nvidia и моим основным профилем, установленным на моей графике Intel, я не могу открыть, используя дополнительный GPU. Итак, на данный момент я вернулся к драйверу по умолчанию xorg nouveau и использую сеанс Wayland с моей графикой Intel.

Я еще не пробовал устанавливать последние бета-версии драйверов на этом дистрибутиве, но когда я попытался мой прецедент пытается, чтобы даже простые профили не отображались в настройках nvidia.

У меня нет подсказки, если моя проблема исходит из устаревших драйверов, аппаратная поддержка, сбой в матрице

EDIT: версия nvidia, которую я пытался установить, была текущая 375, я также пробовал 381 бета-версию в других дистрибутивах, но не в Ubuntu 17.04. Также:

$ lspci | grep -E "VGA|3D" 00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04) 01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
2
задан 17 April 2017 в 20:41

2 ответа

Попробуйте следующее:

1.- Создайте папку для хранения файлов SSDT. Затем извлеките его из таблиц ACPI (запустите эту часть как root):

# 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.- В одном файле 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, и набросьте номер блока определения на единицу:

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

Если у вас есть другой BIOS, номер блока определения может не быть 1000. Просто откройте SSDT3.dsl в текстовом редакторе и найдите DefinitionBlock. Независимо от числа, которое вы видите на этой строке, увеличьте его на единицу.

7.- Скомпилируйте все и надейтесь, что ошибок нет.

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

8.- Сделать изображение: [ ! d11] # 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/

вы можете надолго добавить его в свой GRUB, отредактировав /etc/grub.d/10_linux. Мне пришлось изменить линию initrd ${rel_dirname}/${initrd} на initrd ${rel_dirname}/acpi_gpufix ${rel_dirname}/${initrd}. Затем запустите update-grub2.

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

Теперь вы можете изменить графический процессор с зависанием

source: [ ! d16]

https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-306543064 https://devtalk.nvidia.com/default/topic/1012369/linux/laptop-freezes-changing -видео-карты https://askubuntu.com/a/923216/680254

0
ответ дан 18 July 2018 в 14:45

Попробуйте следующее:

1.- Создайте папку для хранения файлов SSDT. Затем извлеките его из таблиц ACPI (запустите эту часть как root):

# 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.- В одном файле 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, и набросьте номер блока определения на единицу:

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

Если у вас есть другой BIOS, номер блока определения может не быть 1000. Просто откройте SSDT3.dsl в текстовом редакторе и найдите DefinitionBlock. Независимо от числа, которое вы видите на этой строке, увеличьте его на единицу.

7.- Скомпилируйте все и надейтесь, что ошибок нет.

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

8.- Сделать изображение: [ ! d11] # 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/

вы можете надолго добавить его в свой GRUB, отредактировав /etc/grub.d/10_linux. Мне пришлось изменить линию initrd ${rel_dirname}/${initrd} на initrd ${rel_dirname}/acpi_gpufix ${rel_dirname}/${initrd}. Затем запустите update-grub2.

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

Теперь вы можете изменить графический процессор с зависанием

source: [ ! d16]

https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-306543064 https://devtalk.nvidia.com/default/topic/1012369/linux/laptop-freezes-changing -видео-карты https://askubuntu.com/a/923216/680254

0
ответ дан 31 July 2018 в 23:30

Другие вопросы по тегам:

Похожие вопросы: