Очень часто есть бета-версия драйвера Nvidia, которую я хочу попробовать. Это произошло сегодня: с версией 295.40 произошла большая проблема с производительностью, и я хочу попробовать новый блестящий XRandR с поддержкой 302.07.
Я более чем способен загрузить установщик, удалить все файлы драйвера, установленного в репозитории, и установить новую версию, но, откровенно говоря, боль внизу перевернуть это и вернуться к версии репо. Это также означает, что мне нужно переустанавливать драйвер каждый раз, когда происходит обновление ядра.
Другим вариантом, который мы обычно даем людям, является PPA, но в этом случае я очень нетерпелив. Пройдет несколько дней, прежде чем любой PPA получит это, но мне нужно попробовать это сегодня. Я уже установил его вручную в медиацентре, и теперь я слежу за своим рабочим столом.
Итак, как мне взять установщик (например: NVIDIA-Linux-x86-302.07.run
) и преобразовать его в новый пакет nvidia-current
/ nvidia-current-updates
?
Еще один способ задать вопрос: Как люди упаковывают драйверы Nvidia?
Если в новой версии нет структурных различий, то будет возможно повторно использовать текущую упаковку:
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 не выпускаются мгновенно;)
Эти драйверы на самом деле зависят от более новых ядер и т. Д., Поэтому в этом случае вы не сможете просто перекомпилировать - полное описание, включая PPA, см. , этот ответ
.Как и сказал, вы можете использовать существующие исходные пакеты, предполагая, что они не сильно изменились. Приведенные ниже команды загрузят файл .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 и не столкнулись с проблемами зависимости)