InstallingUbuntuOnADellPrecisionM70
Introduction
Installing Ubuntu Hoary on a Dell Precision M70 is not trivial. There are a number of problems which aren't very straightforward to figure out. Here is how to get around them. This procedure been tested on a system with the following configuration:
- 15.4" Widescreen SXGA+ (1680x1050)
- 1GB DDR2 SDRAM
- DVD+RW drive
- 40GB 7200 RPM Hard Drive
- Quadro FX Go1400
- Intel PRO/Wireless 2915 (802.11a/b/g)
I have written a review of the system, which you can read at [http://www.notebookreview.com/default.asp?newsID=2302]. The Ubuntu installation instructions on that page, however, are outdated.
Details of Failed Installation
When you run the install program, everything works great. Video card is detected, wireless is detected, and the GNOME login screen comes on. You log in. Wonderful. And then... everything freezes but the mouse. You need to push the power button to restart the computer.
Why? To start with, there are two different drivers for the Quadro FX graphics card. The open-source "nv" driver ships with Ubuntu, and the closed-source "nvidia" driver does not ship, but is downloadable from the package archives.
Now, the Hoary version of the nv driver does not play well with the awesome Quadro FX Go1400. To get everything to work well together, you will have to compile and install the latest version of the NVIDIA graphics drivers, as well as the 2.6.12 kernel.
Technical Experts' FAQ
- Q: Why not just install the nvidia-glx package? A: Because the 2.6.10 kernel does not play well with the nvidia drivers on this system. Your system will crash unexpectedly every few days.
- Q: OK, why not just install the 2.6.11 Kernel? That one works with nvidia. A: Because this version of the kernel cannot detect your DVD drive using libata. IDE detection will work, but only if you recompile the kernel with it explicitly enabled, and even then your drive will be mind-numbingly slow, and for some reason dma cannot be turned on. The fastest solution is to use the 2.6.12 kernel and the latest nvidia drivers.
Installing the New Kernel
If you are installing Ubuntu from scratch, after partitioning your drive appropriately, use the Ubuntu installation CD to make a default configuration. When the GNOME install screen comes up, do not log in. Instead, select the reboot option from the bottom of the screen.
If you are already within Ubuntu, you can also use the following instructions after rebooting. However, please backup all your Ubuntu data first. Although changing kernel versions and upgrading to gcc-3.4 is theoretically safe, I cannot vouch that it will be safe in every occasion. I have upgraded from 2.6.10 to 2.6.11 and then 2.6.12 without losing any data or the ability to boot into an older version of Ubuntu. This should be the case for you too, but I cannot guarantee that.
OK. When the GRUB screen comes up, boot into recovery mode. A text-only screen will come up.
Now you need to install the 2.6.12 Kernel. However, that is currently available only under breezy, the development version of the next release of Ubuntu (for October 2005). You will need to change your apt sources to breezy. Do an
cp /etc/apt/sources.list /etc/apt/sources.backup pico /etc/apt/sources.list
Replace every instance of "hoary" with "breezy." Save the file and exit. Then run the following four apt commands. Answer yes to all the questions.
apt-get update apt-get install linux-image-2.6.12-1-686 apt-get install linux-source-2.6.12 apt-get install gcc-3.4
Now, you do not want to mess up your nice, stable, X11 configuration. Therefore, you should revert to the hoary package distribution.
cp /etc/apt/source.backup /etc/apt/sources.list apt-get update
Now you should check whether gcc-3.4 is enabled by default.
ls -l /usr/bin/gcc
This should show that gcc is pointing to gcc-3.4. If it is not,
rm /usr/bin/gcc ln -s /usr/bin/gcc-3.4 /usr/bin/gcc
Now reboot the system. You will see options for booting into both the 2.6.10 and the 2.6.12 kernels. Select the 2.6.12 kernel's recovery mode.
Installing the NVIDIA Drivers
After rebooting into 2.6.12, you will have to compile your kernel source, because NVIDIA will use it to build its driver module:
cd /usr/src tar jvxf linux-source-2.6.12 ln -s linux-source-2.6.12 linux cd linux cp /boot/config-2.6.12-1-686 .config make
Then go get a cup of coffee. After a long time, the compilation will be done. Next, download the most recent NVIDIA drivers.
cd wget http://download.nvidia.com/XFree86/Linux-x86/1.0-7667/NVIDIA-Linux-x86-1.0-7667-pkg1.run sh NVIDIA-Linux-x86-1.0-7667-pkg1.run
When the NVIDIA screen comes up, it will complain that it cannot find a precompiled version of the driver. No problem. Just select the option to compile the driver from scratch. Everything should work fine. Now the final thing to do is edit the xorg configuration file.
pico /etc/X11/xorg.conf
Find the word "nv" and change it to "nvidia". Then find the lines
Load "GLCore" Load "dri"
Comment them out:
# Load "GLCore" # Load "dri"
Save and exit.
Final Notes
Now reboot. You should be able to boot into the standard 2.6.12-686-1 bootup, and use the system without additional troubles. The only small issue I've noticed is that the GNOME desktop view does not refresh the way it should when a file is created or deleted. I believe this is due to a bug with inotify or gamin that should be fixed soon. You can just refresh the desktop by clicking on it and typing ctrl-R.
Otherwise, everything is working great for me, without any crashes, since I've switched to the 2.6.12 kernel. Good luck, and let me know of your experience.