Помощь в развитии свободного драйвера видеокарт Nvidia Сравнение версий

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
playground:playground4 [2013/03/07 15:44]
playground:playground4 [2013/03/07 16:35] (текущий)
Строка 1: Строка 1:
 ====== Помощь в развитии свободного драйвера видеокарт Nvidia ====== ====== Помощь в развитии свободного драйвера видеокарт Nvidia ======
-[[wiki:​свободный_драйвер_видеокарт_nvidia|Nouveau]] — проект по созданию свободных драйверов видеокарт компании Nvidia с поддержкой ускорения вывода трёхмерной графики. Изначально основан на распространяемом по свободной лицензии,​ но нечитаемом((FIXME каком?)) драйвере «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|здесь]];​
  
 +==== Процесс тестирования ====
 +=== Создание дампа mmiotrace ===
   -- Установите необходимые пакеты   -- Установите необходимые пакеты
     -- Проверьте,​ что у вас установлен проприетарный драйвер версии 190.42 или выше, а так же его dev-пакет     -- Проверьте,​ что у вас установлен проприетарный драйвер версии 190.42 или выше, а так же его dev-пакет
Строка 21: Строка 25:
 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>​
     -- Установите мета-пакет для сборки программ     -- Установите мета-пакет для сборки программ
Строка 42: Строка 46:
   .. В течение двух-трех минут вы увидите сообщение //Dumping done. Stopping tracer//. После этого сообщения скрипт сожмет полученные данные и соберет дополнительную информацию.   .. В течение двух-трех минут вы увидите сообщение //Dumping done. Stopping tracer//. После этого сообщения скрипт сожмет полученные данные и соберет дополнительную информацию.
  
-При возникновении ошибки во время вышеупомянутого процесса обратитесь к FAQ+При возникновении ошибки во время вышеупомянутого процесса обратитесь к FAQ FIXME а где сам FAQ? Может лучше это вообще убрать?​
  
-Если вы случайно прервали выполнение сценария trace.sh, обратите внимание, что ​могут быть две новые папки в текущей рабочей директории - nouveau-pm.XXXXXXXXXX и nvXX-0xYYYYYYYY-ZZZZ. +Если вы случайно прервали выполнение сценария ​//trace.sh//вы можете заметить, что текущей рабочей директории появились две новые папки -- //nouveau-pm.XXXXXXXXXX// и //nvXX-0xYYYYYYYY-ZZZZ//Вы можете удалить эти папки (вам понадобятся права администратора) и повторить процедуру,​ начиная с шага ​''​**sudo** ./​init-trace.sh''​. Перед этим рекомендуется ​перезагрузить систему.
-Не стесняйтесь,​ чтобы ​удалить эти папки (вам понадобится ​доступ с правами администратора) и повторите процедуру,​ начиная с шага ​"sudo ./​init-trace.sh". Перезагрузка системы рекомендуется, но не обязательна.+
  
-В конце концов, ​там ​должен ​быть ​создатся файл в текущем каталоге с именем +В конце концов,​ должен создастся файл в текущем каталоге с именем ​//nvXX-0xYYYYYYYY-ZZZZ.tar.gz//, где //nvXX// это поколение видеокарты и YYYYYYYY это BOOT_0 и ZZZZ от PCI_ID/​DEVICE_ID ​FIXME я не понял о чем тут в конце :(
-nvXX-0xYYYYYYYY-ZZZZ.tar.gz +
-Где  nvXX это поколение видеокарты ​(см. [1] для списка), ​и YYYYYYYY это BOOT_0 и ZZZZ от PCI_ID/​DEVICE_ID+
  
-Скрипт создаст дамп, ​который будет ​ выглядить примерно так: nva0-0xa0300b1-05e6-downclock.tar.gz+Пример названия файла ​созданного ​скриптом: //nva0-0xa0300b1-05e6-downclock.tar.gz//
-Параметр nva0 запомним.+
  
-Переходим в домашнюю папку ​пользователя +Запомните параметр //nva0//.
-<​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, ​а также некоторые дополнительные сведения, которые вы считаете, +=== Получение BIOS видеокарты === 
-иметь отношение на эту почту mmio[точка]dumps[собака]gmail[точка]com.+  -- Перейдите в домашнюю папку <​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> ​
  
-ПРИМЕЧАНИЕ:​ При отправке дампа он будет загружен на XXX так, что другие люди ​и разработчики смогут ​смотреть и помогать+==== Отправка ​информации ==== 
-Ваш ЭЛЕКТРОННЫЙ ​адрес ​БУДЕТ ПУБЛИЧНО доступенIf you wish it may excluded just state in your email +Полученную информацию (дамп ​и BIOS), ​а также все сведения,​ которые вы посчитаете ​полезными необходимо отправить на адрес ​[[mmio.dumps@gmail.com]].
-===== Ссылки =====+
  
-[[https://​github.com/​pathscale/​pscnv/​wiki/​Pm-mmiotrace|PowerManagement mmiotrace]] +<note important>​Отправленная вами информация будет загружена XXX для того, чтобы разработчики и другие люди могли просмотреть даные, и адрес вашей электронной почты будет публично доступен.</note>
-[[http://​nouveau.git.sourceforge.net/​git/​gitweb.cgi?​p=nouveau/​nouveau;​a=blob_plain;​f=nouveau-pm/​README;​hb=HEAD|nouveau-pm/README]]+
  
-  ​* [[FIXME]]+==== Ссылки ==== 
 +  ​* [[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]] (англ.)
  
-{{tag>​powermanagement mmiotrace fixme nouveau}} +===== Помощь в улучшении поддержки MXM (Mobile PCI Express Module) в Nouveau ===== 
- +Если у вас есть ноутбук с установленным Linux и видеокартой NVidia (в том числе с поддержкой технологии ​[[wiki:​Nvidia ​Optimus]]), а также немного свободного времени,​ вы можете помочь проекту,​ выполнив несколько относительно несложных действий по инструкции
- +
-====== Разработчикам 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
Строка 124: Строка 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 тестирование разработка}}