Search:  
Gentoo Wiki

VIA_Epia_CN10000

Contents

Introduction

How to configure the kernel for use on the CN10000.

References

Hardware Spec

Processor Family: C7
Form Factor: Mini-ITX (4 layer), 17 cm x 17 cm.
CPU Speed: 1.0 GHz (Fan/Heatsink)
Speedstep: No
Chipset:
Onboard LAN:
Memory type: 1x DIMM socket. Up to 1.0GB of DDR SDRAM
Video: VIA Technologies, Inc. VT1625M
Upgradable: Video is soldered to mainboard but a PCI graphics card can be used
Audio: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50).
Expansion:
Back Panel:
BIOS: Award BIOS, 2/4Mbit flash memory.
Monitoring: CPU voltage monitoring, Wake-on-LAN, Keyboard-Power-on, Timer-Power-on, System power management, AC power failure recovery.
I/O Connectors:

Before you start

Set the BIOS video mode to CRT only - get TV out working later.

The board's video system is single-headed in Linux. TV takes priority over CRT. Lots of automatic-configuration and mode setting works stunningly poorly in TV and TV+CRT mode.

Make system

File: /etc/make.conf
# Please consult /etc/make.conf.example for a more detailed example
CFLAGS="-march=i686 -msse -msse2 -mmmx -mfpmath=sse -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"

VIDEO_CARDS="vesa"
ALSA_CARDS="via82xx"

# MPLAYER use flags.
#aac - Enables support for MPEG-4 AAC Audio
#alsa - Adds support for media-libs/alsa-lib (Advanced Linux Sound Architecture)
#dga -Adds DGA Support (Xfree86) (DGA=Direct Graphic Access)
#dts -Enables libdts (DTS Coherent Acoustics decoder) support
#dvb -Adds support for DVB (Digital Video Broadcasting)
#dvd -Adds support for DVDs
#dvdread -Enables usage of Ogle's libdvdread for DVD playback
#esd -Adds support for media-sound/esound (Enlightened Sound Daemon)
#mad -Adds support for mad (high-quality mp3 decoder library and cli frontend)
#mmx -Adds support for optimizations for Pentium MMX and Athlon class processors
#vorbis -Adds support for the OggVorbis audio codec
#sse -fast floating point optimization for PentiumIII+ class chips
#v4l -Enables video4linux support
#win32codecs -use win32codecs package for dll avi decoding support (wmv and what not)
#xv -Adds in optional support for the Xvideo extension (an X API for video playback)
#xvid -Adds support for xvid.org's open-source mpeg-4 codec

# HW decompress
# cle266    - used by xine
# xvmc      - used by xine, mplayer, mythtv
# unichrome - used by mesa, DirectFB, mythtv

USE="fpu de tsc msr mtrr pge cmov fxsr sse mmx -apache2 -arts -cups
  -gtk -kde -gnome -sdl -xmms dvd dvdread cle266 v4l unichrome xvmc
  xv -gtk -jpeg -gif -png -mad -encode -esd"

MAKEOPTS="-j2"


INPUT_DEVICES="keyboard mouse"

GENTOO_MIRRORS="YOUR_SELECTION"

SYNC="YOUR_SELECTION"


Kernel configuration

Linux Kernel Configuration: epia 2.6
Processor type and features  --->
  Processor family  --->
    VIA C7 
  [ ] Symmetric multi-processing support 
  Local APIC support on uniprocessors
 Device Drivers  --->
  ATA/ATAPI/MFM/RLL support  --->
    <*>         VIA82CXXX chipset support
  Networking device support  --->
    Ethernet (10 or 100Mbit)  ---> 
      [*] EISA,VLB,PCI and on board controlers
          <*>   VIA Rhine support
  Character devices  ---> 
  <*> I2C support  --->
     <*>   I2C device interface
     I2C Algorithms  --->
        <*> I2C bit-banging interfaces
     I2C Hardware Bus support  --->
        <*> VIA VT82C596/82C686/82xx and CX700
  Graphic support ---->
    <*> /dev/agpgart (AGP Support) 
        <*>   VIA chipset support 
    <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
  <*> Hardware Monitoring support  --->
     <M>   VIA VT1211 
     <M>   VIA VT8231      Multimedia devices  --->
    <*> Video For Linux
  Sound --->
    Advanced Linux Sound Architecture  ---> 
      PCI devices  --->
        <*> VIA 82C686A/B, 8233/8235 AC97 Controller
  Cryptographic API
    [*] Hardware crypto devices --->
        <*> support for VIA PadLock ACE
             2x <*> PadLock...

I continually ran into problems where my video card was not recognized. Besides giving you my .config settings, I recommend the following process to achieve a working kernel.

With the motherboard running in CRT mode, make sure that you have 'vesa' support running on the console. There seem to be a set of options where 'vesa' support stops working. If the kernel can't figure out the board has 'vesa', X is going to have an even harder time.

A 'genkernel' or 'mrproper' build has good settings to cause 'vesa' support to work well. Consider starting with this configuration, and cutting out options to improve boot times. My current boot time is well under 30 seconds after removing wifi, raid, and a variety of other configurations.

In particular, this board is likely to be run with a motherboard-based (ATA or SATA or USB) boot drive. If so, drivers other than the included ATA/SATA/USB drivers are unnecessary, and mounting the initfs file system is wasted time - especially as it is discarded when the / file system comes on line.

Consider changing the CFLAGS in the kernel Makefile directly. 'make menuconfig' will only allow you to set processor class, and not allow the addition of flags like -mmmx. Otherwise, I suggest the pentium-III choice (pentium-4 may work as well).

Simple Install

The standard X auto-config systems have difficulties with this board. Make sure you're running in CRT mode, that 'vesa' works with a command line shell, and that you've installed the OpenChrome VIA driver.

Be ready to simply write your own xorg.conf file using one of the fine HOWTOs on the topic.

Tips and Tricks

The most important first step is to set your BIOS video mode to CRT, and get your system configured with CRT alone before tackling TV-Out. When you run CRT+TV, the TV configuration takes over, and the CRT is a copy of the TV output. Unfortunately, many CRTs won't handle the output formats, and you'll think you've chosen bad kernel options.

Further, if you intend to use the CN10000 with a TV, consider using the VGA connector instead of S-Video. Quality will be higher, you won't have to muck with flicker and interlace issues.

After initial install of the 2006.1 stage3, set the CFLAGS as noted above. The C7 is not a fast processor, and you'll want decent compile speeds. Your first --sync will pull in the new GCC compiler and recompile it with your chosen flags.

Do verify with 'hdparm -tT /dev/hXXXX' that drive DMA is functional - occasionally I've misconfigured the kernel. If not working, fix this first.

Video

The main VIA graphics chip is a Unichrome Pro VT3344 with VT1625 TV encoder. As of current writing (March, 2007), the only reasonable video driver choice is OpenChrome - which has no Gentoo EBUILD, but do not fret.

Your other choices:

The UniChrome driver, which does not support the VT3344.

The VIA-distributed source drivers, which do not have a Gentoo recipe, and are 100% inscrutable. I have tried using this driver with a 'supported' distro, without luck. Anyone who manages to build with Gentoo should update this wiki.

The XF86 'via' driver - the 'via' driver in Gentoo - doesn't recognize the card.

OpenChrome is good. OpenChrome is currently under active development. The UniChrome developer (Luc) contributes his source. OpenChrome cares about XvMC and XV support (hardware acceleration of MPEG) and TV Out. The community tracks changes to the VIA source distribution and incorporates changes frequently. Their HOWTOs are excellent and the entire process worked well.

However, as of mid-April, 2007, OpenChrome does not support TvOut in NTSC format with this chip. There are some comments on the OpenChrome wiki, but responses from the mailing list have been sparse.

Use OpenChrome.

MPEG acceleration

MPEG acceleration works with early-April 2007 Gentoo. It appears the necessary DRI, DRM, XvMC, mplayer patches are in place.

One trick: use mplayer's 'custom-cflags' USE. Without it, 'mplayer' identifies the processor as a VIA C3, and disables various hardware support. When you run 'mplayer', make sure you're getting MMX, MMX2 (enabled by 'mmx-ext' mplayer use flag), SSE, SSE2. Watch during build, and make sure you're getting your standard set of build flags.

3D acceleration

I currently do not have 3D acceleration working and enabled. There are reports of crashes in Mesa from other VIA users, and I don't think I care about 3D.

Flash video

What's video without YouTube (et al)?

Using Adobe/Macromedia's Flash9 player results in terrible video performance. I currently achieve what looks like 3-4 FPS, and am trying to find optimizations - perhaps enabling 3D will work.

Expected installation time

The benefit of Gentoo for this motherboard is that you get to use good compile flags (use -mmmx -msse, avoid the 3DNow acceleration), and you get access to the state-of-the-art XvMC patches. However, starting with 2006.1, setting the CFLAGS, sync, update/recompile takes nearly two days of compile time.

Retrieved from "http://www.gentoo-wiki.info/VIA_Epia_CN10000"

Last modified: Thu, 28 Aug 2008 22:14:00 +0000 Hits: 7,547