Last week, I started setting up a new home desktop computer. As all my other home machines were running Mandriva, I decided to install the latest Mandriva 2011 on this new one. Should only take a couple of days to get everything up and running, or so I thought. This blog describes the
funpain of actually getting everything to work.
The new system came with an Asus P8H61 motherboard that had a Realtek RTL8111/8168B Ethernet controller. Sounded like very ordinary hardware that would definitely just work with Mandriva, if not for the fact that the kernel picked the wrong driver! It wrongly loaded the r8169 kernel module, instead of the required r8168. It took me 3 DAYS of messing about :- checking all my cables, reconfiguring my router, updated my kernel version, trying various network settings, etc, before I realized it was all because of this stupid kernel bug.
To fix it, I first had to get the right r8168 driver from the Realtek website. The file I got was r8168-8.031.00.tar.gz2. After unpacking everything and making sure I had the kernel source and headers, I ran:
$ cd r8168-8.031.00 $ ./autorun.sh
which gave me the following error:
WARNING: Symbol version dump /usr/src/devel/188.8.131.52-5.1-desktop/Module.symvers is missing; modules will have no dependencies and modversions.
Why happened here? Why would the kernel source not have this file that was required for building kernel modules? I had no choice but to rebuild the whole kernel just to get this file, that I then copied to where the Realtek driver expected to find it:
$ cd /usr/src/linux-184.108.40.206-5 $ make config $ make $ cp Module.symvers /usr/src/devel/220.127.116.11-5.1-desktop
After that, the Realtek script worked as expected. It unloaded r8169 and swapped in r8168. Finally, I had network connectivity. To make sure my changes stuck, I modified
/etc/modprobe.conf to say:
alias pci:v000010ECd00008168sv00001043sd00008432bc02sc00i00 r8168 alias eth0 r8168
and then added r8169 to the module blacklist files :
$ echo 'blacklist r8169' >> /etc/modprobe.d/blacklist-brcm80211.conf $ echo 'blacklist r8169' >> /etc/modprobe.d/blacklist-compat $ echo 'blacklist r8169' >> /etc/modprobe.d/blacklist-mdv
Next challenge:- getting hardware direct rendering working. This system had a low-end (for work, not gaming) 1GB Gigabyte GT210 graphics card running on nVidia GeForce 210.
Understandably, Mandriva had installed the free Nouveau driver by default. What I didn't expect was that installing the nVidia driver didn't actually cause it to replace the nouveau driver. Instead, running
nvidia-xconfig simply broke X (thankfully it also backed up the original
xorg.conf so I could revert back). Wasted several hours of my life before figuring out I first had to uninstall nouveau, and then re-installed the nVidia rpms below:
Finally, I ran
XFdrake one more time and it prompted me to use the nVidia driver.