Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:powermanagement_mmiotrace [2013/03/06 12:25] [Ссылки] |
wiki:powermanagement_mmiotrace [2014/01/21 19:38] [Ссылки] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Разработчикам Nouveau нужна ваша помощь. Тестирование управления энергопотреблением mmiotrace ====== | ====== Разработчикам Nouveau нужна ваша помощь. Тестирование управления энергопотреблением mmiotrace ====== | ||
- | ===== Введение ===== | + | ==== Введение ==== |
Mmiotrace (отображение трассировки в памяти ввода/вывода) позволяет проследить, что проприетарный драйвер посылает и читает из/в видеокарту. | Mmiotrace (отображение трассировки в памяти ввода/вывода) позволяет проследить, что проприетарный драйвер посылает и читает из/в видеокарту. | ||
- | Mmiotraces (который, как правило, состоит из нескольких миллионов строк) позволяет разработчикам pscnv/nouveau получить рабочий способ настройки оборудования. Это только отправная точка. Если вам удалось заставить работать, то обычно пытаются понять, что каждый регистр делает. | + | Mmiotrace (который, как правило, состоит из нескольких миллионов строк) позволяет разработчикам pscnv/nouveau получить рабочий способ настройки оборудования. Это только отправная точка. Если вам удалось заставить работать, то обычно пытаются понять, что каждый регистр делает. |
Без отправной точки, мы ничего не можем сделать. Так что, когда спрашивают mmiotrace или если вы хотите предоставить разработчикам трассировку только что выпущенного оборудования (например, Fermi), выполните следующие действия описаны ниже. | Без отправной точки, мы ничего не можем сделать. Так что, когда спрашивают mmiotrace или если вы хотите предоставить разработчикам трассировку только что выпущенного оборудования (например, Fermi), выполните следующие действия описаны ниже. | ||
- | ===== Предварительно требования ===== | + | ==== Предварительно требования ==== |
Какая-либо одна установленная видеокарта NVIDIA из следующих поколениях - NV50, nv8x, nv9x. | Какая-либо одна установленная видеокарта NVIDIA из следующих поколениях - NV50, nv8x, nv9x. | ||
Строка 14: | Строка 14: | ||
Если вы готовы, чтобы добавить их, пожалуйста будьте нашими гостями. | Если вы готовы, чтобы добавить их, пожалуйста будьте нашими гостями. | ||
Если вы не знаете поколение вашей карты посмотрите ее [[http://nouveau.freedesktop.org/wiki/CodeNames|здесь]]; | Если вы не знаете поколение вашей карты посмотрите ее [[http://nouveau.freedesktop.org/wiki/CodeNames|здесь]]; | ||
- | ===== Установка необходимым пакетов ===== | + | ==== Установка необходимым пакетов ==== |
Проверяем что установлен проприетарный драйвер 190.42 или выше, в том числе-dev пакет, предоставляемый вашим дистрибутивом | Проверяем что установлен проприетарный драйвер 190.42 или выше, в том числе-dev пакет, предоставляемый вашим дистрибутивом | ||
<code=bash> | <code=bash> | ||
Строка 39: | Строка 39: | ||
sudo aptitude install git | sudo aptitude install git | ||
</code> | </code> | ||
- | Скачиваем из git необходимые компоненты | + | ==== Скачиваем из git необходимые компоненты ==== |
<code=bash> | <code=bash> | ||
git clone git://nouveau.git.sourceforge.net/gitroot/nouveau/nouveau nouveau | git clone git://nouveau.git.sourceforge.net/gitroot/nouveau/nouveau nouveau | ||
</code> | </code> | ||
- | Компилируем программы | + | ==== Компилируем программы ==== |
<code=bash> | <code=bash> | ||
cd nouveau/nouveau-pm | cd nouveau/nouveau-pm | ||
make | make | ||
</code> | </code> | ||
- | Переключаемся на первую консоль | + | ==== Переключаемся на первую консоль и входим в систему ==== |
<code=bash> | <code=bash> | ||
Ctrl+Alt+F1 | Ctrl+Alt+F1 | ||
</code> | </code> | ||
- | Останавливаем X сервер | + | ==== Останавливаем X сервер ==== |
<code=bash> | <code=bash> | ||
sudo service lightdm stop | sudo service lightdm stop | ||
</code> | </code> | ||
- | Выполняем следующий скрипт от root | + | ==== Выполняем следующий скрипт от root ==== |
<code=bash> | <code=bash> | ||
sudo ./init-trace.sh | sudo ./init-trace.sh | ||
</code> | </code> | ||
- | Запускаем X сервер | + | ==== Запускаем X сервер ==== |
<code=bash> | <code=bash> | ||
sudo service lightdm start | sudo service lightdm start | ||
</code> | </code> | ||
<code=bash> | <code=bash> | ||
- | Открываем виртуальный терминал и запускаем скрипт от пользователя root | + | ==== Открываем виртуальный терминал и запускаем скрипт от пользователя root ==== |
sudo ./run-trace.sh | sudo ./run-trace.sh | ||
</code> | </code> | ||
+ | При тестировании желательно не запускать приложения, чтобы не увеличивать время тестирования и размер дампа. | ||
+ | |||
+ | В течение двух-трех минут вы увидите сообщение "Dumping done. Stopping tracer", но сценарий будет продолжать работать (сжатие данных и сбор другой информации). | ||
+ | |||
+ | При возникновении ошибки во время вышеупомянутого процесса обратитесь к FAQ | ||
+ | |||
+ | Если вы случайно прервали выполнение сценария trace.sh, обратите внимание, что могут быть две новые папки в текущей рабочей директории - nouveau-pm.XXXXXXXXXX и nvXX-0xYYYYYYYY-ZZZZ. | ||
+ | Не стесняйтесь, чтобы удалить эти папки (вам понадобится доступ с правами администратора) и повторите процедуру, начиная с шага "sudo ./init-trace.sh". Перезагрузка системы рекомендуется, но не обязательна. | ||
+ | |||
+ | В конце концов, там должен быть создатся файл в текущем каталоге с именем | ||
+ | nvXX-0xYYYYYYYY-ZZZZ.tar.gz | ||
+ | Где nvXX это поколение видеокарты (см. [1] для списка), и YYYYYYYY это BOOT_0 и ZZZZ от PCI_ID/DEVICE_ID | ||
+ | |||
+ | Скрипт создаст дамп, который будет выглядить примерно так: nva0-0xa0300b1-05e6-downclock.tar.gz. | ||
+ | Параметр nva0 запомним. | ||
+ | |||
Переходим в домашнюю папку пользователя | Переходим в домашнюю папку пользователя | ||
<code=bash> | <code=bash> | ||
cd | cd | ||
</code> | </code> | ||
- | Скачиваем компоненты vbtracetool | + | ==== Скачиваем компоненты vbtracetool ==== |
<code=bash> | <code=bash> | ||
git clone git://people.freedesktop.org/~stuart/vbtracetool | git clone git://people.freedesktop.org/~stuart/vbtracetool | ||
Строка 80: | Строка 96: | ||
cd vbtracetool | cd vbtracetool | ||
</code> | </code> | ||
+ | Компилируем | ||
<code=bash> | <code=bash> | ||
- | ./vbtracetool -w 2>nvXX_vbios.rom | + | make |
+ | </code> | ||
+ | ==== Получаем bios видеокарты, в имени файла пишем тот параметр, который запомнили ранее ==== | ||
+ | <code=bash> | ||
+ | ./vbtracetool -w 2>nva0_vbios.rom | ||
</code> | </code> | ||
+ | Пожалуйста, присылайте этот файл (дамп), ваш vbios, а также некоторые дополнительные сведения, которые вы считаете, | ||
+ | иметь отношение на эту почту mmio[точка]dumps[собака]gmail[точка]com. | ||
- | + | ПРИМЕЧАНИЕ: При отправке дампа он будет загружен на XXX так, что другие люди и разработчики смогут смотреть и помогать. | |
- | + | Ваш ЭЛЕКТРОННЫЙ адрес БУДЕТ ПУБЛИЧНО доступен. If you wish it may excluded just state in your email. | |
- | + | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
Строка 96: | Строка 117: | ||
* [[FIXME]] | * [[FIXME]] | ||
- | {{tag>powermanagement mmiotrace fixme }} | + | {{tag>nouveau powermanagement mmiotrace fixme}} |