О проекте Nouveau

Nouveau «nuvo» — проект по созданию свободных драйверов видеокарт компании Nvidia с поддержкой ускорения вывода трёхмерной графики. Изначально основан на распространяемом по свободной лицензии, но нечитаемом драйвере «nv» 2D-графики от nVIDIA.

Источник

Введение от Миронова Ивана:

Если у вас есть ноутбук с установленным Linux и видеокартой NVidia (в том числе с поддержкой технологии NVidia Optimus), а также немного свободного времени, вы можете помочь проекту, выполнив несколько относительно несложных действий по инструкции (оригинал на английском в письме, вольный перевод на русский — далее).

Меры предосторожности

У меня нет ноутбука с видеокартой NVidia, поэтому не могу проверить, подправить текст wiki-статьи. Поэтому прошу действовать осторожно.

Чтобы узнать, можете ли вы помочь, сначала проверьте наличие строки «MXMS» в файлах /sys/firmware/acpi/tables:

sudo grep MXMS /sys/firmware/acpi/tables/*

Если файлы с данной строкой нашлись (grep выдал «Binary file XYZ matches»/«Двоичный файл XYZ совпадает»), скопируйте их куда-нибудь. Если ничего не нашлось, попробуйте проделать следующее при помощи i2c-tools (должен быть запущен драйвер nouveau):

  • Запустите:
modprobe i2c-dev
i2cdetect -l

Вывод должен выглядеть примерно так:

i2c-0	smbus     	SMBus I801 adapter at 1860 SMBus adapter
i2c-1	i2c       	nouveau-0000:01:00.0-2     I2C adapter
i2c-2	i2c       	nouveau-0000:01:00.0-0     I2C adapter
i2c-3	i2c       	nouveau-0000:01:00.0-10    I2C adapter
i2c-4	i2c       	nouveau-0000:01:00.0-6     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-7	i2c       	nouveau-0000:01:00.0-8     I2C adapter
  • Для каждой полученной строки «nouveau» запустите
i2cdetect BUS

Где BUS — число из i2c-BUS (например для i2c-3 нужно запустить «i2cdetect 3»).

  • Если вы увидели в выводе числа 0x54 и/или 0x56, то сохраните дампы в файл:
# Если в выводе было число 0x54
i2cdump BUS 0x54 >i2c-BUS-0x54.dump
 
# Если в выводе было число 0x56
i2cdump BUS 0x56 >i2c-BUS-0x56.dump

Далее для получения дампов VBIOS загрузите и соберите envytools

Для сборки потребуются установить дополнительные пакеты:

sudo apt-get install git libpci-dev libpciaccess-dev libxml2-dev \
cmake flex bison libx11-dev libvdpau-dev libxext-dev
git clone git://github.com/pathscale/envytools.git
cd envytools
cmake .
make
cd ..

Снимите дампы:

sudo ./envytools/nva/nvagetbios -s PRAMIN >vbios_pramin.rom
sudo ./envytools/nva/nvagetbios -s PROM >vbios_prom.rom

Если nvagetbios выдал ошибку, например:

# nvagetbios -s PROM >vbios.rom
Attempt to extract the vbios from card 0 (nva8) using PROM
Invalid signature(0x55aa). You may want to try another retrieval method.

то можете попробовать снять дампы с ACPI. Простейший метод — перезагрузить систему с добавлением «nouveau.vbios=ACPI» к опциям ядра, а затем:

mount -t debugfs debugfs /sys/kernel/debug
cp /sys/kernel/debug/dri/0/vbios.rom ~/

Полученные файлы (со строкой «MXMS», вывод i2cdump, дампы VBIOS) отправьте на mmio[точка]dumps[собака]gmail.com.

Если возникнут какие-то вопросы — можете ответить на письмо в списке рассылки или связаться с Беном Скеггсом в IRC-канале #nouveau на irc.freenode.net (ник Бена — darktama).

Ссылки