Ubuntu замораживается при входе в систему после выбора select-select intel

У меня есть Asus GL553 с Intel 560 и Nvidia GTX 1050, и я пытаюсь настроить свои гибридные карты с nvidia-prime. Я установил Ubuntu Gnome 17.04, а затем установил nvidia-381 и запускал премьер-select intel, который мне пришлось перезагружать, и когда я пытался войти в систему, система зависает. Я изучил и прочитал все эти темы, но я не могу найти решение.

https://devtalk.nvidia.com/default/topic/991853/complete-freeze-with-nvidia-prime/ ? offset = 8 https://devtalk.nvidia.com/default/topic/991853/complete-freeze-with-nvidia-prime/?offset=18 отредактировано: shutdown висит на Intel grapics на 16.04 с ядром 4.7.2 NVIDIA -PRIME: переключение на Intel https://bugs.launchpad.net/lightdm/+bug/1637733 https://bugs.launchpad.net/ubuntu/+source/nvidia-prime/+bug/1663926

Кто-нибудь может правильно настроить nvidia?

3
задан 20 March 2018 в 21:56

6 ответов

Я, наконец, сделал это.

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 -Видео-карта

0
ответ дан 22 May 2018 в 21:56
  • 1
    У меня тот же ноутбук, который сталкивается с теми же проблемами, и следил за этими шагами. Все было точно так же, до 7.- Скомпилируйте все и надейтесь, что ошибок нет. где я получаю SSDT3.dsl 109: External (\ SGMD, 0x00, 0x00) Ошибка 6126 - ^ синтаксическая ошибка, неожиданный PARSEOP_INTEGER (и много подобных ошибок). Где я могу найти дополнительную информацию для отладки? Благодаря! – Facundo Farias 27 June 2017 в 19:56
  • 2
    Пожалуйста, покажите мне вывод этой команды: «sudo apt install inxi -y & amp; & amp; inxi-F & amp; & amp; dmesg | grep -i error " (без кавычек) и скопировать его в pastebin или другой файл в Интернете – Glats 29 June 2017 в 16:42
  • 3
    вот подробности! pastebin.com/750cNjST Спасибо! – Facundo Farias 30 June 2017 в 15:16
  • 4
    Вы уверены, что внимательно следили за шагами? Покажите мне ошибки на шаге 7 и загрузите их в pastebin, пожалуйста. Благодарю. – Glats 30 June 2017 в 18:05
  • 5
    Все шаги (в том числе 7 с ошибками): pastebin.com/v8gBGLY3 Единственное различие заключается в том, что моя система находится на испанском языке, но все остальное (файлы, которые соответствуют в GREP) - это точно то же самое. – Facundo Farias 30 June 2017 в 18:19

Я, наконец, сделал это.

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 -Видео-карта

0
ответ дан 18 July 2018 в 12:16

Я, наконец, сделал это.

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 -Видео-карта

0
ответ дан 24 July 2018 в 19:56

Давно у меня был ноутбук nvidia, и у меня такие же проблемы с gnome. Единственное, что сработало для меня, - это удалить gnome и использовать KDE. Но я повторяю, что это было давно 10 ~ версия, я думаю.

Вы можете запустить в командном режиме, чтобы сделать это:

Для загрузки в режим single user вы редактируете инструкции по загрузке для запись в меню GRUB, которую вы хотите загрузить, и добавить параметр / параметр ядра single.

Удерживайте левую клавишу Shift во время перезагрузки, чтобы вызвать меню GRUB. Выберите (выделите) пункт меню загрузки GRUB, который вы хотите использовать. Нажмите e, чтобы отредактировать команды загрузки GRUB для выбранного пункта меню загрузки. Посмотрите в нижней части списка команд для строк, похожих на linux /boot/vmlinuz-3.2.0-24-generic root = UUID = bc6f8146-1523-46a6-8b \ 6a-64b819ccf2b7 ro тихий всплеск initrd / boot / initrd. img-3.2.0-24-generic Измените среднюю строку в (4), добавив параметр загрузки ядра в конец строки (т. е. после ro quiet splash).

Для этого примера вы бы изменили:

6a-64b819ccf2b7 ro  quiet splash

на

6a-64b819ccf2b7 ro  quiet splash single
Удерживая нажатой левую кнопку Shift во время перезагрузки меню GRUB

Примечание. Эти изменения не являются постоянными. Любое изменение в настройках загрузки ядра влияет только на следующую загрузку, и только если вы начнете эту загрузку, нажав Ctrl + X или F10, все еще находясь в режиме редактирования GRUB.

-1
ответ дан 22 May 2018 в 21:56
  • 1
    Но это не решило мою проблему. На самом деле я могу войти в систему, устанавливая nvidia prime-select. Проблема в том, что я не могу отключить свою дискретную карту. – Glats 2 June 2017 в 23:18

Давно у меня был ноутбук nvidia, и у меня такие же проблемы с gnome. Единственное, что сработало для меня, - это удалить gnome и использовать KDE. Но я повторяю, что это было давно 10 ~ версия, я думаю.

Вы можете запустить в командном режиме, чтобы сделать это:

Для загрузки в режим single user вы редактируете инструкции по загрузке для запись в меню GRUB, которую вы хотите загрузить, и добавить параметр / параметр ядра single.

Удерживайте левую клавишу Shift во время перезагрузки, чтобы вызвать меню GRUB. Выберите (выделите) пункт меню загрузки GRUB, который вы хотите использовать. Нажмите e, чтобы отредактировать команды загрузки GRUB для выбранного пункта меню загрузки. Посмотрите в нижней части списка команд для строк, похожих на linux /boot/vmlinuz-3.2.0-24-generic root = UUID = bc6f8146-1523-46a6-8b \ 6a-64b819ccf2b7 ro тихий всплеск initrd / boot / initrd. img-3.2.0-24-generic Измените среднюю строку в (4), добавив параметр загрузки ядра в конец строки (т. е. после ro quiet splash).

Для этого примера вы бы изменили:

6a-64b819ccf2b7 ro quiet splash

на

6a-64b819ccf2b7 ro quiet splash single Удерживая нажатой левую кнопку Shift во время перезагрузки меню GRUB

Примечание. Эти изменения не являются постоянными. Любое изменение в настройках загрузки ядра влияет только на следующую загрузку, и только если вы начнете эту загрузку, нажав Ctrl + X или F10, все еще находясь в режиме редактирования GRUB.

-1
ответ дан 18 July 2018 в 12:16

Давно у меня был ноутбук nvidia, и у меня такие же проблемы с gnome. Единственное, что сработало для меня, - это удалить gnome и использовать KDE. Но я повторяю, что это было давно 10 ~ версия, я думаю.

Вы можете запустить в командном режиме, чтобы сделать это:

Для загрузки в режим single user вы редактируете инструкции по загрузке для запись в меню GRUB, которую вы хотите загрузить, и добавить параметр / параметр ядра single.

Удерживайте левую клавишу Shift во время перезагрузки, чтобы вызвать меню GRUB. Выберите (выделите) пункт меню загрузки GRUB, который вы хотите использовать. Нажмите e, чтобы отредактировать команды загрузки GRUB для выбранного пункта меню загрузки. Посмотрите в нижней части списка команд для строк, похожих на linux /boot/vmlinuz-3.2.0-24-generic root = UUID = bc6f8146-1523-46a6-8b \ 6a-64b819ccf2b7 ro тихий всплеск initrd / boot / initrd. img-3.2.0-24-generic Измените среднюю строку в (4), добавив параметр загрузки ядра в конец строки (т. е. после ro quiet splash).

Для этого примера вы бы изменили:

6a-64b819ccf2b7 ro quiet splash

на

6a-64b819ccf2b7 ro quiet splash single Удерживая нажатой левую кнопку Shift во время перезагрузки меню GRUB

Примечание. Эти изменения не являются постоянными. Любое изменение в настройках загрузки ядра влияет только на следующую загрузку, и только если вы начнете эту загрузку, нажав Ctrl + X или F10, все еще находясь в режиме редактирования GRUB.

-1
ответ дан 24 July 2018 в 19:56
  • 1
    Но это не решило мою проблему. На самом деле я могу войти в систему, устанавливая nvidia prime-select. Проблема в том, что я не могу отключить свою дискретную карту. – Glats 2 June 2017 в 23:18

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

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