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

Различия

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

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

Следующая версия
Предыдущая версия
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 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>​+
  
-==== Останавливаем ​сервер ​==== +Если вы случайно прервали выполнение сценария //​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 тестирование разработка}}