Ubuntu and VIA EPIA EN12000EG


Update 21/09/08

Since I wrote this post 5 months ago I have not been experiencing any issues with the EN12000EG when using it at 1200 MHz. However, 22 days ago I rebooted my EN12000EG and by mistake I forgot to set the CPU frequency to 1200 MHz, I did not realize this until about a week ago when I saw that the Gnome CPU Scaling Monitor was reporting the CPU frequency as 400 MHz (ondemand governor). For this period of 22 days I’ve been using the server as I normally would, which 5 months ago would freeze the system within a week when using CPU scaling.

My best guess to why this is happening is probably a change in the Linux kernel which either fixed or got around this issue. The kernel I’m currently using is Linux 2.6.24-21-generic i686 GNU/Linux on Ubuntu 8.04 with all updates installed.

Original Post

Little over a month ago I bought and built myself a Mini-ITX computer to use as a headless print/file/media/etc. server. For the motherboard I got a VIA EPIA EN12000EG with a 1200 MHz CPU, because it was passively cooled. I put it inside a Morex 3688 chassis without using the chassis fan. After using it for a while, the system would “randomly” freeze completely. This would typically happened when I “stressed” system, e.g.. transferring files, printing and using VNC at the same time. There was no rise in CPU temperature when this happened, so I did not think it was because the motherboard wasn’t properly cooled without any fans running.

The longest uptime I had until this point was about 6 days, but the computer would often just freeze after a few days use.

So I thought it might be an I/O problem and I therefor updated the 1.07 BIOS to version 1.09, but the only thing I could tell changed was the CPU temperature was now reported as being around 20 °C instead around 45 °C previously with the 1.07 BIOS. Since this didn’t resolve the system freezes either, I then tried to update to Ubuntu 8.04 beta, hoping the issue might have been resolved in the new version, however the system would still freeze on me.

I had a problem with evolution-data-server using 90% of the CPU in Ubuntu 8.04, this is a known bug. I resolved it by just uninstalling evolution-data-server, as I do not use Evolution.

sudo apt-get remove evolution-data-server

I had earlier found this EN12000EG Freeze thread at the VIA forums (registration required), where a lot of different solutions had been suggested, I tried some of the easy ones like changing the BIOS settings, but that still didn’t resolve the problem. So I thought I’d try disabling CPU frequency scaling as suggested by rararasputin and this solution has worked for me so far.

First I disabled powernowd by in System → Administration → Services. However the cpu scaling software cpufreq is active and uses the On demand CPU scaling governor by default. There are few different ways to change this to the Performance governor, which will keep the CPU at 1200 Mhz. One way is to use the cpufreq-selector in a console like shown below

sudo cpufreq-selector -g performance

Another option, if you are using the Gnome CPU Frequency Scaling Monitor Applet, is that you can select the governor you wish to use using this applet. But first you need to enable user CPU scaling by the following command and answering yes to setting the suid for cpufreq-selector.

dpkg-reconfigure gnome-applets

Now you can left-click on the applet and choose Performance.

A thing to note is that this setting reverts to the default On demand when you reboot your system. I read that you can make it permanent by changing the policy_ac key to Performance in apps → gnome-power-manager → cpufreq using gconf-editor, however this doesn’t seem to work for me. Maybe because I use the force=acpi kernel option in /boot/grub/menu.lst and this somehow overrides the setting. If any one knows of a simple solution, please let me know.

As you can see from the partial screenshot below, my VIA EN12000EG based server ran for over 11 days before Ubuntu insisted that I reboot due to an update. In the 11 days I had tried to stress the system several times, for instance transferring files while updating Ubuntu over VNC and playing internet radio. Which would often freeze the system earlier, but after disabling cpu scaling, I’ve been unable to freeze the system.

My conclusion is that the VIA EN12000EG hardware has buggy CPU scaling support.

As a side note, I couldn’t get s-video output working with any other driver than the binary CN700 Unichrome Pro Driver. Otherwise everything else worked out of the box with both Ubuntu 7.10 and 8.04.


rararasputin posted his Openchrome xorg.conf with s-video support. Download formatted here.