mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-12 07:26:58 +02:00
x11-drivers/nvidia-drivers: Sync with Gentoo
It's from Gentoo commit 8fc981d8eceaa64339265076362d51cfb0f164ba.
This commit is contained in:
parent
777065dfa4
commit
dae220b638
@ -1,55 +1,71 @@
|
||||
DIST NVIDIA-Linux-aarch64-535.247.01.run 269861217 BLAKE2B c72eb28472c6a5ee5344618b343efc3f8edac94a5d2c994b86d113f7258c0df228076462d3fb84791f8f1c666554d20116ebb6a7444b680128556a4b9e8b2b29 SHA512 a0bd487238d41fd907c7e87d8ce10b4e19a367c8faafafc914fe6d741b348619e7427a5ff22dd2a475e4dd5cf3148965934b746bcc34b3f572bc01e8a6429bda
|
||||
DIST NVIDIA-Linux-aarch64-550.163.01.run 236409124 BLAKE2B 21c79346f6b739f44d7ed2d4955129613f51e1329ff15948ef50a9a06b82975ad890d6142e5dfb163e7b0da19bf5c26029cf507d120037f8a76abc177a286403 SHA512 0ef4ab4aae308ec0cfb5458cef34a1503ac1a85f0e1d0c9f061d8e28f939b15784e3862d96d83e93123d9eb56807a6804318ce230ee68917fb75e363011f8304
|
||||
DIST NVIDIA-Linux-aarch64-570.133.07.run 289675662 BLAKE2B 376c03e28a4b441ba8d661759efda3fc83928f950f7c7eac7a4a6f6fd79ac63e1b40c9cad2833e52f48f09f21318d88a40d6089597fe930f1e0e93603b07defc SHA512 3b117e27230198d7305d629257680f1ca7106ad4e84856ce9092c88955416a2c475e6c4f3f0d9ecbc1a2c8e5509b5a902759ead4ba32fdc0d0273ffd84024e4a
|
||||
DIST NVIDIA-Linux-aarch64-570.144.run 289812160 BLAKE2B 45b7fd81be03b5ee96c51081ed2eb498b3ab45ff3d31459f4d220dc022c790ba5186dff37bc9cfcc49d0874fb9c49fedbe9edb9268d4c5577bafad0c85c7667b SHA512 554e3ae25643502562017c2c6d5224ef8d6065ac81602d9d561576390f8e402f4ab365d5fc46e2139abf47073b4af7e98b60c602035bbc3f1450947bcc00b432
|
||||
DIST NVIDIA-Linux-aarch64-575.51.02.run 304442848 BLAKE2B f773b79a63e1140919d0d4c6411c601f4aea31a8a40d996fe0b6f9471905e587ae5b1618e4fcb9b3ef2d7970df3440ddbf612c13461f99bbb19ad58a1bd37dac SHA512 94ce8f0c19dd7077810b040f9f4d08e158cf28b112d9a269fd848c3a0bffa57c8bee9bba481a6c1e8d5f70f2ffaf750e2f3fa395c99479159770b284ae35be99
|
||||
DIST NVIDIA-Linux-aarch64-570.153.02.run 289829452 BLAKE2B aae0e65be8f5d617b4c270d9042b410773cc476446f922e3f8b27d87f64cfe38cc12a586c369fc824cb185977d648854953803f203707294043d6a30361c4c01 SHA512 e5e3bc0f0f5684ef5b1fd54e7dbc92b455242b4b54511ecce41534890c552d29d6985c9ac41bb150a6ba3f24b39122fe36fcac339a7cb8587b79d4ead7b28c64
|
||||
DIST NVIDIA-Linux-aarch64-570.169.run 290106494 BLAKE2B b8b332c3b121063af061f1ab19f87db6c528da977847423f6d7f0b6c6d7d8bd118e6f0518fbd66c6c633647efb64a3a670cd5ecadffd41faf6271916446f2143 SHA512 551615d6ecc982acdbb52049c5afd11cd8ca69999d097f076884c3f632b3880f95c707ebadf66c3aabf5452aab52cd372894eff574382ed2d79444a65c368369
|
||||
DIST NVIDIA-Linux-aarch64-575.57.08.run 304970395 BLAKE2B 5c490e71ced2ad94916e660686518063f440ec6be3b00e25dd46969107cd313680092b18efa5a4bb050105ebbf2ec1891b6eb172cac95e52ab1fef3193032853 SHA512 c0e33f925f7e9c121bd5af813898a272eb8d2b99a3e1761aab6965bb95b24c17a994120dcfaf509360bd8087e97cc36fd3dfc95677a59af5f0b1da9321b99746
|
||||
DIST NVIDIA-Linux-aarch64-575.64.run 307581538 BLAKE2B 3d15baff14400022abdb7f147c1972fc10b48429c0efbb6d2594c4eaafb760781519538be5505976b98247ce8b342fa790e4f85fd827fee5198a693e6b13ee1b SHA512 e006cf3641245ff2fe92c23273e0e05c2da33577527450672349a20605531836f57b43c4e131995b7f0934113be2cbe8e0c820f70af9ff1073d797daf611933a
|
||||
DIST NVIDIA-Linux-x86-390.157.run 49417041 BLAKE2B 435b5e0e60468cc74b41cc5d9b5bb0105d29c11a2d408457835212a96519c9334ecf19278b36749d3ff7f498f5b0ae45a2efae2d428703dac21245c62f1efebe SHA512 dae9ac2c12f9ad90f7441e00e01a984147c577892421911d7f67f6a31e616ac1cb7d434bc9c7f58fbd9b8ae909521b5bece607a63c79588c0bb9d99c6bad5fb0
|
||||
DIST NVIDIA-Linux-x86_64-390.157.run 85835541 BLAKE2B 44b855cd11f3b2f231f9fb90492ae2e67a67ea3ea83c413e7c90956d38c9730a8bd0321281ae03c6afce633d102f5b499aed25622b9bfd31bdd2c98f0717e95b SHA512 4780503a4cff0180b1b1f37d20a6ba3438dd78b51fa7f69b98d35521835e5d61099129746929d51d63afa2d47b672b3e145e1e1897584dc3799e7f822c5b3a0a
|
||||
DIST NVIDIA-Linux-x86_64-470.256.02.run 272850014 BLAKE2B 0fdc867f92b82b2a60810c3b43751cad7ac2c39928c92c6c343c0c6044f4d7d923d93b8599db3f7c999c0ee7d16940e65d991a61cbb30e1d9e49c5639ac6bdc8 SHA512 a837946dd24d7945c1962a695f1f31965f3ceb6927f52cd08fd51b8db138b7a888bbeab69243f5c8468a7bd7ccd47f5dbdb48a1ca81264866c1ebb7d88628f88
|
||||
DIST NVIDIA-Linux-x86_64-535.247.01.run 341853459 BLAKE2B ef91097a36add821a623c8d1f19eca8ca9571fe4a08b8e25eb70f09923899bcb3bd2c0f408dd6ff045ffdccb192be3a46cec4fd7b7d8d7bc17449c436cc2cbde SHA512 f8e04e5f7cf8b7fdae9135cb5f0f2740d5eae0ef9a44a41dbf78996d3c2d4139bdbec99be14f73aa2d275d78658b4a91a274f20545e4325cef787548e3d073a6
|
||||
DIST NVIDIA-Linux-x86_64-550.163.01.run 307143336 BLAKE2B 256106bcd3bace402289e60aca4cd3b447d0fd8ec3dabd50e2bb303c5e866f8da5c28f9b578d95775bf69158f100d68a91d20d9a91426285a8e799817f21db6b SHA512 676b1de35d21e80091528a49080c114e0870ea90b3f3721265ae8071abbc2183c851e6f11ba96a332c743fedfaf4ec9a014ad6ceed586fdbb03d94d33405e356
|
||||
DIST NVIDIA-Linux-x86_64-570.123.07.run 375974099 BLAKE2B b1cacbdcda8e335cd57db21a379ba4506341d10f26f7485f3d776f3f2896ad12ea5eac2d350e1e9149405d916fd088f5d19341cb15b52077b7e595793c0b1f5e SHA512 7745bb228f80015c9f1ba09c731cea47a148ab38e39a723d4a5d5a89611e705811da7f290cb73617b29607f16b8add94b0b146e17d13bdf00dbfc04be74f8db5
|
||||
DIST NVIDIA-Linux-x86_64-570.133.07.run 375774798 BLAKE2B ddfd8e8e58453f8cbd2bec55af4a9f9030510f5b1685f3daf8c446d32fd96b6c71587d98f1f7cf049c4a0dbd74a27b2dcf2b532d4f5faa05793c779076c2b122 SHA512 f7c2de3b4242a50a5fc5cb7c6eed6677bbf28e3b157dd22ced385822d8a42df351c7ead039d37cc5b18251971a8496539f4448e2cd8d297303f4e89db16feb13
|
||||
DIST NVIDIA-Linux-x86_64-570.123.18.run 376011120 BLAKE2B 4e58db37bee9caafc49120cb3739847787e08382d50543e3a2a22b9e75fcd515969e3637ad60686bc12150f80c028af8caae14427a24e54fce220761683e81d8 SHA512 64cc8fca0b2d0c3b5c118940b4ae3ffecb297cb1595cc71f66927926e1467cb6577b15d2bcf46cbda4d928a0218ca1d019b0ed27e2c03bfebf244b8551cbb485
|
||||
DIST NVIDIA-Linux-x86_64-570.144.run 375742470 BLAKE2B 8611e5d7a5043c18d1ef122c62d2a4efed6dcdec343c7a519778c603f2ddc5186b479af1b09277b47c92af9e6021dedca33e02fb3c7f3096d4dea18acfb2c9d1 SHA512 f0d6a8377cbcb38a4a0491a654d3ed86082ac5609129a247daaa455bd7cffbad0be579db2ba9448a9f0ebc7cf36459d640f03ecbe1f25e8e47f3990f78989c97
|
||||
DIST NVIDIA-Linux-x86_64-575.51.02.run 386859216 BLAKE2B c6c47095226b1a9535b0f005bd8dddff772516738c168ff2bb577c75769ef1e216cde5f83a5979dfcc9ce6876d2e112afbe86f52d02721ec0a230eff9aaffeb2 SHA512 0354f4d46a2de8be670a3fa58ec255b8673c40c51fea9ca594aa3ddab936b50efb91cecbb93f14ac4a8ed87e7c3e101b4d643721602d22135f9259dad94a5c12
|
||||
DIST NVIDIA-Linux-x86_64-570.153.02.run 375742097 BLAKE2B 608facd79c913fdd58829e2639429e0834feacd52997980d1c143453346790cebaf8dd9295a4cd05947548821891e16bdddf291875e03736ffca7b5d1c9834c6 SHA512 6da277640a4727a420379b43b44c6222869e2fd10794627e73a0a1fe7db6213c0cbab7901799cc9ee2431df54e0c4857eaf1b293fd1750a3bc68c2bf3852413f
|
||||
DIST NVIDIA-Linux-x86_64-570.169.run 375816796 BLAKE2B 1934cc5276433b6ee54b31358d85f88e3e81dd23732fa72848a6c60c455399b5217301e1c8aa1795dd8292bf4e604c6cbc144700775ec2661029b737ba2e3324 SHA512 79cf53770f11405ea416b4a3fe91edd34e8bc99e2f8e0d47dd2b01045b17f23998bfd3d60fc660c0826c69305ee928dec56fb251205e183ede9235e31d01d7d5
|
||||
DIST NVIDIA-Linux-x86_64-575.57.08.run 389558524 BLAKE2B 04274c2fa9a97767a13c9896ba1132388b4edfb521856e235fcb6e1a2350bbccdfcf3329d41283b98260f51b9af8ebb10b46d19fae4383c3fdc0147d308766f6 SHA512 6ade3fb7227e51f88671f460d990bbd090ac9d4f8968c3c5c6d22011a78c1267c959916e9cdd18ba165c6f0b8f459c9b3534fa39eae9ae527232911fdd8f2417
|
||||
DIST NVIDIA-Linux-x86_64-575.64.run 387052180 BLAKE2B 8ae4ff774e76815c839f1dc150e4750332e4dd59f048b00d19f1ef3c462877776249b4b8275c2960b8ae2b3b19c3196f63047168b2f468e15a8c864917ef3ae1 SHA512 21951798f0823ba63dc47ee94d9b27c72ae1788899f2181df0d6352b1d4b3f19a4e051687f3bb5f9f3e0fbda8f256748171a283837bf369a85fd9d8b552ac068
|
||||
DIST NVIDIA-kernel-module-source-535.247.01.tar.xz 12517152 BLAKE2B b12497621ba32da4ca80ca6736d559bc98ba45974e06bbb63c08695c3b24c45752b3fd3dc2854ed64950e89e99b38d1006ce672096e35daced0ebe0a9dda77f6 SHA512 ed8e10d5245447fcdf348509ad62e9ac3d56a052d254b764e3a574a711cfa5c8831a759d425f42795c2db752f3d91d60b6097f6901c88654f242c94768faddb6
|
||||
DIST NVIDIA-kernel-module-source-550.163.01.tar.xz 13552400 BLAKE2B e1fd753127d10097c5f1d3c90d95c7eb0934c0d5e1df0a371aed2a0d7669960b67c46eed20eec3c42ca41c0f34bf6d7d3d2a77a94308c9f86d4f5d831da19363 SHA512 c9f4ce2890db3fdc66dd080da4d6802a8bc3b18feba96be5d33641b02cca637b1bcd2a3748f36f93a32f26ba57eb352156314f139688b0d3a102efdfde6c32ba
|
||||
DIST NVIDIA-kernel-module-source-570.133.07.tar.xz 17934788 BLAKE2B b78e9e8bd6f5dbfe4bf7121be502922454446f4ebb2201d40d3f0b1d5a0819b3eea255a49ab661d75e10b0ee296940db1b2ff2b3156aa0f98ec810a472d93290 SHA512 84d9798cfbe7b125ce48935b651d51f15c876a0dbc57d2da10994f291942755f5df05b265d16eed924f83dea1732bc2a5c05efc520e00a5fc05afbb4a7198742
|
||||
DIST NVIDIA-kernel-module-source-570.144.tar.xz 17900228 BLAKE2B 9003530642f17f8ee61599716d7981fa8326c6b3c38aa84c4a9056894f3e1f06da211eb1383b84c9871a612e8e4081af8112584b185820b6c1aa446d2b5a7935 SHA512 761561fbc7433815fae79644c2996b8894edbc8158fd53ab81a143e869b0ae832a965bd7dcfe5f54db0f1b8e06ae1a02a921b7657d4fbd76a4fb252f39cef427
|
||||
DIST NVIDIA-kernel-module-source-575.51.02.tar.xz 18222252 BLAKE2B 861a00236dfe26123e441a311ad0e28cb555329ef79257be24fadcbdfb9409e8aca94086c18988c2e5a24e2146d80647aa0ae5aa13301ad76cd51bec7bb26926 SHA512 c25f449b739168b2e1a7113e3c437455f646f37a95274605e1b06ea36e83fe6f74325fbb09df975092c8bbd492e089b80686162412720c0b1ea14e7551ef441e
|
||||
DIST NVIDIA-kernel-module-source-570.153.02.tar.xz 17938000 BLAKE2B 9d4ac90b48b80dc0d2263347dff51f1340227b99bef737bc43b3d44b695a27c2bd34ea6f760cbf0e1cc09ba22cad9286681c351c243a7d4c3559eda6084cf913 SHA512 b0cb2e748746906a973df597c91bac087c033bcb06b62e1778f7df5d2499ae90392759a2e7e28187d28211f11b7ca7200f2a903db9fa64854ea93768c362e0a7
|
||||
DIST NVIDIA-kernel-module-source-570.169.tar.xz 17928016 BLAKE2B 4d68cbcbbb14f0b9741c09dedad5abf859f971676869d46e8a6749c04dfc39a6f24098aff9c55d8d33e1e5b1f67be16a99af702f29003354635019ff94ee683f SHA512 7d5a06e596235d90ba5b26a4b04b68623b501643ea8c6bcd7342add6563684486f32b6399335a853f03cb588dc57cdb1397e2705bce512a8be57d3b615b8eb22
|
||||
DIST NVIDIA-kernel-module-source-575.57.08.tar.xz 18201104 BLAKE2B 893696ba425f659aa35e7762b7d50e3bff4b9088a79e10b47127662c4dacb9eda9ab4ce072bcd39e68ca0f75110cbdde0e2762f20b8d0d9623e16b9bd28ada7f SHA512 1fbb0c3da87b61666dff3d6838df291ded0d7d62a83d914233cd11c9fc3ed4becf55ecd00763261a5a87975276a5749fb4a38ed59eb10807b891fd444a1bba75
|
||||
DIST NVIDIA-kernel-module-source-575.64.tar.xz 18197028 BLAKE2B 9bd4ccc572af84821cd591c871b961dd01f3b2e8faccc47101d2aea8bc9adeb16c464e7a28393d145411d0361d3f1462fe343c9e2821ec8819a3370b54d3c6f0 SHA512 634cd78335eab2841aa6b662eb67c0c90c313ae6fe1c436b62befb02a9a8c89d36c45ff9d6ca7b3c031f80dbc8be195e5faa7f1e8c0e65740d6b569aea7a017d
|
||||
DIST nvidia-installer-390.157.tar.bz2 150323 BLAKE2B 8058ca87a6dea956d564af9f7eab9b1fc82b1f2382bd5cb2f6d97cbe2e19292533522d5f8f2eacbeb16520372715fcb72f8f9b0998962af5d4e75522c8d74524 SHA512 93a7ece648602157496c8e27a88864ede341a100f5328a4c1a25faf8f0b94d252060e5e2f71d0c302fd0566c10773c30b76b3b5f431d8039b71c90a7969f7d7e
|
||||
DIST nvidia-installer-470.256.02.tar.bz2 146269 BLAKE2B 4402e725c8fd0157eb84d4ec140a33f97e873014577487ef1e32fb8921cabe79c60ff46532e5bfaabb2b6ac894f7c80086dbab19e61906e2e27346fb85f98829 SHA512 c962dc17d9696256d1ebedcaeb3010994f2ce3895aedc47987599ebfec132a9b9a249d2ece6502b15bd4a93f9b0106aa13487a7da5f64199c274ce11eba27cfd
|
||||
DIST nvidia-installer-535.247.01.tar.bz2 148887 BLAKE2B 3455f064d3a5745971e8ca6574bfe16258544e669f05fa6e1f31cc88a7224f76cbf5d1ea26a62e70e908b7261c3264664e090209221a6e64030c6f486b9452b3 SHA512 be97915091e60c56b442dcec45f76380ab316e95b7417d99133419a7883e1cf547ac0c03d7e763574613dfe5bc27dbc6c887ed9870e528ae056b2400175044e4
|
||||
DIST nvidia-installer-550.163.01.tar.bz2 155861 BLAKE2B 662064b3ceb4aadebde419057d85c6b4e28b91944bd5bab241bcba9b3c9a105e507afc7651b17fff01e1cccb78d66fdc6789597ce059f882a6f322b08f28e832 SHA512 f8df7a0eccdecb7d4d4f47d96050cdbefff91289b29550b061358614845648451d4b161d9bdbfbf5a9a87ce650d272cb3b795e6d2ed4d0274844a56db097bd15
|
||||
DIST nvidia-installer-570.133.07.tar.bz2 169618 BLAKE2B b56a892a68be77c0b1b9f8d348907557a4f09e68a9aab22de27bd211a539a2beba4c1bbe7f34820f3c70cc93832cd58439d9c2a5b09e0263e203260d22ef3573 SHA512 4603b9661cf7844eca0c49777e50f992b22933a6f28c810d238f3e4da5d755da19d1593beeaefdb671ac397c6c506716c9de40bbfdb2c20fb1c6c2ad83881b87
|
||||
DIST nvidia-installer-570.144.tar.bz2 169317 BLAKE2B 8238feeebd61c1ae37bad82ae6801aaedddc2b861ca4c2eccde7c5576f82baf14969b8acaf4b0e922ebae218201d47190b6e9b3ff1ce264857ae58586b2df7b0 SHA512 2201cf95bb2f69067e3a2f555877b46ded5cd46e8f91e0adb100adaed03df1de7eae15bf593a8834516d62a029f81793c5d5406a314551039115f601bda1a465
|
||||
DIST nvidia-installer-575.51.02.tar.bz2 169435 BLAKE2B d19432f65d94da9929c3aee2e3aa734b1c542f6d0e5c23a97b8387409e552dbbfef1a4570bea5ad0116d2ccf1c3cc0d8805e89b561caf16c1e78de976732e007 SHA512 097f5692ea7a2fc8e5a60f68589c00cc29de0ff947284b23765c4dcb1892e502d2922d2ee259d7af5b5c6a5f0fbf38f89a085f5a47f5115c8623afa4893c3dcd
|
||||
DIST nvidia-installer-570.153.02.tar.bz2 169264 BLAKE2B 527574c76c3732d6e0ce81b55f9a92ae9d4a757151bdf6a5449d677b2991c48af652f61199c235e3253ae173ed314b8e58b968cb074022659a0d00e0ca23c389 SHA512 22a51690e159468b732109005c75a77a46c9e531f869c1590d859a515b6b9325dd076fb81b1542aee8617b68b4f7b7df1d8b7507123a73064a6a34ec435b5334
|
||||
DIST nvidia-installer-570.169.tar.bz2 169301 BLAKE2B 2676261d50cfe235d099475bcedcc96549d5140bf0c95b8f41b49d62eb0cd5fdf5c2ed53a59f79c778011b50e95ef440cc7a3a7a6673de7311e4508fa8f5960b SHA512 5864343b23a27cf994e414bb8a3b90e7b740df54188d43172456ea163162cea74e0b38a0b41717756818262d9f80b25cfc7566900bc682ea0546a825d52e3cfd
|
||||
DIST nvidia-installer-575.57.08.tar.bz2 169416 BLAKE2B 12bbde414a119911402bae54befb218890cb29d64b3b32b807e44eb2e56f0592da0881c605c6df2941aaf2c4eef9fb3fe25c5afa2b8b7fa6e6d7af6b22c1e1cf SHA512 d3e365590aacb075d647c320e43f237c90bd124e3aca257e623bb7780b368903ca861244f91773f8dd8f1910fb245beba94d11f82d97abe4fa491711d210543f
|
||||
DIST nvidia-installer-575.64.tar.bz2 169449 BLAKE2B d32cfada19098ff9cdd2c32eebed422ca77048bec18555f9b6358765ceaa944ce4216c49893a2d3903f1ac31f69362d108661aa232bf006a559d5de069d3ea91 SHA512 f1086367a43ab87bcfa9b50772d9b2c21b313148fe44e9a0e99b2206dde06dda8ca13b569c7d203ea9ae58a8603cd3e3f5b5475b125a77fd998a07402cd2144c
|
||||
DIST nvidia-modprobe-390.157.tar.bz2 35306 BLAKE2B 80d202b39c2f95ec0f909712c2e101483af50124092c32efb33bd98ff58ddfb97b737ff07f1ddc941f688c1b4c26a15f392566d522e18506771f10422fcd571c SHA512 109bbe24a3758b568ea65fe1e9d78f69fae6108ec0497b796c885a3912825fe04ffd7389a3e22987f1a10a2926bf6eaa384faabc59478aa3ee244dd3ac91c6d3
|
||||
DIST nvidia-modprobe-470.256.02.tar.bz2 38769 BLAKE2B 0db444b09b0b6d24c04877fae95249e781d82b3141f90eb05d869b64d2b6e65ad00bf44c4e427c64dbd4765fa99a8699f80a1d95b00c66137a54dc878d7ea298 SHA512 c1cbfa6c8e188e5a5eb5d390b9a903406cbff103d212fc30e611e4023be3fde896ad84e8bb45b030beb5d1bcd8155c9e55a8f9636c45ce1e2a5c03f672989a31
|
||||
DIST nvidia-modprobe-535.247.01.tar.bz2 40736 BLAKE2B 31172b50777fb0bcc7696af660fd4f8ddc42bb126ff42edcee12097fe37748727c6357ef46b65a96004345fdc501487f8b5ad89eccef991eeb3c83e958f41a09 SHA512 f28340f935804e3cb07d394ad103b296a5e4fbfadeef7905266b85afd7cd145de033d603a4bd7947348add23a866548605264c814b48f4f6a5a1f4254f82cdc1
|
||||
DIST nvidia-modprobe-550.163.01.tar.bz2 41448 BLAKE2B 23e567d612e669ec6ae9f389651c9e1cebe7ba59ee95bb5961e5071952697860df77f02026040e29135338eb7cf96bba0015b3d94548297235fb5214f35bec48 SHA512 0f5b59468a6e5e95dcdef1d938ea78f4ce09a0c9784e3c70d83f1c3b1bd52e8055b6b332147316445c3be714abab3629320d6117878d50aa7a2d7d2d9b9b6485
|
||||
DIST nvidia-modprobe-570.133.07.tar.bz2 41633 BLAKE2B 49e541fdf2c7f89689da298cdef3dfcc510bd7bfe5b53b19c1e49e526f5e5018f24271d5991e5dd6d6d4c27e2645df7908376ffefca56c73ce9e5935560e6d18 SHA512 c447ea50df0e8ab8a765378007a96a5a1897f20c3c8ad5c9a3d4271a859177ae39bc82bd041182dbe7f5a752ab4bd3bee459905a27e37d136faa7cd6c00a7100
|
||||
DIST nvidia-modprobe-570.144.tar.bz2 41634 BLAKE2B 212578e8a49aa482524cb9da7a60249b88e9a151e19eb64b2e8195883f26476db3bb2859b2df3307a5281311311c22f24fdf2ae7019e9a2a07363b1ebef22b7c SHA512 56c7d8d0b8419d61676f4a9f9ab8b0592bb8f341b54bded42949bcdd1face39a264253a9f391e8f69b3c07631aca457a5c98ccf6b66eb8a9de3df4335f6c34bc
|
||||
DIST nvidia-modprobe-575.51.02.tar.bz2 41686 BLAKE2B e70363c8ef8b4c30105a77cc66a70108d709458644cce2fbde08fe735156d1b10b48797a24022f4133c65307e10c108b0df2a0abfc6b36bfe591efea8dd0ff5c SHA512 89b53aae61e0d92d5b7821afa391dbdf1e769d0be4bebc8df01e593a6100496cecac71c34205737aae1cd09cec6fadb3655dd1f495a364feea0f45100aa1d4b4
|
||||
DIST nvidia-modprobe-570.153.02.tar.bz2 41627 BLAKE2B 685205e27589941884243d7440390b572d03395d9758881ae69d86b8c6a3c33e3960411c3fde9d2d8efa0ef09d1476734cf06f0facea468faaf4382862c2e6c0 SHA512 3d25d3576630c9d3468102868b4f09036ffc72ba51494b2d07125643bbbd925ce5a9b6f305bd8e10aa51516754625170c184a05848ec6d84e642cfecd4429807
|
||||
DIST nvidia-modprobe-570.169.tar.bz2 41618 BLAKE2B ce6967fea67a387ab177d75cf0bec4162127e7f440ffc971115b2307d68307fdbddcded8e932022088f1815d7208d4b7b8d1895125866d443750307c1353867a SHA512 e7f4d0ad9b29f13b2fccddd27570832d7a95925d82aac0ea0af8b8dcf80ba220c82352b0394eff2184b7f6da227df2462d5579ed75c1a952727820503f37ea7e
|
||||
DIST nvidia-modprobe-575.57.08.tar.bz2 41665 BLAKE2B 6b9aba76113854f16955bcdcab23a24d4fbdd1defc44b7087d8429f62035f0e9c8c69a47c69c88aacca4e0626b123ed847712b4f4e78cfe61a2a857ca50c5721 SHA512 c201cf42e274a89a4ff9f7881bbb4f5dde281513ac9811fa4a65c3359047fb2f477a8c3357c9bd08158f7478807d2dfe078324671c79dabb9206844b65c1391a
|
||||
DIST nvidia-modprobe-575.64.tar.bz2 41705 BLAKE2B e69272e05302f6033dc56bd9a4e7d1e2abbb9e087813f2f361047b4fa82c7777d3fdfe7b9315a71c47332e82259e5fbdccbe5c9739782be3e06aa49700d775e7 SHA512 2ce516db4d3549717c8933c46258d6fdde8804a6b5cd10ab2eb2eca67dae2941adeacd66659182dd62d9e743426c0085d1e40eb90a10cd7102c206e28b137cb7
|
||||
DIST nvidia-persistenced-390.157.tar.bz2 48654 BLAKE2B 2cf6c92da90acff55e8c180a06b0c6a29d48be9fd8ca3c541202fd14f0697220fba6b66452942aa7ae7cc8821f5c5eb9fa8f7a31d2248624e5f9141d83a176b8 SHA512 70f0707ed6f2b877e69ef90cf782f66cbc9d2071db53ca09ceb7b89427b0fe176708517340621fa251539b7d481b238adeeb60261674eed74de1f62db6dbb72e
|
||||
DIST nvidia-persistenced-470.256.02.tar.bz2 46567 BLAKE2B 8f837322a3b88412fd2f6acf38721b49a6cb444fbd842d652519e5596f2e545d8f06bbdf017f46a22301ce87455f96147fab2829ca5fbf26131ec3e4a772e282 SHA512 4fd19258649b7d39945fb5c8578bf11ab118617dd14f3d11cdf15cb3fe77daf7b4719e4ae57af59031b1b809d02f4e8e8afed0ec60b9d0aed4d2488bd3013cd9
|
||||
DIST nvidia-persistenced-535.247.01.tar.bz2 48589 BLAKE2B 1b641fb85fb74e5314c0f525361cba23ac08d5f6570bcd9a6d89b376497bd0aa1cbbb52fe391a8f7bf41734e49d46d464440573b0298b5c0fd5db7fcf3100d58 SHA512 be23e7790d582a340e14c7df16f9ed09447ef8efb352d8b8e53e5be91b624953d8237c988ce0b0b0c90e1b15077af7efd6c6a0e628345f2188b6dbe09122373b
|
||||
DIST nvidia-persistenced-550.163.01.tar.bz2 61450 BLAKE2B 1a11cb89981b88f8d14558227d9493f1f8a81ccb5502002c436e9311a38c9c8fe0402c65eac1517a2893985eec07699b2e7bc7a81aa14dc0d52198ac85a2cd1b SHA512 f17dbcafa917b5b450f7665f98fd24f06ad99e6bcd1fcf42ef95aa9337b55561b7b16eaad8fa408110d08ee7e6d812444792cccbb9c92865099891832da779ce
|
||||
DIST nvidia-persistenced-570.133.07.tar.bz2 61946 BLAKE2B 4e4082b1ddb095132579366f9cc7585ee9d33f972f7a1176475622e0b2e7334aa87cc7cfdc6ff6c7e18d2da28d89e36ab3fb84d734d2b33826c7902e0c41cfdb SHA512 6274287a9dbd23e9b9fbf39b1a30d3830a0088e204ba65fd4d37db33027c8a58b4b7edd817190031736711e33978c15f2a0949ecf190a72d62fc846860dde1c8
|
||||
DIST nvidia-persistenced-570.144.tar.bz2 61930 BLAKE2B 5839812070626045f492803238fbb9989be2f43d0c8e98bf79716d7fc6f0561142578682c850aa423d707ee6f9922f1bb3673826573a9d037616173324adf4f9 SHA512 c08a261fd0158a0b2fd77de3c2b32ee99034dd1ad064b0693a07545c7b7f9cbedab21de80c03488f1762323bb4e4644e6c5c3b838cf2b3d977c1244563af829b
|
||||
DIST nvidia-persistenced-575.51.02.tar.bz2 61975 BLAKE2B 51c345184fd79a16db3fa29d897ea511ab20b24c9d1587128d232d03f66555c6b3ba029319f9c9f740a8f401ebff4d878d7695c4de445def42601b529195e4ba SHA512 467b1180c894e20019a975de828db6d39088be6e98fb80e367a8285b2e13eb3ceda70a2c4deba238567794631e5ceb54f2daad617d75effe66d225f04f3bf33d
|
||||
DIST nvidia-persistenced-570.153.02.tar.bz2 61814 BLAKE2B 204e9b91d992aaea15634632d45684b982bc897d356a6dedefd70b4a0a3e51b285de52386992efebbe5392b41f0996eba69de518b4869daf0a2675908b444b91 SHA512 24ceb1e0dde5b4df0b46febc270966be40f6b40f23f25fe55c0f8798be8d03a1869f4cd0d272ef9525f3c9a10d8673e8ccd151734006fc870e9622af0b40a681
|
||||
DIST nvidia-persistenced-570.169.tar.bz2 61792 BLAKE2B 14568a42ee3473efe341bd9332081d2a1625f91662c58e75b1b218d5a3d19496071fcc5e9840fa1563aec2755c9d6810db531ed3616c825987311cf3690147f5 SHA512 c5e343be16719ba89f1a37ca8fdeb7f15a4fb028dbce554a7c524238ccb1ed1c1b0527a86a2e6dbdc01cd0b6f3a5d996a0895de4698a0ea98278cd93ef911d58
|
||||
DIST nvidia-persistenced-575.57.08.tar.bz2 61959 BLAKE2B aed09532346dfd4b34e14b37df9bfa75bf6cea89705084826521cdc3ad38919937bf206b77698d97b9f62324c998cc6d11abbf787301ddd134ea9848fc5c5fea SHA512 fc14e58e80798f0370639ac32d8e729ac5809587b42438725305a8b9b45f101a91b241de2d5196c1791b79c6ccebc612a3c3ec26d0b85d6f90d9d22996d1c3af
|
||||
DIST nvidia-persistenced-575.64.tar.bz2 61990 BLAKE2B aaa52db7ea3be3cc5839a34f1b91f08ff2decc53b9264aa72aa88fb32e9a1bd12f9ae9ffaff8120cd32ef5439995bfc8b4649e3cc2c6bd602889b61befdd38b8 SHA512 085e742ab6f4b50eb5e6afeb34ccd5eec9506c104f4207f4f1af8327333e0d39ee0ed850af5e0d53e17d813f5046d0c9cbde55bb9d441010ee288bbaa3ac1f81
|
||||
DIST nvidia-settings-390.157.tar.bz2 1108938 BLAKE2B d9ec1ab5d7f157d74627272adf752a671dd17e2ede02069437b6180b927fe315b15cc6416d584ab2f038b76fe01e5b64514a834f24d88ac16676e55205fdecdd SHA512 b16699009bf56a1ff3b623a528c58061c4f5a2c5c4a373756a07bcd667743a1df7c733a572d2d0baa835a904ac2fda8a5c85890dcc00c3a0f223e0467aea902d
|
||||
DIST nvidia-settings-470.256.02.tar.bz2 1062273 BLAKE2B 8e66201e7861469b12932595ef8f9fd29d4cfd570c2576ae7fbb7383f61c55ac71fe721cc431e79d6d69f86d998b5b4c3cafe531b573f439e6b499b0fc047a19 SHA512 626e66118ae2e62eacfdf44e37529c409b945a6f33637b9690d74abd87a2afb581aaca5f90328d280da99ceb659959d0e5dc5c22ef8013b2205b2b1c72e08007
|
||||
DIST nvidia-settings-535.247.01.tar.bz2 1094617 BLAKE2B 26a12ea76be9ab930553fcdd0f19db1de8e8fd41a5f180a09f418bdbec38aab6f05c019a85249de3fe523df4aba6ffd339ccce4758e739fe092ecaaf25fb5008 SHA512 9651cc907fa78139f4774764132f5a46c1feee016aae021905a463100f102e6321b79c2c4f5b1fe149cde481a5baac17017770244ad35c6d7f14e7975f23a7c9
|
||||
DIST nvidia-settings-550.163.01.tar.bz2 1099317 BLAKE2B 25419c1796deeea238b3e44fd8d648a8627272565be40cb0745132cef1c16e0c422242a1e6369745d577e674a68bf9dfc3c009e281a84ba58db5429d97ac9cff SHA512 5306ab05f284ba06852d7c96ff62ded7b8b615d3a002009cd5d781fdad716db37f53d1c8a43337ada60d524b4f7d183d98ad2673f40a5ca1ca4c5112bb913e74
|
||||
DIST nvidia-settings-570.133.07.tar.bz2 1123730 BLAKE2B 1b64f8fb19ce68bbda3a14a0ad440b305c4772bd385f792d83e8d2f4928b6dca9184b6dc1412862ce604002a6db939aea48ff7a0e115b07b7e20e051086dc2b9 SHA512 cd715cfc26c42bdb52e4a33f2e868068a0495d25db3e29180e6b21afb2bcfb319961f5ba3c486e085791825c1107028d3ff0cc334c82ae3f6bc9fb1e8f84d727
|
||||
DIST nvidia-settings-570.144.tar.bz2 1123525 BLAKE2B 02cd0624b3b34ed05c72f6aa5fd0eec8ee75759297324d47dfb17ad0c935c5ce25835720405f65096dee88cd633501346d1dc1b5958ae65b8573e3f5c59111dc SHA512 71caea01dee3fab5b2f28ff27bbc886688b40f6a2298c73367d1819441ac52e47fb93caa27917962f9a6a2d97b5f7967a6db27834e1fec3acb4f80cc00d14baf
|
||||
DIST nvidia-settings-575.51.02.tar.bz2 1127839 BLAKE2B c88bcf089a68f6a33ad230107f018bb3ab7ab6c526685d6a1ddf0902b354c2f443d8e96a9f2549005ea276633654916d0bab8fb89c3ca83818177c8da2b46f8d SHA512 d10c548637ff38e6cfc4dd577cea19bc1c4dba3b3d475dc0affdfa211a50d0e80f75d060230c56a003dc3741b9fee6d70ef7d91d9be36d2e53b47ab7be9d1fe4
|
||||
DIST nvidia-settings-570.153.02.tar.bz2 1123390 BLAKE2B 2ad8e171a984ce3cbfc6b98e59d8a9534cbc89610f1840e0c12428a5c7f561d4726b6770a7c56953d8cd97969579fbdce6bc934dc35c4751bc7ad1a6ab6a31dd SHA512 0a109d9ed1827673100cb32a47f132cf196bdd7bfd42a329de1e19000dcf47c72b49815bd6c273a16d1cc714132dfcef5ac1c94e24c9645bb90665f55b7c8144
|
||||
DIST nvidia-settings-570.169.tar.bz2 1123877 BLAKE2B df4309c9230352b88467537e9de9372e3e422a1b346c01ca807191aa322638ead912ffd80eeef8e404231f9d28ec9e45fddb1fe1a94777f6ca122e378c0c5b7b SHA512 34c25843c55e80efc987f344b3226e2715ccbf60e9d9f75f665c1a4199d69bef005f5c27d04f5d1cdf4fee38e4d44857d32f2dd97f84764e054d0050881a6377
|
||||
DIST nvidia-settings-575.57.08.tar.bz2 1127882 BLAKE2B 5fd286849e13b30510a14b64248d7e3073198a6a1b4d4048528dcd82ca459811ff77faf2195a54a6bf1f2ee249a8bef4adcf82fecc111871bb7253bfd449cb1a SHA512 73b82a74efd4d22e6ff8876e8b975ab8cb6d8735b2e484154ceba411accc36c9cfd49cd1c70715077d322e2bc38e47264e149bab772a5e948bfbf8689edac44b
|
||||
DIST nvidia-settings-575.64.tar.bz2 1127867 BLAKE2B 27d5e8a4ec8371bf91e050100ce49b00ca3b6c294118bab0af171b153c22a0470b18a933368b22424e1a132465370948e763fd44cc83ed87bd5eafdc20a451ef SHA512 054866076d8499cc880cc5e4e3106f0b017f1621e6dc9fa0df341689436a5fc3d56eefeee0d1e9ae11b257e4cfe001b1ccd1054048a8e93289036a679e59eb42
|
||||
DIST nvidia-xconfig-390.157.tar.bz2 107399 BLAKE2B 0cbb3b1ba508ddc3ba4a161c290b31bf7a67f67880bdbd01171a962c5fa97ca945b1ef17932403f8589309380743f1da632c728d8accb6d4e56dbd895e7486bb SHA512 50b390811c9bf091b14add41f886925b17496b41006b7d3981d2398caa65cf5db8a579c8cebed78278384bf3acc629befb07b54339c61abcc75852c0dcb8b8ca
|
||||
DIST nvidia-xconfig-470.256.02.tar.bz2 108698 BLAKE2B e468574e4bc57e7279d4120e2b08a201671b50d408be0c530eabe5da7d45daaf21cbf5c7fa31410d0d732fe8ea1551cbfb21d1ae193c1b3f5b5c50c764c9e236 SHA512 9dcec1e0c2b56b4d38a5f2c76086302f8bc0860cc15012cce29c3a5062f801a48b6a2bb78344361b07a2717b58502783441a2daf402d9973a17526175b1f15ca
|
||||
DIST nvidia-xconfig-535.247.01.tar.bz2 110621 BLAKE2B 3d567d30e19dfc449e23c80e6fe25536f02e2450bb82c4cdc2b508493cad6d6b4f58467d302fd64a8b37e8a129be4c04b365ec3e4e9f18966d25cd23c6adc91c SHA512 2748aa9997e84e0f39b52bc6f49e2b53ffa7181aaf0ce5b9d06d8e6e010ecd589ee77388807d922c3be4a847b8a4e9e1eeba42c905a32ebb5d3f9b93d6f30511
|
||||
DIST nvidia-xconfig-550.163.01.tar.bz2 111149 BLAKE2B d19ef0427e3432798e674dc66447090e8fb8fcb549ebe27aaee19aa38294cf178e175a067b2da5313342c93ea2aebef35861d05cc4cc0ee2c3eae955b3ddbbb3 SHA512 35f95d85928c82bc5de8e462ca5e90a6d8fe03e5b5367b9cdaadddc1e956f0d26b6dc42e716ae7c88512afdfb98cc841fe9b22846f6d6acc578c5dba4d0a16e1
|
||||
DIST nvidia-xconfig-570.133.07.tar.bz2 111288 BLAKE2B 2dca752e735440c989826ca42a1c13a73084c6589ecbed1bb24bd139ddb2d11f1ce3c8f6523f8902464ebd80a3805435f694678c5a9c70f0027cd1ab8096249f SHA512 5f5ff4da84b76707e051d24b252f809f8d5feadea442156aa9c52c2be61c818144f245bfc1fc5b31c9051ee7a9164cf922e86a01e3ffb1d129c45e790aca705f
|
||||
DIST nvidia-xconfig-570.144.tar.bz2 111243 BLAKE2B f7c9cd692665ef563238fb8cd1d2294b4b9acab6b082c8541ed24f6cdbb3f5466a1fa0b7be06d51ba1c87648cc8d0fecc1137d898844c80a0ba0fba8dfe43bad SHA512 9d38abf935dbce8d50d7d758a543e2ac4ba278a527a4dd6d167551a2ed11bbe17c3290a51f59f6a0e3611cd8e3d695efd09e9dab4aab748bdb70320c8c9d2f0c
|
||||
DIST nvidia-xconfig-575.51.02.tar.bz2 111328 BLAKE2B 5df501db6e5fd669e7dbfdfed1c18cd85122fcb587256a0f4cd46c58fab10e13553769f4178775bbbf3d347bc522476b59c9b7d7973098b274494727eeef2c1f SHA512 8135924a0e1ce8c7444fcfa0f52fe666c55b4b1c92c8fb7ecc67de803b8e23b854b2b367942f8c13216503774ed86e2b287ad7251473b91e4d2e4ee91d184d74
|
||||
DIST open-gpu-kernel-modules-570.123.07.tar.gz 18658818 BLAKE2B 5228a09fa88d17ed2881838b5904eab8be1bdee6b37f01a4aef92e33ddf7f06040f3addbce5b70d2b4901f8b24ee4dbc349dd88ced6f248c90f840be2c217f27 SHA512 5c17574aa90b7a6be9ca4412400ff12b1f671258bee9176e078fe1a66f323381fa47ccb113387bd9eda118e36de0a806ae69ae06991329c31347488268b48d33
|
||||
DIST nvidia-xconfig-570.153.02.tar.bz2 111136 BLAKE2B 6f7e8f46182d945ddf457595b5829742fa826a19ef279b87d8f8d35ffa5c2377a96be4f76f9ca5a4e271b1678b4a9b00fe6dbcb475cb15efba5a7b902230d9bd SHA512 066ab2a230c56cced0faa2e3bf8c4b135795fc457cabd3b716709db94b82d5515580e6b2768955a877ae224b6b56e0d97c0315a122087a6da77442754935bad8
|
||||
DIST nvidia-xconfig-570.169.tar.bz2 111343 BLAKE2B ff9c00145277241a5acb290fddfa01a906ba26601c45f12d06ea8754be9d29c836f68640db411de6e904d608523bd9d10b644bf1976ef201c58d55db2fc16a47 SHA512 5db772f2cecb3436a42b0f5cad550afae3453d3b17897f457e8f6b48a9c2a71997a317b121837f68e7f23d9a3e141464485144ce362f33adf3d70b326205bbb8
|
||||
DIST nvidia-xconfig-575.57.08.tar.bz2 111794 BLAKE2B 52f3080a29fdffe167439c911187432f880dfefd7005f5eea378bc3eae887f6a181accc2705c81dc5929472b3eeb29e2703190289c4a539ba4122cd4f7e4d7ec SHA512 6bdb5a3778f6d18a8588a7d8b4b226860cfb2770ed1f52c512a05a98b367d1d52d727132473475a1dce27a0fde0b82519938b5cfb1db7f6668de7f9121928321
|
||||
DIST nvidia-xconfig-575.64.tar.bz2 111310 BLAKE2B 72af0b794a3d2f226898419d39fec494a8ecb99ffb5c96a412fb25285db2ea2b556929b261969a820fbeee4c28cdc7bfba41796f261422091ecc87db82c59349 SHA512 359ff35920f97b963352f7ff7273fed1a1d232ef094bd00e8d2d3a88b10339cfeb3f0bab94f448c74fc39c17f3ac3bdedb1de5fcbc8d9affe94cfc2973a807aa
|
||||
DIST open-gpu-kernel-modules-570.123.18.tar.gz 18685315 BLAKE2B 26886a8d92642d498f30d5a7b9e715c9ca203fecd1389ebe66982395054ee684ea05b69a84d679722d6fc9207c31a20edf29b7fdebe6bfd508ffb88cf6c9962a SHA512 5a4c01153d4033ebc5b3b5f67b00ca8331bd13ed67b850af9ffe65380593f575764d07a56b5278e1af09c74610d36fd76e738a229713afa0e0102f54ceefcdfc
|
||||
|
@ -1,9 +1,10 @@
|
||||
# NVIDIA drivers options
|
||||
# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
|
||||
|
||||
# nvidia-drivers and nouveau cannot be used at same time.
|
||||
# Comment out the following line if you wish to allow nouveau.
|
||||
# nvidia-drivers and nouveau / nova cannot be used at same time.
|
||||
# Comment out the following lines if you wish to allow either.
|
||||
blacklist nouveau
|
||||
blacklist nova_core
|
||||
|
||||
# !!! Security Warning !!!
|
||||
# Do not change the DeviceFile options unless you know what you are doing.
|
||||
|
@ -1,9 +1,10 @@
|
||||
# NVIDIA drivers options
|
||||
# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
|
||||
|
||||
# nvidia-drivers and nouveau cannot be used at same time.
|
||||
# Comment out the following line if you wish to allow nouveau.
|
||||
# nvidia-drivers and nouveau / nova cannot be used at same time.
|
||||
# Comment out the following lines if you wish to allow either.
|
||||
blacklist nouveau
|
||||
blacklist nova_core
|
||||
|
||||
# Kernel Mode Setting (needed for wayland but is hardly usable with legacy 470)
|
||||
# Enabling may possibly cause issues with SLI and Reverse PRIME.
|
||||
|
@ -1,9 +1,10 @@
|
||||
# NVIDIA drivers options
|
||||
# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
|
||||
|
||||
# nvidia-drivers and nouveau cannot be used at same time.
|
||||
# Comment out the following line if you wish to allow nouveau.
|
||||
# nvidia-drivers and nouveau / nova cannot be used at same time.
|
||||
# Comment out the following lines if you wish to allow either.
|
||||
blacklist nouveau
|
||||
blacklist nova_core
|
||||
|
||||
# Kernel Mode Setting (notably needed for fbdev and wayland).
|
||||
# Enabling may possibly cause issues with SLI and Reverse PRIME.
|
||||
|
@ -1,9 +1,10 @@
|
||||
# NVIDIA drivers options
|
||||
# See /usr/share/doc/nvidia-drivers-*/README.txt* for more information.
|
||||
|
||||
# nvidia-drivers and nouveau cannot be used at same time.
|
||||
# Comment out the following line if you wish to allow nouveau.
|
||||
# nvidia-drivers and nouveau / nova cannot be used at same time.
|
||||
# Comment out the following lines if you wish to allow either.
|
||||
blacklist nouveau
|
||||
blacklist nova_core
|
||||
|
||||
# Kernel Mode Setting (notably needed for fbdev and wayland).
|
||||
# Enabling may possibly cause issues with SLI and Reverse PRIME.
|
||||
|
@ -0,0 +1,71 @@
|
||||
Only needed with USE=-kernel-open to avoid GPL-only __vma_start_write,
|
||||
not really runtime-tested but at least code does nothing for stable users
|
||||
with <6.15..
|
||||
|
||||
https://github.com/NVIDIA/open-gpu-kernel-modules/issues/840#issuecomment-2906864735
|
||||
https://github.com/CachyOS/kernel-patches/commit/914aea4298e3
|
||||
--- a/kernel/nvidia/nv-mmap.c
|
||||
+++ b/kernel/nvidia/nv-mmap.c
|
||||
@@ -24,8 +24,15 @@
|
||||
#define __NO_VERSION__
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
#include "os-interface.h"
|
||||
#include "nv-linux.h"
|
||||
#include "nv_speculation_barrier.h"
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
|
||||
+#define nv_vm_flags_set(v, f) vm_flags_reset((v), (v)->vm_flags | (f))
|
||||
+#define nv_vm_flags_clear(v, f) vm_flags_reset((v), (v)->vm_flags & ~(f))
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* The 'struct vm_operations' open() callback is called by the Linux
|
||||
--- a/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c
|
||||
+++ b/kernel/nvidia-drm/nvidia-drm-gem-user-memory.c
|
||||
@@ -45,4 +45,11 @@
|
||||
#endif
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
|
||||
+#define nv_vm_flags_set(v, f) vm_flags_reset((v), (v)->vm_flags | (f))
|
||||
+#define nv_vm_flags_clear(v, f) vm_flags_reset((v), (v)->vm_flags & ~(f))
|
||||
+#endif
|
||||
+
|
||||
static inline
|
||||
void __nv_drm_gem_user_memory_free(struct nv_drm_gem_object *nv_gem)
|
||||
--- a/kernel/nvidia-drm/nvidia-drm-gem.c
|
||||
+++ b/kernel/nvidia-drm/nvidia-drm-gem.c
|
||||
@@ -52,4 +52,11 @@
|
||||
#include "nv-mm.h"
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
|
||||
+#define nv_vm_flags_set(v, f) vm_flags_reset((v), (v)->vm_flags | (f))
|
||||
+#define nv_vm_flags_clear(v, f) vm_flags_reset((v), (v)->vm_flags & ~(f))
|
||||
+#endif
|
||||
+
|
||||
void nv_drm_gem_free(struct drm_gem_object *gem)
|
||||
{
|
||||
--- a/kernel/nvidia-uvm/uvm.c
|
||||
+++ b/kernel/nvidia-uvm/uvm.c
|
||||
@@ -22,4 +22,6 @@
|
||||
*******************************************************************************/
|
||||
|
||||
+#include <linux/version.h>
|
||||
+
|
||||
#include "uvm_api.h"
|
||||
#include "uvm_global.h"
|
||||
@@ -41,4 +43,9 @@
|
||||
#define NVIDIA_UVM_DEVICE_NAME "nvidia-uvm"
|
||||
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 15, 0)
|
||||
+#define nv_vm_flags_set(v, f) vm_flags_reset((v), (v)->vm_flags | (f))
|
||||
+#define nv_vm_flags_clear(v, f) vm_flags_reset((v), (v)->vm_flags & ~(f))
|
||||
+#endif
|
||||
+
|
||||
static dev_t g_uvm_base_dev;
|
||||
static struct cdev g_uvm_cdev;
|
@ -11,10 +11,10 @@
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="kernel-open">
|
||||
Use the open source variant of the drivers
|
||||
(Turing/Ampere+ GPUs only, aka GTX 1650+ --
|
||||
recommended with >=560.xx drivers if usable and
|
||||
it may be required for 50xx Blackwell+ GPUs)
|
||||
Use the open source variant of the drivers (only
|
||||
works for Turing/Ampere or newer GPUs, aka GTX 1650+
|
||||
-- recommended with >=560.xx drivers if usable and
|
||||
is *required* for 50xx Blackwell or newer GPUs)
|
||||
</flag>
|
||||
<flag name="persistenced">Install the persistence daemon for keeping devices state when unused (e.g. for headless)</flag>
|
||||
<flag name="powerd">Install the NVIDIA dynamic boost support daemon (only useful with specific laptops, ignore if unsure)</flag>
|
||||
@ -30,4 +30,12 @@
|
||||
<remote-id type="github">NVIDIA/nvidia-xconfig</remote-id>
|
||||
<remote-id type="github">NVIDIA/open-gpu-kernel-modules</remote-id>
|
||||
</upstream>
|
||||
<slots>
|
||||
<subslots>
|
||||
Subslot is primarily used to identify branches, at most
|
||||
rebuilding reverse dependencies on bumps would only be
|
||||
for the static library (not essential to) given other
|
||||
headers are provided by nvidia-cuda-toolkit instead.
|
||||
</subslots>
|
||||
</slots>
|
||||
</pkgmetadata>
|
||||
|
@ -4,7 +4,7 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus flag-o-matic linux-mod-r1 multilib
|
||||
inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 multilib
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.1
|
||||
@ -152,6 +152,8 @@ src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
|
||||
|
||||
use static-libs && lto-guarantee-fat
|
||||
|
||||
# dead branch that will never be fixed and due for eventual removal,
|
||||
# so keeping lazy "fixes" (bug #921370)
|
||||
local kcflags=(
|
||||
@ -324,6 +326,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/libXNVCtrl/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
|
@ -4,7 +4,7 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus flag-o-matic linux-mod-r1 multilib
|
||||
inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 multilib
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.6
|
||||
@ -149,8 +149,8 @@ src_compile() {
|
||||
CC+=" $(test-flags-CC "${kcflags[@]}")"
|
||||
use modules && KERNEL_CC+=" $(CC=${KERNEL_CC} test-flags-CC "${kcflags[@]}")"
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -294,6 +294,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
|
@ -1,574 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus flag-o-matic linux-mod-r1 multilib
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.13
|
||||
NV_URI="https://download.nvidia.com/XFree86/"
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
||||
HOMEPAGE="https://www.nvidia.com/"
|
||||
SRC_URI="
|
||||
amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
|
||||
arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
|
||||
$(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
|
||||
nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
|
||||
${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz
|
||||
"
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* amd64 ~arm64"
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
REQUIRED_USE="kernel-open? ( modules )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
acct-group/video
|
||||
X? ( x11-libs/libpciaccess )
|
||||
persistenced? (
|
||||
acct-user/nvpd
|
||||
net-libs/libtirpc:=
|
||||
)
|
||||
tools? (
|
||||
>=app-accessibility/at-spi2-core-2.46:2
|
||||
dev-libs/glib:2
|
||||
dev-libs/jansson:=
|
||||
media-libs/harfbuzz:=
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXxf86vm
|
||||
x11-libs/pango
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${COMMON_DEPEND}
|
||||
dev-libs/openssl:0/3
|
||||
sys-libs/glibc
|
||||
X? (
|
||||
media-libs/libglvnd[X,abi_x86_32(-)?]
|
||||
x11-libs/libX11[abi_x86_32(-)?]
|
||||
x11-libs/libXext[abi_x86_32(-)?]
|
||||
)
|
||||
powerd? ( sys-apps/dbus[abi_x86_32(-)?] )
|
||||
wayland? (
|
||||
gui-libs/egl-gbm
|
||||
>=gui-libs/egl-wayland-1.1.10
|
||||
media-libs/libglvnd
|
||||
)
|
||||
"
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
static-libs? (
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
)
|
||||
tools? (
|
||||
media-libs/libglvnd
|
||||
sys-apps/dbus
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXv
|
||||
x11-libs/libvdpau
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/m4
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
# there is some non-prebuilt exceptions but rather not maintain a list
|
||||
QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/nvidia-kernel-module-source-515.86.01-raw-ldflags.patch
|
||||
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
|
||||
"${FILESDIR}"/nvidia-settings-390.144-raw-ldflags.patch
|
||||
"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use modules && [[ ${MERGE_TYPE} != binary ]] || return
|
||||
|
||||
local CONFIG_CHECK="
|
||||
PROC_FS
|
||||
~DRM_KMS_HELPER
|
||||
~SYSVIPC
|
||||
~!LOCKDEP
|
||||
~!PREEMPT_RT
|
||||
~!SLUB_DEBUG_ON
|
||||
!DEBUG_MUTEXES
|
||||
$(usev powerd '~CPU_FREQ')
|
||||
"
|
||||
|
||||
local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection
|
||||
of drivers (no custom config), and for wayland / nvidia-drm.modeset=1.
|
||||
Cannot be directly selected in the kernel's menuconfig, and may need
|
||||
selection of a DRM device even if unused, e.g. CONFIG_DRM_AMDGPU=m or
|
||||
DRM_I915=y, DRM_NOUVEAU=m also acceptable if a module and not built-in."
|
||||
|
||||
local ERROR_X86_KERNEL_IBT="CONFIG_X86_KERNEL_IBT: is set and, if the CPU supports the feature,
|
||||
this *could* lead to modules load failure with ENDBR errors, or to
|
||||
broken CUDA/NVENC. Please ignore if not having issues, but otherwise
|
||||
try to unset or pass ibt=off to the kernel's command line." #911142
|
||||
use kernel-open || CONFIG_CHECK+=" ~!X86_KERNEL_IBT"
|
||||
|
||||
use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
|
||||
|
||||
use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
|
||||
local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open.
|
||||
Cannot be directly selected in the kernel's menuconfig, and may need
|
||||
selection of another option that requires it such as CONFIG_KVM."
|
||||
|
||||
local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and
|
||||
will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is
|
||||
set. Please do not report issues if run into e.g. kernel panics while
|
||||
ignoring this."
|
||||
|
||||
linux-mod-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# make patches usable across versions
|
||||
rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
|
||||
rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
|
||||
rm nvidia-settings && mv nvidia-settings{-${PV},} || die
|
||||
rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
|
||||
mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
|
||||
|
||||
default
|
||||
|
||||
# prevent detection of incomplete kernel DRM support (bug #603818)
|
||||
sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
|
||||
-i kernel{,-module-source/kernel-open}/conftest.sh || die
|
||||
|
||||
sed 's/__USER__/nvpd/' \
|
||||
nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
|
||||
> "${T}"/nvidia-persistenced.service || die
|
||||
|
||||
# use alternative vulkan icd option if USE=-X (bug #909181)
|
||||
use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
|
||||
|
||||
# enable nvidia-drm.modeset=1 by default with USE=wayland
|
||||
cp "${FILESDIR}"/nvidia-470.conf "${T}"/nvidia.conf || die
|
||||
use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
|
||||
|
||||
# makefile attempts to install wayland library even if not built
|
||||
use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
|
||||
nvidia-settings/src/Makefile || die
|
||||
|
||||
# temporary option, nvidia will remove in the future
|
||||
use !kernel-open ||
|
||||
sed -i '/blacklist/a\
|
||||
\
|
||||
# Enable using kernel-open with workstation GPUs (experimental)\
|
||||
options nvidia NVreg_OpenRmEnableUnsupportedGpus=1' "${T}"/nvidia.conf || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
|
||||
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
PREFIX="${EPREFIX}"/usr
|
||||
HOST_CC="$(tc-getBUILD_CC)"
|
||||
HOST_LD="$(tc-getBUILD_LD)"
|
||||
BUILD_GTK2LIB=
|
||||
NV_USE_BUNDLED_LIBJANSSON=0
|
||||
NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
|
||||
WAYLAND_AVAILABLE=$(usex wayland 1 0)
|
||||
XNVCTRL_CFLAGS="${xnvflags}"
|
||||
)
|
||||
|
||||
if use modules; then
|
||||
local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
|
||||
|
||||
# conftest.sh is broken with c23 due to func() changing meaning,
|
||||
# and then fails later due to ealier misdetections
|
||||
# TODO: try without now and then + drop modargs' CC= (bug #944092)
|
||||
KERNEL_CC+=" -std=gnu17"
|
||||
|
||||
local modlistargs=video:kernel
|
||||
if use kernel-open; then
|
||||
modlistargs+=-module-source:kernel-module-source/kernel-open
|
||||
|
||||
# environment flags are normally unused for modules, but nvidia
|
||||
# uses it for building the "blob" and it is a bit fragile
|
||||
filter-flags -fno-plt #912949
|
||||
filter-lto
|
||||
CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags
|
||||
fi
|
||||
|
||||
local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
|
||||
local modargs=(
|
||||
CC="${KERNEL_CC}" # needed for above gnu17 workaround
|
||||
IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
|
||||
SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
|
||||
|
||||
# kernel takes "x86" and "x86_64" as meaning the same, but nvidia
|
||||
# makes the distinction (since 550.135) and is not happy with "x86"
|
||||
# TODO?: it should be ok/better for tc-arch-kernel to do x86_64
|
||||
$(usev amd64 ARCH=x86_64)
|
||||
)
|
||||
|
||||
# temporary workaround for bug #914468
|
||||
addpredict "${KV_OUT_DIR}"
|
||||
|
||||
linux-mod-r1_src_compile
|
||||
CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags}
|
||||
fi
|
||||
|
||||
emake "${NV_ARGS[@]}" -C nvidia-modprobe
|
||||
use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
|
||||
use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
|
||||
|
||||
if use tools; then
|
||||
# avoid noisy *very* noisy logs with deprecation warnings
|
||||
CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
|
||||
emake "${NV_ARGS[@]}" -C nvidia-settings
|
||||
elif use static-libs; then
|
||||
# pretend GTK+3 is available, not actually used (bug #880879)
|
||||
emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \
|
||||
-C nvidia-settings/src out/libXNVCtrl.a
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
|
||||
|
||||
NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
|
||||
|
||||
local -A paths=(
|
||||
[APPLICATION_PROFILE]=/usr/share/nvidia
|
||||
[CUDA_ICD]=/etc/OpenCL/vendors
|
||||
[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
|
||||
[FIRMWARE]=/lib/firmware/nvidia/${PV}
|
||||
[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
|
||||
[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
|
||||
[OPENGL_DATA]=/usr/share/nvidia
|
||||
[VULKAN_ICD_JSON]=/usr/share/vulkan
|
||||
[WINE_LIB]=/usr/${libdir}/nvidia/wine
|
||||
[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
|
||||
|
||||
[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
|
||||
[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
|
||||
[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
|
||||
)
|
||||
|
||||
local skip_files=(
|
||||
$(usev !X "libGLX_nvidia libglxserver_nvidia")
|
||||
$(usev !wayland libnvidia-vulkan-producer)
|
||||
libGLX_indirect # non-glvnd unused fallback
|
||||
libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
|
||||
libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
|
||||
libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
|
||||
libnvidia-pkcs11.so # using the openssl3 version instead
|
||||
)
|
||||
local skip_modules=(
|
||||
$(usev !X "nvfbc vdpau xdriver")
|
||||
$(usev !modules gsp)
|
||||
$(usev !powerd powerd)
|
||||
installer nvpd # handled separately / built from source
|
||||
)
|
||||
local skip_types=(
|
||||
GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
|
||||
OPENCL_WRAPPER.\* # virtual/opencl
|
||||
DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused
|
||||
)
|
||||
|
||||
local DOCS=(
|
||||
README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
|
||||
nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
|
||||
)
|
||||
local HTML_DOCS=( html/. )
|
||||
einstalldocs
|
||||
|
||||
local DISABLE_AUTOFORMATTING=yes
|
||||
local DOC_CONTENTS="\
|
||||
Trusted users should be in the 'video' group to use NVIDIA devices.
|
||||
You can add yourself by using: gpasswd -a my-user video\
|
||||
$(usev modules "
|
||||
|
||||
Like all out-of-tree kernel modules, it is necessary to rebuild
|
||||
${PN} after upgrading or rebuilding the Linux kernel
|
||||
by for example running \`emerge @module-rebuild\`. Alternatively,
|
||||
if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
|
||||
this can be automated by setting USE=dist-kernel globally.
|
||||
|
||||
Loaded kernel modules also must not mismatch with the installed
|
||||
${PN} version (excluding -r revision), meaning should
|
||||
ensure \`eselect kernel list\` points to the kernel that will be
|
||||
booted before building and preferably reboot after upgrading
|
||||
${PN} (the ebuild will emit a warning if mismatching).
|
||||
|
||||
See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
|
||||
$(use amd64 && usev !abi_x86_32 "
|
||||
|
||||
Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
(typically using wine / steam) will not be able to use GPU acceleration.")
|
||||
|
||||
For additional information or for troubleshooting issues, please see
|
||||
https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own
|
||||
documentation that is installed alongside this README."
|
||||
readme.gentoo_create_doc
|
||||
|
||||
if use modules; then
|
||||
linux-mod-r1_src_install
|
||||
|
||||
insinto /etc/modprobe.d
|
||||
doins "${T}"/nvidia.conf
|
||||
|
||||
# used for gpu verification with binpkgs (not kept, see pkg_preinst)
|
||||
insinto /usr/share/nvidia
|
||||
doins supported-gpus/supported-gpus.json
|
||||
fi
|
||||
|
||||
emake "${NV_ARGS[@]}" -C nvidia-modprobe install
|
||||
fowners :video /usr/bin/nvidia-modprobe #505092
|
||||
fperms 4710 /usr/bin/nvidia-modprobe
|
||||
|
||||
if use persistenced; then
|
||||
emake "${NV_ARGS[@]}" -C nvidia-persistenced install
|
||||
newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
|
||||
newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
|
||||
systemd_dounit "${T}"/nvidia-persistenced.service
|
||||
fi
|
||||
|
||||
if use tools; then
|
||||
emake "${NV_ARGS[@]}" -C nvidia-settings install
|
||||
|
||||
doicon nvidia-settings/doc/nvidia-settings.png
|
||||
domenu nvidia-settings/doc/nvidia-settings.desktop
|
||||
|
||||
exeinto /etc/X11/xinit/xinitrc.d
|
||||
newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
|
||||
fi
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
fi
|
||||
|
||||
use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
|
||||
|
||||
# mimic nvidia-installer by reading .manifest to install files
|
||||
# 0:file 1:perms 2:type 3+:subtype/arguments -:module
|
||||
local m into
|
||||
while IFS=' ' read -ra m; do
|
||||
! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
|
||||
[[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] ||
|
||||
[[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
|
||||
has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
|
||||
|
||||
case ${m[2]} in
|
||||
MANPAGE)
|
||||
gzip -dc ${m[0]} | newman - ${m[0]%.gz}
|
||||
pipestatus || die
|
||||
continue
|
||||
;;
|
||||
GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
|
||||
VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
|
||||
esac
|
||||
|
||||
if [[ -v 'paths[${m[2]}]' ]]; then
|
||||
into=${paths[${m[2]}]}
|
||||
elif [[ ${m[2]} == EXPLICIT_PATH ]]; then
|
||||
into=${m[3]}
|
||||
elif [[ ${m[2]} == *_BINARY ]]; then
|
||||
into=/usr/bin
|
||||
elif [[ ${m[3]} == COMPAT32 ]]; then
|
||||
use abi_x86_32 || continue
|
||||
into=/usr/${libdir32}
|
||||
elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then
|
||||
into=/usr/${libdir}
|
||||
else
|
||||
die "No known installation path for ${m[0]}"
|
||||
fi
|
||||
[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
|
||||
[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
|
||||
|
||||
if [[ ${m[2]} =~ _SYMLINK$ ]]; then
|
||||
[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
|
||||
dosym ${m[4]} ${into}/${m[0]}
|
||||
continue
|
||||
fi
|
||||
[[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] &&
|
||||
dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest
|
||||
|
||||
printf -v m[1] %o $((m[1] | 0200)) # 444->644
|
||||
insopts -m${m[1]}
|
||||
insinto ${into}
|
||||
doins ${m[0]}
|
||||
done < .manifest || die
|
||||
insopts -m0644 # reset
|
||||
|
||||
# MODULE:installer non-skipped extras
|
||||
: "$(systemd_get_sleepdir)"
|
||||
exeinto "${_#"${EPREFIX}"}"
|
||||
doexe systemd/system-sleep/nvidia
|
||||
dobin systemd/nvidia-sleep.sh
|
||||
systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
|
||||
|
||||
dobin nvidia-bug-report.sh
|
||||
|
||||
# MODULE:powerd extras
|
||||
if use powerd; then
|
||||
newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
|
||||
systemd_dounit systemd/system/nvidia-powerd.service
|
||||
|
||||
insinto /usr/share/dbus-1/system.d
|
||||
doins nvidia-dbus.conf
|
||||
fi
|
||||
|
||||
# enabling is needed for sleep to work properly and little reason not to do
|
||||
# it unconditionally for a better user experience
|
||||
: "$(systemd_get_systemunitdir)"
|
||||
local unitdir=${_#"${EPREFIX}"}
|
||||
# not using relative symlinks to match systemd's own links
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service
|
||||
# also add a custom elogind hook to do the equivalent of the above
|
||||
exeinto /usr/lib/elogind/system-sleep
|
||||
newexe "${FILESDIR}"/system-sleep.elogind nvidia
|
||||
# <elogind-255.5 used a different path (bug #939216), keep a compat symlink
|
||||
# TODO: cleanup after 255.5 been stable for a few months
|
||||
dosym {/usr/lib,/"${libdir}"}/elogind/system-sleep/nvidia
|
||||
|
||||
# needed with >=systemd-256 or may fail to resume with some setups
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722
|
||||
insinto "${unitdir}"/systemd-homed.service.d
|
||||
newins - 10-nvidia.conf <<-EOF
|
||||
[Service]
|
||||
Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false
|
||||
EOF
|
||||
insinto "${unitdir}"/systemd-suspend.service.d
|
||||
newins - 10-nvidia.conf <<-EOF
|
||||
[Service]
|
||||
Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false
|
||||
EOF
|
||||
dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf
|
||||
dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf
|
||||
dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf
|
||||
|
||||
# symlink non-versioned so nvidia-settings can use it even if misdetected
|
||||
dosym nvidia-application-profiles-${PV}-key-documentation \
|
||||
${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
|
||||
|
||||
# don't attempt to strip firmware files (silences errors)
|
||||
dostrip -x ${paths[FIRMWARE]}
|
||||
|
||||
# sandbox issues with /dev/nvidiactl (and /dev/char wrt bug #904292)
|
||||
# are widespread and sometime affect revdeps of packages built with
|
||||
# USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
|
||||
# ebuilds should handle manually if need others or addwrite)
|
||||
insinto /etc/sandbox.d
|
||||
newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/char"'
|
||||
|
||||
# dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure
|
||||
# our settings are used for bug 932781#c8 and nouveau blacklist if either
|
||||
# modules are included (however, just best-effort without initramfs regen)
|
||||
if use modules; then
|
||||
echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \
|
||||
"${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
|
||||
|
||||
use modules || return
|
||||
|
||||
# set video group id based on live system (bug #491414)
|
||||
local g=$(egetent group video | cut -d: -f3)
|
||||
[[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')"
|
||||
sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
|
||||
|
||||
# try to find driver mismatches using temporary supported-gpus.json
|
||||
for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
|
||||
g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
|
||||
"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
|
||||
if [[ ${g} ]]; then
|
||||
g=$((${g##*\"}+1))
|
||||
if ver_test -ge ${g}; then
|
||||
NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
linux-mod-r1_pkg_postinst
|
||||
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if [[ -r /proc/driver/nvidia/version &&
|
||||
$(</proc/driver/nvidia/version) != *" ${PV} "* ]]; then
|
||||
ewarn "Currently loaded NVIDIA modules do not match the newly installed"
|
||||
ewarn "libraries and may prevent launching GPU-accelerated applications."
|
||||
if use modules; then
|
||||
ewarn "Easiest way to fix this is normally to reboot. If still run into issues"
|
||||
ewarn "(e.g. API mismatch messages in the \`dmesg\` output), please verify"
|
||||
ewarn "that the running kernel is ${KV_FULL} and that (if used) the"
|
||||
ewarn "initramfs does not include NVIDIA modules (or at least, not old ones)."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
|
||||
ewarn "Detected that the current kernel command line is using 'slub_debug=',"
|
||||
ewarn "this may lead to system instability/freezes with this version of"
|
||||
ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
|
||||
fi
|
||||
|
||||
if [[ -v NV_LEGACY_MASK ]]; then
|
||||
ewarn
|
||||
ewarn "***WARNING***"
|
||||
ewarn
|
||||
ewarn "You are installing a version of ${PN} known not to work"
|
||||
ewarn "with a GPU of the current system. If unwanted, add the mask:"
|
||||
if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
|
||||
ewarn " echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
|
||||
else
|
||||
ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
|
||||
fi
|
||||
ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions"
|
||||
ewarn "are available or fully functional, may need to consider nouveau[2])."
|
||||
ewarn "[1] https://www.nvidia.com/object/IO_32667.html"
|
||||
ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau"
|
||||
fi
|
||||
|
||||
if use kernel-open; then
|
||||
ewarn
|
||||
ewarn "Open source variant of ${PN} was selected, be warned it is experimental"
|
||||
ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues."
|
||||
ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
|
||||
fi
|
||||
|
||||
if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
|
||||
elog
|
||||
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
|
||||
elog "experimental but is required for wayland."
|
||||
elog
|
||||
elog "If you experience issues, either disable wayland or edit nvidia.conf."
|
||||
elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
|
||||
fi
|
||||
}
|
@ -4,7 +4,7 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus flag-o-matic linux-mod-r1 multilib
|
||||
inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1 multilib
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.14
|
||||
@ -22,7 +22,7 @@ SRC_URI="
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
LICENSE="NVIDIA-2023 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* amd64 ~arm64"
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
@ -178,8 +178,8 @@ src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
local -x RAW_LDFLAGS="$(get_abi_LDFLAGS) $(raw-ldflags)" # raw-ldflags.patch
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -359,6 +359,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
@ -1,568 +0,0 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus flag-o-matic linux-mod-r1 readme.gentoo-r1
|
||||
inherit systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.13
|
||||
NV_URI="https://download.nvidia.com/XFree86/"
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
||||
HOMEPAGE="https://www.nvidia.com/"
|
||||
SRC_URI="
|
||||
amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
|
||||
arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
|
||||
$(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
|
||||
nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
|
||||
${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz
|
||||
"
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* amd64 ~arm64"
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
REQUIRED_USE="kernel-open? ( modules )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
acct-group/video
|
||||
X? ( x11-libs/libpciaccess )
|
||||
persistenced? (
|
||||
acct-user/nvpd
|
||||
net-libs/libtirpc:=
|
||||
)
|
||||
tools? (
|
||||
>=app-accessibility/at-spi2-core-2.46:2
|
||||
dev-libs/glib:2
|
||||
dev-libs/jansson:=
|
||||
media-libs/harfbuzz:=
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXxf86vm
|
||||
x11-libs/pango
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${COMMON_DEPEND}
|
||||
dev-libs/openssl:0/3
|
||||
sys-libs/glibc
|
||||
X? (
|
||||
media-libs/libglvnd[X,abi_x86_32(-)?]
|
||||
x11-libs/libX11[abi_x86_32(-)?]
|
||||
x11-libs/libXext[abi_x86_32(-)?]
|
||||
)
|
||||
powerd? ( sys-apps/dbus[abi_x86_32(-)?] )
|
||||
wayland? (
|
||||
gui-libs/egl-gbm
|
||||
>=gui-libs/egl-wayland-1.1.10
|
||||
)
|
||||
"
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
static-libs? (
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
)
|
||||
tools? (
|
||||
media-libs/libglvnd
|
||||
sys-apps/dbus
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXv
|
||||
x11-libs/libvdpau
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
sys-devel/m4
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
# there is some non-prebuilt exceptions but rather not maintain a list
|
||||
QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
|
||||
"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use modules && [[ ${MERGE_TYPE} != binary ]] || return
|
||||
|
||||
# do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK
|
||||
get_version
|
||||
require_configured_kernel
|
||||
|
||||
local CONFIG_CHECK="
|
||||
PROC_FS
|
||||
~DRM_KMS_HELPER
|
||||
~SYSVIPC
|
||||
~!LOCKDEP
|
||||
~!PREEMPT_RT
|
||||
~!SLUB_DEBUG_ON
|
||||
!DEBUG_MUTEXES
|
||||
$(usev powerd '~CPU_FREQ')
|
||||
"
|
||||
|
||||
kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION &&
|
||||
CONFIG_CHECK+=" DRM_TTM_HELPER"
|
||||
|
||||
use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
|
||||
|
||||
use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
|
||||
|
||||
local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need
|
||||
selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or
|
||||
DRM_AMDGPU=m (among others, consult the kernel config's help), can
|
||||
also use DRM_NOUVEAU=m as long as built as module *not* built-in."
|
||||
local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection
|
||||
of drivers (no custom config), and for wayland / nvidia-drm.modeset=1.
|
||||
${drm_helper_msg}"
|
||||
local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using
|
||||
kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set.
|
||||
${drm_helper_msg}"
|
||||
local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open.
|
||||
Cannot be directly selected in the kernel's menuconfig, and may need
|
||||
selection of another option that requires it such as CONFIG_KVM."
|
||||
local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and
|
||||
will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is
|
||||
set. Please do not report issues if run into e.g. kernel panics while
|
||||
ignoring this."
|
||||
|
||||
linux-mod-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# make patches usable across versions
|
||||
rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
|
||||
rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
|
||||
rm nvidia-settings && mv nvidia-settings{-${PV},} || die
|
||||
rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
|
||||
mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
|
||||
|
||||
default
|
||||
|
||||
# prevent detection of incomplete kernel DRM support (bug #603818)
|
||||
sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
|
||||
-i kernel{,-module-source/kernel-open}/conftest.sh || die
|
||||
|
||||
sed 's/__USER__/nvpd/' \
|
||||
nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
|
||||
> "${T}"/nvidia-persistenced.service || die
|
||||
|
||||
# use alternative vulkan icd option if USE=-X (bug #909181)
|
||||
use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
|
||||
|
||||
# enable nvidia-drm.modeset=1 by default with USE=wayland
|
||||
cp "${FILESDIR}"/nvidia-545.conf "${T}"/nvidia.conf || die
|
||||
use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
|
||||
|
||||
# makefile attempts to install wayland library even if not built
|
||||
use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
|
||||
nvidia-settings/src/Makefile || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
PREFIX="${EPREFIX}"/usr
|
||||
HOST_CC="$(tc-getBUILD_CC)"
|
||||
HOST_LD="$(tc-getBUILD_LD)"
|
||||
BUILD_GTK2LIB=
|
||||
NV_USE_BUNDLED_LIBJANSSON=0
|
||||
NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
|
||||
WAYLAND_AVAILABLE=$(usex wayland 1 0)
|
||||
XNVCTRL_CFLAGS="${xnvflags}"
|
||||
)
|
||||
|
||||
if use modules; then
|
||||
local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
|
||||
|
||||
# conftest.sh is broken with c23 due to func() changing meaning,
|
||||
# and then fails later due to ealier misdetections
|
||||
# TODO: try without now and then + drop modargs' CC= (bug #944092)
|
||||
KERNEL_CC+=" -std=gnu17"
|
||||
|
||||
local modlistargs=video:kernel
|
||||
if use kernel-open; then
|
||||
modlistargs+=-module-source:kernel-module-source/kernel-open
|
||||
|
||||
# environment flags are normally unused for modules, but nvidia
|
||||
# uses it for building the "blob" and it is a bit fragile
|
||||
filter-flags -fno-plt #912949
|
||||
filter-lto
|
||||
CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags
|
||||
fi
|
||||
|
||||
local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
|
||||
local modargs=(
|
||||
CC="${KERNEL_CC}" # needed for above gnu17 workaround
|
||||
IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
|
||||
SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
|
||||
|
||||
# kernel takes "x86" and "x86_64" as meaning the same, but nvidia
|
||||
# makes the distinction (since 550.135) and is not happy with "x86"
|
||||
# TODO?: it should be ok/better for tc-arch-kernel to do x86_64
|
||||
$(usev amd64 ARCH=x86_64)
|
||||
)
|
||||
|
||||
# temporary workaround for bug #914468
|
||||
addpredict "${KV_OUT_DIR}"
|
||||
|
||||
linux-mod-r1_src_compile
|
||||
CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags}
|
||||
fi
|
||||
|
||||
emake "${NV_ARGS[@]}" -C nvidia-modprobe
|
||||
use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
|
||||
use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
|
||||
|
||||
if use tools; then
|
||||
# avoid noisy *very* noisy logs with deprecation warnings
|
||||
CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
|
||||
emake "${NV_ARGS[@]}" -C nvidia-settings
|
||||
elif use static-libs; then
|
||||
# pretend GTK+3 is available, not actually used (bug #880879)
|
||||
emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \
|
||||
-C nvidia-settings/src out/libXNVCtrl.a
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
|
||||
|
||||
NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
|
||||
|
||||
local -A paths=(
|
||||
[APPLICATION_PROFILE]=/usr/share/nvidia
|
||||
[CUDA_ICD]=/etc/OpenCL/vendors
|
||||
[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
|
||||
[FIRMWARE]=/lib/firmware/nvidia/${PV}
|
||||
[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
|
||||
[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
|
||||
[OPENGL_DATA]=/usr/share/nvidia
|
||||
[VULKAN_ICD_JSON]=/usr/share/vulkan
|
||||
[WINE_LIB]=/usr/${libdir}/nvidia/wine
|
||||
[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
|
||||
|
||||
[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
|
||||
[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
|
||||
[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
|
||||
)
|
||||
|
||||
local skip_files=(
|
||||
$(usev !X "libGLX_nvidia libglxserver_nvidia")
|
||||
libGLX_indirect # non-glvnd unused fallback
|
||||
libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
|
||||
libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
|
||||
libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
|
||||
libnvidia-pkcs11.so # using the openssl3 version instead
|
||||
)
|
||||
local skip_modules=(
|
||||
$(usev !X "nvfbc vdpau xdriver")
|
||||
$(usev !modules gsp)
|
||||
$(usev !powerd powerd)
|
||||
installer nvpd # handled separately / built from source
|
||||
)
|
||||
local skip_types=(
|
||||
GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
|
||||
OPENCL_WRAPPER.\* # virtual/opencl
|
||||
DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused
|
||||
)
|
||||
|
||||
local DOCS=(
|
||||
README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
|
||||
nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
|
||||
)
|
||||
local HTML_DOCS=( html/. )
|
||||
einstalldocs
|
||||
|
||||
local DISABLE_AUTOFORMATTING=yes
|
||||
local DOC_CONTENTS="\
|
||||
Trusted users should be in the 'video' group to use NVIDIA devices.
|
||||
You can add yourself by using: gpasswd -a my-user video\
|
||||
$(usev modules "
|
||||
|
||||
Like all out-of-tree kernel modules, it is necessary to rebuild
|
||||
${PN} after upgrading or rebuilding the Linux kernel
|
||||
by for example running \`emerge @module-rebuild\`. Alternatively,
|
||||
if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
|
||||
this can be automated by setting USE=dist-kernel globally.
|
||||
|
||||
Loaded kernel modules also must not mismatch with the installed
|
||||
${PN} version (excluding -r revision), meaning should
|
||||
ensure \`eselect kernel list\` points to the kernel that will be
|
||||
booted before building and preferably reboot after upgrading
|
||||
${PN} (the ebuild will emit a warning if mismatching).
|
||||
|
||||
See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
|
||||
$(use amd64 && usev !abi_x86_32 "
|
||||
|
||||
Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
(typically using wine / steam) will not be able to use GPU acceleration.")
|
||||
|
||||
For additional information or for troubleshooting issues, please see
|
||||
https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own
|
||||
documentation that is installed alongside this README."
|
||||
readme.gentoo_create_doc
|
||||
|
||||
if use modules; then
|
||||
linux-mod-r1_src_install
|
||||
|
||||
insinto /etc/modprobe.d
|
||||
doins "${T}"/nvidia.conf
|
||||
|
||||
# used for gpu verification with binpkgs (not kept, see pkg_preinst)
|
||||
insinto /usr/share/nvidia
|
||||
doins supported-gpus/supported-gpus.json
|
||||
fi
|
||||
|
||||
emake "${NV_ARGS[@]}" -C nvidia-modprobe install
|
||||
fowners :video /usr/bin/nvidia-modprobe #505092
|
||||
fperms 4710 /usr/bin/nvidia-modprobe
|
||||
|
||||
if use persistenced; then
|
||||
emake "${NV_ARGS[@]}" -C nvidia-persistenced install
|
||||
newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
|
||||
newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
|
||||
systemd_dounit "${T}"/nvidia-persistenced.service
|
||||
fi
|
||||
|
||||
if use tools; then
|
||||
emake "${NV_ARGS[@]}" -C nvidia-settings install
|
||||
|
||||
doicon nvidia-settings/doc/nvidia-settings.png
|
||||
domenu nvidia-settings/doc/nvidia-settings.desktop
|
||||
|
||||
exeinto /etc/X11/xinit/xinitrc.d
|
||||
newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
|
||||
fi
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
fi
|
||||
|
||||
use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
|
||||
|
||||
# mimic nvidia-installer by reading .manifest to install files
|
||||
# 0:file 1:perms 2:type 3+:subtype/arguments -:module
|
||||
local m into
|
||||
while IFS=' ' read -ra m; do
|
||||
! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
|
||||
[[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] ||
|
||||
[[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
|
||||
has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
|
||||
|
||||
case ${m[2]} in
|
||||
MANPAGE)
|
||||
gzip -dc ${m[0]} | newman - ${m[0]%.gz}
|
||||
pipestatus || die
|
||||
continue
|
||||
;;
|
||||
GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
|
||||
VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
|
||||
esac
|
||||
|
||||
if [[ -v 'paths[${m[2]}]' ]]; then
|
||||
into=${paths[${m[2]}]}
|
||||
elif [[ ${m[2]} == EXPLICIT_PATH ]]; then
|
||||
into=${m[3]}
|
||||
elif [[ ${m[2]} == *_BINARY ]]; then
|
||||
into=/usr/bin
|
||||
elif [[ ${m[3]} == COMPAT32 ]]; then
|
||||
use abi_x86_32 || continue
|
||||
into=/usr/${libdir32}
|
||||
elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then
|
||||
into=/usr/${libdir}
|
||||
else
|
||||
die "No known installation path for ${m[0]}"
|
||||
fi
|
||||
[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
|
||||
[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
|
||||
|
||||
if [[ ${m[2]} =~ _SYMLINK$ ]]; then
|
||||
[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
|
||||
dosym ${m[4]} ${into}/${m[0]}
|
||||
continue
|
||||
fi
|
||||
[[ ${m[0]} =~ ^libnvidia-ngx.so|^libnvidia-egl-gbm.so ]] &&
|
||||
dosym ${m[0]} ${into}/${m[0]%.so*}.so.1 # soname not in .manifest
|
||||
|
||||
printf -v m[1] %o $((m[1] | 0200)) # 444->644
|
||||
insopts -m${m[1]}
|
||||
insinto ${into}
|
||||
doins ${m[0]}
|
||||
done < .manifest || die
|
||||
insopts -m0644 # reset
|
||||
|
||||
# MODULE:installer non-skipped extras
|
||||
: "$(systemd_get_sleepdir)"
|
||||
exeinto "${_#"${EPREFIX}"}"
|
||||
doexe systemd/system-sleep/nvidia
|
||||
dobin systemd/nvidia-sleep.sh
|
||||
systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend}.service
|
||||
|
||||
dobin nvidia-bug-report.sh
|
||||
|
||||
# MODULE:powerd extras
|
||||
if use powerd; then
|
||||
newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
|
||||
systemd_dounit systemd/system/nvidia-powerd.service
|
||||
|
||||
insinto /usr/share/dbus-1/system.d
|
||||
doins nvidia-dbus.conf
|
||||
fi
|
||||
|
||||
# enabling is needed for sleep to work properly and little reason not to do
|
||||
# it unconditionally for a better user experience
|
||||
: "$(systemd_get_systemunitdir)"
|
||||
local unitdir=${_#"${EPREFIX}"}
|
||||
# not using relative symlinks to match systemd's own links
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service
|
||||
# also add a custom elogind hook to do the equivalent of the above
|
||||
exeinto /usr/lib/elogind/system-sleep
|
||||
newexe "${FILESDIR}"/system-sleep.elogind nvidia
|
||||
# <elogind-255.5 used a different path (bug #939216), keep a compat symlink
|
||||
# TODO: cleanup after 255.5 been stable for a few months
|
||||
dosym {/usr/lib,/"${libdir}"}/elogind/system-sleep/nvidia
|
||||
|
||||
# needed with >=systemd-256 or may fail to resume with some setups
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722
|
||||
insinto "${unitdir}"/systemd-homed.service.d
|
||||
newins - 10-nvidia.conf <<-EOF
|
||||
[Service]
|
||||
Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false
|
||||
EOF
|
||||
insinto "${unitdir}"/systemd-suspend.service.d
|
||||
newins - 10-nvidia.conf <<-EOF
|
||||
[Service]
|
||||
Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false
|
||||
EOF
|
||||
dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf
|
||||
dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf
|
||||
dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf
|
||||
|
||||
# symlink non-versioned so nvidia-settings can use it even if misdetected
|
||||
dosym nvidia-application-profiles-${PV}-key-documentation \
|
||||
${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
|
||||
|
||||
# don't attempt to strip firmware files (silences errors)
|
||||
dostrip -x ${paths[FIRMWARE]}
|
||||
|
||||
# sandbox issues with /dev/nvidiactl and others (bug #904292,#921578)
|
||||
# are widespread and sometime affect revdeps of packages built with
|
||||
# USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
|
||||
# ebuilds should handle manually if need others or addwrite)
|
||||
insinto /etc/sandbox.d
|
||||
newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"'
|
||||
|
||||
# dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure
|
||||
# our settings are used for bug 932781#c8 and nouveau blacklist if either
|
||||
# modules are included (however, just best-effort without initramfs regen)
|
||||
if use modules; then
|
||||
echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \
|
||||
"${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN=
|
||||
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
|
||||
|
||||
use modules || return
|
||||
|
||||
# set video group id based on live system (bug #491414)
|
||||
local g=$(egetent group video | cut -d: -f3)
|
||||
[[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')"
|
||||
sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
|
||||
|
||||
# try to find driver mismatches using temporary supported-gpus.json
|
||||
for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
|
||||
g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
|
||||
"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
|
||||
if [[ ${g} ]]; then
|
||||
g=$((${g##*\"}+1))
|
||||
if ver_test -ge ${g}; then
|
||||
NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
linux-mod-r1_pkg_postinst
|
||||
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if [[ -r /proc/driver/nvidia/version &&
|
||||
$(</proc/driver/nvidia/version) != *" ${PV} "* ]]; then
|
||||
ewarn "Currently loaded NVIDIA modules do not match the newly installed"
|
||||
ewarn "libraries and may prevent launching GPU-accelerated applications."
|
||||
if use modules; then
|
||||
ewarn "Easiest way to fix this is normally to reboot. If still run into issues"
|
||||
ewarn "(e.g. API mismatch messages in the \`dmesg\` output), please verify"
|
||||
ewarn "that the running kernel is ${KV_FULL} and that (if used) the"
|
||||
ewarn "initramfs does not include NVIDIA modules (or at least, not old ones)."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
|
||||
ewarn "Detected that the current kernel command line is using 'slub_debug=',"
|
||||
ewarn "this may lead to system instability/freezes with this version of"
|
||||
ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
|
||||
fi
|
||||
|
||||
if [[ -v NV_LEGACY_MASK ]]; then
|
||||
ewarn
|
||||
ewarn "***WARNING***"
|
||||
ewarn
|
||||
ewarn "You are installing a version of ${PN} known not to work"
|
||||
ewarn "with a GPU of the current system. If unwanted, add the mask:"
|
||||
if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
|
||||
ewarn " echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
|
||||
else
|
||||
ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
|
||||
fi
|
||||
ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions"
|
||||
ewarn "are available or fully functional, may need to consider nouveau[2])."
|
||||
ewarn "[1] https://www.nvidia.com/object/IO_32667.html"
|
||||
ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau"
|
||||
fi
|
||||
|
||||
if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then
|
||||
ewarn
|
||||
ewarn "Open source variant of ${PN} was selected, be warned it is experimental"
|
||||
ewarn "and only for modern GPUs (e.g. GTX 1650+). Try to disable if run into issues."
|
||||
ewarn "Please also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
|
||||
fi
|
||||
|
||||
if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
|
||||
elog
|
||||
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
|
||||
elog "experimental but is required for wayland."
|
||||
elog
|
||||
elog "If you experience issues, either disable wayland or edit nvidia.conf."
|
||||
elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
|
||||
fi
|
||||
}
|
@ -4,8 +4,8 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus flag-o-matic linux-mod-r1 readme.gentoo-r1
|
||||
inherit systemd toolchain-funcs unpacker user-info
|
||||
inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.14
|
||||
NV_URI="https://download.nvidia.com/XFree86/"
|
||||
@ -22,7 +22,7 @@ SRC_URI="
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
LICENSE="NVIDIA-2023 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* amd64 ~arm64"
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
@ -172,8 +172,8 @@ src_prepare() {
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -352,6 +352,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
@ -4,11 +4,11 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.14
|
||||
NV_PIN=570.133.07
|
||||
NV_PIN=570.153.02
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
||||
HOMEPAGE="https://developer.nvidia.com/vulkan-driver"
|
||||
@ -23,7 +23,7 @@ SRC_URI="
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
LICENSE="NVIDIA-2023 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/vulkan"
|
||||
KEYWORDS="-* ~amd64"
|
||||
# note: kernel-open is an upstream default in >=560 if all GPUs on the system
|
||||
@ -181,8 +181,8 @@ src_prepare() {
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -329,7 +329,7 @@ Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
|
||||
Be warned that USE=kernel-open may need to be either enabled or
|
||||
disabled for certain cards to function:
|
||||
- GTX 50xx (blackwell) and higher are known to require it to be enabled
|
||||
- GTX 50xx (blackwell) and higher require it to be enabled
|
||||
- GTX 1650 and higher (pre-blackwell) should work either way
|
||||
- Older cards require it to be disabled
|
||||
|
||||
@ -372,6 +372,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
@ -4,7 +4,7 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.14
|
||||
@ -22,7 +22,7 @@ SRC_URI="
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
LICENSE="NVIDIA-2023 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* amd64 ~arm64"
|
||||
# note: kernel-open is an upstream default in >=560 if all GPUs on the system
|
||||
@ -180,8 +180,8 @@ src_prepare() {
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -328,7 +328,7 @@ Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
|
||||
Be warned that USE=kernel-open may need to be either enabled or
|
||||
disabled for certain cards to function:
|
||||
- GTX 50xx (blackwell) and higher are known to require it to be enabled
|
||||
- GTX 50xx (blackwell) and higher require it to be enabled
|
||||
- GTX 1650 and higher (pre-blackwell) should work either way
|
||||
- Older cards require it to be disabled
|
||||
|
||||
@ -371,6 +371,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
@ -4,10 +4,10 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.14
|
||||
MODULES_KERNEL_MAX=6.15
|
||||
NV_URI="https://download.nvidia.com/XFree86/"
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
||||
@ -22,11 +22,12 @@ SRC_URI="
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
LICENSE="NVIDIA-2023 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* amd64 ~arm64"
|
||||
# note: kernel-open is an upstream default in >=560 if all GPUs on the system
|
||||
# support it but, since no automagic here, keeping it off for the wider support
|
||||
# TODO: enable kernel-open by default to match nvidia upstream, but should
|
||||
# first setup a supported-gpus.json "kernelopen" check to abort and avoid bad
|
||||
# surprises (should abort for legacy cards too, and have a bypass variable)
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
REQUIRED_USE="kernel-open? ( modules )"
|
||||
|
||||
@ -95,6 +96,7 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*"
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
|
||||
"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
|
||||
"${FILESDIR}"/nvidia-drivers-570.153.02-kernel-6.15.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
@ -180,8 +182,8 @@ src_prepare() {
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -198,11 +200,6 @@ src_compile() {
|
||||
if use modules; then
|
||||
local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
|
||||
|
||||
# conftest.sh is broken with c23 due to func() changing meaning,
|
||||
# and then fails later due to ealier misdetections
|
||||
# TODO: try without now and then + drop modargs' CC= (bug #944092)
|
||||
KERNEL_CC+=" -std=gnu17"
|
||||
|
||||
local modlistargs=video:kernel
|
||||
if use kernel-open; then
|
||||
modlistargs+=-module-source:kernel-module-source/kernel-open
|
||||
@ -218,7 +215,6 @@ src_compile() {
|
||||
|
||||
local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
|
||||
local modargs=(
|
||||
CC="${KERNEL_CC}" # needed for above gnu17 workaround
|
||||
IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
|
||||
SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
|
||||
|
||||
@ -328,7 +324,7 @@ Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
|
||||
Be warned that USE=kernel-open may need to be either enabled or
|
||||
disabled for certain cards to function:
|
||||
- GTX 50xx (blackwell) and higher are known to require it to be enabled
|
||||
- GTX 50xx (blackwell) and higher require it to be enabled
|
||||
- GTX 1650 and higher (pre-blackwell) should work either way
|
||||
- Older cards require it to be disabled
|
||||
|
||||
@ -371,6 +367,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
@ -520,7 +517,6 @@ pkg_preinst() {
|
||||
sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
|
||||
|
||||
# try to find driver mismatches using temporary supported-gpus.json
|
||||
# TODO?: automatically check "kernelopen" bit for USE=kernel-open compat
|
||||
for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
|
||||
g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
|
||||
"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
|
||||
@ -584,18 +580,8 @@ pkg_postinst() {
|
||||
|
||||
if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
|
||||
elog
|
||||
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
|
||||
elog "experimental but is required for wayland."
|
||||
elog
|
||||
elog "If you experience issues, either disable wayland or edit nvidia.conf."
|
||||
elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
|
||||
fi
|
||||
|
||||
if use !kernel-open && ver_replacing -lt 555; then
|
||||
elog
|
||||
elog "If using a Turing/Ampere+ GPU (aka GTX 1650+), note that >=nvidia-drivers-555"
|
||||
elog "enables the use of the GSP firmware by default. *If* experience regressions,"
|
||||
elog "please see '${EROOT}/etc/modprobe.d/nvidia.conf' to optionally disable."
|
||||
elog "Note that with USE=wayland, nvidia-drm.modeset=1 will be enabled"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues,"
|
||||
elog "either disable wayland or edit nvidia.conf."
|
||||
fi
|
||||
}
|
@ -4,10 +4,10 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.14
|
||||
MODULES_KERNEL_MAX=6.15
|
||||
NV_URI="https://download.nvidia.com/XFree86/"
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
||||
@ -22,11 +22,12 @@ SRC_URI="
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="NVIDIA-r2 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
LICENSE="NVIDIA-2025 Apache-2.0 BSD BSD-2 GPL-2 MIT ZLIB curl openssl"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* amd64 ~arm64"
|
||||
# note: kernel-open is an upstream default in >=560 if all GPUs on the system
|
||||
# support it but, since no automagic here, keeping it off for the wider support
|
||||
KEYWORDS="-* ~amd64 ~arm64"
|
||||
# TODO: enable kernel-open by default to match nvidia upstream, but should
|
||||
# first setup a supported-gpus.json "kernelopen" check to abort and avoid bad
|
||||
# surprises (should abort for legacy cards too, and have a bypass variable)
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
REQUIRED_USE="kernel-open? ( modules )"
|
||||
|
||||
@ -180,8 +181,8 @@ src_prepare() {
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -198,11 +199,6 @@ src_compile() {
|
||||
if use modules; then
|
||||
local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
|
||||
|
||||
# conftest.sh is broken with c23 due to func() changing meaning,
|
||||
# and then fails later due to ealier misdetections
|
||||
# TODO: try without now and then + drop modargs' CC= (bug #944092)
|
||||
KERNEL_CC+=" -std=gnu17"
|
||||
|
||||
local modlistargs=video:kernel
|
||||
if use kernel-open; then
|
||||
modlistargs+=-module-source:kernel-module-source/kernel-open
|
||||
@ -218,7 +214,6 @@ src_compile() {
|
||||
|
||||
local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
|
||||
local modargs=(
|
||||
CC="${KERNEL_CC}" # needed for above gnu17 workaround
|
||||
IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
|
||||
SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
|
||||
|
||||
@ -328,7 +323,7 @@ Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
|
||||
Be warned that USE=kernel-open may need to be either enabled or
|
||||
disabled for certain cards to function:
|
||||
- GTX 50xx (blackwell) and higher are known to require it to be enabled
|
||||
- GTX 50xx (blackwell) and higher require it to be enabled
|
||||
- GTX 1650 and higher (pre-blackwell) should work either way
|
||||
- Older cards require it to be disabled
|
||||
|
||||
@ -371,6 +366,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
@ -520,7 +516,6 @@ pkg_preinst() {
|
||||
sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
|
||||
|
||||
# try to find driver mismatches using temporary supported-gpus.json
|
||||
# TODO?: automatically check "kernelopen" bit for USE=kernel-open compat
|
||||
for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
|
||||
g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
|
||||
"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
|
||||
@ -584,18 +579,8 @@ pkg_postinst() {
|
||||
|
||||
if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
|
||||
elog
|
||||
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
|
||||
elog "experimental but is required for wayland."
|
||||
elog
|
||||
elog "If you experience issues, either disable wayland or edit nvidia.conf."
|
||||
elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
|
||||
fi
|
||||
|
||||
if use !kernel-open && ver_replacing -lt 555; then
|
||||
elog
|
||||
elog "If using a Turing/Ampere+ GPU (aka GTX 1650+), note that >=nvidia-drivers-555"
|
||||
elog "enables the use of the GSP firmware by default. *If* experience regressions,"
|
||||
elog "please see '${EROOT}/etc/modprobe.d/nvidia.conf' to optionally disable."
|
||||
elog "Note that with USE=wayland, nvidia-drm.modeset=1 will be enabled"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues,"
|
||||
elog "either disable wayland or edit nvidia.conf."
|
||||
fi
|
||||
}
|
@ -4,10 +4,10 @@
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit desktop dot-a eapi9-pipestatus eapi9-ver flag-o-matic linux-mod-r1
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.14
|
||||
MODULES_KERNEL_MAX=6.15
|
||||
NV_URI="https://download.nvidia.com/XFree86/"
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
||||
@ -23,14 +23,14 @@ SRC_URI="
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="
|
||||
NVIDIA-r2 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB
|
||||
NVIDIA-2023 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB
|
||||
curl openssl public-domain
|
||||
"
|
||||
SLOT="0/${PV%%.*}"
|
||||
# unkeyworded due to being a beta, feel free to opt-in
|
||||
#KEYWORDS="-* ~amd64 ~arm64"
|
||||
# note: kernel-open is an upstream default in >=560 if all GPUs on the system
|
||||
# support it but, since no automagic here, keeping it off for the wider support
|
||||
KEYWORDS="-* ~amd64 ~arm64"
|
||||
# TODO: enable kernel-open by default to match nvidia upstream, but should
|
||||
# first setup a supported-gpus.json "kernelopen" check to abort and avoid bad
|
||||
# surprises (should abort for legacy cards too, and have a bypass variable)
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
REQUIRED_USE="kernel-open? ( modules )"
|
||||
|
||||
@ -100,6 +100,7 @@ QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*"
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
|
||||
"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
|
||||
"${FILESDIR}"/nvidia-drivers-570.153.02-kernel-6.15.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
@ -185,8 +186,8 @@ src_prepare() {
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
# lto static libraries tend to cause problems without fat objects
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
@ -203,11 +204,6 @@ src_compile() {
|
||||
if use modules; then
|
||||
local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
|
||||
|
||||
# conftest.sh is broken with c23 due to func() changing meaning,
|
||||
# and then fails later due to ealier misdetections
|
||||
# TODO: try without now and then + drop modargs' CC= (bug #944092)
|
||||
KERNEL_CC+=" -std=gnu17"
|
||||
|
||||
local modlistargs=video:kernel
|
||||
if use kernel-open; then
|
||||
modlistargs+=-module-source:kernel-module-source/kernel-open
|
||||
@ -223,7 +219,6 @@ src_compile() {
|
||||
|
||||
local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
|
||||
local modargs=(
|
||||
CC="${KERNEL_CC}" # needed for above gnu17 workaround
|
||||
IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
|
||||
SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
|
||||
|
||||
@ -333,7 +328,7 @@ Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
|
||||
Be warned that USE=kernel-open may need to be either enabled or
|
||||
disabled for certain cards to function:
|
||||
- GTX 50xx (blackwell) and higher are known to require it to be enabled
|
||||
- GTX 50xx (blackwell) and higher require it to be enabled
|
||||
- GTX 1650 and higher (pre-blackwell) should work either way
|
||||
- Older cards require it to be disabled
|
||||
|
||||
@ -376,6 +371,7 @@ documentation that is installed alongside this README."
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
@ -525,7 +521,6 @@ pkg_preinst() {
|
||||
sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
|
||||
|
||||
# try to find driver mismatches using temporary supported-gpus.json
|
||||
# TODO?: automatically check "kernelopen" bit for USE=kernel-open compat
|
||||
for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
|
||||
g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
|
||||
"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
|
||||
@ -589,18 +584,22 @@ pkg_postinst() {
|
||||
|
||||
if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
|
||||
elog
|
||||
elog "With USE=wayland, this version of ${PN} sets nvidia-drm.modeset=1"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. This feature is considered"
|
||||
elog "experimental but is required for wayland."
|
||||
elog
|
||||
elog "If you experience issues, either disable wayland or edit nvidia.conf."
|
||||
elog "Of note, may possibly cause issues with SLI and Reverse PRIME."
|
||||
elog "Note that with USE=wayland, nvidia-drm.modeset=1 will be enabled"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues,"
|
||||
elog "either disable wayland or edit nvidia.conf."
|
||||
fi
|
||||
|
||||
if use !kernel-open && ver_replacing -lt 555; then
|
||||
elog
|
||||
elog "If using a Turing/Ampere+ GPU (aka GTX 1650+), note that >=nvidia-drivers-555"
|
||||
elog "enables the use of the GSP firmware by default. *If* experience regressions,"
|
||||
elog "please see '${EROOT}/etc/modprobe.d/nvidia.conf' to optionally disable."
|
||||
[[ ${PV} == 575.57.08 ]] || die "TODO: recheck intel+nvidia status & cleanup"
|
||||
if use kernel-open && ver_replacing -lt 575; then
|
||||
ewarn
|
||||
ewarn "WARNING:"
|
||||
ewarn
|
||||
ewarn "*If* using a hybrid Intel+NVIDIA laptop, be warned that users have"
|
||||
ewarn "reported that the GSP firmware could fail to initialize (for some"
|
||||
ewarn "setups) when USE=kernel-open is enabled with ${PN}-575.x."
|
||||
ewarn "*If* X/wayland fails to come up and boot messages have GSP errors,"
|
||||
ewarn "try to either disable USE=kernel-open or stay on ${PN}-570.x"
|
||||
ewarn "for now. Note that blackwell cards (aka 50xx+) require USE=kernel-open,"
|
||||
ewarn "so downgrading will be the only option there for now."
|
||||
fi
|
||||
}
|
590
sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-575.64.ebuild
vendored
Normal file
590
sdk_container/src/third_party/portage-stable/x11-drivers/nvidia-drivers/nvidia-drivers-575.64.ebuild
vendored
Normal file
@ -0,0 +1,590 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
MODULES_OPTIONAL_IUSE=+modules
|
||||
inherit desktop dot-a eapi9-pipestatus flag-o-matic linux-mod-r1
|
||||
inherit readme.gentoo-r1 systemd toolchain-funcs unpacker user-info
|
||||
|
||||
MODULES_KERNEL_MAX=6.15
|
||||
NV_URI="https://download.nvidia.com/XFree86/"
|
||||
|
||||
DESCRIPTION="NVIDIA Accelerated Graphics Driver"
|
||||
HOMEPAGE="https://www.nvidia.com/"
|
||||
SRC_URI="
|
||||
amd64? ( ${NV_URI}Linux-x86_64/${PV}/NVIDIA-Linux-x86_64-${PV}.run )
|
||||
arm64? ( ${NV_URI}Linux-aarch64/${PV}/NVIDIA-Linux-aarch64-${PV}.run )
|
||||
$(printf "${NV_URI}%s/%s-${PV}.tar.bz2 " \
|
||||
nvidia-{installer,modprobe,persistenced,settings,xconfig}{,})
|
||||
${NV_URI}NVIDIA-kernel-module-source/NVIDIA-kernel-module-source-${PV}.tar.xz
|
||||
"
|
||||
# nvidia-installer is unused but here for GPL-2's "distribute sources"
|
||||
S=${WORKDIR}
|
||||
|
||||
LICENSE="
|
||||
NVIDIA-2025 Apache-2.0 Boost-1.0 BSD BSD-2 GPL-2 MIT ZLIB
|
||||
curl openssl public-domain
|
||||
"
|
||||
SLOT="0/${PV%%.*}"
|
||||
KEYWORDS="-* ~amd64 ~arm64"
|
||||
# TODO: enable kernel-open by default to match nvidia upstream, but should
|
||||
# first setup a supported-gpus.json "kernelopen" check to abort and avoid bad
|
||||
# surprises (should abort for legacy cards too, and have a bypass variable)
|
||||
IUSE="+X abi_x86_32 abi_x86_64 kernel-open persistenced powerd +static-libs +tools wayland"
|
||||
REQUIRED_USE="kernel-open? ( modules )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
acct-group/video
|
||||
X? ( x11-libs/libpciaccess )
|
||||
persistenced? (
|
||||
acct-user/nvpd
|
||||
net-libs/libtirpc:=
|
||||
)
|
||||
tools? (
|
||||
>=app-accessibility/at-spi2-core-2.46:2
|
||||
dev-libs/glib:2
|
||||
dev-libs/jansson:=
|
||||
media-libs/harfbuzz:=
|
||||
x11-libs/cairo
|
||||
x11-libs/gdk-pixbuf:2
|
||||
x11-libs/gtk+:3[X]
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
x11-libs/libXxf86vm
|
||||
x11-libs/pango
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${COMMON_DEPEND}
|
||||
dev-libs/openssl:0/3
|
||||
sys-libs/glibc
|
||||
X? (
|
||||
media-libs/libglvnd[X,abi_x86_32(-)?]
|
||||
x11-libs/libX11[abi_x86_32(-)?]
|
||||
x11-libs/libXext[abi_x86_32(-)?]
|
||||
)
|
||||
powerd? ( sys-apps/dbus[abi_x86_32(-)?] )
|
||||
wayland? (
|
||||
>=gui-libs/egl-gbm-1.1.1-r2[abi_x86_32(-)?]
|
||||
>=gui-libs/egl-wayland-1.1.13.1[abi_x86_32(-)?]
|
||||
X? ( gui-libs/egl-x11[abi_x86_32(-)?] )
|
||||
)
|
||||
"
|
||||
DEPEND="
|
||||
${COMMON_DEPEND}
|
||||
static-libs? (
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libX11
|
||||
x11-libs/libXext
|
||||
)
|
||||
tools? (
|
||||
dev-util/vulkan-headers
|
||||
media-libs/libglvnd
|
||||
sys-apps/dbus
|
||||
x11-base/xorg-proto
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXv
|
||||
x11-libs/libvdpau
|
||||
)
|
||||
"
|
||||
BDEPEND="
|
||||
app-alternatives/awk
|
||||
sys-devel/m4
|
||||
virtual/pkgconfig
|
||||
"
|
||||
|
||||
# there is some non-prebuilt exceptions but rather not maintain a list
|
||||
QA_PREBUILT="lib/firmware/* usr/bin/* usr/lib*"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/nvidia-modprobe-390.141-uvm-perms.patch
|
||||
"${FILESDIR}"/nvidia-settings-530.30.02-desktop.patch
|
||||
)
|
||||
|
||||
pkg_setup() {
|
||||
use modules && [[ ${MERGE_TYPE} != binary ]] || return
|
||||
|
||||
# do early before linux-mod-r1 so can use chkconfig to setup CONFIG_CHECK
|
||||
get_version
|
||||
require_configured_kernel
|
||||
|
||||
local CONFIG_CHECK="
|
||||
PROC_FS
|
||||
~DRM_KMS_HELPER
|
||||
~DRM_FBDEV_EMULATION
|
||||
~SYSVIPC
|
||||
~!LOCKDEP
|
||||
~!PREEMPT_RT
|
||||
~!SLUB_DEBUG_ON
|
||||
!DEBUG_MUTEXES
|
||||
$(usev powerd '~CPU_FREQ')
|
||||
"
|
||||
|
||||
kernel_is -ge 6 11 && linux_chkconfig_present DRM_FBDEV_EMULATION &&
|
||||
CONFIG_CHECK+=" DRM_TTM_HELPER"
|
||||
|
||||
use amd64 && kernel_is -ge 5 8 && CONFIG_CHECK+=" X86_PAT" #817764
|
||||
|
||||
use kernel-open && CONFIG_CHECK+=" MMU_NOTIFIER" #843827
|
||||
|
||||
local drm_helper_msg="Cannot be directly selected in the kernel's config menus, and may need
|
||||
selection of a DRM device even if unused, e.g. CONFIG_DRM_QXL=m or
|
||||
DRM_AMDGPU=m (among others, consult the kernel config's help), can
|
||||
also use DRM_NOUVEAU=m as long as built as module *not* built-in."
|
||||
local ERROR_DRM_KMS_HELPER="CONFIG_DRM_KMS_HELPER: is not set but needed for Xorg auto-detection
|
||||
of drivers (no custom config), and for wayland / nvidia-drm.modeset=1.
|
||||
${drm_helper_msg}"
|
||||
local ERROR_DRM_TTM_HELPER="CONFIG_DRM_TTM_HELPER: is not set but is needed to compile when using
|
||||
kernel version 6.11.x or newer while DRM_FBDEV_EMULATION is set.
|
||||
${drm_helper_msg}"
|
||||
local ERROR_DRM_FBDEV_EMULATION="CONFIG_DRM_FBDEV_EMULATION: is not set but is needed for
|
||||
nvidia-drm.fbdev=1 support, currently off-by-default and it could
|
||||
be ignored, but note that is due to change in the future."
|
||||
local ERROR_MMU_NOTIFIER="CONFIG_MMU_NOTIFIER: is not set but needed to build with USE=kernel-open.
|
||||
Cannot be directly selected in the kernel's menuconfig, and may need
|
||||
selection of another option that requires it such as CONFIG_KVM."
|
||||
local ERROR_PREEMPT_RT="CONFIG_PREEMPT_RT: is set but is unsupported by NVIDIA upstream and
|
||||
will fail to build unless the env var IGNORE_PREEMPT_RT_PRESENCE=1 is
|
||||
set. Please do not report issues if run into e.g. kernel panics while
|
||||
ignoring this."
|
||||
|
||||
linux-mod-r1_pkg_setup
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# make patches usable across versions
|
||||
rm nvidia-modprobe && mv nvidia-modprobe{-${PV},} || die
|
||||
rm nvidia-persistenced && mv nvidia-persistenced{-${PV},} || die
|
||||
rm nvidia-settings && mv nvidia-settings{-${PV},} || die
|
||||
rm nvidia-xconfig && mv nvidia-xconfig{-${PV},} || die
|
||||
mv NVIDIA-kernel-module-source-${PV} kernel-module-source || die
|
||||
|
||||
default
|
||||
|
||||
# prevent detection of incomplete kernel DRM support (bug #603818)
|
||||
sed 's/defined(CONFIG_DRM/defined(CONFIG_DRM_KMS_HELPER/g' \
|
||||
-i kernel{,-module-source/kernel-open}/conftest.sh || die
|
||||
|
||||
sed 's/__USER__/nvpd/' \
|
||||
nvidia-persistenced/init/systemd/nvidia-persistenced.service.template \
|
||||
> "${T}"/nvidia-persistenced.service || die
|
||||
|
||||
# use alternative vulkan icd option if USE=-X (bug #909181)
|
||||
use X || sed -i 's/"libGLX/"libEGL/' nvidia_{layers,icd}.json || die
|
||||
|
||||
# enable nvidia-drm.modeset=1 by default with USE=wayland
|
||||
cp "${FILESDIR}"/nvidia-570.conf "${T}"/nvidia.conf || die
|
||||
use !wayland || sed -i '/^#.*modeset=1$/s/^#//' "${T}"/nvidia.conf || die
|
||||
|
||||
# makefile attempts to install wayland library even if not built
|
||||
use wayland || sed -i 's/ WAYLAND_LIB_install$//' \
|
||||
nvidia-settings/src/Makefile || die
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
tc-export AR CC CXX LD OBJCOPY OBJDUMP PKG_CONFIG
|
||||
|
||||
# extra flags for the libXNVCtrl.a static library
|
||||
local xnvflags=-fPIC #840389
|
||||
tc-is-lto && xnvflags+=" $(test-flags-CC -ffat-lto-objects)"
|
||||
|
||||
NV_ARGS=(
|
||||
PREFIX="${EPREFIX}"/usr
|
||||
HOST_CC="$(tc-getBUILD_CC)"
|
||||
HOST_LD="$(tc-getBUILD_LD)"
|
||||
BUILD_GTK2LIB=
|
||||
NV_USE_BUNDLED_LIBJANSSON=0
|
||||
NV_VERBOSE=1 DO_STRIP= MANPAGE_GZIP= OUTPUTDIR=out
|
||||
WAYLAND_AVAILABLE=$(usex wayland 1 0)
|
||||
XNVCTRL_CFLAGS="${xnvflags}"
|
||||
)
|
||||
|
||||
if use modules; then
|
||||
local o_cflags=${CFLAGS} o_cxxflags=${CXXFLAGS} o_ldflags=${LDFLAGS}
|
||||
|
||||
local modlistargs=video:kernel
|
||||
if use kernel-open; then
|
||||
modlistargs+=-module-source:kernel-module-source/kernel-open
|
||||
|
||||
# environment flags are normally unused for modules, but nvidia
|
||||
# uses it for building the "blob" and it is a bit fragile
|
||||
filter-flags -fno-plt #912949
|
||||
filter-lto
|
||||
CC=${KERNEL_CC} CXX=${KERNEL_CXX} strip-unsupported-flags
|
||||
|
||||
LDFLAGS=$(raw-ldflags)
|
||||
fi
|
||||
|
||||
local modlist=( nvidia{,-drm,-modeset,-peermem,-uvm}=${modlistargs} )
|
||||
local modargs=(
|
||||
IGNORE_CC_MISMATCH=yes NV_VERBOSE=1
|
||||
SYSOUT="${KV_OUT_DIR}" SYSSRC="${KV_DIR}"
|
||||
|
||||
# kernel takes "x86" and "x86_64" as meaning the same, but nvidia
|
||||
# makes the distinction (since 550.135) and is not happy with "x86"
|
||||
# TODO?: it should be ok/better for tc-arch-kernel to do x86_64
|
||||
$(usev amd64 ARCH=x86_64)
|
||||
)
|
||||
|
||||
# temporary workaround for bug #914468
|
||||
addpredict "${KV_OUT_DIR}"
|
||||
|
||||
linux-mod-r1_src_compile
|
||||
CFLAGS=${o_cflags} CXXFLAGS=${o_cxxflags} LDFLAGS=${o_ldflags}
|
||||
fi
|
||||
|
||||
emake "${NV_ARGS[@]}" -C nvidia-modprobe
|
||||
use persistenced && emake "${NV_ARGS[@]}" -C nvidia-persistenced
|
||||
use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig
|
||||
|
||||
if use tools; then
|
||||
# avoid noisy *very* noisy logs with deprecation warnings
|
||||
CFLAGS="-Wno-deprecated-declarations ${CFLAGS}" \
|
||||
emake "${NV_ARGS[@]}" -C nvidia-settings
|
||||
elif use static-libs; then
|
||||
# pretend GTK+3 is available, not actually used (bug #880879)
|
||||
emake "${NV_ARGS[@]}" BUILD_GTK3LIB=1 \
|
||||
-C nvidia-settings/src out/libXNVCtrl.a
|
||||
fi
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local libdir=$(get_libdir) libdir32=$(ABI=x86 get_libdir)
|
||||
|
||||
NV_ARGS+=( DESTDIR="${D}" LIBDIR="${ED}"/usr/${libdir} )
|
||||
|
||||
local -A paths=(
|
||||
[APPLICATION_PROFILE]=/usr/share/nvidia
|
||||
[CUDA_ICD]=/etc/OpenCL/vendors
|
||||
[EGL_EXTERNAL_PLATFORM_JSON]=/usr/share/egl/egl_external_platform.d
|
||||
[FIRMWARE]=/lib/firmware/nvidia/${PV}
|
||||
[GBM_BACKEND_LIB_SYMLINK]=/usr/${libdir}/gbm
|
||||
[GLVND_EGL_ICD_JSON]=/usr/share/glvnd/egl_vendor.d
|
||||
[OPENGL_DATA]=/usr/share/nvidia
|
||||
[VULKANSC_ICD_JSON]=/usr/share/vulkansc
|
||||
[VULKAN_ICD_JSON]=/usr/share/vulkan
|
||||
[WINE_LIB]=/usr/${libdir}/nvidia/wine
|
||||
[XORG_OUTPUTCLASS_CONFIG]=/usr/share/X11/xorg.conf.d
|
||||
|
||||
[GLX_MODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules/extensions
|
||||
[GLX_MODULE_SYMLINK]=/usr/${libdir}/xorg/modules
|
||||
[XMODULE_SHARED_LIB]=/usr/${libdir}/xorg/modules
|
||||
)
|
||||
|
||||
local skip_files=(
|
||||
$(usev !X "libGLX_nvidia libglxserver_nvidia")
|
||||
libGLX_indirect # non-glvnd unused fallback
|
||||
libnvidia-{gtk,wayland-client} nvidia-{settings,xconfig} # from source
|
||||
libnvidia-egl-gbm 15_nvidia_gbm # gui-libs/egl-gbm
|
||||
libnvidia-egl-wayland 10_nvidia_wayland # gui-libs/egl-wayland
|
||||
libnvidia-egl-xcb 20_nvidia_xcb.json # gui-libs/egl-x11
|
||||
libnvidia-egl-xlib 20_nvidia_xlib.json # gui-libs/egl-x11
|
||||
libnvidia-pkcs11.so # using the openssl3 version instead
|
||||
)
|
||||
local skip_modules=(
|
||||
$(usev !X "nvfbc vdpau xdriver")
|
||||
$(usev !modules gsp)
|
||||
$(usev !powerd nvtopps)
|
||||
installer nvpd # handled separately / built from source
|
||||
)
|
||||
local skip_types=(
|
||||
GLVND_LIB GLVND_SYMLINK EGL_CLIENT.\* GLX_CLIENT.\* # media-libs/libglvnd
|
||||
OPENCL_WRAPPER.\* # virtual/opencl
|
||||
DOCUMENTATION DOT_DESKTOP .\*_SRC DKMS_CONF SYSTEMD_UNIT # handled separately / unused
|
||||
)
|
||||
|
||||
local DOCS=(
|
||||
README.txt NVIDIA_Changelog supported-gpus/supported-gpus.json
|
||||
nvidia-settings/doc/{FRAMELOCK,NV-CONTROL-API}.txt
|
||||
)
|
||||
local HTML_DOCS=( html/. )
|
||||
einstalldocs
|
||||
|
||||
local DISABLE_AUTOFORMATTING=yes
|
||||
local DOC_CONTENTS="\
|
||||
Trusted users should be in the 'video' group to use NVIDIA devices.
|
||||
You can add yourself by using: gpasswd -a my-user video\
|
||||
$(usev modules "
|
||||
|
||||
Like all out-of-tree kernel modules, it is necessary to rebuild
|
||||
${PN} after upgrading or rebuilding the Linux kernel
|
||||
by for example running \`emerge @module-rebuild\`. Alternatively,
|
||||
if using a distribution kernel (sys-kernel/gentoo-kernel{,-bin}),
|
||||
this can be automated by setting USE=dist-kernel globally.
|
||||
|
||||
Loaded kernel modules also must not mismatch with the installed
|
||||
${PN} version (excluding -r revision), meaning should
|
||||
ensure \`eselect kernel list\` points to the kernel that will be
|
||||
booted before building and preferably reboot after upgrading
|
||||
${PN} (the ebuild will emit a warning if mismatching).
|
||||
|
||||
See '${EPREFIX}/etc/modprobe.d/nvidia.conf' for modules options.")\
|
||||
$(use amd64 && usev !abi_x86_32 "
|
||||
|
||||
Note that without USE=abi_x86_32 on ${PN}, 32bit applications
|
||||
(typically using wine / steam) will not be able to use GPU acceleration.")
|
||||
|
||||
Be warned that USE=kernel-open may need to be either enabled or
|
||||
disabled for certain cards to function:
|
||||
- GTX 50xx (blackwell) and higher require it to be enabled
|
||||
- GTX 1650 and higher (pre-blackwell) should work either way
|
||||
- Older cards require it to be disabled
|
||||
|
||||
For additional information or for troubleshooting issues, please see
|
||||
https://wiki.gentoo.org/wiki/NVIDIA/nvidia-drivers and NVIDIA's own
|
||||
documentation that is installed alongside this README."
|
||||
readme.gentoo_create_doc
|
||||
|
||||
if use modules; then
|
||||
linux-mod-r1_src_install
|
||||
|
||||
insinto /etc/modprobe.d
|
||||
doins "${T}"/nvidia.conf
|
||||
|
||||
# used for gpu verification with binpkgs (not kept, see pkg_preinst)
|
||||
insinto /usr/share/nvidia
|
||||
doins supported-gpus/supported-gpus.json
|
||||
fi
|
||||
|
||||
emake "${NV_ARGS[@]}" -C nvidia-modprobe install
|
||||
fowners :video /usr/bin/nvidia-modprobe #505092
|
||||
fperms 4710 /usr/bin/nvidia-modprobe
|
||||
|
||||
if use persistenced; then
|
||||
emake "${NV_ARGS[@]}" -C nvidia-persistenced install
|
||||
newconfd "${FILESDIR}"/nvidia-persistenced.confd nvidia-persistenced
|
||||
newinitd "${FILESDIR}"/nvidia-persistenced.initd nvidia-persistenced
|
||||
systemd_dounit "${T}"/nvidia-persistenced.service
|
||||
fi
|
||||
|
||||
if use tools; then
|
||||
emake "${NV_ARGS[@]}" -C nvidia-settings install
|
||||
|
||||
doicon nvidia-settings/doc/nvidia-settings.png
|
||||
domenu nvidia-settings/doc/nvidia-settings.desktop
|
||||
|
||||
exeinto /etc/X11/xinit/xinitrc.d
|
||||
newexe "${FILESDIR}"/95-nvidia-settings-r1 95-nvidia-settings
|
||||
fi
|
||||
|
||||
if use static-libs; then
|
||||
dolib.a nvidia-settings/src/out/libXNVCtrl.a
|
||||
strip-lto-bytecode
|
||||
|
||||
insinto /usr/include/NVCtrl
|
||||
doins nvidia-settings/src/libXNVCtrl/NVCtrl{Lib,}.h
|
||||
fi
|
||||
|
||||
use X && emake "${NV_ARGS[@]}" -C nvidia-xconfig install
|
||||
|
||||
# mimic nvidia-installer by reading .manifest to install files
|
||||
# 0:file 1:perms 2:type 3+:subtype/arguments -:module
|
||||
local m into
|
||||
while IFS=' ' read -ra m; do
|
||||
! [[ ${#m[@]} -ge 2 && ${m[-1]} =~ MODULE: ]] ||
|
||||
[[ " ${m[0]##*/}" =~ ^(\ ${skip_files[*]/%/.*|\\} )$ ]] ||
|
||||
[[ " ${m[2]}" =~ ^(\ ${skip_types[*]/%/|\\} )$ ]] ||
|
||||
has ${m[-1]#MODULE:} "${skip_modules[@]}" && continue
|
||||
|
||||
case ${m[2]} in
|
||||
MANPAGE)
|
||||
gzip -dc ${m[0]} | newman - ${m[0]%.gz}
|
||||
pipestatus || die
|
||||
continue
|
||||
;;
|
||||
GBM_BACKEND_LIB_SYMLINK) m[4]=../${m[4]};; # missing ../
|
||||
VDPAU_SYMLINK) m[4]=vdpau/; m[5]=${m[5]#vdpau/};; # .so to vdpau/
|
||||
esac
|
||||
|
||||
if [[ -v 'paths[${m[2]}]' ]]; then
|
||||
into=${paths[${m[2]}]}
|
||||
elif [[ ${m[2]} == EXPLICIT_PATH ]]; then
|
||||
into=${m[3]}
|
||||
elif [[ ${m[2]} == *_BINARY ]]; then
|
||||
into=/usr/bin
|
||||
elif [[ ${m[3]} == COMPAT32 ]]; then
|
||||
use abi_x86_32 || continue
|
||||
into=/usr/${libdir32}
|
||||
elif [[ ${m[2]} == *_@(LIB|SYMLINK) ]]; then
|
||||
into=/usr/${libdir}
|
||||
else
|
||||
die "No known installation path for ${m[0]}"
|
||||
fi
|
||||
[[ ${m[3]: -2} == ?/ ]] && into+=/${m[3]%/}
|
||||
[[ ${m[4]: -2} == ?/ ]] && into+=/${m[4]%/}
|
||||
|
||||
if [[ ${m[2]} =~ _SYMLINK$ ]]; then
|
||||
[[ ${m[4]: -1} == / ]] && m[4]=${m[5]}
|
||||
dosym ${m[4]} ${into}/${m[0]}
|
||||
continue
|
||||
fi
|
||||
# avoid portage warning due to missing soname links in manifest
|
||||
[[ ${m[0]} =~ ^libnvidia-ngx.so ]] &&
|
||||
dosym ${m[0]} ${into}/${m[0]%.so*}.so.1
|
||||
|
||||
printf -v m[1] %o $((m[1] | 0200)) # 444->644
|
||||
insopts -m${m[1]}
|
||||
insinto ${into}
|
||||
doins ${m[0]}
|
||||
done < .manifest || die
|
||||
insopts -m0644 # reset
|
||||
|
||||
# MODULE:installer non-skipped extras
|
||||
: "$(systemd_get_sleepdir)"
|
||||
exeinto "${_#"${EPREFIX}"}"
|
||||
doexe systemd/system-sleep/nvidia
|
||||
dobin systemd/nvidia-sleep.sh
|
||||
systemd_dounit systemd/system/nvidia-{hibernate,resume,suspend,suspend-then-hibernate}.service
|
||||
|
||||
dobin nvidia-bug-report.sh
|
||||
|
||||
insinto /usr/share/nvidia/files.d
|
||||
doins sandboxutils-filelist.json
|
||||
|
||||
# MODULE:powerd extras
|
||||
if use powerd; then
|
||||
newinitd "${FILESDIR}"/nvidia-powerd.initd nvidia-powerd #923117
|
||||
systemd_dounit systemd/system/nvidia-powerd.service
|
||||
|
||||
insinto /usr/share/dbus-1/system.d
|
||||
doins nvidia-dbus.conf
|
||||
fi
|
||||
|
||||
# enabling is needed for sleep to work properly and little reason not to do
|
||||
# it unconditionally for a better user experience
|
||||
: "$(systemd_get_systemunitdir)"
|
||||
local unitdir=${_#"${EPREFIX}"}
|
||||
# not using relative symlinks to match systemd's own links
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-hibernate.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-hibernate.service.wants}/nvidia-resume.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-suspend.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend.service.wants}/nvidia-resume.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-suspend-then-hibernate.service
|
||||
dosym {"${unitdir}",/etc/systemd/system/systemd-suspend-then-hibernate.service.wants}/nvidia-resume.service
|
||||
# also add a custom elogind hook to do the equivalent of the above
|
||||
exeinto /usr/lib/elogind/system-sleep
|
||||
newexe "${FILESDIR}"/system-sleep.elogind nvidia
|
||||
# <elogind-255.5 used a different path (bug #939216), keep a compat symlink
|
||||
# TODO: cleanup after 255.5 been stable for a few months
|
||||
dosym {/usr/lib,/"${libdir}"}/elogind/system-sleep/nvidia
|
||||
|
||||
# needed with >=systemd-256 or may fail to resume with some setups
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1072722
|
||||
insinto "${unitdir}"/systemd-homed.service.d
|
||||
newins - 10-nvidia.conf <<-EOF
|
||||
[Service]
|
||||
Environment=SYSTEMD_HOME_LOCK_FREEZE_SESSION=false
|
||||
EOF
|
||||
insinto "${unitdir}"/systemd-suspend.service.d
|
||||
newins - 10-nvidia.conf <<-EOF
|
||||
[Service]
|
||||
Environment=SYSTEMD_SLEEP_FREEZE_USER_SESSIONS=false
|
||||
EOF
|
||||
dosym -r "${unitdir}"/systemd-{suspend,hibernate}.service.d/10-nvidia.conf
|
||||
dosym -r "${unitdir}"/systemd-{suspend,hybrid-sleep}.service.d/10-nvidia.conf
|
||||
dosym -r "${unitdir}"/systemd-{suspend,suspend-then-hibernate}.service.d/10-nvidia.conf
|
||||
|
||||
# symlink non-versioned so nvidia-settings can use it even if misdetected
|
||||
dosym nvidia-application-profiles-${PV}-key-documentation \
|
||||
${paths[APPLICATION_PROFILE]}/nvidia-application-profiles-key-documentation
|
||||
|
||||
# don't attempt to strip firmware files (silences errors)
|
||||
dostrip -x ${paths[FIRMWARE]}
|
||||
|
||||
# sandbox issues with /dev/nvidiactl and others (bug #904292,#921578)
|
||||
# are widespread and sometime affect revdeps of packages built with
|
||||
# USE=opencl/cuda making it hard to manage in ebuilds (minimal set,
|
||||
# ebuilds should handle manually if need others or addwrite)
|
||||
insinto /etc/sandbox.d
|
||||
newins - 20nvidia <<<'SANDBOX_PREDICT="/dev/nvidiactl:/dev/nvidia-caps:/dev/char"'
|
||||
|
||||
# dracut does not use /etc/modprobe.d if hostonly=no, but want to make sure
|
||||
# our settings are used for bug 932781#c8 and nouveau blacklist if either
|
||||
# modules are included (however, just best-effort without initramfs regen)
|
||||
if use modules; then
|
||||
echo "install_items+=\" ${EPREFIX}/etc/modprobe.d/nvidia.conf \"" >> \
|
||||
"${ED}"/usr/lib/dracut/dracut.conf.d/10-${PN}.conf || die
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
has_version "${CATEGORY}/${PN}[kernel-open]" && NV_HAD_KERNEL_OPEN=
|
||||
has_version "${CATEGORY}/${PN}[wayland]" && NV_HAD_WAYLAND=
|
||||
|
||||
use modules || return
|
||||
|
||||
# set video group id based on live system (bug #491414)
|
||||
local g=$(egetent group video | cut -d: -f3)
|
||||
[[ ${g} =~ ^[0-9]+$ ]] || die "Failed to determine video group id (got '${g}')"
|
||||
sed -i "s/@VIDEOGID@/${g}/" "${ED}"/etc/modprobe.d/nvidia.conf || die
|
||||
|
||||
# try to find driver mismatches using temporary supported-gpus.json
|
||||
for g in $(grep -l 0x10de /sys/bus/pci/devices/*/vendor 2>/dev/null); do
|
||||
g=$(grep -io "\"devid\":\"$(<${g%vendor}device)\"[^}]*branch\":\"[0-9]*" \
|
||||
"${ED}"/usr/share/nvidia/supported-gpus.json 2>/dev/null)
|
||||
if [[ ${g} ]]; then
|
||||
g=$((${g##*\"}+1))
|
||||
if ver_test -ge ${g}; then
|
||||
NV_LEGACY_MASK=">=${CATEGORY}/${PN}-${g}"
|
||||
break
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm "${ED}"/usr/share/nvidia/supported-gpus.json || die
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
linux-mod-r1_pkg_postinst
|
||||
|
||||
readme.gentoo_print_elog
|
||||
|
||||
if [[ -r /proc/driver/nvidia/version &&
|
||||
$(</proc/driver/nvidia/version) != *" ${PV} "* ]]; then
|
||||
ewarn "Currently loaded NVIDIA modules do not match the newly installed"
|
||||
ewarn "libraries and may prevent launching GPU-accelerated applications."
|
||||
if use modules; then
|
||||
ewarn "Easiest way to fix this is normally to reboot. If still run into issues"
|
||||
ewarn "(e.g. API mismatch messages in the \`dmesg\` output), please verify"
|
||||
ewarn "that the running kernel is ${KV_FULL} and that (if used) the"
|
||||
ewarn "initramfs does not include NVIDIA modules (or at least, not old ones)."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $(</proc/cmdline) == *slub_debug=[!-]* ]]; then
|
||||
ewarn "Detected that the current kernel command line is using 'slub_debug=',"
|
||||
ewarn "this may lead to system instability/freezes with this version of"
|
||||
ewarn "${PN}. Bug: https://bugs.gentoo.org/796329"
|
||||
fi
|
||||
|
||||
if [[ -v NV_LEGACY_MASK ]]; then
|
||||
ewarn
|
||||
ewarn "***WARNING***"
|
||||
ewarn
|
||||
ewarn "You are installing a version of ${PN} known not to work"
|
||||
ewarn "with a GPU of the current system. If unwanted, add the mask:"
|
||||
if [[ -d ${EROOT}/etc/portage/package.mask ]]; then
|
||||
ewarn " echo '${NV_LEGACY_MASK}' > ${EROOT}/etc/portage/package.mask/${PN}"
|
||||
else
|
||||
ewarn " echo '${NV_LEGACY_MASK}' >> ${EROOT}/etc/portage/package.mask"
|
||||
fi
|
||||
ewarn "...then downgrade to a legacy[1] branch if possible (not all old versions"
|
||||
ewarn "are available or fully functional, may need to consider nouveau[2])."
|
||||
ewarn "[1] https://www.nvidia.com/object/IO_32667.html"
|
||||
ewarn "[2] https://wiki.gentoo.org/wiki/Nouveau"
|
||||
fi
|
||||
|
||||
if use kernel-open && [[ ! -v NV_HAD_KERNEL_OPEN ]]; then
|
||||
ewarn
|
||||
ewarn "Open source variant of ${PN} was selected, note that it requires"
|
||||
ewarn "Turing/Ampere+ GPUs (aka GTX 1650+). Try disabling if run into issues."
|
||||
ewarn "Also see: ${EROOT}/usr/share/doc/${PF}/html/kernel_open.html"
|
||||
fi
|
||||
|
||||
if use wayland && use modules && [[ ! -v NV_HAD_WAYLAND ]]; then
|
||||
elog
|
||||
elog "Note that with USE=wayland, nvidia-drm.modeset=1 will be enabled"
|
||||
elog "in '${EROOT}/etc/modprobe.d/nvidia.conf'. *If* experience issues,"
|
||||
elog "either disable wayland or edit nvidia.conf."
|
||||
fi
|
||||
}
|
Loading…
Reference in New Issue
Block a user