Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
playground:playground4 [2013/03/07 15:22] создано |
playground:playground4 [2013/03/07 16:35] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Помощь в развитии свободного драйвера видеокарт Nvidia ====== | ====== Помощь в развитии свободного драйвера видеокарт Nvidia ====== | ||
- | [[wiki:свободный_драйвер_видеокарт_nvidia|Nouveau]] — проект по созданию свободных драйверов видеокарт компании Nvidia с поддержкой ускорения вывода трёхмерной графики. Изначально основан на распространяемом по свободной лицензии, но нечитаемом драйвере «nv» 2D-графики от nVIDIA. | + | [[wiki:свободный_драйвер_видеокарт_nvidia|Nouveau]] — проект по созданию свободных драйверов видеокарт компании Nvidia с поддержкой ускорения вывода трёхмерной графики. Изначально основан на распространяемом по свободной лицензии, но нечитаемом FIXME каком? драйвере «nv» 2D-графики от nVIDIA. |
FIXME возможно надо расписать зачем нужен Nouveau и какие у него плюсы перед проприетарным драйвером. | FIXME возможно надо расписать зачем нужен Nouveau и какие у него плюсы перед проприетарным драйвером. | ||
- | ==== Тестирование управления энергопотреблением Mmiotrace ==== | + | ===== Тестирование управления энергопотреблением Mmiotrace ===== |
+ | FIXME Пожалуй, стоит переименовать этот раздел. В нем явно не про тестирование. | ||
Mmiotrace (отображение трассировки в памяти ввода/вывода) позволяет проследить, что проприетарный драйвер посылает и читает из/в видеокарту. | Mmiotrace (отображение трассировки в памяти ввода/вывода) позволяет проследить, что проприетарный драйвер посылает и читает из/в видеокарту. | ||
- | Вывод mmiotrace, который, как правило, состоит из нескольких миллионов строк, позволяет разработчикам pscnv/nouveau получить рабочий способ настройки оборудования. Это только отправная точка. Если вам удалось заставить работать, то обычно пытаются понять, что каждый регистр делает((FIXME что удалось заставить работать?)). | + | Вывод mmiotrace, который, как правило, состоит из нескольких миллионов строк, позволяет разработчикам pscnv/nouveau получить рабочий способ настройки оборудования. Это только отправная точка. Если вам удалось заставить работать, то обычно пытаются понять, что каждый регистр делает FIXME что удалось заставить работать?. |
Без отправной точки, мы ничего не можем сделать. Так что, когда спрашивают mmiotrace или если вы хотите предоставить разработчикам трассировку только что выпущенного оборудования (например, Fermi), выполните следующие действия описаны ниже. | Без отправной точки, мы ничего не можем сделать. Так что, когда спрашивают mmiotrace или если вы хотите предоставить разработчикам трассировку только что выпущенного оборудования (например, Fermi), выполните следующие действия описаны ниже. | ||
Строка 16: | Строка 18: | ||
Если вы не знаете поколение вашей карты посмотрите ее [[http://nouveau.freedesktop.org/wiki/CodeNames|здесь]]; | Если вы не знаете поколение вашей карты посмотрите ее [[http://nouveau.freedesktop.org/wiki/CodeNames|здесь]]; | ||
- | ==== Установка необходимым пакетов ==== | + | ==== Процесс тестирования ==== |
- | Проверьте что установлен проприетарный драйвер версии 190.42 или выше, в том числе dev-пакет, предоставляемый вашим дистрибутивом | + | === Создание дампа mmiotrace === |
- | :!: не стоит спользовать aptitude, он не является программой установленной по умолчанию | + | -- Установите необходимые пакеты |
- | <code=bash>apt-cache search nvidia | grep ^i | grep -v "settings" | + | -- Проверьте, что у вас установлен проприетарный драйвер версии 190.42 или выше, а так же его dev-пакет |
+ | .. <code=bash>apt-cache search nvidia | grep ^i | grep -v "settings" | ||
i nvidia-310-updates - NVIDIA binary Xorg driver</code> | i nvidia-310-updates - NVIDIA binary Xorg driver</code> | ||
- | <code=bash>sudo apt-get install nvidia-310-updates-dev</code> | + | .. <code=bash>sudo apt-get install nvidia-310-updates-dev</code> |
- | + | -- Проверьте, что Linux ядро скомпилировано с опцией ''CONFIG_MMIOTRACE'' | |
- | Проверяем что Linux ядро скомпилировано с опцией CONFIG_MMIOTRACE | + | .. <code=bash>cat /boot/config-`uname -r` | grep CONFIG_MMIOTRACE</code> |
- | <code=bash>cat /boot/config-`uname -r` | grep CONFIG_MMIOTRACE</code> | + | -- Установите мета-пакет для сборки программ |
- | + | .. <code=bash>sudo apt-get install build-essential</code> | |
- | Устанавливаем мета-пакет для сборки программ | + | -- Установите файлы для разработки X-сервера Xorg |
- | <code=bash>sudo apt-get install build-essential</code> | + | .. <code=bash>sudo apt-get install xserver-xorg-dev</code> |
- | Устанавливаем файлы для разработки Xorg X server | + | -- Установите Git |
- | <code=bash>sudo apt-get install xserver-xorg-dev</code> | + | .. <code=bash>sudo apt-get install git</code> |
- | Устанавливаем Git | + | -- Скачайте из репозитория Git необходимые компоненты |
- | <code=bash>sudo apt-get install git</code> | + | .. <code=bash>git clone git://nouveau.git.sourceforge.net/gitroot/nouveau/nouveau nouveau</code> |
- | + | -- Скомпилируйте скачанные из Git компоненты | |
- | ==== Скачиваем из Git необходимые компоненты ==== | + | .. <code=bash>cd nouveau/nouveau-pm |
- | <code=bash>git clone git://nouveau.git.sourceforge.net/gitroot/nouveau/nouveau nouveau</code> | + | |
- | ==== Компилируем программы ==== | + | |
- | <code=bash>cd nouveau/nouveau-pm | + | |
make</code> | make</code> | ||
+ | -- Переключитесь в первую консоль комбинацией клавиш <key>C-A-F1</key> и войдите в систему | ||
+ | -- [[wiki:управление_x-сервером#Включение, выключение и перезапуск графической подсистемы вручную|Остановите X-сервер]] | ||
+ | -- Выполните init-trace.sh скрипт от root <code=bash>sudo ./init-trace.sh</code> | ||
+ | -- [[wiki:управление_x-сервером#Включение, выключение и перезапуск графической подсистемы вручную|Запустите X-сервер]] | ||
+ | -- Откройте терминал и снова скрипт run-trace.sh от [[wiki:sudo|суперпользователя]] <code=bash>sudo ./run-trace.sh</code> | ||
+ | .. При тестировании желательно не запускать приложения, чтобы не увеличивать время тестирования и размер дампа. | ||
+ | .. В течение двух-трех минут вы увидите сообщение //Dumping done. Stopping tracer//. После этого сообщения скрипт сожмет полученные данные и соберет дополнительную информацию. | ||
- | ==== Переключаемся на первую консоль и входим в систему ==== | + | При возникновении ошибки во время вышеупомянутого процесса обратитесь к FAQ FIXME а где сам FAQ? Может лучше это вообще убрать? |
- | <key>C-A-F1</key> | + | |
- | ==== Останавливаем X сервер ==== | + | Если вы случайно прервали выполнение сценария //trace.sh//, вы можете заметить, что текущей рабочей директории появились две новые папки -- //nouveau-pm.XXXXXXXXXX// и //nvXX-0xYYYYYYYY-ZZZZ//. Вы можете удалить эти папки (вам понадобятся права администратора) и повторить процедуру, начиная с шага ''**sudo** ./init-trace.sh''. Перед этим рекомендуется перезагрузить систему. |
- | <code=bash>sudo service lightdm stop</code> | + | |
- | ==== Выполняем следующий скрипт от root ==== | + | В конце концов, должен создастся файл в текущем каталоге с именем //nvXX-0xYYYYYYYY-ZZZZ.tar.gz//, где //nvXX// это поколение видеокарты и YYYYYYYY это BOOT_0 и ZZZZ от PCI_ID/DEVICE_ID FIXME я не понял о чем тут в конце :( |
- | <code=bash>sudo ./init-trace.sh</code> | + | |
- | ==== Запускаем X сервер ==== | + | Пример названия файла созданного скриптом: //nva0-0xa0300b1-05e6-downclock.tar.gz// |
- | <code=bash>sudo service lightdm start</code> | + | |
- | ==== Открываем виртуальный терминал и запускаем скрипт от пользователя root ==== | + | Запомните параметр //nva0//. |
- | <code=bash>sudo ./run-trace.sh</code> | + | |
- | При тестировании желательно не запускать приложения, чтобы не увеличивать время тестирования и размер дампа. | + | |
- | В течение двух-трех минут вы увидите сообщение "Dumping done. Stopping tracer", но сценарий будет продолжать работать (сжатие данных и сбор другой информации). | + | === Получение BIOS видеокарты === |
+ | -- Перейдите в домашнюю папку <code=bash>cd</code> | ||
+ | -- Скачайте ''vbtracetool'' | ||
+ | .. <code=bash>git clone git://people.freedesktop.org/~stuart/vbtracetool</code> | ||
+ | -- Перейдите в папку с исходными кодами vbtracetool | ||
+ | .. <code=bash>cd vbtracetool</code> | ||
+ | -- Скомпилируйте vbtracetool <code=bash>make</code> | ||
+ | -- Получите BIOS видеокарты. В имени файла укажите параметр, который запомнили ранее | ||
+ | .. <code=bash>./vbtracetool -w 2>nva0_vbios.rom</code> | ||
- | При возникновении ошибки во время вышеупомянутого процесса обратитесь к FAQ | + | ==== Отправка информации ==== |
+ | Полученную информацию (дамп и BIOS), а также все сведения, которые вы посчитаете полезными необходимо отправить на адрес [[mmio.dumps@gmail.com]]. | ||
- | Если вы случайно прервали выполнение сценария trace.sh, обратите внимание, что могут быть две новые папки в текущей рабочей директории - nouveau-pm.XXXXXXXXXX и nvXX-0xYYYYYYYY-ZZZZ. | + | <note important>Отправленная вами информация будет загружена XXX для того, чтобы разработчики и другие люди могли просмотреть даные, и адрес вашей электронной почты будет публично доступен.</note> |
- | Не стесняйтесь, чтобы удалить эти папки (вам понадобится доступ с правами администратора) и повторите процедуру, начиная с шага "sudo ./init-trace.sh". Перезагрузка системы рекомендуется, но не обязательна. | + | |
- | В конце концов, там должен быть создатся файл в текущем каталоге с именем | + | ==== Ссылки ==== |
- | nvXX-0xYYYYYYYY-ZZZZ.tar.gz | + | * [[https://github.com/pathscale/pscnv/wiki/Pm-mmiotrace|PowerManagement mmiotrace]] (англ.) |
- | Где nvXX это поколение видеокарты (см. [1] для списка), и YYYYYYYY это BOOT_0 и ZZZZ от PCI_ID/DEVICE_ID | + | * [[http://nouveau.git.sourceforge.net/git/gitweb.cgi?p=nouveau/nouveau;a=blob_plain;f=nouveau-pm/README;hb=HEAD|nouveau-pm/README]] (англ.) |
- | Скрипт создаст дамп, который будет выглядить примерно так: nva0-0xa0300b1-05e6-downclock.tar.gz. | + | ===== Помощь в улучшении поддержки MXM (Mobile PCI Express Module) в Nouveau ===== |
- | Параметр nva0 запомним. | + | Если у вас есть ноутбук с установленным Linux и видеокартой NVidia (в том числе с поддержкой технологии [[wiki:Nvidia Optimus]]), а также немного свободного времени, вы можете помочь проекту, выполнив несколько относительно несложных действий по инструкции |
- | + | ||
- | Переходим в домашнюю папку пользователя | + | |
- | <code=bash> | + | |
- | cd | + | |
- | </code> | + | |
- | ==== Скачиваем компоненты vbtracetool ==== | + | |
- | <code=bash> | + | |
- | git clone git://people.freedesktop.org/~stuart/vbtracetool | + | |
- | </code> | + | |
- | Переходим в проект vbtracetool | + | |
- | <code=bash> | + | |
- | cd vbtracetool | + | |
- | </code> | + | |
- | Компилируем | + | |
- | <code=bash> | + | |
- | make | + | |
- | </code> | + | |
- | ==== Получаем bios видеокарты, в имени файла пишем тот параметр, который запомнили ранее ==== | + | |
- | <code=bash> | + | |
- | ./vbtracetool -w 2>nva0_vbios.rom | + | |
- | </code> | + | |
- | + | ||
- | Пожалуйста, присылайте этот файл (дамп), ваш vbios, а также некоторые дополнительные сведения, которые вы считаете, | + | |
- | иметь отношение на эту почту mmio[точка]dumps[собака]gmail[точка]com. | + | |
- | + | ||
- | ПРИМЕЧАНИЕ: При отправке дампа он будет загружен на XXX так, что другие люди и разработчики смогут смотреть и помогать. | + | |
- | Ваш ЭЛЕКТРОННЫЙ адрес БУДЕТ ПУБЛИЧНО доступен. If you wish it may excluded just state in your email. | + | |
- | ===== Ссылки ===== | + | |
- | + | ||
- | [[https://github.com/pathscale/pscnv/wiki/Pm-mmiotrace|PowerManagement mmiotrace]] | + | |
- | [[http://nouveau.git.sourceforge.net/git/gitweb.cgi?p=nouveau/nouveau;a=blob_plain;f=nouveau-pm/README;hb=HEAD|nouveau-pm/README]] | + | |
- | + | ||
- | * [[FIXME]] | + | |
- | + | ||
- | {{tag>powermanagement mmiotrace fixme nouveau}} | + | |
- | + | ||
- | + | ||
- | ====== Разработчикам Nouveau нужна ваша помощь. Призыв к владельцам ноутбуков с видеокартами NVidia помочь в улучшении поддержки MXM (Mobile PCI Express Module) в Nouveau ====== | + | |
- | + | ||
- | ==== Источник ==== | + | |
- | Wiki-статья основана на LOR-новости [[http://www.linux.org.ru/news/hardware/6846125/page2|Разработчикам nouveau требуется помощь владельцев ноутбуков!]] | + | |
- | + | ||
- | ==== Введение от Миронова Ивана: ==== | + | |
- | + | ||
- | Если у вас есть ноутбук с установленным Linux и видеокартой NVidia (в том числе с поддержкой технологии NVidia Optimus), а также немного свободного времени, вы можете помочь проекту, выполнив несколько относительно несложных действий по инструкции (оригинал на английском в письме, вольный перевод на русский — далее). | + | |
==== Меры предосторожности ==== | ==== Меры предосторожности ==== | ||
- | |||
У меня нет ноутбука с видеокартой NVidia, поэтому не могу проверить, подправить текст wiki-статьи. Поэтому прошу действовать осторожно. | У меня нет ноутбука с видеокартой NVidia, поэтому не могу проверить, подправить текст wiki-статьи. Поэтому прошу действовать осторожно. | ||
- | Чтобы узнать, можете ли вы помочь, сначала проверьте наличие строки «MXMS» в файлах /sys/firmware/acpi/tables: | + | ==== Создание дампов ==== |
+ | Чтобы узнать, можете ли вы помочь, сначала проверьте наличие строки ''MXMS'' в файлах ///sys/firmware/acpi/tables//: | ||
<code=bash>sudo grep MXMS /sys/firmware/acpi/tables/*</code> | <code=bash>sudo grep MXMS /sys/firmware/acpi/tables/*</code> | ||
- | Если файлы с данной строкой нашлись (grep выдал «Binary file XYZ matches»/«Двоичный файл XYZ совпадает»), скопируйте их куда-нибудь. Если ничего не нашлось, попробуйте проделать следующее при помощи i2c-tools (должен быть запущен драйвер nouveau): | + | Если файлы с данной строкой нашлись (grep выдал «Binary file XYZ matches»/«Двоичный файл XYZ совпадает»), скопируйте их куда-нибудь. Если ничего не нашлось, попробуйте проделать следующее при помощи ''i2c-tools'' (должен быть запущен драйвер nouveau): |
- | + | ** Запустите: | |
- | * Запустите: | + | .. <code=bash>modprobe i2c-dev |
- | <code=bash> | + | i2cdetect -l</code> |
- | modprobe i2c-dev | + | ..Вывод должен выглядеть примерно так: |
- | i2cdetect -l | + | .. <file>i2c-0 smbus SMBus I801 adapter at 1860 SMBus adapter |
- | </code> | + | |
- | + | ||
- | Вывод должен выглядеть примерно так: | + | |
- | <code=bash> | + | |
- | i2c-0 smbus SMBus I801 adapter at 1860 SMBus adapter | + | |
i2c-1 i2c nouveau-0000:01:00.0-2 I2C adapter | i2c-1 i2c nouveau-0000:01:00.0-2 I2C adapter | ||
i2c-2 i2c nouveau-0000:01:00.0-0 I2C adapter | i2c-2 i2c nouveau-0000:01:00.0-0 I2C adapter | ||
Строка 139: | Строка 97: | ||
i2c-5 i2c nouveau-0000:01:00.0-11 I2C adapter | i2c-5 i2c nouveau-0000:01:00.0-11 I2C adapter | ||
i2c-6 i2c nouveau-0000:01:00.0-12 I2C adapter | i2c-6 i2c nouveau-0000:01:00.0-12 I2C adapter | ||
- | i2c-7 i2c nouveau-0000:01:00.0-8 I2C adapter | + | i2c-7 i2c nouveau-0000:01:00.0-8 I2C adapter</file> |
- | </code> | + | ** Для каждой полученной строки «nouveau» запустите |
- | + | .. <code=bash>i2cdetect BUS</code> | |
- | * Для каждой полученной строки «nouveau» запустите | + | .. Где BUS — число из i2c-BUS (например для i2c-3 нужно запустить ''i2cdetect 3''). |
- | <code=bash>i2cdetect BUS</code> | + | ** Если вы увидели в выводе числа 0x54 и/или 0x56, то сохраните дампы в файл: |
- | Где BUS — число из i2c-BUS (например для i2c-3 нужно запустить «i2cdetect 3»). | + | .. <code=bash># Если в выводе было число 0x54 |
- | * Если вы увидели в выводе числа 0x54 и/или 0x56, то сохраните дампы в файл: | + | |
- | <code=bash> | + | |
- | # Если в выводе было число 0x54 | + | |
i2cdump BUS 0x54 >i2c-BUS-0x54.dump | i2cdump BUS 0x54 >i2c-BUS-0x54.dump | ||
# Если в выводе было число 0x56 | # Если в выводе было число 0x56 | ||
- | i2cdump BUS 0x56 >i2c-BUS-0x56.dump | + | i2cdump BUS 0x56 >i2c-BUS-0x56.dump</code> |
- | </code> | + | |
- | ==== Далее для получения дампов VBIOS загрузите и соберите envytools ==== | + | ==== Получение дампов VBIOS ==== |
- | Для сборки потребуются установить дополнительные пакеты: | + | Загрузите и соберите envytools. Для сборки потребуются установить дополнительные пакеты: |
<code=bash>sudo apt-get install git libpci-dev libpciaccess-dev libxml2-dev \ | <code=bash>sudo apt-get install git libpci-dev libpciaccess-dev libxml2-dev \ | ||
cmake flex bison libx11-dev libvdpau-dev libxext-dev</code> | cmake flex bison libx11-dev libvdpau-dev libxext-dev</code> | ||
+ | Скопируйте из Git-репозитория исходный код envytools и скомпилируйте программу | ||
<code=bash>git clone git://github.com/pathscale/envytools.git | <code=bash>git clone git://github.com/pathscale/envytools.git | ||
cd envytools | cd envytools | ||
cmake . | cmake . | ||
make | make | ||
- | cd .. | + | cd ..</code> |
- | </code> | + | Снимите дампы |
+ | <code=bash>sudo ./envytools/nva/nvagetbios -s PRAMIN >vbios_pramin.rom | ||
+ | sudo ./envytools/nva/nvagetbios -s PROM >vbios_prom.rom</code> | ||
- | ==== Снимите дампы: ==== | + | Если nvagetbios выдал ошибку, например |
- | <code=bash> | + | <code=bash>nvagetbios -s PROM >vbios.rom |
- | sudo ./envytools/nva/nvagetbios -s PRAMIN >vbios_pramin.rom | + | |
- | sudo ./envytools/nva/nvagetbios -s PROM >vbios_prom.rom | + | |
- | </code> | + | |
- | + | ||
- | ==== Если nvagetbios выдал ошибку, например: ==== | + | |
- | + | ||
- | <code=bash> | + | |
- | # nvagetbios -s PROM >vbios.rom | + | |
Attempt to extract the vbios from card 0 (nva8) using PROM | Attempt to extract the vbios from card 0 (nva8) using PROM | ||
- | Invalid signature(0x55aa). You may want to try another retrieval method. | + | Invalid signature(0x55aa). You may want to try another retrieval method.</code> |
- | </code> | + | то можете попробовать снять дампы с ACPI. Простейший метод — перезагрузить систему с добавлением ''nouveau.vbios=ACPI'' к опциям ядра, а затем: |
+ | <code=bash>mount -t debugfs debugfs /sys/kernel/debug | ||
+ | cp /sys/kernel/debug/dri/0/vbios.rom ~/</code> | ||
- | то можете попробовать снять дампы с ACPI. Простейший метод — перезагрузить систему с добавлением «nouveau.vbios=ACPI» к опциям ядра, а затем: | + | ==== Отправка полученных данных ==== |
- | + | Полученные файлы (со строкой «MXMS», вывод i2cdump, дампы VBIOS) отправьте на [[mmio.dumps@gmail.com]]. | |
- | <code=bash> | + | |
- | mount -t debugfs debugfs /sys/kernel/debug | + | |
- | cp /sys/kernel/debug/dri/0/vbios.rom ~/ | + | |
- | </code> | + | |
- | + | ||
- | Полученные файлы (со строкой «MXMS», вывод i2cdump, дампы VBIOS) отправьте на mmio[точка]dumps[собака]gmail.com. | + | |
Если возникнут какие-то вопросы — можете ответить на письмо в списке рассылки или связаться с Беном Скеггсом в IRC-канале #nouveau на irc.freenode.net (ник Бена — darktama). | Если возникнут какие-то вопросы — можете ответить на письмо в списке рассылки или связаться с Беном Скеггсом в IRC-канале #nouveau на irc.freenode.net (ник Бена — darktama). | ||
- | + | ==== Ссылки ==== | |
- | ===== Ссылки ===== | + | * [[http://www.linux.org.ru/news/hardware/6846125|Разработчикам nouveau требуется помощь владельцев ноутбуков!]] |
- | + | ||
- | * [[FIXME]] | + | |
{{tag>nouveau nvidia fixme тестирование разработка}} | {{tag>nouveau nvidia fixme тестирование разработка}} |