Ай да linux! Nouveau і reclocking

Ай да linux! Nouveau і reclocking

Вже досить довгий час я використовую nouveau і вирішив сфабрикувати маленьку заметочку. Насправді не все так погано, як можна прочитати на різних форумах, а якщо Ви не ігроман, то nouveau саме воно. Власне які переваги Ви отримаєте:

  • KMS - штатний дозвіл екрана в консолі, плюс шрифти будуть чіткими, а не розмазали як при використанні фреймбуфера, а також миттєве перемикання між tty і X`мі;
  • не потрібно збирати заново nvidia драйвер після поновлення ядра;
  • менше споживання пам'яті.

З недоліків можна виділити меншу продуктивність (в порівнянні з nvidia-БЛОБ), трохи більше навантаження на процесор і можливо, робота вентилятора на повних обертах.

Всі експерименти проходили на gentoo, але справедливі і для інших дистрибутивів.

Для швидкої зміни між nouveau і nvidia можна використовувати наступний скрипт:

#! / Bin / bash
#test root
if # 91; `Id -u` -ne 0 # 93; ; then echo "You need be root"; exit 1; fi

#test arg
if # 91; $ # -ne 1 # 93; ; then echo "Usage: $ 0 <1> nvidia | <2> nouveau "; exit 1; fi

#config files
BLACKLIST = / etc / modprobe.d / blacklist.conf
XORGCONFIG = / etc / X11 / xorg.conf

case $ ARGS in
nvidia | 1 # 41;
echo "Update blacklist.conf"
sed s / nvidia / nouveau / -i $ BLACKLIST
echo "Update xorg.conf"
sed s / nouveau / nvidia / -i $ XORGCONFIG
eselect opengl set nvidia
exit 0
;;
nouveau | 2 # 41;
echo "Update blacklist.conf"
sed s / nouveau / nvidia / -i $ BLACKLIST
echo "Update xorg.conf"
sed s / nvidia / nouveau / -i $ XORGCONFIG
eselect opengl set xorg-x11
exit 0
;;
* # 41;
echo "Usage: $ 0 <1> nvidia | <2> nouveau "
exit 1
;;
esac

Увага! nouveau повинен бути зібраний модулем.
Звичайно можна було б переписати скрипт інакше, для «гарячої» зміни драйвера, але все-одно довелося б перезапускати ікси.
Якщо завантажується nvidia, то використовується uvesafb. Для цього в файл /etc/conf.d/modules:

і в файл /etc/modprobe.d/uvesafb.conf:

options uvesafb mode_option = 1366x768-32 scroll = ywrap

Звичайно можна було додати рядок в завантажувач до параметрів ядра

video = uvesafb: mtrr: 3, ywrap, 1366x768- 32

Тим самим ми забезпечимо комфортні умови роботи в консолі незалежно від використовуваного драйвера. Тепер повернемося до налаштування nouveau. Тут достатньо всього одного параметра nouveau.modeset = 1. який включає підтримку KMS. Але руки сверблять ще що-небудь налаштувати, і можна додати ще nouveau.perflvl_wr = 7777. щоб можна було вручну змінювати performance level, а для фіксації додати nouveau.perflvl = 2. Також ці параметри можна розмістити в /etc/modprobe.d/nouveau.conf

options nouveau modeset = 1
options nouveau nouveau.perflvl_wr = 7777
# Якщо хочете вказати performance level
# Цей параметр краще вказувати в засобі завантаження
options nouveau perflvl = 2
# На випадок виникнення проблем з tty
#options nouveau nofbaccel = 1

Тепер давайте подивимося як йдуть справи насправді.

карта: nVidia Corporation G98M # 91; GeForce G 103M # 93; # 40; rev a1 # 41;
mesa- 9999
libdrm- 9999
xf86-video-nouveau- 9999
xorg-server-1.12.0 # і тут перевірю на 9999
kernel-3.4.0-rc5

Дивимося які доступні режими.

cat / sys / class / drm / card0 / device / performance_level *
profile: 2. 2
c: core 500MHz shader 1000MHz memory 399MHz voltage 1090mV
0. core 169MHz shader 338MHz memory 100MHz voltage 900mV fanspeed 100%
1. core 275MHz shader 550MHz memory 250MHz voltage 900mV fanspeed 100%
2. core 500MHz shader 1000MHz memory 400MHz voltage 1090mV fanspeed 100%
3. core 640MHz shader 1600MHz memory 500MHz voltage 1200mV fanspeed 100%

Для зміни режиму необхідно:

echo "число"> / sys / class / drm / card0 / device / performance_level

На kernel-3.3 працюють 0 і 1, а на kernel-3.4 0, 1 і 2.
В результаті glxgears показав наступні результати:

270 FPS
core 275MHz

630 FPS
core 500MHz

1000 FPS
nvidia-drivers

Щоб зафіксувати результат додав наступні параметри в завантажувач:

До речі, nvidia-drivers не збирається з kernel-3.4, для успішної збірки подивіться сюди.

Підводячи підсумки, nouveau забезпечує цілком прийнятний рівень продуктивності, і в нормальних умовах взагалі не спостерігається яких-небудь глюків і гальм. Без проблем дозволяє грати, наприклад, в urbanterror, але для більш важких ігор швидше за все знадобляться nvidia-drivers.

Схожі статті