Это старая версия документа.
Содержание
Введение
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