Remastersys and AVLinux Forum
June 19, 2013, 07:20:04 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Remastersys depends on user donations to survive.  Please help keep Remastersys going.

http://www.remastersys.com
 
   Home   Remastersys Home Remastersys downloads Donate Login Register AV LINUX Home Help Search  
Pages: [1] 2
  Print  
Author Topic: HDMI Audio on NVIDIA GPUs - can we get this to work?  (Read 2842 times)
0 Members and 1 Guest are viewing this topic.
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« on: March 31, 2012, 02:10:57 PM »

This thread is in response to some of the problems Elvis mentioned in this thread.
To Elvis and anybody else who would like to try to help him get his sound working:

I finally 'got it' that your GPU is your soundcard.  I never ran into that before (I run relatively old equipment).  Here is what looks like a definitive guide on how to get that working:
http://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html
I realize that that's not exactly newbie-friendly.  And since this is all new territory for me, I would like anybody else who has any experience with this to please chime in.

There are two things we'll need to configure (and in this order):
1. You need to have the NVidia binary X driver (also known as the NVidia proprietary driver) installed and working.  The GPU needs this driver to include the audio signal in the HDMI port.
2. You need to configure ALSA to use the NVidia soundcard.

Trying to accomplish #2 before #1 is done will simply not work.  And, I believe (though I am not sure) that the last time you installed the NVidia drivers, it messed up the system to the point where X (the graphical desktop environment) failed to start.  So, Elvis, let's take this slowly, one step at a time, so hopefully that doesn't happen again.

If you could please, open a terminal in AVLinux and copy and paste this command into it:
Code:
cat /var/log/Xorg.0.log | grep -i driver
Then, copy the output of that command and paste it here.  We'll go from there.
« Last Edit: March 31, 2012, 02:15:47 PM by trulan » Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #1 on: March 31, 2012, 02:39:33 PM »

cat /var/log/Xorg.0.log | grep -i driver
(WW) AllowEmptyInput is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
   X.Org Video Driver: 6.0
   X.Org XInput driver : 7.0
(II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
   Module class: X.Org Video Driver
(II) NVIDIA dlloader X Driver  295.33  Sat Mar 17 14:58:02 PDT 2012
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
   Module class: X.Org XInput Driver
   ABI class: X.Org XInput driver, version 7.0
(II) No input driver/identifier specified (ignoring)
(II) No input driver/identifier speci
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #2 on: March 31, 2012, 02:55:47 PM »

OK great, looks like you have the NVidia drivers installed and working.  Your monitor is connected to the hdmi port, right?

Next, open a terminal and run this command:
Code:
aplay -L

Then go to this section of the guide:
http://http.download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_alsa_user_space_physical_device_names
Compare your output of aplay -L to what they have posted.  Then, try several of the speaker-test commands they have posted:
Code:
speaker-test -c 2 -r 48000 -D hw:1,3
speaker-test -c 2 -r 48000 -D hw:1,7
speaker-test -c 2 -r 48000 -D hw:1,8
speaker-test -c 2 -r 48000 -D hw:1,9
Run one line at a time.  If you hear nothing after about five seconds, hit Ctrl+c and try another line.  If you hear static out of one side, then the other, make special note of the hw:1,* number that produces sound.  If none of them seem to do anything, post the output of aplay -L here and I'll take a look at it.
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #3 on: March 31, 2012, 02:59:28 PM »

Whoops, I forgot a step.  We need to run:
Code:
cat /proc/asound/cards
...and see what number has been given to NVidia.  The guide says it will normally be number 1.
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #4 on: March 31, 2012, 03:06:07 PM »

Hang on Elvis, I just found this further down on that page:
http://http.download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#gf520_codec_arch_support
It looks like I may need to implement a fix for you in the kernel.  I'll do a little more research but I believe you're the 'lucky' first AVLinux user for whom a 3.0 kernel is just too old for your hardware.  I'll do a little more research first, but I'll get a kernel uploaded for you soon.  Stay tuned!
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #5 on: March 31, 2012, 03:19:08 PM »

I get still no sound
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=PCH
    HDA Intel PCH, ALC889 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    Front speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    HDMI Audio Output
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #6 on: March 31, 2012, 03:21:08 PM »

cat /proc/asound/cards
0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xfad20000 irq 43
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfa080000 irq 18
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #7 on: March 31, 2012, 03:23:57 PM »

aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=PCH
    HDA Intel PCH, ALC889 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    Front speakers
surround40:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=PCH,DEV=0
    HDA Intel PCH, ALC889 Digital
    IEC958 (S/PDIF) Digital Audio Output
hdmi:CARD=NVidia,DEV=0
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=1
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=2
    HDA NVidia, HDMI 0
    HDMI Audio Output
hdmi:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    HDMI Audio Output
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #8 on: March 31, 2012, 03:28:17 PM »

Do you want me to install “PulseAudio” from the synaptic package
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #9 on: March 31, 2012, 03:54:11 PM »

Do not install Pulse Audio, that will not help at all and would only greatly confuse things.

You need to install a new kernel, and I have a testing kernel uploaded and ready to go for you, but before you install it I need to know exactly how you installed the NVidia drivers this time so I can give you the right set of instructions for updating your kernel.

So, how did you install the NVidia Drivers?  Did you use the Proprietary Driver Maintenance mode in the grub boot menu, or did you use the AVLinux control panel?
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #10 on: March 31, 2012, 04:14:30 PM »

I'm guessing (based on your previous postings) that you used the AVLinux control panel to install the NVidia drivers.  If that is the case, here's what you need to do:

1. Download this kernel:
http://www.bandshed.net/kernels/testing/3.2.12-avl-1.zip

2. Unzip the download and navigate into the unzipped folder with your file manager.  You'll see a README file and two .deb files.  Hit F4 to open a terminal in this folder.  In the terminal, enter 'su' to become root, then enter your root password. Finally, run this in the terminal:
Code:
dpgk -i *.deb

3. Next, in your terminal (still as root), run this:
Code:
sgfxi -! 40

4. This should build the driver for all the non-running installed kernels.  If this completes successfully, you can reboot, and select the 3.2.12 AVLinux kernel in the grub boot menu.  Your computer should boot up as normal if all went well.

5. Try some sound!  If it works, great!!, if not, we'll try some other diagnostics.


Edit:  I changed step 3, it's not quite as hard as I had thought.
« Last Edit: March 31, 2012, 08:06:47 PM by trulan » Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #11 on: March 31, 2012, 07:43:18 PM »

Yes. I used the "AVLinux control panel" and when the root came up it had me type in "sgfxi -c" and then I just followed the instructions.
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #12 on: March 31, 2012, 08:02:58 PM »

OK that's fine, I had forgotten how sgfxi works in this situation, so it's easier than I thought to do what you need to do.  You don't need to run sgfxi through the AVLinux control panel to do this, you can run it in a root terminal, no need to stop X to get this to work.  Just follow my edited instructions above, and it should work.

I'm eager to hear if you are successful or not.
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #13 on: March 31, 2012, 08:20:25 PM »

Thanks trulan, I''ll get back to you tomorrow.
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #14 on: April 01, 2012, 02:14:20 PM »

Its 12:12 (Noon) I just down loaded the file, so I'm going to try it out.

I'll be back 30 min
. I'm Back
« Last Edit: April 01, 2012, 03:58:45 PM by Elvis » Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #15 on: April 01, 2012, 02:57:00 PM »

Well I tried and no go. then I tried it with adding my "pci=noacpi  acpi=off". It runs the script but no video comes up.
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #16 on: April 01, 2012, 03:04:48 PM »

Tried what???  I need more details to know what you mean.  Also, please be specific about where in the process it 'didn't work' and what, if any. errors you saw.
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #17 on: April 01, 2012, 04:18:39 PM »

the text went so fast I could not read to see if errors showed up. and when it was done running the text it came up to a blank screen.
is their anything in the /var/log that will tell me of any errors.
well I tried to send you some logs all zipped up but it would not take my zip file.
« Last Edit: April 01, 2012, 05:07:14 PM by Elvis » Logged
taiyosun
Newbie
*
Offline Offline

Posts: 9


« Reply #18 on: April 01, 2012, 06:16:09 PM »

I can report that this 3.2 kernel installs and runs ok.  The recent 295.33 nvidia driver built for it also.  It sounds like maybe Elvis is at the point of having booted the kernel and at the prompt where normally the driver would need to be built. ???  I know that wasn't expected but maybe...
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #19 on: April 02, 2012, 01:56:54 PM »

Thanks for joining us, more the merrier, But trulan has been helping me out and before I go and mess anything up that he has started I'm going to have to wait for him, but all advice is welcome. I saw on another web site:
"Pulse audio is what most linux OSs use to control audio devices. AV linux does not use pulse audio, so it would probably be easiest if you install it. The program you want is pavucontrol, once you have it open, just go to the configuration tab and select HDMI output. The same advice follows if you want to use the jack sound server (for audio stuff)." "I was told No Pulse Audio"
But I'm going to wait for trulan
I'm a newbie and I don't want to mess anything up, especially when I have someone like trulan helping me. I owe him more than just a thank you for all that he has done. I just hope that he has not run out of ideas. It takes a special person to do this for all of us that need help. This is a Great Forum with a lot of good people like soppel and trulan, stay tuned.
« Last Edit: April 02, 2012, 04:05:54 PM by Elvis » Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #20 on: April 02, 2012, 04:03:16 PM »

I Hope my last message does not discourage anyone from adding their two cents in.
I appreciate everything that everyone has to offer.
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #21 on: April 02, 2012, 04:41:04 PM »

I was trying to send trulan a zip file of some log files, but I could not get them in a post. I did not know if that would help.
I got them from /var/log. Can someone tell me how I can get the zip file on a post.
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #22 on: April 02, 2012, 05:08:38 PM »

Please don't think I am the only knowledgeable person around, or that what I say is absolutely right.  I try - that's really all I can say.

Regarding Pulse Audio:  Whether installing Pulse Audio is right for you or not depends on what you want to do with your system.  If you want to browse the web, watch movies, do a little video and graphic editing, use Skype, etc., Pulse Audio is great and will let you configure things a bit easier.  If you want to do any multi-track recording, live audio processing, live synths, etc., Pulse Audio will just get in the way and make things more difficult.  To do that kind of stuff, you need the JACK audio server, not Pulse Audio.  Both Jack and Pulse are excellent audio servers, but they are intended for very different uses - they are opposites by design.  Hopefully that makes sense...

But even if you do install Pulse Audio, that doesn't change the fact that you still need to have a 3.1 or newer kernel working with the NVidia drivers in order to get audio through your HDMI port on any Linux distro or sound server.  Not that I know from experience, that's just what it says here:
Quote
10.11. GeForce 520 Codec Architecture Support

GeForce 520 and newer contain a new codec architecture that required an enhancement to the ALSA driver. This was implemented by the following commit:

http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commit;h=384a48d71520ca569a63f1e61e51a538bedb16df

Kernel Status:

    In linux kernel 3.1-rc1 and later.
http://http.download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#gf520_codec_arch_support

So that's why we need to get the kernel and video driver combination working first, before we start to figure out things from the audio server's end.

Regarding the log files, I think you're probably hitting the limit of the attachment size on the forum.  It's pretty small.  Can you post them into Pastebin and post the links to that here?
http://pastebin.com
Start with /var/log/nvidia-installer.log and /var/log/dpkg.log.  (nvidia-installer only relates to that, dpkg-log will contain information on all the packages you installed or removed.  Just so you know what information you are giving out.)
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #23 on: April 02, 2012, 05:49:17 PM »

Just a Reminder to those looking in.
My system: Asus p8z68 deluxe/gen3 w/Intel i7 chip and 16gb of ram, also a wd sata drv 1tb and a dvd/bluray writer cd player and a  nVidia GeForce 560 GTX Ti 1040 Graphic Card using the HDMI for Video and Sound going thru my Pioneer Receiver.

Operating system: Dual Boot; Windows 7 and AV-Linux 5.0.3, But the only way I could get av5 to boot off the CD or to Install on my hard drive was to enter this bit of code “pci=noacpi  acpi=off” without the quotation marks, why?

Windows on thee other hand works great, and that's what my wife likes to use for her stuff.
I gave up my Apple and ProTools because I saw Ardour and liked what I saw.
« Last Edit: April 02, 2012, 07:06:53 PM by Elvis » Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #24 on: April 04, 2012, 06:57:26 AM »

OK, from the dpkg.log it looks like the kernel and headers installed just fine:
Code:
2012-04-01 12:25:32 status installed linux-headers-3.2.12-avl-1 3.2.12-avl-1-30
..............
2012-04-01 12:25:40 status installed linux-image-3.2.12-avl-1 3.2.12-avl-1-30
...but from the nvidia-installer log, it doesn't look like sgfxi ever tried to install the NVidia drivers for the 3.2 kernel:
Code:
-> Installing 'NVIDIA Accelerated Graphics Driver for Linux-x86' (295.33):
   executing: '/sbin/ldconfig'...
   executing: '/sbin/depmod -aq 3.0.16-avl-7'...
....................
-> Installation of the NVIDIA Accelerated Graphics Driver for Linux-x86 (version: 295.33) is now complete.  Please update your XF86Config or xorg.conf file as appropriate; see the file /usr/share/doc/NVIDIA_GLX-1.0/README.txt for details.

So, here's what I'd try next:
1. Boot into AVLinux, selecting the original 3.0.16-avl-5 kernel in your boot menu.  This still gets you to a graphical desktop, right?

2. In the 'Accessories' menu, open a root terminal.

3. In the root terminal, run this command:
Code:
sgfxi -k -K 3.2.12-avl-1

If that completes successfully, reboot into the 3.2.12-avl-1 and you should get to the desktop.  If that fails, copy and paste its error messages here please.
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #25 on: April 04, 2012, 02:10:48 PM »

 Yahoo It worked. Still no sound, but I up and running with the new 3.2.12 kernel

On the other av5 3.0.16 (old one) some one sent me this to try, and it did not work
he said he had the same card and this is what work for him I'll send the whole thing to your mail box.
Maybe I have to delete this. if it is doing something to the new av5 3.2.12 kernel.

gedit .asoundrc
pmc. !default {
type hw
card 0
device 7
}
ctl.!default {
type hw
card 0
device 7
}
« Last Edit: April 04, 2012, 03:47:59 PM by Elvis » Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #26 on: April 04, 2012, 05:10:32 PM »

Yahoo It worked. Still no sound, but I up and running with the new 3.2.12 kernel

On the other av5 3.0.16 (old one) some one sent me this to try, and it did not work
he said he had the same card and this is what work for him I'll send the whole thing to your mail box.
Maybe I have to delete this. if it is doing something to the new av5 3.2.12 kernel.
Great!! Now you're ready to move on to configuring alsa.  And you've already got an .asoundrc, so you're well on your way there.  Based on what you posted earlier:
Quote
cat /proc/asound/cards
0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xfad20000 irq 43
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfa080000 irq 18
...you want your .asoundrc to point to card 1, not card 0.  Like this:

Code:
pmc. !default {
type hw
card 1
device 7
}
ctl.!default {
type hw
card 1
device 7
}
...but whoever sent you the .asoundrc likely can help you better than I can from here on out.  Your persistence is going to pay off soon!
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #27 on: April 04, 2012, 05:37:57 PM »

I tryed hw1 still no sound and that person that gave me that code got it from someone else.
still stuck, well things started to look up. I'll try it again with the 3.2.12 kernel.
Logged
Elvis
Sr. Member
****
Offline Offline

Posts: 62


Service Before Self


« Reply #28 on: April 04, 2012, 06:26:20 PM »

Driver=Alsa
Dither=None
Audio=Dulplex
Input Device=hw:1
Output Device=hw:1.7
everything else is set to Defaults
Press"OK" and Start Jack (I also tried other comminations to as well) same thing (Error)

Error - JACK Audio Connection Kit
Could not connect to JACK server as client.
- Overall operation failed.
- Unable to connect to server.
Please check the messages window for more info.

MESSAGES:
16:07:05.460 Patchbay deactivated.
16:07:05.476 Statistics reset.
16:07:05.477 ALSA connection change.
16:07:35.650 JACK is starting...
16:07:35.651 /usr/bin/jackd -dalsa -r48000 -p1024 -n3 -D -Chw:1 -Phw:1,7
jackd 0.121.3
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK compiled with System V SHM support.
loading driver ..
apparent rate = 48000
creating alsa driver ... hw:1,7|hw:1|1024|3|48000|0|0|nomon|swmeter|-|32bit
control device hw:1
16:07:35.666 JACK was started with PID=2702.
ALSA: Cannot open PCM device alsa_pcm for capture. Falling back to playback-only mode
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 3 periods
ALSA: final selected sample format for playback: 32bit integer little-endian
ALSA: got smaller periods 2 than 3 for playback
ALSA: cannot configure playback channel
cannot load driver module alsa
16:07:35.674 JACK was stopped successfull
16:07:37.722 Could not connect to JACK server as client. - Overall operation failed. - Unable to connect to server. Please check the messages window for more info.

also I noticed that when I go to my terminal and type "alsamixer", the mixer does not come up.
All the messing around could I have messed up Jack and/or Alsa, can you reinstall just jack and/or Alsa?
Logged
trulan
Global Moderator
Hero Member
*****
Offline Offline

Posts: 875


« Reply #29 on: April 04, 2012, 07:15:48 PM »

ALSA: Cannot open PCM device alsa_pcm for capture. Falling back to playback-only mode
OK, you could select 'playback only' mode to eliminate this error.  Is the HDMI port supposed to support audio capture?

Quote
ALSA: got smaller periods 2 than 3 for playback
ALSA: cannot configure playback channel
cannot load driver module alsa
Try setting your Periods/Buffer to 2, your sound card does not like 3 periods.
Logged
Pages: [1] 2
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!