Uživatelské nástroje

Nástroje pro tento web


troubleshooting:nvidia-driver-debian

Toto je starší verze dokumentu!


Sestavení debian balíčků pro proprietární nvidia driver

I want to try nvidia feature „Initial support of G-Sync compatible monitors“. It was introduced in 418.30 BETA driver. I am using GNU/Debian testing/unstable distribution and there is 390.87 and 410.93 only now. In experimental, there is 415.27. I found that it is possible to create newer package from git, but there is missing workflow in debian wiki. I suppose that primary git repo is maintained by anbe.

Příprava systému

  • instalace chybějících balíčků
apt-get install libdistro-info-perl git-buildpackage git-lfs quilt

Příprava zdrojových kódů

  • stažení zdrojových kódů
git clone https://salsa.debian.org/anbe/nvidia-graphics-drivers-preview2.git
  • přepnutí do požadované branch
cd nvidia-graphics-drivers-preview2/
git branch -a
git checkout 418-preview

Import nového upstream release

  • Zjištění dostupných verzí
$ uscan --report
uscan: Newest version of nvidia-graphics-drivers on remote site is 418.43, local version is 418.30
uscan:    => Newer package available from
      https://download.nvidia.com/XFree86/Linux-x86_64/418.43/NVIDIA-Linux-x86_64-418.43.run
  • Aktualizace chnagelogu
  • changelog je potřeba commitovat, extrahuje se z něj verze
debchange --distribution UNRELEASED --newversion 418.43-1
  • Stažení tarballu ze stránek nvidia
debian/rules get-orig-source
  • Nahrání tarbalu na správné místo
mkdir -p ../tarballs-nvidia-graphics-drivers/418.43
cp *.orig*.tar.gz  ../tarballs-nvidia-graphics-drivers/418.43/
  • při buildu se mohou detekovat další změny a je třeba je doplnit, například:
+ cmp -s debian/nv-readme.ids nv-readme.ids
+ diff -u debian/nv-readme.ids nv-readme.ids
--- debian/nv-readme.ids	2019-03-11 07:11:22.440234714 +0100
+++ nv-readme.ids	2019-03-11 07:11:28.508124795 +0100
@@ -283,3 +283,4 @@
 10DE174D
 10DE174E
 10DE179C
+10DE2182
+ true
+ : *** Supported PCI IDs have changed. See diff above. Aborting. ***
+ exit 1

Buildování

  • používá se gbp (git build package)
  • musí se zadat správná branch, jinak se nespustí
  • pokud se provedou lokální změny jako například import upstream, tak je třeba přidat volbu –git-ignore-new
    • je lepší provést ale commit, protože build používá pouze commitované soubory
  • buildpackage se snaží stáhnout git repo s tarbally do ../tarballs-nvidia-graphics-drivers
gbp buildpackage --git-debian-branch=418-preview
  • pro buildování jiné architektruy než je v systému se používá
    • –git-arch=i386
    • –git-pbuilder
  • pokud neexistuje prostředí, musí se nejprve vytvořit
$ gbp buildpackage --git-debian-branch=418-preview  --git-arch=i386 --git-pbuilder
...
gbp:info: Performing the build
Base directory /var/cache/pbuilder/base-sid-i386.cow does not exist
gbp:error: 'git-pbuilder' failed: it exited with 1
DIST=buster ARCH=i386  git-pbuilder create
# DIST=sid ARCH=i386 git-pbuilder create

TODO, otázky, problémy

Vyřešeno

Q: where %version is coming from?

  • stál jsem si repo a zkusil aktualizovat upstream
  • měla tam být verze 418.43, ale furt se snažil stahovat původní 418.30
gbp:info: Tarballs 'nvidia-graphics-drivers_418.30.orig.tar.gz, nvidia-graphics-drivers_418.30.orig-amd64.tar.gz' not found at '../tarballs-nvidia-graphics-drivers/418.30'
gbp:error: upstream/418.30 is not a valid treeish
  grep -R "418\." *
  debian/changelog:nvidia-graphics-drivers (418.43-1) UNRELEASED; urgency=medium
  debian/changelog:  * New upstream beta 418.43 (2019-01-30).
  • bere se to fakt z changelogu, ale musí být commitovaný, jinak bere předchozí verzi :)

Q: how to create packages with 32 bit compatible libraries?

  • Nvidia drops support for 32 bit architecture. Version 390.xx is the last one with 32 bit only tarball released.
  • As far as I know, 32 bit compatible libraries should be still included in 64 bit tarball, but git project creates 64 bit deb packages only.
  • According to debian wiki (svn instructions), i386 deb packages should be created by setting target arch to i386
  • I have found similar option –git-arch=i386,. but it seems to do nothing :(
  • musí se použít ještě další přepínač, aby fungoval build jiné architektury
  • vypadá to, že umí udělat 32 bit balíčky i z toho 64 bit tarballu

Konflikt s libglvnd

  • zkusil jsem build větve 390 a skončilo chybou
pkg-checkbuilddeps: error: Build conflicts: libglvnd-dev

Zdroje

troubleshooting/nvidia-driver-debian.1552322016.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki