Это старая версия документа.


Введение

Mmiotrace (отображение трассировки в памяти ввода/вывода) позволяет проследить, что проприетарный драйвер посылает и читает из/в видеокарту.

Mmiotraces (который, как правило, состоит из нескольких миллионов строк) позволяет разработчикам pscnv/nouveau получить рабочий способ настройки оборудования. Это только отправная точка. Если вам удалось заставить работать, то обычно пытаются понять, что каждый регистр делает.

Без отправной точки, мы ничего не можем сделать. Так что, когда спрашивают mmiotrace или если вы хотите предоставить разработчикам трассировку только что выпущенного оборудования (например, Fermi), выполните следующие действия описаны ниже.

Предварительно требования

Какая-либо одна установленная видеокарта NVIDIA из следующих поколениях - NV50, nv8x, nv9x. Примечание: Любые дополнительные карты (NV3x, NV4x, NVAX) в настоящее время выходит за рамки проекта. Если вы готовы, чтобы добавить их, пожалуйста будьте нашими гостями. Если вы не знаете поколение вашей карты посмотрите ее здесь;

Установка необходимым пакетов

Проверяем что установлен проприетарный драйвер 190.42 или выше, в том числе-dev пакет, предоставляемый вашим дистрибутивом

aptitude search nvidia | grep ^i | grep -v "settings"
i   nvidia-310-updates              - NVIDIA binary Xorg driver
sudo aptitude install nvidia-310-updates-dev

Проверяем что Linux ядро скомпилировано с опцией CONFIG_MMIOTRACE

cat /boot/config-`uname -r` | grep CONFIG_MMIOTRACE

Устанавливаем мета-пакет для сборки программ

sudo aptitude install build-essential

Устанавливаем файлы для разработки Xorg X server

sudo aptitude install xserver-xorg-dev

Устанавливаем git

sudo aptitude install git

Скачиваем из git необходимые компоненты

git clone git://nouveau.git.sourceforge.net/gitroot/nouveau/nouveau nouveau

Компилируем программы

cd nouveau/nouveau-pm
make

Переключаемся на первую консоль

Ctrl+Alt+F1

Останавливаем X сервер

sudo service lightdm stop

Выполняем следующий скрипт от root

sudo ./init-trace.sh

Запускаем X сервер

sudo service lightdm start
Открываем виртуальный терминал и запускаем скрипт от пользователя root
sudo ./run-trace.sh

Переходим в домашнюю папку пользователя

cd

Скачиваем компоненты vbtracetool

git clone git://people.freedesktop.org/~stuart/vbtracetool

Переходим в проект vbtracetool

cd vbtracetool
./vbtracetool -w 2>nvXX_vbios.rom

Ссылки