Vladim Lucky

Не работает видеокарта на ноутбуке IdeaPad Y550

В этой теме 2 сообщения

Не работает видеокарта Nvidia GeForce GT 240M на ноутбуке Lenovo IdeaPad Y550. Драйвер устанавливается нормально, но в диспетчере устройств над видеоадаптером восклицательный знак. В свойствах: устройство отключено, т. к. сообщило обо ошибке, код 043. Пробовал многие версии, в т. ч. с сайта Nvidia, производил чистую установку драйверов. Экран показывает нормально, но игры еле играют. ОС Windows 10 (64).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Найдено решение от пользователя Sam Chisolm.

Это баг bios и это не исправить официальной прошивкой. Смысл решения в том, что при загрузке системы, нужно заменить образ bios через специальную утилиту и драйвер будет запускаться. Это возможно пока на linux. Мне не известно, как сделать это на windows.

 

Нужно загрузиться в debian подобную систему (debian, ubuntu, sparky, bodhi, antix и прочее)

В параметрах ядра нужно указать следующее:  quiet splash nouveau.debug=debug,VBIOS=trace

Как пример файл grub.cfg для загрузчика grub2 может выглядеть так:

menuentry 'porteus-lxde'{

set root=(hd0,msdos3)

linux (hd0,msdos3)/Porteus-LXDE-v4.0-ru-x86_64/boot/syslinux/vmlinuz changes=/Porteus-LXDE-v4.0-ru-x86_64/porteus from=/Porteus-LXDE-v4.0-ru-x86_64 root=/dev/sda3 quiet splash nouveau.debug=debug,VBIOS=trace

initrd (hd0,msdos3)/Porteus-LXDE-v4.0-ru-x86_64/boot/syslinux/initrd.xz

}

Для grub4dos - menu.lst:

title porteus-nvidia

kernel(hd0,3)/Porteus-LXDE-v4.0-ru-x86_64/boot/syslinux/vmlinuz changes=/Porteus-LXDE-v4.0-ru-x86_64/porteus from=/Porteus-LXDE-v4.0-ru-x86_64 quiet splash nouveau.debug=debug,VBIOS=trace

initrd (hd0,3)/Porteus-LXDE-v4.0-ru-x86_64/boot/syslinux/initrd.xz

Для syslinux syslinux.cfg:

LABEL PORTEUS

LINUX /Porteus-LXDE-v4.0-ru-x86_64/boot/syslinux/vmlinuz

APPEND changes=/Porteus-LXDE-v4.0-ru-x86_64/porteus from=/Porteus-LXDE-v4.0-ru-x86_64 quiet splash nouveau.debug=debug,VBIOS=trace

INITRD /Porteus-LXDE-v4.0-ru-x86_64/boot/syslinux/initrd.xz

 

- затем скопировать прошивку командой  cat /sys/kernel/debug/dri/0/vbios.rom > vbios.rom (создастся файл "vbios.rom" который нужно будет сохранить для дальнейшего)

- перезагрузиться без параметров ядра - quiet ... =trace

 

Потом установить envytools на linux которым вы пользуетесь (например я пользуюсь porteus). 

Для систем основанных на debian установить можно так:

sudo apt-get install cmake flex libpciaccess-dev bison libx11-dev libxext-dev libxml2-dev libvdpau-dev python3-dev
плюс мне пришлось дополнительно установить pkg-config потому что envy-tools не мог установиться
В README этот компонент не был указан, но там есть ещё cython3, который тоже можно установить
Скачиваем envy-tools с сайта  https://github.com/envytools/envytools
Переходим в папку со скаченным envy-tools - cd /home/ИМЯ-ПОЛЬЗОВАТЕЛЯ/Download/envytools-master/
Компилируем программу:
cmake .                  (Точка обязательна)
make
Скопируем vbios.rom в директорию nva - cp vbios.rom /home/ИМЯ-ПОЛЬЗОВАТЕЛЯ/Download/envytools-master/nva
Устанавливаем nvidia-modprobe - sudo apt-get install nvidia-modprobe
 
Для систем основанных на slackware (porteus в том числе)
Распаковываем архиватором где удобно и запоминаем местоположение.
Или можно установить введя команды - usm -u all (иногда приходиться вводить по 10 раз, чтобы базы обновились)
Скачиваем и устанавливаем - usm -g envytools-2018.03.10_dd0d6c2-x86_64-1_slonly.txz
 
Ещё можно установить python3, если не получиться без него запустить программу sudo ./nvafakebios.
Про установку в porteus подробно описано по этой ссылке https://forum.porteus.org/viewtopic.php?f=54&t=6014
 
Приступаем к процессу запуска драйвера nvidia.
- установить драйвера nvidia, которые не работали. (Для porteus добавить модуль nvidia-driver...и прочее.xzm в папку modules)
- перезапустить систему, и если не загрузится рабочий стол (и появился чёрный экран с белыми буквами), то так и должно быть. Дальше нужно перейти в консоль 1 командой Alt+F1. Но если графическая оболочка загрузилась, то в терминале нужно прописать следующее sudo service lightdm stop (для porteus - sudo init 3) и перейти в консоль 1 командой Alt+F1:
- выключаем графическую оболочку - sudo service lightdm stop (для porteus - sudo init 3)
- Удаляем, на время, модуль nvidia -  sudo modprobe -r nvidia
- Проверяем, не осталось ли модулей nvidia с помощью команды - lsmod
- Переходим в папку с envytools куда она была у вас установлена -  cd /home/ИМЯ-ПОЛЬЗОВАТЕЛЯ/Download/envytools-master/nva
- Заменяем bios на ложный bios, до первой перезагрузки -  sudo ./nvafakebios vbios.rom
Если всё успешно, то выведется - The program nvafakebios returned - attempt to upload the vbios to card  0 (nva5) using pramin.
- Добавляем модуль nvidia - modprobe nvidia
- Запускаем графическую оболочку -  sudo service lightdm restart (для porteus - sudo init 4)
После этого видео драйвер должен заработать, но до первой перезагрузки.
 
Подробнее о том как сделать автоматическое подключение драйвера написано в файле Video driver Nvidia vs Lenovo y550.odt или на схожем сайте https://forum.nvworld.ru/viewtopic.php?f=3&t=20459&p=363745#p363745, где писал тоже самое, что и здесь.

 

Спойлер

 

3 How to fix automatically

 

  1. to have it started at boottime (all done as root, sudo -s gets you root shell)

  2. create a directory /lib/nvfix (sudo mkdir -p /lib/nvfix)

  3. copy nvafakebios and vbios.rom there

  4. create a textfile /lib/nvfix/nvfix.sh containing


#!/bin/sh

#nvfix.sh

/bin/systemctl stop nvidia-persistenced

/sbin/modprobe -r nvidia

/lib/nvfix/nvafakebios /lib/nvfix/vbios.rom 

/sbin/modprobe nvidia

/bin/systemctl start nvidia-persistenced

exit 0

 

  1. make it executable (chmod 744 /lib/nvfix/nvfix.sh , root should be owner: chown root /lib/nvfix/nvfix.sh).

  2. to check if that works and all the paths are correct, after boot call as root sudo sh /lib/nvfix/nvfix.sh . See if X starts.

  3. To automate, create a text file /lib/systemd/system/nvfix.service


[Unit]
Description=Load Nvidia VBIOS
Before=display-manager.service

[Service]
Type=oneshot
ExecStart=/lib/nvfix/nvfix.sh
[Install]
WantedBy=display-manager.service

 

Also. To start things earlier, change /lib/systemd/system/nvfix.sh to run before plymouth-start (but it didn`t work on my machine)

 


[Unit]
Description=Load Nvidia VBIOS
Before=plymouth-start.service

[Service]
Type=oneshot
ExecStart=/lib/nvfix/nvfix.sh
[Install]

 

 

  1. Reload systemd (systemctl daemon-reload)

  2. Enable service (systemctl enable nvfix.service , systemctl reenable nvfix.service)

 

 

 

 

Файл instruction-y550-gt240m.odt - тот же текст что указан выше

 
Файл Video driver Nvidia vs Lenovo y550.odt пользователя

Sam Chisolm

 

С сайта https://forum.ubuntu.ru/index.php?topic=291203.0

Тот же файл https://yadi.sk/i/1OOuKpOeaD5tdQ

 

Тот же пользователь с решением этой же проблемы https://devtalk.nvidia.com/default/topic/1020418/linux/lenovo-y550-gt-m240-vs-ubuntu-17-07-16-04-14-04/2

 

Video driver Nvidia vs Lenovo y550.odt

instruction-y550-gt240m.odt

Отредактировал Андрей Тепикин
1 пользователю понравился пост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу