Monday, August 13, 2007

Built a new machine using an M2N-MX motherboard, tried to boot up Ubuntu, received error about "MP-BIOS bug: 8254 timer not connected to IO-APIC".

Looked in the bios, and was able to disable "ACPI APIC Support", which was able to get the machine to boot.

I found this page, which had instructions for fixing the problem properly, by disabling the HPET table. This was only available after updating the bios.

Since there wasn't windows on the machine, using the winbios updater wasn't an option, I downloaded "dosslack" (here), used dd to write a floppy, and then copied the bios updater and updated rom file form asus to the floppy.

After updating the bios, there was a new option available in the bios, to disable the "MCP61 ACPI HPET TABLE".

After doing that, the machine was working a bit better, but there were sound issues. There was a high pitched whine produced by the sound card.

I googled around, and found references to changing the modprobe configuration to load the intel sound driver with a fix parameter.

I created /etc/modprobe.d/modprobe.conf.dist containing:
options snd-hda-intel position_fix=1 model=3stack

After rebooting, the sound was fixed.

There were also issues with the RAM, it's supposed to support Dual channel, and run at 800MHz, but was only running single channel. It also wouldn't run at 800MHz unless forced in the bios.

According to the motherboard manual, the ram was in the correct slots for dual channel, but it wouldn't do it. After moving the ram into the "wrong" slots for dual channel, it automatically activated.

Installing VMWare gave some issues, it required having a patch applied before it would compile, and getting the ipod to connect was a hassle, required vmware to be shutdown, then the ipod connected, then vmware restarted, and the vm booted up, and the ipod attached to the vm.

There were also issues with the video in vmware, switching to full screen would result in a horrible interlaced looking display, whereas in a window it was fine. I found a page that detailed editing the vmware preferences file, and changing pref.autoFitFullScreen = "fitHostToGuest" to pref.autoFitFullScreen = "fitGuestToHost" which fixed that.

In sorting the music to copy into the ipod, there were some m4a and wma files that required conversion to mp3, so they could be tagged with musicbrainz tagger, I found a script to do that here, which I modified slightly to work recursively, not convert already converted files, remove the temporary wave file fifo, and run lame with a lower priority:

#!/bin/sh
#
# Dump m4a to mp3

find . -name "*.m4a"|while read i
do
if [ -f "$i" ]; then
dest=`echo "$i"|sed -e 's/m4a$/mp3/'`
if [ ! -f "$dest" ]; then
rm -f "$i.wav"
mkfifo "$i.wav"
mplayer "$i" -ao pcm:file="$i.wav" -vc null -vo null -quiet &
nice lame "$i.wav" "$dest"
rm -f "$i.wav"
fi
fi
done


The above can have all references to m4a change to wma to convert wma files.

Due to vmware only emulating usb1.1 (or appearing to), loading 30gb of mp3s with itunes was going to take too long. I tried using rhythmbox, however this was running really slow, and also tried to get sharepod working in the windows vm.

It turns out that rhythmbox was copying the files so slowly because I'd unloaded ehci_hcd while trying to get the ipod to attach to the vm properly, so once I reloaded this, I was able to use gtkpod to load all the songs quite quickly.

The issues I had with sharepod.. only the latest version is available from the author, and once I installed the .net framework in the vm to get it to actually try to load, I was faced with a scary looking security exception error.

I found ways to overcome this, using the .net framework configuration tool, however this tool did not exist, and the msc file wasn't there either, so I couldn't run it directly.

I upgraded .net to v3 in desperation, and still didn't get the config tool. I then found I could change the security manually, by bringing up a command prompt, changing into the C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 directory, and running "CasPol.exe -m -ag 1 -url "file:////\\[ubuntu machine]\[share]\*" FullTrust -exclusive on".

Sharepod 3 then worked properly. Sharepod 2, or whatever it was I used to use, just hangs when trying to load (after the 3 or 4 ocx and dll files it requires are installed and registered), sharepod 1.7 only has the ability to copy music out of the ipod, and not in (or so it seems).