Как я могу преобразовать установщик драйвера Nvidia в deb?

Очень часто есть бета-версия драйвера Nvidia, которую я хочу попробовать. Это произошло сегодня: с версией 295.40 произошла большая проблема с производительностью, и я хочу попробовать новый блестящий XRandR с поддержкой 302.07.

Я более чем способен загрузить установщик, удалить все файлы драйвера, установленного в репозитории, и установить новую версию, но, откровенно говоря, боль внизу перевернуть это и вернуться к версии репо. Это также означает, что мне нужно переустанавливать драйвер каждый раз, когда происходит обновление ядра.

Другим вариантом, который мы обычно даем людям, является PPA, но в этом случае я очень нетерпелив. Пройдет несколько дней, прежде чем любой PPA получит это, но мне нужно попробовать это сегодня. Я уже установил его вручную в медиацентре, и теперь я слежу за своим рабочим столом.

Итак, как мне взять установщик (например: NVIDIA-Linux-x86-302.07.run) и преобразовать его в новый пакет nvidia-current / nvidia-current-updates?

Еще один способ задать вопрос: Как люди упаковывают драйверы Nvidia?

5
задан 3 May 2012 в 13:35

3 ответа

Если в новой версии нет структурных различий, то будет возможно повторно использовать текущую упаковку:

NEWVERSION=302.13
DIR=nvidia-graphics-drivers-"$NEWVERSION".orig/
## Making a new tarball
mkdir $DIR
# Copy in new run files
cp NVIDIA*.run $DIR
tar --owner=root --group=src -caf nvidia-graphics-drivers_"$NEWVERSION".orig.tar.gz $DIR
rm -r $DIR

## Setting up the packaging source
apt-get source nvidia-graphics-drivers
cd nvidia-graphics-drivers*/
# Remove old run files and copy in new
rm NVIDIA*.run
cp ../NVIDIA*.run .
# This version number should ensure it gets replaced by official version...
dch -v $VERSION-1 "my release"; dch -l~mybuild "local build"; dch -r

## Installing build-dependencies
mk-build-deps
sudo dpkg -i nvidia-graphics-drivers-build-deps*.deb; apt-get install -f

## Building
debuild -us -uc

Что-то подобное может сработать, вокруг немало гадости, что, я думаю, поэтому пакеты PPA не выпускаются мгновенно;)

0
ответ дан 3 May 2012 в 13:35

Эти драйверы на самом деле зависят от более новых ядер и т. Д., Поэтому в этом случае вы не сможете просто перекомпилировать - полное описание, включая PPA, см. , этот ответ

.
0
ответ дан 3 May 2012 в 13:35

Как и сказал, вы можете использовать существующие исходные пакеты, предполагая, что они не сильно изменились. Приведенные ниже команды загрузят файл .run, извлекут и адаптируют существующие исходные файлы и, наконец, упакуют его.

Подготовьтесь к установке, установив некоторые зависимости сборки:

sudo apt-get build-dep nvidia-graphics-drivers
sudo apt-get install execstack # needed but not included with build-deps

Для подготовки установите несколько переменных, которые управляют загружаемыми файлами, и создайте для них новый каталог:

VER=310.19
mkdir nvidia-graphics-drivers-$VER; cd nvidia-graphics-drivers-$VER

Загрузите файл с именем вроде NVIDIA-Linux-x86-310.19.run, если вы этого еще не сделали. Если у вас есть 64-битный компьютер, вы также должны загрузить 64-битный установщик с именем, подобным NVIDIA-Linux-x86_64-310.19-no-compat32.run:

wget ftp://download.nvidia.com/XFree86/Linux-x86/$VER/NVIDIA-Linux-x86-$VER.run
wget ftp://download.nvidia.com/XFree86/Linux-x86_64/$VER/NVIDIA-Linux-x86_64-$VER-no-compat32.run

Теперь получите файлы упаковки, «извлеките» их, измените номер версии и создайте пакет, не подписывая его:

apt-get source --diff-only nvidia-current
gunzip -c *.diff.gz | patch -p1
dch -v $VER-0~local "New upstream release."

Теперь, на момент написания этой статьи, версия 295.40-0ubuntu1.1 не собирала 310.19, потому что упаковка изменилась. Оказывается, что файлы libXvMCNvidia.* были удалены, поэтому давайте удалим эти строки, включая XvMCConfig:

sed -i '/XvMC/d' debian/{*.links*.in,*.install.in,rules}

Сборка пакета:

dpkg-buildpackage -b -uc -us

Если все прошло хорошо, вы должны сейчас быть в состоянии установить полученный файл deb с помощью:

sudo dpkg -i ../nvidia-current_$VER-*.deb; sudo apt-get install -f

(команда sudo apt-get install -f является необязательной, если вы ранее установили nvidia-current и не столкнулись с проблемами зависимости)

0
ответ дан 3 May 2012 в 13:35

Другие вопросы по тегам:

Похожие вопросы: