Разработчикам Nouveau нужна ваша помощь. Тестирование поддержки таймингов в Nouveau Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:pscnv_timings [2013/03/04 12:44]
[Требования:]
wiki:pscnv_timings [2014/01/21 19:36] (текущий)
[Ссылки]
Строка 1: Строка 1:
-====== Разработчикам ​nouveau ​нужна ваша помощь ======+====== Разработчикам ​Nouveau ​нужна ваша помощь. Тестирование поддержки таймингов в Nouveau ​====== 
 +==== О проекте Nouveau ==== 
 +Nouveau «nuvo» — проект по созданию свободных драйверов видеокарт компании Nvidia с поддержкой ускорения вывода трёхмерной графики. Изначально основан на распространяемом по свободной лицензии,​ но нечитаемом драйвере «nv» 2D-графики от nVIDIA.
  
-Введение от [[http://​www.linux.org.ru/​news/​hardware/​5438270/​page3#​comment-5440589|mironov_ivan]]+==== Источник ==== 
 +Wiki-статья ​основана на LOR-новости [[http://​www.linux.org.ru/​news/​hardware/​5438270/​page3#​comment-5440589|Разработчикам nouveau снова нужна ваша помощь!]]
  
-Для разработки и тестирования поддержки таймингов очень нужны ​дампы соответствующей таблицы из Video BIOS'​а с разнообразных моделей видеокарт. С этим могут помочь все добровольцы, у которых есть ​видеокарта Nvidia и компьютер с Linux'​ом. ​Используемый ​в системе драйвер, по идее, не имеет значения, так как все данные будут собираться напрямую «с железа»,​ но разработчики рекомендуют при возможности использовать оригинальный проприетарный драйвер.+Введение от Миронова Ивана:
  
 +Для разработки и тестирования поддержки таймингов очень нужны дампы соответствующей таблицы из Video BIOS'​а с разнообразных моделей видеокарт. С этим могут помочь все добровольцы,​ у которых есть видеокарта Nvidia и компьютер с Linux'​ом. Используемый в системе драйвер,​ по идее, не имеет значения,​ так как все данные будут собираться напрямую «с железа»,​ но разработчики рекомендуют при возможности использовать оригинальный проприетарный драйвер.
 ==== Для сборки потребуются установить дополнительные пакеты:​ ==== ==== Для сборки потребуются установить дополнительные пакеты:​ ====
  
Строка 22: Строка 26:
 Затем получаем с помощью утилит нужную информацию (запускать нужно с правами администратора,​ также желательно временно отключить [[SELinux]] и другие подобные системы защиты):​ Затем получаем с помощью утилит нужную информацию (запускать нужно с правами администратора,​ также желательно временно отключить [[SELinux]] и другие подобные системы защиты):​
   
-В настоящее время мы занимаемся реверс-инжинирингом [[https://​github.com/​pathscale/​pscnv/​wiki/​PM_memory_timings|таймингов памяти таблицы vbios]], но, как вы видите,​ мы немного нечетко понимаем как оно на самом деле работает.+В настоящее время мы занимаемся реверс-инжинирингом [[https://​github.com/​pathscale/​pscnv/​wiki/​PM_memory_timings|таймингов памяти таблицы vbios]], но, как вы видите,​ мы немного нечётко понимаемкак оно на самом деле работает.
  
-Мы сумели заставить [[wiki:​установка_драйвера_nouveau|nouveau]] работать на некоторых видеокартах,​ но теперь мы хотим знать будет ли nouveau ​будет ​работать на всех устройствах.+Мы сумели заставить [[wiki:​установка_драйвера_nouveau|nouveau]] работать на некоторых видеокартах,​ но теперь мы хотим знатьбудет ли nouveau работать на всех устройствах.
 ==== Требования:​ ==== ==== Требования:​ ====
  
 Вот список требований:​ Вот список требований:​
-  * Не-IGP NVC0 -> NVE4 (в комплекте) карта nvidia, GeForce 4 или новее. Смотрите [[http://​nouveau.freedesktop.org/​wiki/​CodeNames|кодовые имена Nvidia]], если вы не знаете,​ какая у вас карта. Остальная часть руководства также подходит и для более ранних карт, но образцов таких карт у нас достаточно. +  * Не встроенная (IGP) от NVC0 до NVE4 (включительно) карта nvidia, GeForce 4 или новее. Смотрите [[http://​nouveau.freedesktop.org/​wiki/​CodeNames|кодовые имена Nvidia]], если вы не знаете,​ какая у вас карта. Остальная часть руководства также подходит и для более ранних карт, но образцов таких карт у нас достаточно. 
-  * nvapeek, nvagetbios, nvbios (опционально): ​Смотрите ​специальные инструменты на [[https://​github.com/​pathscale/​pscnv/​wiki/​RE_Tools|Инструменты для реверс-инжиниринга]] (англ.). +  * nvapeek, nvagetbios, nvbios (опционально): ​подробнее смотрите на странице, посвящённой [[https://​github.com/​pathscale/​pscnv/​wiki/​RE_Tools|инструментам для реверс-инжиниринга]] (англ.). 
-  * Запустите [[wiki:​драйвер_видеокарт_nvidia|проприетарный драйвер]],​ nouveau или что-то другое ​в общем-то это не имеет особого значения. Однако для сбора информации рекомендовано задействовать именно приприетарный драйвер (blob).+  * Запустите [[wiki:​драйвер_видеокарт_nvidia|проприетарный драйвер]],​ nouveau или что-то другое ​— в общем-тоэто не имеет особого значения. Однако для сбора информации рекомендовано задействовать именно проприетарный драйвер (blob).
  
 Пожалуйста,​ обновите nvbios, прежде чем использовать его, он изменяется практически ежедневно. Пожалуйста,​ обновите nvbios, прежде чем использовать его, он изменяется практически ежедневно.
 ==== Шаги: ==== ==== Шаги: ====
-Я полагаю,​ что у вас есть скомпилированные ''​nvapeek''​ и ''​vbtracetool''​. Если вы не можете скомпилировать их, пожалуйста,​ расскажите о проблеме на [[wpru>​freenode]]#pathscale (если проблема с ''​nvapeek'',​ спросите ''​mwk''​) или #nouveau (если это проблема ''​vbtracetool''​).+Я полагаю,​ что у вас есть скомпилированные ''​nvapeek''​ и ''​vbtracetool''​. Если вы не можете скомпилировать их, пожалуйста,​ расскажите о проблеме на [[wpru>​freenode]]: каналы ​#pathscale (если ​это ​проблема с ''​nvapeek'',​ спросите ''​mwk''​) или #nouveau (если это проблема ''​vbtracetool''​).
  
 ==== Определите тип своей карты ==== ==== Определите тип своей карты ====
  
-Просто запустите ''​nvalist'',​ чтобы увидеть установленный GPU:+Просто запустите ''​nvalist'',​ чтобы увидеть установленные GPU:
  
 <​code=bash>​ <​code=bash>​
Строка 47: Строка 51:
 </​code>​ </​code>​
  
-В случае если у вас система с несколькими GPU, необходимо добавить параметр ​"" ​ко всем последующим командам ''​nvapeek'',​ чтобы выбрать карту, с которой он должен работать. ​+В случае если у вас система с несколькими GPU, необходимо добавить параметр ​«» ко всем последующим командам ''​nvapeek'',​ чтобы выбрать карту, с которой он должен работать. ​
  
-Если ваша карта NV4C, NV4E, NV67, NV68, NVAA, NVACили NVAF, то это IGP, в которых, следовательно,​ нет ни контроллера памяти,​ ни их таймингов. В противном случае,​ она имеет тайминги,​ и вы можете сделать полезный ​dump.+Если ваша карта ​обозначена,​ как ​NV4C, NV4E, NV67, NV68, NVAA, NVAC или NVAF, то это ​встроенная видеокарта (IGP), в которой, следовательно,​ нет ни контроллера памяти,​ ни их таймингов. В противном случае,​ она имеет тайминги,​ и вы можете сделать полезный ​дамп.
  
 ==== Дамп VBIOS ==== ==== Дамп VBIOS ====
Строка 61: Строка 65:
 <​code=bash>​sudo ./​envytools/​nva/​nvagetbios -s prom > nvXX_vbios.rom</​code>​ <​code=bash>​sudo ./​envytools/​nva/​nvagetbios -s prom > nvXX_vbios.rom</​code>​
  
-Если VBIOS все еще пуст, пожалуйста,​ выполните шаги, описанные на вики-странице [[http://​nouveau.freedesktop.org/​wiki/​DumpingVideoBios|DumpingVideoBios]] (англ.).+Если VBIOS всё ещё пуст, пожалуйста,​ выполните шаги, описанные на вики-странице [[http://​nouveau.freedesktop.org/​wiki/​DumpingVideoBios|DumpingVideoBios]] (англ.).
  
 ==== Получить strap вашей карты ==== ==== Получить strap вашей карты ====
  
-Получение strap карты осуществляется путём чтения адреса 0x00101000. Strap это аппаратный (hardwired) регистр и он дает некоторые сведения о конкретной карте. Его значение установлено производителем GPU и не может быть получено из VBIOS.+Получение strap карты осуществляется путём чтения адреса 0x00101000. Strap — это аппаратный (hardwired) регистри он даёт некоторые сведения о конкретной карте. Его значение установлено производителем GPU и не может быть получено из VBIOS.
    
 <​code=bash>​sudo ./​envytools/​nva/​nvapeek 0x00101000 > nvXX_strap_peek</​code>​ <​code=bash>​sudo ./​envytools/​nva/​nvapeek 0x00101000 > nvXX_strap_peek</​code>​
Строка 72: Строка 76:
 === от NV40 до NVC0 (не включая NVC0) === === от NV40 до NVC0 (не включая NVC0) ===
  
-Для получения текущих таймингов нужно просто прочитать 32 байта начиная с 0x100220:+Для получения текущих таймингов нужно просто прочитать 32 байтаначиная с 0x100220:
  
 <​code=bash>​ <​code=bash>​
Строка 81: Строка 85:
 === NVC0 (также известны,​ как Fermi) === === NVC0 (также известны,​ как Fermi) ===
  
-Для получения текущих таймингов нужно просто прочитать 32 байта начиная с 0x10f290:+Для получения текущих таймингов нужно просто прочитать 32 байтаначиная с 0x10f290:
  
 <​code=bash>​ <​code=bash>​
Строка 98: Строка 102:
 Она может выдать предупреждение о том, что не установлено значение ''​strap''​. Это сообщение можно проигнорировать. Она может выдать предупреждение о том, что не установлено значение ''​strap''​. Это сообщение можно проигнорировать.
  
-Вы получите очень длинный вывод, и где-то в конце вы найдете сроки, где разбирается таблица таймингов. Попробуйте найти элемент,​ который будет соответствовать тому, что вы получили в nvXX_timing_peek.+Вы получите очень длинный вывод, и где-то в конце вы найдёте сроки, где разбирается таблица таймингов. Попробуйте найти элемент,​ который будет соответствовать тому, что вы получили в nvXX_timing_peek.
  
 Есть два варианта:​ Есть два варианта:​
Строка 106: Строка 110:
 Если вы не нашли соответствия,​ то, пожалуйста,​ отправьте нам письмо (см. ниже). Если вы не нашли соответствия,​ то, пожалуйста,​ отправьте нам письмо (см. ниже).
  
-==== Хочешь помочь НАМНОГО больше?​ ====+==== Хотите помочь НАМНОГО больше?​ ====
  
-Эй, вы уже проделали большую работу,​ но есть одна последняя вещь, которую мы должны знать о вашей карте... это, как проприетарный драйвер (blob) использует вашу видеокарту!+Эй, вы уже проделали большую работу,​ но есть одна последняя вещь, которую мы должны знать о вашей карте... это то, как проприетарный драйвер (blob) использует вашу видеокарту!
  
-Вы можете отслеживать все, что делает проприетарный драйвер (blob), ​следуя следующим инструкциям:​[[https://​github.com/​pathscale/​pscnv/​wiki/​Pm-mmiotrace|Выполнение mmiotrace]] (англ.)+Вы можете отслеживать всё, что делает проприетарный драйвер (blob), ​выполняя следующие инструкции:​[[https://​github.com/​pathscale/​pscnv/​wiki/​Pm-mmiotrace|Выполнение mmiotrace]] (англ.)
  
 Мы заранее благодарим вас. Мы заранее благодарим вас.
Строка 119: Строка 123:
  
 ==== Отправка нам письма ==== ==== Отправка нам письма ====
-Пожалуйста,​ отправьте письмо ​на martin.peres[собака]ensi-bourges[точка]fr со всеми сгенерированными вами файлами. Также приложите,​ пожалуйста,​ вывод команды ​\"​lspci ​-vnn\".+Пожалуйста,​ отправьте письмо ​по адресу ​martin.peres[собака]ensi-bourges[точка]fr со всеми сгенерированными вами файлами. ​ 
 + 
 +Также приложите,​ пожалуйста,​ вывод команды ​«lspci ​-vnn». 
 Предлагаю использовать тему письма:​ "​Testing Memory Timings of '​название вашей видеокарты'"​. Предлагаю использовать тему письма:​ "​Testing Memory Timings of '​название вашей видеокарты'"​.
 +
 Это письмо мы перешлём также другим разработчикам. Это письмо мы перешлём также другим разработчикам.
  
 **ВНИМАНИЕ**:​ Трижды проверьте,​ что вы прикрепили все файлы, прежде чем нажмёте на кнопку отправки! **ВНИМАНИЕ**:​ Трижды проверьте,​ что вы прикрепили все файлы, прежде чем нажмёте на кнопку отправки!
 +В письме должно быть 7 файлов:​
 +  * card_list
 +  * nvXX_vbios.rom
 +  * nvXX_strap_peek
 +  * nvXX_timing_peek
 +  * nvXX_mr_peek - не для всех видеокарт
 +  * nvXX_vbios_parsed
 +  * lspci.output
 ==== Благодарность ==== ==== Благодарность ====
  
Строка 132: Строка 148:
   * [[http://​nouveau.freedesktop.org/​wiki/​TestersWanted|Nouveau testers wanted]] (англ.)   * [[http://​nouveau.freedesktop.org/​wiki/​TestersWanted|Nouveau testers wanted]] (англ.)
   * [[https://​github.com/​pathscale/​pscnv/​wiki/​TestingTimings|Тайминги оперативной памяти (Testing Memory Timings)]] (англ.)   * [[https://​github.com/​pathscale/​pscnv/​wiki/​TestingTimings|Тайминги оперативной памяти (Testing Memory Timings)]] (англ.)
 +  * [[http://​thefreecountry.wordpress.com/​2010/​10/​16/​nouveau_timing_management|Yet another openSUSE blog - [Nouveau] Tester wanted: Timing management]]
  
-{{tag>​nouveau ​nvidia ​fixme тестирование разработка}}+{{tag>​nouveau fixme тестирование разработка}}