techquisitor: (sis)
[personal profile] techquisitor
Disclaimer:

Данный способ является исключительно обходным манёвром (workaround, если кому привычнее) ровно до тех пор, пока не будет собран правильно работающий пакет и DKMS-модуль, в котором всё будет "из коробки". И ничего и нижеописанного уже не потребуется.

Для начала, мы пойдём на сайт nvidia.com и скачаем свежую версию драйвера для вашей архитектуры. На момент публикации это был драйвер за версией 310.19.

Update:
На текущий момент уже всё исправлено и более эта статья не требуется. Разве что только с точки зрения корректности конфигурационных файлов.

А теперь, поехали!

Скачиваем драйвер, кладём его куда-нибудь в корень ~/, чтобы потом не искать в завалах. Далее, открываем ваш любимый эмулятор терминала, логинимся как пользователь root и выполняем cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak. Сделать это обязательно, иначе в случае проблем вы получите неработоспособную графическую подсистему. Затем необходимо установить из репозиториев пакет bumblebee командой urpmi bumblebee.

Теперь необходимо заблокировать драйвер nouveau, в противном случае, ничего не заработает. Для решения этой проблемы можно поступить двумя способами:

1. Заблокировать драйвер в initrd. Переходим в /etc/dracut.conf.d и редактируем там файлик 50-dracut-mandriva.conf. А именно, находим там следующую строчку:
omit_drivers+=" radeon nouveau "
Её необходимо раскомментировать. После чего надо сохранить и выполнить команду для пересборки initrd: dracut -f /boot/initrd-3.6xxxx.img. В моём случае это было так:
dracut -f /boot/initrd-3.6.10-nrj-desktop-1rosa.img
2. Способ для людей любящих решения порадикальнее. Удаляем драйвер nouveau из системы. Делается так: rpm -e --nodeps x11-driver-video-nouveau. Тогда ничего из вышеперечисленного делать не придётся. :)

После удаления драйвера мы должны перезагрузиться в init 3, в противном случае нам не удастся установить драйвер видеокарты. Делается следующим образом. Перезагружаетесь. Как появится меню загрузчика, нажимаете буковку "E" на клавиатуре и вы попадаете в конфигурационный файл GRUB2. Далее, находим там строчку init=/lib/systemd/systemd и добавляем в конец цифру 3. После чего нажимаем F10.

А можно и не перезагружаться, а просто из под пользователя root выполнить команду init 3. :)

Логинимся пользователем root, заходим в каталог, куда мы сохранили run-файл с драйвером и запускаем его командой sh NVIDIA-Linux-x86_64-310.19.run. Отвечаем на все вопросы "Yes" и дожидаемся окончания установки.

После окончания снова перезагружаемся. Первая перезагрузка будет сильно дольше обычной, поэтому просьба не волноваться. Это устанавливается и регистрируется DKMS-модуль. Скорее всего, после перезагрузки подсистема X просто-напросто не загрузится. Чинится это это возвратом сохранённого xorg.conf на место, вместо сгенерированного инсталлятором драйвера. Всё. Можно перезагрузиться, а можно просто залогиниться обычным пользователем и скомандовать startx. Как вам удобнее. В дальнейшем всё будет загружаться автоматически.

Снова заходим пользователем root и выполняем:
modprobe nvidia && bumblebeed
Далее, проверяем работу командой: optirun glxgears. Если у вас красиво забегали колёсики, Optimus заработал.

На всякий случай привожу конфигурационный файл /etc/bumblebee/bumblebee.conf:
grep -v ^# /etc/bumblebee/bumblebee.conf

[bumblebeed]
VirtualDisplay=:8
KeepUnusedXServer=false
ServerGroup=bumblebee
TurnCardOffAtExit=true
NoEcoModeOverride=false
Driver=nvidia

[optirun]
VGLTransport=proxy
AllowFallbackToIGC=false

[driver-nvidia]
KernelDriver=nvidia
Module=nvidia
PMMethod=auto
LibraryPath=/usr/lib/nvidia-current:/usr/lib64/nvidia-current
XorgModulePath=/usr/lib/nvidia-current/xorg,/usr/lib64/nvidia-current/xorg,/usr/lib/xorg/modules,/usr/lib64/xorg/modules,/usr/lib/xorg/extra-modules,/usr/xorg/extra-modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

Date: 2013-01-30 01:29 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
Что можно сделать если модуль nvidia (modprobe nvidia && bumblebeed) не обнаружен...?
Edited Date: 2013-01-30 01:30 pm (UTC)

Date: 2013-01-30 02:18 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Что в содержимом /var/lib/dkms/nvidia/версия_драйвера/ваша_версия_ядра/x86_64/module/?

Либо он может быть в /lib/modules/версия драйвера/kernel/drivers/video/

Там должен быть nvidia.ko. Если он есть, подгрузите модуль руками с указанием абсолютного пути.
Edited Date: 2013-01-30 02:20 pm (UTC)

Date: 2013-01-30 08:12 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
Собрал ядро без nouveau...установил драйвер с сайта nvidia...модуль появился, грузится...но драйвер не работает. Файла конфига как такового нет, xorg -configure заканчивается ошибкой, в xorg.conf.new пишет всего по четыре, Driver "modesetting" "intel" "fbdev" "vesa" , BusID "PCI:0:2:0" везде одинаково.

Section "Device"
Identifier "Card0"
Driver "modesetting"
BusID "PCI:0:2:0"
EndSection

Section "Device"
Identifier "Card1"
Driver "intel"
BusID "PCI:0:2:0"
EndSection

и т.д.

[root@Nout fossa]# modprobe nvidia
[root@Nout fossa]# modprobe bumblebeed
FATAL: Module bumblebeed not found.
[root@Nout fossa]# optirun status
[ 196.630141] [ERROR]Cannot access secondary GPU - error: Could not enable discrete graphics card

[ 196.630181] [ERROR]Aborting because fallback start is disabled.
Edited Date: 2013-01-30 08:58 pm (UTC)

Date: 2013-01-30 09:26 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Ну, по идее сейчас файл конфига в xorg по большей части не нужен. Что касается xorg, то в принципе, там всё просто до безобразия должно быть. Вот кусок моего xorg:

Section "Device"
Identifier "device1"
BoardName "Intel 810 and later"
Driver "intel"
Option "DPMS"
EndSection

Section "Screen"
Identifier "screen1"
Device "device1"
Monitor "monitor1"
EndSection

Section "ServerLayout"
Identifier "layout1"
Screen "screen1"
EndSection

Скорее всего, у вас аналогично будет в этих секциях.

Кстати, что за дистрибутив у вас? Просто фраза "Собрал ядро без nouveau" как-то настораживает. К тому же, драйвер достаточно просто не устанавливать. Но судя по ошибкам, собрано верно у вас. Не настроен только.

И да, сам демон bumblebee у вас установлен? И ещё, bumblebee, это не модуль ядра, это обычный демон. Поэтому просто от пользователя root: bumblebeed. Чуть внимательнее читайте, что я писал в тексте. :)

Date: 2013-01-30 09:44 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
Rosa fresh. Мало обсуждают оптимус на ее форумах.
"bumblebee у вас установлен?" - как же без него...
Edited Date: 2013-01-30 09:48 pm (UTC)

Date: 2013-01-30 09:49 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Если у вас РОСА, то делайте всё строго по инструкции. Взлететь должно без проблем.

Кстати, конфиг xorg для встроенной интеловской можете сгенерить и сами. Запустите drakx11 от рута. И выберите драйвер Intel 810 and higher.

Date: 2013-01-30 10:13 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
x64 или 32 имеет значение?
при использовании инструкции..
Edited Date: 2013-01-30 10:14 pm (UTC)

Date: 2013-01-30 10:34 pm (UTC)

Date: 2013-01-31 08:39 am (UTC)
From: [identity profile] fossa . (from livejournal.com)
optirun поехал...движок openGL не включается...

[fossa@Nout ~]$ grep EE /var/log/Xorg.0.log
[ 22.550] Current Operating System: Linux Nout 3.6.10-nrj-desktop-1rosa #1 SMP PREEMPT Wed Dec 12 13:59:22 UTC 2012 x86_64
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 22.660] Initializing built-in extension MIT-SCREEN-SAVER
[ 25.626] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
Edited Date: 2013-01-31 09:39 am (UTC)

Date: 2013-01-31 12:04 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Ага. В конфиге bumblebee, в секции Kernel Driver какой драйвер указан? nvidia-current или nvidia, как у меня?
Edited Date: 2013-01-31 12:04 pm (UTC)

Date: 2013-01-31 12:11 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
nvidia

и...этот конфиг должен сам изменяться в следствии установки дров nvidia, или вручную переписывать настройки с nouveau?
Edited Date: 2013-01-31 12:21 pm (UTC)

Date: 2013-01-31 12:58 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Нет, руками переписать. надо. Кстати, optirun glxgears отрабатывает у вас? В консоли запустите и выхлоп сюда.

Date: 2013-01-31 01:16 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
[fossa@Nout ~]$ optirun glxgears
4952 frames in 5.0 seconds = 990.201 FPS
4962 frames in 5.0 seconds = 992.143 FPS
5047 frames in 5.0 seconds = 1009.309 FPS
5071 frames in 5.0 seconds = 1013.905 FPS

[fossa@Nout ~]$ glxgears
Xlib: extension "GLX" missing on display ":0".
Error: couldn't get an RGB, Double-buffered visual
Edited Date: 2013-01-31 02:20 pm (UTC)

Date: 2013-01-31 03:03 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Всё правильно работает у вас. Теперь любую программу требующую opengl, требуется пускать через команду optirun. Например, optirun ioquake3. :)

Date: 2013-01-31 03:41 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
вот бы еще окна не рассыпались...видео...вертикальная синхронизация не работает...эффекты...плеер хоть с optirun запусти - видео полосками в динамичных сценах.

Date: 2013-01-31 03:54 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
А зачем пускать плеер с opengl? У вас настолько слабый процессор? Я запускаю как есть, в качестве видеовывода - xv. Без пробем блюреи смотрю. Вертикальная синхронизация на ноутбуке да и вообще на LCD экране бессмысленна.

Date: 2013-01-31 04:02 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
т.е. это нормально

[root@Nout fossa]# glxinfo
name of display: :0
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Error: couldn't find RGB GLX visual or fbconfig

Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".
Xlib: extension "GLX" missing on display ":0".

Date: 2013-01-31 04:28 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Вы запускаете glxinfo без optirun потому что.

Date: 2013-02-01 02:54 pm (UTC)
From: [identity profile] fossa . (from livejournal.com)
[fossa@Nout ~]$ glxinfo
name of display: :0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:

[fossa@Nout ~]$ optirun glxinfo
name of display: :0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: VirtualGL
server glx version string: 1.4
server glx extensions:

[fossa@Nout ~]$ optirun glxgears
5138 frames in 5.0 seconds = 1027.524 FPS
5329 frames in 5.0 seconds = 1065.757 FPS
5365 frames in 5.0 seconds = 1072.965 FPS

Установил с репозитория Nvidia и bumblebee, удалил nouveau (rpm -e --nodeps x11-driver-video-nouveau), исправил конфиг bumblebee ( driver = nvidia , kernel driver = nvidia-current, TurnCardOffAtExit=true) далее modprobe nvidia-current && bumblebee и все - optirun работает, как и все эффекты. Xorg.conf не правил, не создавал.
Edited Date: 2013-02-01 02:59 pm (UTC)

Date: 2013-02-01 03:13 pm (UTC)
From: [identity profile] techquisitor.livejournal.com
Значит исправили, наконец, работу модуля dkms.

Profile

techquisitor: (Default)
techquisitor

June 2024

S M T W T F S
      1
2345678
9101112131415
161718192021 22
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 4th, 2026 07:21 am
Powered by Dreamwidth Studios