Gentoo on VIA C3 Ezra
Recently I purchased a little VIA C3-powered Mini-ITX PC off eBay for use as a silent, low-power Gentoo Linux-based NAS box & router/firewall. Perhaps some of the following will give you a head-start if you’re attempting the same.
1. The Hardware
I got the box itself pretty cheap (~$180 AUD with power adapter) from eBay. Here’s a photo (taken from the eBay auction):

The Box
The mainboard uses the VT133 chipset, next to which there is an inbuilt 800MHz VIA C3 (Ezra). I honestly have no idea who the manufacturer of the mainboard was – I suspect PCChips, but I haven’t been able to verify this. Also in the photo above you can also see a Compact Flash-IDE adapter and 512MB of 133MHz SDRAM. Here are some other details extracted from within Linux:
/proc/cpuinfo
processor : 0 vendor_id : CentaurHauls cpu family : 6 model : 7 model name : VIA Ezra stepping : 10 cpu MHz : 798.000 cache size : 64 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu de tsc msr cx8 mtrr pge mmx 3dnow bogomips : 1600.04 clflush size : 32 power management:
lspci
00:00.0 Host bridge: VIA Technologies, Inc. VT8601 [Apollo ProMedia] (rev 05) 00:01.0 PCI bridge: VIA Technologies, Inc. VT8601 [Apollo ProMedia AGP] 00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40) 00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a) 00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a) 00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40) 00:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 00:0f.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10) 00:0f.1 Communication controller: C-Media Electronics Inc CM8738 (rev 20) 01:00.0 VGA compatible controller: Trident Microsystems CyberBlade/i1 (rev 6a)
1.1 Storage

Seagate ST1 5GB Microdrive
As far as internal storage goes, I went with a Compact Flash-compatible ST1 5GB Microdrive from Seagate. I originally considered going with a regular half-decent 4GB Compact Flash card, but the limited number of write cycles worried me. In retrospect it probably would have been fine – I could have just done backups of the contents of the card & replaced it if it ever died. But there you go. I got the ST1 very cheap (~$25 AUD) and it seems to be working well, so it’s all good.
Here’s a hdparm -tT benchmark of the ST1:
Timing cached reads: 64 MB in 2.01 seconds = 31.92 MB/sec Timing buffered disk reads: 6 MB in 3.71 seconds = 1.62 MB/sec
As mentioned earlier I wanted this PC to act as a NAS (Networked Attached Storage) box. I have two Western Digital MyBook Home Edition 1TB external HDDs; one for media (videos etc.) and one for files (documents, patches etc.), which I attach via USB.
In order to install the OS on the machine, I used an external USB DVD drive – in this case a Samsung SE-S224Q DVD-RW. I could’ve also used an IDE drive as Primary Slave.
2. The Software
While these days my desktop distro of choice has tended to be Ubuntu, I still wouldn’t consider anything other than Gentoo for server installs. As far as I’m concerned, the (much) longer install process and occasional “maintenance issue” is justified by the ability to make such lean-and-mean (read: minimal and fast) installs.
The following are the Gentoo packages I planned to install to fulfil the services I required of the PC:
- Router/firewall
- iptables
- NAS
- samba
- vsftpd
- HTTP/DNS proxy
- tinyproxy
- dnsproxy
- Subversion server
- svnserve
- apache
- Others:
- syslog-ng
- lm_sensors
- cpufrequtils
- vixie-cron
3. Hardware Modifications
The first thing that struck me was how loud the included 40mm fan was (seen on the left of the case in the photo above). So much for a silent PC!
At first I ripped the included fan straight out and attempted to run the box completely fanless. Unfortunately during heavy loads the whole case (due to the heat-pipes) became quite hot (~50-60ºC) – way hotter than I was comfortable with. I tend to err on the side of caution/paranoia in terms of heat, especially since I wanted to leave this box unattended.
After some thought and a quick scavenge through the boxes of bits I have lying around, my eventual solution involved a fan taken from an old AMD stock cooler. I improvised a mounting out of a couple of motherboard risers and mounted it straight over the CPU/chipset. Running the fan off the motherboard 12V was way too loud (and produced way more airflow than I needed), so I took the 12V/ground pins out of the 3-pin connector and hooked them up to 5V from a standard molex plug. Here’s the result:
![]() Fan mounted over CPU/chipset. |
![]() Bodge. |
After the modification the PC is only barely audible with your head around 30cm or so from the case, with internal temperatures rarely exceeding 30ºC and the case cold to the touch. Excellent.
4. Installation
This isn’t going to be a complete guide, but rather a set of notes regarding areas where installation differered from the norm because of the VIA C3. Refer to the handbook or x86 quick install guide over at gentoo.org for an installation guide.
Important Note #1: The C3 Ezra is not i686 compatible, having no support for CMOV – meaning you have to use the x86 minimal install CD / stages.
Important Note #2: As far as I am aware, most Compact Flash devices do not support DMA (with a few expensive exceptions). You might notice DMA failures (accompanied by huge pauses) during boot. If so, once you’ve booted the install CD you can disable DMA for your CF card by typing the following (assuming it’s on /dev/hda):
hdparm -d0 /dev/hda
Aside from the above, installation went by with no real surprises. I formatted the ST1 with 128MB boot (EXT2), 512MB swap, and the remainder as my root partition (EXT3).
4.1 My make.conf File
The following is a listing of my make.conf file:
CFLAGS="-march=c3 -m3dnow -O2 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
CHOST="i586-pc-linux-gnu"
USE="3dnow acpi openssh -ipv6 samba -cups apache2 xml -X -gtk -gnome -qt -kde alsa"
GENTOO_MIRRORS="http://mirror.internode.on.net/pub/gentoo http://mirror.pacific.net.au/linux/Gentoo"
SYNC="rsync://mirror.internode.on.net/gentoo-portage"
LINGUAS="en"
Obviously GENTOO_MIRRORS, SYNC and USE are specific to my own situation; they might not be the same for you. The stage3 I downloaded used the i486-pc-linux-gnu CHOST, which I decided to upgrade to i586-pc-linux-gnu. Follow this guide if you want to do this too.
5. The Kernel
Here I’ll skim over some generic kernel configuration stuff that I did. I’m pretty sure everything else was fairly standard stuff (sorry, don’t have time to provide an in-depth guide).
You’ll have to run through the complete kernel config yourself anyway to make sure it fits with your specific hardware. At the end you’ll find a link to my complete .config file if you’re interested.
Note: The kernel version I used at the time was 2.6.27-gentoo-r8.
5.1 Processor Type and features
[ ] Symmetric multi-processing support
Processor family --->
[*] CyrixIII/VIA-C3
5.2 Power management options
CPU Frequency scaling --->
[*] CPU Frequency scaling
<*> 'performance' governor
<*> 'ondemand' cpufreq policy governor
<*> VIA Cyrix III Longhaul
5.3 Device Drivers
<*> ATA/ATAPI/MFM/RLL support --->
<*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
<*> Include IDE/ATA-2 DISK support
<*> Include IDE/ATAPI CDROM support
<*> Platform driver for IDE interfaces
<*> VIA82CXXX chipset support
< > Serial ATA (prod) and Parallel ATA (experimental) drivers --->
<*> I2C support --->
<*> I2C device interface
I2C Hardware Bus support --->
<M> VIA VT82C596/82C686/82xx and CX700
<*> Hardware Monitoring support --->
<M> VIA686A
<*> Sound card support --->
<*> Advanced Linux Sound Architecture --->
[*] PCI sound devices --->
<*> C-Media 8338, 8738, 8768, 8770
<*> Support for frame buffer devices --->
<*> Cyberblade/i1 support
Console display driver support --->
<*> Framebuffer Console support
[*] Network device support --->
[*] Ethernet (10 or 100Mbit) --->
<*> RealTek RTL-8129/8130/8139 PCI Fast Ethernet Adapter support
5.4 My .config File
If you like you can grab my complete .config file here. Please note though that I can’t guarantee it’ll work “out-of-the-box” for you. It might serve as a good starting point, however.
6. GRUB Config / Disabling DMA on Boot
As I noted above, the ST1 did not support DMA. Using hdparm does the trick while you’re installing, but you need to inform your new kernel not to use DMA before it boots to avoid huge delays/failures. To this end you can pass a parameter via GRUB, like so:
kernel /boot/kernel root=/dev/hda3 ide_core.nodma=0.0 video=cyblafb:1024x768,bpp=8,ref=60
If your IDE device is not primary-master, you should change the “0.0″ to suit: i.e. 0.1 for primary-slave, 1.0 for secondary-master, etc.
Also seen above (after video=) is my framebuffer console configuration.
7. Other Miscellaneous Stuff
7.1 Hardware Monitoring
Running sensors-detect provided me with a working config straight away. I did however have to tweak the over-voltage/over-temperature from their default values in /etc/sensors.conf. You’ll find the settings under ‘chip “via686a-*”‘.
7.2 cpufrequtils
I emerged cpufrequtils and added it to the boot run-level. I configured it to use the “ondemand” governor, which results in ~400MHz when idle, and the full 800MHz under load. Here is the contents of /etc/conf.d/cpufrequtils:
GOVERNOR="ondemand" RESTORED_GOVERNOR=performance
7.3 My fstab File
In order to mount my external USB drives in a consistent order regardless of how they were attached, I used the very useful links under /dev/disk/by-id/. Here is my fstab file:
/dev/hda1 /boot ext2 noauto,noatime 1 2 /dev/hda3 / ext3 noatime 0 1 /dev/hda2 none swap sw 0 0 /dev/disk/by-id/usb-WD_My_Book_57442D574341553432343439393830-0:0-part1 /mnt/media auto noatime 0 0 /dev/disk/by-id/usb-WD_My_Book_57442D574341553436383431333234-0:0-part1 /mnt/files auto noatime 0 0 shm /dev/shm tmpfs nodev,nosuid,noexec 0 0
8. Results
The PC is working great! Completely silent and seems to be plenty powerful enough for its intended purpose(s).
I was actually mildly surprised that it can happily serve up 1080p HD video via Samba.

