Disclaimer: This is a risky upgrade technique, follow only if you love to take risks and enjoy the benefit of risks. If it fails, you may have to reinstall the entire operating system
Introduction
In this experiment I will try to explain, how I used apt pinning to install latest nvidia drivers from Ubuntu Natty inside Ubuntu Lucid. I wanted to use X Updates PPA but unfortunately, it is always pulling the beta versions of nvidia drivers (270.x when I last saw)
This apt pinning will use the debian trick of pinning upcoming versions of the distribution to pull the packages which we like
see the following links
http://wiki.debian.org/AptPreferences
http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
Initial steps
Install the restricted nvidia drivers in lucid using Hardware drivers tool. This step is most important. By default Ubuntu Lucid will offer to install 195.36.x version of nvidia drivers. After installing this nvidia drivers, ensure Ubuntu works fine, that is we are able to boot into graphical mode
Addding entry for packages of natty in /etc/apt/sources.list
In the last line of /etc/apt/sources.list add entry to natty mirror.
To open the sources.list in editable mode, open it as root
sudo vi /etc/apt/sources.list
move to the last line and append
deb http://in.archive.ubuntu.com/ubuntu/ natty main restricted universe multiverse
As you can see, I have given in.archive.com as Ubuntu points to Indian mirror in my system. You should change it to appropriate mirror of your region for blazing fast updates
Very important, do not run apt-get update after this step, there is an even more important step, which is giving low priority to natty packages in Lucid installation, which is explained in following
APT Pinning natty packages with lower priority
Create a new file /etc/apt/preferences as root
To do that I am using, sudo vi /etc/apt/preferences
and add the following three lines (If already you have a preferences file, do not worry, just append these three lines for giving natty packages a priority compared to current distribution packages)
Package: *
Pin: release a=natty
Pin-Priority: 400
First line Package: * tells apt to treat all packages, which is meant by asterik *
Second line tells the release name which we want to pin
Third line gives a priority value of 400 for all natty packages. Default priority is 500 and giving 400 to natty makes sure update manager does not inadvertently update to natty packages
Now after saving this file, run apt-get update
sudo apt-get update
You should not be offered to dist upgrade or upgrade to natty packages. If you are being offered lots of updates or offered to do dist upgrade, remove the entry for natty from /etc/apt/sources.list (the last line we added in /etc/apt/sources.list) and re run apt-get update to avoid inadvertent upgrade
Use Synaptic or APT to upgrade packages selectively to natty
This step can be achieved via a single apt-get or via synaptic, I try to explain both
Via synaptic
This step is tricky when using synaptic because many packages can't be upgraded to natty as is due to nested dependencies. For nvidia the most important package to be upgraded is nvidia-current and libvdpau1
Search and select nvidia-current in synaptic and press Ctrl + E and select the version from natty,
see the screenshot to understand when I meant
Repeat this selective upgrade for libvdpau1, nvidia-185-kernel-source and nvidia-185-libvdpau
Press apply and synaptic will take care of upgrading the selected package to versions to natty
Via apt-get
This step is easier via apt-get
sudo apt-get install -t natty nvidia-185-kernel-source nvidia-185-libvdpau nvidia-current libvdpau1
See the -t natty which specifies apt-get to look for the packages from natty distribution
If suppose apt-get asks you to upgrade lots of packages, do not do, it might be a full upgrade to natty, just stop as is and recheck preferences file
Reboot
Now reboot to see if the nvidia card is upgraded to the version of natty
See the screenshots below which shows my nvidia-settings showing the latest nvidia versions running from natty inside lucid
System monitor + nvidia settings screenshot, which shows I am running lucid but latest nvidia drivers!!
Introduction
In this experiment I will try to explain, how I used apt pinning to install latest nvidia drivers from Ubuntu Natty inside Ubuntu Lucid. I wanted to use X Updates PPA but unfortunately, it is always pulling the beta versions of nvidia drivers (270.x when I last saw)
This apt pinning will use the debian trick of pinning upcoming versions of the distribution to pull the packages which we like
see the following links
http://wiki.debian.org/AptPreferences
http://www.debian.org/doc/manuals/apt-howto/ch-apt-get.en.html
Initial steps
Install the restricted nvidia drivers in lucid using Hardware drivers tool. This step is most important. By default Ubuntu Lucid will offer to install 195.36.x version of nvidia drivers. After installing this nvidia drivers, ensure Ubuntu works fine, that is we are able to boot into graphical mode
Addding entry for packages of natty in /etc/apt/sources.list
In the last line of /etc/apt/sources.list add entry to natty mirror.
To open the sources.list in editable mode, open it as root
sudo vi /etc/apt/sources.list
move to the last line and append
deb http://in.archive.ubuntu.com/ubuntu/ natty main restricted universe multiverse
As you can see, I have given in.archive.com as Ubuntu points to Indian mirror in my system. You should change it to appropriate mirror of your region for blazing fast updates
Very important, do not run apt-get update after this step, there is an even more important step, which is giving low priority to natty packages in Lucid installation, which is explained in following
APT Pinning natty packages with lower priority
Create a new file /etc/apt/preferences as root
To do that I am using, sudo vi /etc/apt/preferences
and add the following three lines (If already you have a preferences file, do not worry, just append these three lines for giving natty packages a priority compared to current distribution packages)
Package: *
Pin: release a=natty
Pin-Priority: 400
First line Package: * tells apt to treat all packages, which is meant by asterik *
Second line tells the release name which we want to pin
Third line gives a priority value of 400 for all natty packages. Default priority is 500 and giving 400 to natty makes sure update manager does not inadvertently update to natty packages
Now after saving this file, run apt-get update
sudo apt-get update
You should not be offered to dist upgrade or upgrade to natty packages. If you are being offered lots of updates or offered to do dist upgrade, remove the entry for natty from /etc/apt/sources.list (the last line we added in /etc/apt/sources.list) and re run apt-get update to avoid inadvertent upgrade
Use Synaptic or APT to upgrade packages selectively to natty
This step can be achieved via a single apt-get or via synaptic, I try to explain both
Via synaptic
This step is tricky when using synaptic because many packages can't be upgraded to natty as is due to nested dependencies. For nvidia the most important package to be upgraded is nvidia-current and libvdpau1
Search and select nvidia-current in synaptic and press Ctrl + E and select the version from natty,
see the screenshot to understand when I meant
Repeat this selective upgrade for libvdpau1, nvidia-185-kernel-source and nvidia-185-libvdpau
Press apply and synaptic will take care of upgrading the selected package to versions to natty
Via apt-get
This step is easier via apt-get
sudo apt-get install -t natty nvidia-185-kernel-source nvidia-185-libvdpau nvidia-current libvdpau1
See the -t natty which specifies apt-get to look for the packages from natty distribution
If suppose apt-get asks you to upgrade lots of packages, do not do, it might be a full upgrade to natty, just stop as is and recheck preferences file
Reboot
Now reboot to see if the nvidia card is upgraded to the version of natty
See the screenshots below which shows my nvidia-settings showing the latest nvidia versions running from natty inside lucid
System monitor + nvidia settings screenshot, which shows I am running lucid but latest nvidia drivers!!
Hello,
ReplyDeleteThanks for the post, I tried to test it on a VirtualBox VM on Lucid (before applying it on my PC) but I got this error :
Reading package lists... Error!
E: Dynamic MMap ran out of room. Please increase the size of APT::Cache-Limit. Current value: 25165824. (man 5 apt.conf)
E: Error occurred while processing frogatto (NewVersion1)
E: Problem with MergeList /var/lib/apt/lists/in.archive.ubuntu.com_ubuntu_dists_natty_multiverse_binary-i386_Packages
W: Unable to munmap
E: The package lists or status file could not be parsed or opened.
Do you know how to resolve it ?
Increase APT cache limit
ReplyDeletethe file to edit is /etc/apt/apt.conf
APT::Cache-Limit "50331648";
See
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535190
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/571809
http://www.linuxforums.org/forum/knoppix-linux/169774-solved-problem-package-managers.html
http://forums.linuxmint.com/viewtopic.php?f=158&t=49634
http://aziest.wordpress.com/2011/01/24/how-to-increase-your-apt-cache-limit/