Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Следующая версия Следующая версия справа и слева | ||
wiki:pscnv_timings [2013/03/04 13:08] [Ссылки] |
wiki:pscnv_timings [2013/03/05 18:03] |
||
---|---|---|---|
Строка 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 'название вашей видеокарты'". | ||
+ | |||
Это письмо мы перешлём также другим разработчикам. | Это письмо мы перешлём также другим разработчикам. | ||
**ВНИМАНИЕ**: Трижды проверьте, что вы прикрепили все файлы, прежде чем нажмёте на кнопку отправки! | **ВНИМАНИЕ**: Трижды проверьте, что вы прикрепили все файлы, прежде чем нажмёте на кнопку отправки! | ||
- | В письме должно быть 8 файлов: | + | В письме должно быть 7 файлов: |
* card_list | * card_list | ||
* nvXX_vbios.rom | * nvXX_vbios.rom | ||
Строка 130: | Строка 138: | ||
* nvXX_timing_peek | * nvXX_timing_peek | ||
* nvXX_mr_peek - не для всех видеокарт | * nvXX_mr_peek - не для всех видеокарт | ||
- | * nvXX_timing_peek | ||
* nvXX_vbios_parsed | * nvXX_vbios_parsed | ||
* lspci.output | * lspci.output |