{"id":212,"date":"2008-07-15T17:59:32","date_gmt":"2008-07-15T16:59:32","guid":{"rendered":"http:\/\/albertomilone.com\/wordpress\/?p=212"},"modified":"2008-07-15T17:59:32","modified_gmt":"2008-07-15T16:59:32","slug":"updates-on-the-nvidia-drivers-in-intrepid","status":"publish","type":"post","link":"https:\/\/albertomilone.com\/blog\/updates-on-the-nvidia-drivers-in-intrepid\/","title":{"rendered":"Updates on the NVIDIA drivers in Intrepid"},"content":{"rendered":"<p><strong>What is ready<\/strong><\/p>\n<ul>\n<li>\n<p>Currently there are 4 flavours of the NVIDIA driver: <a href=\"http:\/\/www.nvnews.net\/vbulletin\/showthread.php?t=114955\">177<\/a>, <a href=\"http:\/\/www.nvnews.net\/vbulletin\/showthread.php?t=114873\">173<\/a>, <a href=\"http:\/\/www.nvnews.net\/vbulletin\/showthread.php?t=107083\">96<\/a>, <a href=\"http:\/\/www.nvnews.net\/vbulletin\/showthread.php?t=107084\">71<\/a>.<\/p>\n<p>They are all compatible with Xen and work only with 2.6.26 kernels (no 2.6.24, sorry).<\/p>\n<p>They all use DKMS therefore you will have to keep the linux-headers installed.<\/p>\n<p><a href=\"http:\/\/en.wikipedia.org\/wiki\/CUDA\">CUDA<\/a> is now supported by default (drivers 173, 177).<\/p>\n<p>The packages can replace each other without any need to remove one driver before installing the other. All it takes is a simple \u201csudo apt-get install nvidia-glx-VERSION\u201d.<\/li>\n<p><strong>NOTE: these drivers won&#8217;t be backported to Hardy. The &#8220;-envy&#8221; flavour in multiverse will be kept updated on Hardy.<\/strong>\n<\/ul>\n<p><strong>Problems<\/strong><\/p>\n<ul>\n<p><strong>xorg-server 1.5<\/strong><\/p>\n<p>The xserver was updated to version 1.5, which broke the ABI compatibility. As a result, drivers 96 and 71 (and fglrx) dont&#8217; work with the new xserver and unfortunately the -IgnoreABI option of Xorg doesn&#8217;t solve the problem. This is something that only NVIDIA can solve. (177 and 173 work well)<\/p>\n<p><strong>Dist-upgrades<\/strong><\/p>\n<p>Currently when you dist-upgrade from Hardy to Intrepid, there is no way to update an old driver, say, nvidia-glx-new, to a driver with the new name scheme, say, nvidia-glx-173. You will have to install the driver manually with, for example, &#8220;sudo apt-get install nvidia-glx-173&#8221; (there&#8217;s no need to uninstall the previous driver, since it will be replaced by the new one).<\/p>\n<p>Currently we can&#8217;t rely on dependencies to make dist-upgrades smooth. If you compare the situation  in Hardy with the one in Intrepid and especially if you think that NVIDIA could add and remove the support for more models to\/from their drivers in the future, you will see why relying on dependencies wouldn&#8217;t be the best choice now.<\/p>\n<blockquote><p><em>SITUATION IN HARDY<\/em>:<\/p>\n<p>nvidia-glx-new (169.12):<br \/>\nGeforce 5xxx, 6xxx, 7xxx, and a few models of the 8xxx series<\/p>\n<p>nvidia-glx-new-envy (173.14.09):<br \/>\nGeforce 5xxx, 6xxx, 7xxx, and a few models of the 8xxx series<\/p>\n<p>nvidia-glx, nvidia-glx-envy (96.43.05) in Hardy is a legacy driver which supports:<br \/>\nGeforce 2xxx, 3xxx, 4xxx, 5xxx, 6xxx, 7xxx up to 7800<\/p>\n<p>nvidia-glx-legacy, nvidia-glx-legacy-envy (71.86.04) is another legacy driver which supports:<br \/>\nRIVA TNT\/2, Vanta\/Vanta LT, GeForce 256, GeForce DDR, GeForce2, Quadro2<br \/>\nPro<\/p><\/blockquote>\n<blockquote><p><em>SITUATION IN INTREPID<\/em>:<\/p>\n<p>nvidia-glx-177 (177.13):<br \/>\nGeforce 6xxx, 7xxx, 8xxx, 9xxx,  GeForce GTX 260, GeForce GTX 280<\/p>\n<p>nvidia-glx-173 (173.14.09):<br \/>\nGeforce 5xxx, 6xxx, 7xxx, 8xxx, 9xxx<\/p>\n<p>nvidia-glx-96 (96.43.05):<br \/>\nGeforce 2xxx, 3xxx, 4xxx, 5xxx<\/p>\n<p>nvidia-glx-71 (71.86.04):<br \/>\nRIVA TNT\/2, Vanta\/Vanta LT, GeForce 256, GeForce DDR, GeForce2, Quadro2 Pro<\/p><\/blockquote>\n<p>As Martin Pitt suggested, we could have metapackages for each card series so that, for example, if NVIDIA decides to drop the support for  GeForce 6xxx from driver 177, we can make the metapackage depend on driver 173 instead of 177. This is something which we might do in the next future when the hardware database for Jockey is ready. In the meantime we have no way to see which card series a card belongs to by relying only on its pci-id. Therefore we are working on an alternative solution (see the \u201cPlans\u201d paragraph).<\/p>\n<p><strong>nvidia-xconfig<\/strong><\/p>\n<p>Please be careful if you&#8217;re planning to use nvidia-xconfig. Xorg-server 1.4.99.901 removed support for the RgbPath option but nvidia-xconfig will add the following line to the \u201cFiles\u201d section of your xorg.conf:<\/p>\n<p><code>RgbPath         \"\/usr\/lib\/X11\/rgb\"<\/code><\/p>\n<p>You will have to comment it out.<\/p>\n<p>NVIDIA should fix <a href=\"http:\/\/www.nvnews.net\/vbulletin\/showpost.php?p=1666354&#038;postcount=4\">this<\/a> soon.<\/p>\n<p><strong>Jockey<\/strong><\/p>\n<p>Jockey doesn&#8217;t support the new NVIDIA drivers yet, therefore you shouldn&#8217;t use it to install the NVIDIA driver (yet). I&#8217;ll work with Martin on this so that Jockey can keep rocking as usual.<\/ul>\n<p><strong>Plans<\/strong><\/p>\n<ul>\n<p><strong>Dist-upgrades<\/strong><\/p>\n<p>We will handle 2 cases: dist-upgrades done through Update Manager and the ones done from the command line.<\/p>\n<ol>\n<p><strong>Update Manager<\/strong><\/p>\n<p>If any version of the nvidia driver (with the old name schemes) is installed,  basic hardware detection should be performed and the appropriate driver should be installed.<\/p>\n<p><strong>Command line<\/strong><\/p>\n<p>If the dist-upgrade is done from the command line we can&#8217;t install the appropriate driver automatically during the dist-upgrade (you can&#8217;t call apt while apt is in use). As Martin suggested, all we can do is warn our users through debconf so that they will know what to do. I have already implemented Martin&#8217;s idea by creating \u201cnvidia-common\u201d, which you can find in my PPA (NOTE: this is not the final release).<\/p>\n<p><strong><em>How does nvidia-common work?<\/em><\/strong><br \/>\nnvidia-common depends on 4 new packages (nvidia-VERSION-modaliases) which contain the lists of the pci-ids of the NVIDIA cards supported by NVIDIA&#8217;s proprietary drivers. Such lists are generated automatically when the packages of the drivers are built therefore, when a driver is updated, its list of pci-ids will be updated too.<\/p>\n<p>My Python program will detect the pci-id of your card and find the newest driver which supports it. If you have more than 1 one card plugged in, then it will look for a driver which supports all your cards and install that if available, otherwise the newest driver will be chosen (since I guess that you would prefer using your GeForce 9xxx rather than your GeForce 2).<\/p>\n<p>This check is (currently) triggered in 3 cases:<br \/>\n1) when nvidia-common is installed<br \/>\n2) when the kernel image is installed\/updated<br \/>\n3) when the kernel headers are installed\/updated<\/p>\n<p>If you haven&#8217;t a driver with the old name scheme installed or if your card is not supported you won&#8217;t see any debconf dialog, otherwise you should see something like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"http:\/\/albertomilone.com\/updater1.png\" title=\"Debconf Screen\" class=\"alignnone\" width=\"469\" height=\"325\" \/><\/p>\n<p><strong>How to test it on Hardy:<\/strong><br \/>\nadd my PPA to your software sources:<br \/>\n<code>deb http:\/\/ppa.launchpad.net\/lrm-intrepid\/ubuntu intrepid main<\/code><\/p>\n<p>and install only nvidia-common (revision ubuntu12 or higher) and let it install its dependencies (i.e. the modalias packages). Then disable the PPA. Do NOT install any other package. You should see a debconf screen. The same will happen if you reinstall the kernel headers or image.<\/ol>\n<p><strong>Backports<\/strong><br \/>\nThe drivers will be updated in the backports repositories as they will be actually backported from Intrepid+1 to Intrepid.<\/ul>\n<p><strong>Credits<\/strong><\/p>\n<ul>\n<p><strong>Ben Collins<\/strong>:<br \/>\ngave me some tips on TLS for the drivers.<\/p>\n<p><strong>Bryce Harrington<\/strong>:<br \/>\nhas been very available and has followed all the steps of the migration to the new NVIDIA drivers.<\/p>\n<p><strong>Mario Limonciello<\/strong>:<br \/>\ntested the packages and gave me a few useful tips.<\/p>\n<p><strong>Martin Pitt<\/strong>:<br \/>\nguided me through the migration and has been very available. He gave me a lot of feedback on the packages, on the new name schemes and on how we should deal with dist-upgrades. His experience has been invaluable. Furthermore he is doing all the uploads for me.<\/p>\n<p><strong>Timo Aaaltonen<\/strong>:<br \/>\ndid the merge of the Debian package with my initial package (hoping that the changes could be merged back into Debian) thus providing me with a new base to work on.<br \/>\nFurthermore he suggested the use of a dynamic dependency on the server ABI (so that we don&#8217;t have to hardcode it in the source) like the Intel driver does.<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>What is ready Currently there are 4 flavours of the NVIDIA driver: 177, 173, 96, 71. They are all compatible with Xen and work only with 2.6.26 kernels (no 2.6.24, sorry). They all use DKMS therefore you will have to keep the linux-headers installed. CUDA is now supported by default (drivers 173, 177). The packages <a class=\"read-more\" href=\"https:\/\/albertomilone.com\/blog\/updates-on-the-nvidia-drivers-in-intrepid\/\">[&hellip;]<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,9],"tags":[],"class_list":["post-212","post","type-post","status-publish","format-standard","hentry","category-planet","category-ubuntu"],"_links":{"self":[{"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/posts\/212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/comments?post=212"}],"version-history":[{"count":0,"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/posts\/212\/revisions"}],"wp:attachment":[{"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/media?parent=212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/categories?post=212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/albertomilone.com\/blog\/wp-json\/wp\/v2\/tags?post=212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}