====== 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 [[https://wiki.debian.org/NvidiaGraphicsDrivers#Building_newer_releases_from_GIT|wiki]]. I suppose that primary [[https://salsa.debian.org/anbe/nvidia-graphics-drivers-preview2|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 [[https://salsa.debian.org/nvidia-team/tarballs-nvidia-graphics-drivers.git|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 ===== 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 * where %version is coming from? * Is it [[http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.upstream-git.html|taken from changelog]]? 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 * je to opraveno commitem [[https://salsa.debian.org/anbe/nvidia-graphics-drivers-preview2/commit/832db072727c2b4c64a02bdbab8106164c83f367|832db072727c2b4c64a02bdbab8106164c83f367]] * aktuálně je mergnuté do větví: 390-buster * není v: master, 390xx/master, 390xx/stretch-backport ===== Testování ===== * dnes do Debian experimental přibyli baličky 418.43 * chybí tam ale balíček nvidia-settings * podařilo se mi spustit takto: cd /usr/src/nvidia-git/build-area/nvidia-graphics-drivers-418.43.obsolete.1552863428.647153/NVIDIA-Linux-x86_64-418.43 ./nvidia-settings -I ./ * postup k zapnutí https://www.phoronix.com/scan.php?page=article&item=gsync-compatible-linux&num=1 * dojmy podobné jako ve Windows, divné trhání * našel jsem radu, že když to začne dělat, tak stačí monitor vypnout/zapnout * našel jsem nějaký seznam z testovaní g-sync compatible monitorů * https://io.mt/nvidia-gsync-freesync-supported-monitors/ * LG 27UD58-B - 40-60 Hz - No flickering but heavy tearing at 40 fps. stuttering at 50, from 60 up everything seems normal ===== Zdroje ===== * README v git * https://salsa.debian.org/anbe/nvidia-graphics-drivers-preview2/blob/master/debian/README.source * Debian wiki * https://wiki.debian.org/NvidiaGraphicsDrivers#Building_newer_releases_from_GIT * Building Debian Packages with git-buildpackage * http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html * debian wiki PackagingWithGit * https://wiki.debian.org/PackagingWithGit * git buildpackage home * https://honk.sigxcpu.org/piki/projects/git-buildpackage/ * Using Git for Debian Packaging * https://www.eyrie.org/~eagle/notes/debian/git.html * man gbp-buildpackage * https://manpages.debian.org/testing/git-buildpackage/gbp-buildpackage.1.en.html * cowbuilder * https://wiki.debian.org/cowbuilder * verze nvdia ovladačů v debian * https://packages.debian.org/search?keywords=nvidia-driver&searchon=names&suite=all§ion=all * Nvidia oficiální seznam ovladačů * https://www.nvidia.com/Download/Find.aspx?lang=en-us * debian nvidia graphics drivers tracker * https://tracker.debian.org/pkg/nvidia-graphics-drivers