Ай да 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.