Aug 18, 2009

Tutorial: Zotac ION N330 + Boxee/XBMC + VDPAU + 1080P w/sound over HDMI

*Update 12/01/09 - Instructions For BOXEE ONLY. Please refer to this post for XBMC.*

This post will get you video and audio over HDMI including audio passthrough for Dolby Digital or DTS. Feel free to skip down to the good stuff ; ).

The Zotac N330 is a dual core Atom CPU with an Nvidia ION GPU inside a tiny 7.5"x7.5" form factor. What's really amazing though is that when these two little chips are put together they are capable of playing 1080P HD content without even breaking a sweat. Through VDPAU for Linux, or Direct X 10 for Windows, content traditionally sent to the CPU is now sent to the ION to decode. This means for users like us, this opens the door to media, games, and powerful computing in a small, well priced, and low power consuming computer. Emphasis on powerful and well priced.

I ordered my board on Amazon w/free shipping for $190 including a 19V power supply--I assumed it would be a 12V power supply. After completing the installation, when playing 720P movies, my CPU usage was less than 6% per core! From what I've read, 1080P does NOT utilize the CPU core all that much either.

FYI: For those worried about getting an older board: the older revision of this board had a USB suspend problem, but now all the boards being sold have been fixed with an added jumper.

Here are my system specs:
Zotac N330
1GB DDR RAM
4GB OCZ Rally2 USB stick w/Ubuntu 8.10 Intrepid installed
Boxee w/latest build

These instructions are interchangeable with XBMC. Boxee is built on XBMC, so some of the references will look similar.

This will get you the latest NVIDIA graphics drivers:

Add these repositories to your sources:

deb http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/nvidia-vdpau/ppa/ubuntu intrepid main

Open up a terminal:
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 71609D4D2F1518FA9C5DC0FB1DABDBB4CEC06767
sudo apt-get update
sudo apt-get install linux-headers-generic nvidia-glx-185
sudo reboot

Upon Rebooting go into the BIOS.
(the following instruction is from my memory, so if you dont' find it there, it's somewhere in your BIOS) In your BIOS, go to Southbridge configuration and change the video RAM from 256MB to 512MB. Inside the Southbridge config, change Audio codec to Internal only.

Go into boxee, Settings, Video:
Turn on accelerate videos when posssible to enable VDPAU.
Exit boxee.



This will get you sound over HDMI:
(not sure about coax or optical)

Boot into Ubuntu, and open up a terminal and type:
sudo gedit ~/.asoundrc


Paste the following into that file:
pcm.dmixer {
type dmix
ipc_key 1024
ipc_key_add_uid false
ipc_perm 0660
slave {
pcm "hw:0,3"
rate 48000
channels 2
period_time 0
period_size 1024
buffer_time 0
buffer_size 4096
}
}
pcm.!default {
type plug
slave.pcm "dmixer"
}

Open up another terminal (this will enable Youtube, and XBMC system sounds):
Type in: alsamixer
Make sure that IEC958 is unmuted by pressing the letter "m" without quotes.
If it it muted, then it will look like this - Item: IEC958 [off]
Once you unmute it, then it will look like this - Item: IEC958


Save. Close it. Reboot.


Inside Boxee:
Go to Settings, System, Audio and change the following:

Instead of:
sound: ie958
passthrough: ie958

Change to (type default to where ie958 is):
sound: default
passthrough: default

Now you will have HD video and sound in Ubuntu to Boxee from your HD videos all the way to youtube, hulu, or whatever you want to play. Now go have fun!

18 comments:

  1. Thank you for the hdmi audio instructions... I have been having digital audio skipping issues through coax and optical out. Now with the hdmi fix, the dts and dolby digital tracks play perfectly with no skips. Thanks!

    ReplyDelete
  2. I'm glad this helped you out. Cheers!

    ReplyDelete
  3. Great guide!
    Just one commend: the BIOS settings are in the Southbridge, not the Northbridge.

    ReplyDelete
  4. Hi, thanks for the heads up. Changed North to South.

    ReplyDelete
  5. is the options snd-hda-intel model=???" in the "/etc/modprobe.d/alsa-base.conf" needed for the Zotac ION? If yes, model do you put under model=???

    ReplyDelete
  6. hi,
    i've just installed ubuntu 9.04 and now i can play 1080p with my Zotac ION N230 ;) via VDPAU. Now I need to connect my MB to external audio decoder via Coaxial or Optical connection. Ubuntu Sounds works good but when I play a video with SMPlayer I receive an error
    "Trying to force audio codec driver family hwac3...
    Opening audio decoder: [hwac3] AC3/DTS pass-through S/PDIF
    No accelerated IMDCT transform found
    hwac3: switched to AC3, 640000 bps, 48000 Hz
    AUDIO: 48000 Hz, 2 ch, ac3, 640.0 kbit/41.67% (ratio: 80000->192000)
    ID_AUDIO_BITRATE=640000
    ID_AUDIO_RATE=48000
    ID_AUDIO_NCH=2
    Selected audio codec: [hwac3] afm: hwac3 (AC3 through S/PDIF)
    ==========================================================================
    [format] Sample format big-endian AC3 not yet supported
    Error at audio filter chain pre-init!

    Exiting... (Fatal error)
    ID_EXIT=ERROR

    Can you help me?
    Thank you so much

    ReplyDelete
  7. Not sure how to help the last two comments out. Hopefully another visitor can chime in. Best wishes.

    ReplyDelete
  8. Do you get more then stereo over HDMI out of this configuration?

    Did you also enable DTS/AC3 within XBMC/Boxee?

    I have a very similar config and am not able to get anything other than stereo audio out of my movies when I know they are 5.1 encoded.

    Thanks

    Mark

    ReplyDelete
  9. Hi Mark, from what I remember, after creating the asoundrc file and setting the sound settings in boxee to"default," I was able to get 5.1 over HDMI to work with my mkv's.

    ReplyDelete
  10. Worked perfectly for me, including 5.1 channel audio on my mkvs that support it.

    Anonymous, is it possible that your 5.1 channel audio tracks are AAC? There have been similar reports of issues relating to AAC at the XBMC forums.

    Andrea C.,

    Do you have the proper packages installed for ac3 decoding?

    ReplyDelete
  11. A very interested in setting up my own hd mini pc for hd video. AM i right in thinking that this will play any hd file smoothly?

    Is the ION (pureVideo) limited to just blu-ray discs or is it a dedicated hd decoder for all hd files?

    Chris

    ReplyDelete
  12. Hello,

    I got a Zotac Mini Itx N330 ION too and i just cant install nvidia drivers on it.

    I installed a fresh jaunty 32bit 2 times already, and nothing.

    After running updates, i go to harware drivers, and doesnt seem that i have a graphic card as i shows nothing in there.

    I tried following the tutorial over XBMC forums on setting up this, and when it gets to login screen is asks for usrname and password as usual then i get the following message:

    [code]
    XBMC needs hardware accelerated OpenGL rendering
    install an appropriate graphics driver.[/code]

    Please consult xbmc wiki for supported hardware
    http://xbmc.org/wiki/?title+Supported_hardware
    [/code]I tried entering the commands on the post above me and it didnt install the beta 190 driver either.

    How can i download this driver from (CRT+ALT+F1) because i cant get to graphical mode as it fails to log in.

    And i dont want to have to re-reintall it all again.

    Best Regards

    Denis



    edit:
    here is my error:

    (~/.xsession-errors file)


    /etc/gdm/Xsession: Beginnin session setup...
    Setting IM through im-switch for locale=en=US
    Start IM through /etc/X11/xinit/xinput.d/all_ALL linked to /etc/X11/xinit/xinput/xinput.d/default.
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    Error: cound't find RGB GLX visual or fbconfig
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    xlib:extention "GLX" missing on display ":1.0".
    Segmentation fault



    What did i do wrong? I tried installing the (http://us.download.nvidia.com/XFree86/Linux-x86/185.18.36/NVIDIA-Linux-x86-185.18.36-pkg1.run) and i still get the same error then the one above.


    NOTE: Running 4GB or DDR2 / ubuntu32bit jaunty main



    Please help

    ReplyDelete
  13. Hey Denis, did you try adding the two repositories to your sources for jaunty? In the instructions, in the post, replace "intrepid" with "jaunty." If you still have internet, you should still be able to get the drivers by adding the repos first, and then following the rest of the instructions above. Cheers!

    ReplyDelete
  14. yes sure i have,

    btw this (sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 71609D4D2F1518FA9C5DC0FB1DABDBB4CEC06767) fails

    dunno if i am entering o or O or 0(zero) correctly either.

    U think if i try this again its going to work?

    ReplyDelete
  15. Hey Denis, the number is a zero, not an 'o'. I just tested the key, and it works. You'll see something like this: gpg: key CEC06767: public key "Launchpad Nvidia Vdpau Team PPA" imported. Let me know how it goes. GL

    ReplyDelete
  16. Thanks Tri, you just made my day.

    Note that this works equally as good on my acer aspire revo r3600 (which is basically the same hardware), whether i use boxee or xbmc.

    ReplyDelete
  17. I'm getting skipping from the optical output, but don't have HDMI to switch to. Anyone have a fix for this?

    ReplyDelete
  18. I've a Zotac HD-ID40 with Boxee (boxee-0.9.22.13692.x86_64.modfied.deb) running on Ubuntu 10.10 Server 64bits and today I realize that YouTube video has no sound on HDMI, but it has over "front" plug.
    I search a while and a fix could be to tell the linux box that the default card is the HDMI one. I think it's because the Flash Player only outputs sound on the default device.
    So I create a .asoundrc with this config:

    pcm.!default {
    type hw
    card NVidia
    device 7
    }
    ctl.!default {
    type hw
    card NVidia
    }

    Then reboot and Boxee start to work ok viewing movies and youtube videos.
    More info on: http://alsa.opensrc.org/FAQ026

    Hope it will be usefull to others.

    ReplyDelete