Yet another little corner of the web

Random thoughts and experience, committed to electrons

5.1 Surrond Sound via VT1618 and Linux

The Via VT1618 audio codec is used in a number of Via chipsets, including the VT8237, as found on the Via EPIA EN15000G and EN12000EG motherboards. These motherboards provide 3 audio jacks as part of the back panel I/O, Line-out, Line-in and Mic-in, however the Line-in and Mic-in connectors can also be switched in software to act as outputs, providing Rear (left and right), Center and LFE (subwoofer) channels. This seems to be marketed by Via as “Smart 5. Support” and seems to be an implementation of the “Universal Audio Jack” (UAJ). This makes it possible to drive a 5.1 surround sound system with out the need for an external decoder driven from a digital audio connection. The guide has been written around a configuration found to work on a Via EN12000EG, though it should be relevant to other boards using the same audio codec, assuming that the audio ports from the chipset have been routed to the audio jacks in the same fashion. Ubuntu 8.10 was used as the distribution of choice when writing this guide, whilst some of the information found here will be the same across distributions, some portions of it may be Ubuntu specific. In addition, this guide requires the user to make modest changes to the stock distribution and as a result requires the user to be at least comfortable with use of the command line, kernel configuration/compilation and the use of development kernels. Given the nature and rate of Linux development no guarantees are given at to the result of following this guide. First, ensure that you have the speakers connected to the right inputs. The Line-out connector provides front left and right, as in a stereo configuration, the Line-in connector provides rear (some times called “surround”) left and right and the Mic-in connector provides the center and LFE channels. To utilise the Line-in and Mic-in lines as outputs some special configuration needs to be made to the audio codecs registers. This task is provided in recent Linux drivers for this codec as part of the ALSA project. This configuration is exposed to the user via the ALSA API and can be configured at run time. The first catch is that this support for “Smart 5.1 support” was only added to the kernel during the development process for the 2.6.28 version of the kernel. The Ubuntu 8.10 distribution is based on a slightly older version of the kernel (2.6.27) and thus support for 5.1 using the VT1618 audio codec is not supported in the standard distribution. It is therefore necessary to compile a custom kernel, luckily this process is documented well on the Ubuntu wiki.

Note: The above kernel compilation guide requires the user to run “make oldconfig”. Due to the large number of changes this will result in quite a few questions being asked. During this stage I answered “m” (compile as a module) to any questions which provided this as a valid option. The rest should be OK on their default value (just hit return). Once rebooted run “alsamixer” from within a terminal or the Gnome Volume Control (this can be found under “System->Preferences->Volume Control”, you may need to make the controls visable from the “Preferences” dialog under “Edit”), there should be a number of additional configuration options, among them:

  • Speaker Jack Mode
  • Line Jack Mode
  • Mic Jack Mode

Set these as follows:

  • Speaker Jack Mode = Speaker Out
  • Line Jack Mode = Surround Out
  • Mic Jack Mode = Center LFE Out

Ensure that the volume controls for the speaker, surround, center and LFE channels are not muted and the volume is turned up. The following command should loop through each of the 6 channels outputting pink noise (that’s a specific type of static or hissing sound, not a reference to the work by a specific pop artist!): speaker-test -c 6 -D surround51 Should you find the center and LFE channels to be swapped, then there is a further configuration switch called “Center/LFE Exchange” which allows you to swap these channels.

28 Jul 2017 #Linux