Installing Ubuntu Linux on MSI K8NGM2-FID motherboard with AMD Athlon 64 X2 3800+
Time for a new motherboard
The kids needed a more powerful gaming machine, so I decided to transfer my Asus P4P800-VM motherboard with 2.4 GHz Intel P4 to them and upgrade my own machine. Since I do a fair amount of number crunching but am not too concerned about video performance on my workstation, I started looking for a new motherboard with a cheap but decent nVidia video chipset and decent audio chipset onboard, with good Linux compatibility reports. I was also interested in an AMD 64 bit architecture since I had heard so many glowing performance reports. It seemed like the amd64 architecture had been around long enough to have most of the painful issues worked out in Linux, and I like to play around with new-but-not-bleeding-edge technology. So I narrowed my choice to amd64 motherboards and looked for some Linux motherboard recommendations online. Newegg.com turned up a few likely contenders.
I have had a long string of mostly Asus motherboards over the past 15 years and have generally been happy with them. But after seeing a few negative comments at various places around the web regarding Asus' negative attitude toward Linux users, and not liking some of Asus' recent hot and fan-ful motherboards, I decided to give other vendors a try. The MSI K8NGM2-FID had a couple of positive Linux user reports on Newegg, and was certainly cheap enough, with onboard nVidia 6150 video, so I got one.
amd64 or x86 Linux?
I was extremely pleased, and a bit surprised, when all important hardware on the motherboard was detected and set up correctly on a fresh install of either the amd64 or x86 version of Ubuntu Dapper RC1. This includes the sound device and the nVidia Ethernet device.
The drawback with the amd64 version of Linux is that the closed-source 32 bit versions of Flashplayer and a few other things don't easily install in the 64 bit browser. Using instructions found here I did create inside the 64 bit Linux installation a secondary 32 bit environment for running FireFox with the regular 32 bit Linux Flashplayer. That worked quite well in initial tests. Ultimately I didn't find a compelling reason to run the motherboard in amd64 bit mode for reasons I'll get to shortly.
Since it takes a long time to get everything set up the way I like it on a fresh OS install, I also tried just booting the new MSI motherboard using the Ubuntu install I had been running on my old Asus Intel-based motherboard. Based on past experience moving a Linux install from one motherboard to another, I expected quite a lot of problems. I was again pleasantly surprised. My Ubuntu install did a very good job coping with things while having the motherboard changed out from under it. The ease with which hardware can be swapped in Linux seems to largely be a function of how much state information specific to the motherboard is stored in /etc (like which modules to be inserted and so on), compared to how much hardware information is detected dynamically at every boot. This seems to vary quite a bit from one Linux release to another, and it has also varied as Linux itself has evolved over the years. In my case here, the nVidia driver broke on the new nVidia chipset with the new motherboard, but Ubuntu still came up with a generic graphical driver and a simple apt-get install nvidia-glx and a nvidia-glx-config enable got me back to accelerated nVidia drivers. To my surprise, Ubuntu got the new sound device right with no fiddling--I guess the audio is detected and installed dynamically at every boot, and no configuration state is saved in /etc/, at least in my case. The Ethernet device (the forcedeth module) was detected but unfortunately configured as eth1, because /etc/iftab was set to map eth0 to the old MAC address from the old Ethernet device on the old motherboard and that device was of course no longer present. I had never encountered iftab before, but it was easy to fix. So, with these few adjustments, for now I am running my same old x86 Linux config that I was running on the Asus motherboard. I really expected more problems than this.
The motherboard's onboard video (nVidia GeForce 6150) uses system RAM instead of having dedicated RAM for itself. This is a cost saving measure and it does significantly impact performance. glxgears -printfps shows only about 750 fps for the default glxgears resolution, and this slows to about 40 fps at 1600x1200 resolution. Compare this to 7000 fps/413 fps with a dedicated AGP nVidia GeForce 5900XT with 256MB RAM plugged into the Asus P4P800-VM motherboard it replaces. However, the new motherboard's video seems to do just fine on my test 3D applications (Trackballs, Planet Penguin Racer, and Flight Gear).
In my disk- and compute- intensive test task, the new MSI Athlon 64 motherboard with an x86 Linux install performed about 15% faster than my older Intel P4. Not bad considering that the AMD is running at 2 GHz and the P4 was running at 2.4 GHz. Surprisingly, the Athlon system also performed about the same (within a couple of percent) with amd64 Linux installed as it did with x86 Linux! This was a bit disappointing. My assumption is that in the amd64 Linux, my test application (a video encoding of 20,000 .png files using a pipeline of png2yuv and mpeg2end) is not optimized specifically for a 64 bit instruction set, merely recompiled for it. But still, I was surprised that there was essentially no performance difference between 32 and 64 bit Linux for my task. There also seemed to be no significant performance difference on my test task under an amd-generic Ubuntu kernel versus an Athlon specific amd-K8 kernel.
General system performance (web browsing, multimedia, general desktop tasks) also seemed about the same between the x86 Linux and amd64 Linux for my current tasks. For now, the ease and simplicity of running x86, and the apparently equivalent performance for my tasks, means I will continue to run x86 Linux on this motherboard for now rather than amd64 Linux.
The motherboard's built in Intel audio device sounds great to my ear. It seems to sound even better than the SB Live! it replaces.
So, my new workstation system uses the built in audio and video of the MSI motherboard, with the Athlon running in x86 mode. And since there are no fans for an external video card in the new system, and with the CPU fan on the Athlon much quieter than the CPU fan on the Intel system, the whole system runs much quieter.
I am now running in AMD64 mode instead of x86. The reason I switched is that automatixpure64 just started to provide super-easy installation and upgrade of 32-bit software within a 64 bit environment and worked rather well in my test. Some people have suggested in various places that there are potential problems with automatix corrupting Ubuntu installations, but these problems appear to be addressed in recent versions. I have never had a problem. A friend with this same motherboard has reported problems running Skype in a linux32 environment withing an amd64 bit install; I haven't tried it myself.
Here is an excellent additional technical resource on the MSI K8NGM2-FID motherboard, which I did not come across until after the above was written. It gives the board a very favorable rating.
One lingering minor annoyance with the sound in Linux on the MSI K8NGM2-FID: the onboard sound does not appear to support hardware mixing, at least not with current ALSA sound drivers. Certain older and/or closed-source applications, for example the Flashplayer plugin, demand exclusive open on /dev/dsp. This prevents other sound applications from running as long as Flashplayer is open. There are various potential workarounds for this, such as invocation wrappers like esddsp, which can convert the /dev/dsp open transparently into output to a mixing sound daemon like esd. However, I have not gotten this to work in an amd64 environment where the browser (and Flashplayer plugin) are running in a linux32 environment. This is probably because some esddsp library is not supplied for the linux32 environment. Sound does work in Flashplayer in a linux32 environment in an amd64 install, but only if you don't have xmms or something else using the sound device first.
Related:Performance of MSI K8NGM2-FID motherboard with amd64, 686, and k7 kernels