LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   getting a Soundblaster Audigy FX to work (https://www.linuxquestions.org/questions/linux-hardware-18/getting-a-soundblaster-audigy-fx-to-work-4175505881/)

metageek 05-23-2014 09:47 AM

getting a Soundblaster Audigy FX to work
 
Hello,

I have a soundblaster Audigy FX that I am trying to get to work in Linux. I wonder if anyone else already solved this problem? I've googled around but there is not much about this...

I run Slackware64 14.1 (all patches applied, kernel 3.10.17) on a Dell PowerEdge T620.

What I have found out already:

- it seems this card has a Realtek ALC898 chip and linux loads the snd-hda-intel module for it
- KDE shows a mixer for it, but it also says "nothing is playing audio")
- no sound comes out of the speakers
- I have tried all the obvious things (alsamixer settings, mute/unmute, levels, etc).

There is no sound chip on the motherboard but I have an NVIDIA GPU which has HDMI, so that appears as card 0; the Audigy FX appears as card 1:

aplay -l
Code:

**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Creative [HDA Creative], device 0: ALC898 Analog [ALC898 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

lspci -lv (showing only entries for Audio devices)
Code:

03:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
        Subsystem: Hewlett-Packard Company Device 0862
        Flags: bus master, fast devsel, latency 0, IRQ 52
        Memory at d9ffc000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: [60] Power Management version 3
        Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [78] Express Endpoint, MSI 00
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

05:00.0 Audio device: Creative Labs Device 0012 (rev 01)
        Subsystem: Creative Labs Device 0010
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at dc8f8000 (64-bit, non-prefetchable) [size=16K]
        Memory at dc8fc000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
        Capabilities: [70] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Capabilities: [170] Device Serial Number 00-00-00-00-00-00-00-00
        Capabilities: [180] Power Budgeting <?>
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel

Checking the kernel docs for this driver in Documentation/sound/alsa/HD-Audio-Models.txt there are no soundblaster cards listed with an ALC898 (only Acer and Vaio models listed for that chip; I will be trying them out as options for the module and will report later).

Any ideas?

trevoratxtal 05-23-2014 11:44 PM

This may help to find the driversor soundblaster cards.
 
Hello metageek
I to Have found problems with Audio drivers and was frustrated until I found Fedora 17 worked with Soundblaster cards and external units.
I have yet not had the time to find out the reason why, or what is different to other Linux Versions .
I hope this may be a clue.
Trev

Steve R. 05-24-2014 10:01 AM

Do you have Windows available (on any computer)? The reason that I am asking this is that I have had several cards where the Windows install resulted in "firmware" being loaded onto the card. Once that was accomplished, the card worked under Linux. It has been several years since I had that type of issue, so my suggestion could be considered "dated".

metageek 06-02-2014 04:11 PM

Quote:

Originally Posted by Steve R. (Post 5176352)
Do you have Windows available (on any computer)? The reason that I am asking this is that I have had several cards where the Windows install resulted in "firmware" being loaded onto the card. Once that was accomplished, the card worked under Linux. It has been several years since I had that type of issue, so my suggestion could be considered "dated".

Hi Steve R,
tried this with a Win7 computer, then put the card back onto the linux machine; but I still the have same problem. No sound coming out of the card, even though it shows as a "HDA Creative" device.

Thanks for the suggestion, but it did not work on this one.

metageek 06-02-2014 04:20 PM

An update on this, I was travelling and did not manage to do anything until today.

I have now changed the settings such that the HDA Creative device shows up as card 0. I did this by creating a file /etc/modprobe.d/alsa-base.conf with the following content

Code:

# Audigy FX is index 0, NVidia is index 1
options snd-hda-intel index=0 id=0x1102 model=inv-dmic
options snd-hda-intel index=1 id=0x10de
options snd-usb-audio index=2 id=0x046d

aplay -l now shows
Code:

**** List of PLAYBACK Hardware Devices ****
card 0: Creative [HDA Creative], device 0: ALC898 Analog [ALC898 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: D0x10de [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: D0x10de [HDA NVidia], device 7: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: D0x10de [HDA NVidia], device 8: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: D0x10de [HDA NVidia], device 9: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

However this did not change anything (other than the order in which the devices are seen). Still no sound, although the card is recognised as "HDA Creative".

At boot, these are the messages from the kernel:
Code:

Jun  2 16:52:04 hydra kernel: [  12.660913] hda_intel: Disabling MSI
Jun  2 16:52:04 hydra kernel: [  12.660927] hda-intel 0000:05:00.0: Force to non-snoop mod
e
Jun  2 16:52:04 hydra kernel: [  12.712560] input: HDA Creative Front Headphone as /device
s/pci0000:00/0000:00:1c.0/0000:05:00.0/sound/card0/input12
Jun  2 16:52:04 hydra kernel: [  12.712693] input: HDA Creative Line Out CLFE as /devices/
pci0000:00/0000:00:1c.0/0000:05:00.0/sound/card0/input13
Jun  2 16:52:04 hydra kernel: [  12.712807] input: HDA Creative Line Out Surround as /devi
ces/pci0000:00/0000:00:1c.0/0000:05:00.0/sound/card0/input14
Jun  2 16:52:04 hydra kernel: [  12.712907] input: HDA Creative Line Out Front as /devices
/pci0000:00/0000:00:1c.0/0000:05:00.0/sound/card0/input15
Jun  2 16:52:04 hydra kernel: [  12.713001] input: HDA Creative Line as /devices/pci0000:0
0/0000:00:1c.0/0000:05:00.0/sound/card0/input16
Jun  2 16:52:04 hydra kernel: [  12.713094] input: HDA Creative Rear Mic as /devices/pci00
00:00/0000:00:1c.0/0000:05:00.0/sound/card0/input17
Jun  2 16:52:04 hydra kernel: [  12.713187] input: HDA Creative Front Mic as /devices/pci0
000:00/0000:00:1c.0/0000:05:00.0/sound/card0/input18

Not sure what else to try. Maybe I will just add a USB sound card to this machine...
Still would be nice if we could figure out how to run this card in Linux.

janKdebian 08-25-2014 08:05 PM

Hi Guys,

this post is old but I hope I can still help because I recently had this problem and since there is no solution online as it seems I wanna share how I fixed it.

The problem is quite simple, you use the same driver for two different cards. In my case it was the nvidia HDMI and the Creative Audigy. Both use the snd_intel_hda. You have to make sure the one driver you use is loaded the latter, that means for my case adding into /etc/initramfs-tools/modules the name of the nvidia driver, simply nvidia (+nvidia_uvm but that does nothing with the sound) because I want the Creative to blast. This is now included into initramfs and loaded just before the kernel jumps to hdd reading. Please do not forget the command update-initramfs -u after changing /etc/initramfs-tools/modules. If you have n sound cards, just add the n-1 ones you don not want to use as primary output to that file. The only possible way I can see problems with that when you have two cards of the same type installed. Otherwise you should be fine.

I am running linux-3.16.1 now with awesome sound, nvidia GTX750 driver from thier webite and all GPU computing enabled. (Yes, while listening to music)

janK

binary_pearl 10-17-2014 10:22 PM

Thanks, it worked!
 
Awesome, janKdebian's post is exactly what I needed in Linux Mint 17 to make the Audigy FX to work! Before I was getting massive static when trying to play anything. As soon as I did the suggested solution, I rebooted, and sound worked perfectly.

--Shaun

kravemir 01-08-2015 02:48 PM

I've tried everything here, nothing worked, still was getting only static...

I also(only?) had to disable internal audio card!

EDIT: I didn't make it working reliably on Arch Linux. Sometimes when I started computer and launched VLC sound worked well(not always). However, when I launched Google Chrome, or something else, sound broke.

My Solution: Returned card to the show and use my MB's internal with Realtek ALC887-VD chip. Maybe output amplifier is not as good as is on Audigy FX, but I didn't notice big difference.

algorhythm99 01-09-2015 04:28 PM

Quote:

Originally Posted by janKdebian (Post 5227213)
Hi Guys,

this post is old but I hope I can still help because I recently had this problem and since there is no solution online as it seems I wanna share how I fixed it.

The problem is quite simple, you use the same driver for two different cards. In my case it was the nvidia HDMI and the Creative Audigy. Both use the snd_intel_hda. You have to make sure the one driver you use is loaded the latter, that means for my case adding into /etc/initramfs-tools/modules the name of the nvidia driver, simply nvidia (+nvidia_uvm but that does nothing with the sound) because I want the Creative to blast. This is now included into initramfs and loaded just before the kernel jumps to hdd reading. Please do not forget the command update-initramfs -u after changing /etc/initramfs-tools/modules. If you have n sound cards, just add the n-1 ones you don not want to use as primary output to that file. The only possible way I can see problems with that when you have two cards of the same type installed. Otherwise you should be fine.

I am running linux-3.16.1 now with awesome sound, nvidia GTX750 driver from thier webite and all GPU computing enabled. (Yes, while listening to music)

janK

I think I'm experiencing what you were experiencing janKdebian, but I have a couple questions. I have a an integrated Intel soundcard, and AMD FirePro W5100 GPU with HDMI audio support, and the Soundblaster Audigy FX card that I'm trying to use. All three are trying to use the snd_hda_intel driver. I have pulseaudio disabled in order to debug this.

Code:

speaker-test -Dhw:0,0 -c 2
works as expected (pink noise from my case speaker)


Code:

speaker-test -Dhw:1,3 -c 2
('3' to select correct HDMI port) works as expected (pink noise from my monitor's speaker via HDMI)


Code:

speaker-test -Dhw:2,0 -c 2
does not error out, but there is no sound (headphones plugged into 'front' on the Audigy FX card)

Code:

algorhythm@e-pro:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC280 Analog [ALC280 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 11: HDMI 5 [HDMI 5]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Creative [HDA Creative], device 0: ALC898 Analog [ALC898 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Code:

algorhythm@e-pro:~$ lspci -v | less
...
00:1b.0 Audio device: Intel Corporation Wellsburg HD Audio Controller (rev 05)
        Subsystem: Dell Device 0617
        Flags: bus master, fast devsel, latency 0, IRQ 70
        Memory at fbf30000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel

...

02:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Bonaire (prog-if 00 [VGA controller])
        Subsystem: Dell Device 230c
        Physical Slot: 2
        Flags: bus master, fast devsel, latency 0, IRQ 72
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Memory at f0000000 (64-bit, prefetchable) [size=8M]
        I/O ports at e000 [size=256]
        Memory at fbe00000 (32-bit, non-prefetchable) [size=256K]
        Expansion ROM at fbe40000 [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: fglrx_pci

02:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device aac0
        Subsystem: Dell Device aac0
        Physical Slot: 2
        Flags: bus master, fast devsel, latency 0, IRQ 71
        Memory at fbe60000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel

03:00.0 Audio device: Creative Labs Device 0012 (rev 01)
        Subsystem: Creative Labs Device 0010
        Physical Slot: 4
        Flags: bus master, fast devsel, latency 0, IRQ 40
        Memory at fbd04000 (64-bit, non-prefetchable) [size=16K]
        Memory at fbd00000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: snd_hda_intel

...

1) How does adding the driver names to the /etc/initramfs-tools/modules file so that they are loaded before the kernel reads the HDD prevent the driver conflict for the soundcard?
2) How do I find out the name of the driver to put into this file to alleviate the conflict with the AMD HDMI audio and also the onboard audio?

snellwilco 01-12-2015 05:22 AM

Not helpful I'm afraid but I'm just chiming in that I am also interested in an answer to what you post. The cause of my problem was also (or at least possibly) related to the fact that snd-hda-intel has to be used twice for two different devices. I have never seen this tip involving initramfs before, and to be honest I'm not sure I quite understand it but will if necessary burn up some hours trying to apply it my system. I now realize a big reason I do need a 24 bit audio path after the source file is for the digital domain volume control in mpd. Applying it to 16 bit is going to reduce resolution no doubt about it, versus 24 bit. In fact not that I can remember much from 2007 at all, but I seem to recall my early mpd experiments with the Audiophile 24/96 showed I had to use 24 bit audio internally and externally to my downstream equipment to have good sound quality when volume was set lower. Though for various reasons have still not had time to do a listening test of the "Phantom Yoyo" 16 bit PCM2704 based USB to SPDIF device.

algorhythm99 01-12-2015 02:22 PM

Here's an update; no good news though.

I added 'fglrx_pci' my /etc/initramfs-tools/modules and ran "sudo update-initramfs -u" and rebooted and saw no change at all. The HDMI audio device in my video card still shows up in "lspci -v" with "Kernel driver in use: snd_hda_intel" and sound still plays through my monitor speakers using "speaker-test -Dhw:1,3 -c 2". This means that janKdebian's advice did not successfully disable HDMI audio on my system.

I also put the soundcard into a windows PC, installed the Windows driver, and tested the soundcard there (too make sure it wasn't just broken) and that all worked, so Steve R.'s suggestion wasn't the issue either.

At this point I guess I still feel like the driver conflict on snd_hda_intel between the onboard card, the HDMI audio device, and the Sound Blaster is the problem, so I guess I need to figure how to disable those first two devices such that the snd_hda_intel driver is only loaded for the Sound Blaster. Does anyone here know for sure how to do that? In the meantime I'll get back to googling.

algorhythm99 01-12-2015 03:26 PM

I got it working! But I don't really understand how...

Based on janKdebian's advice I tried to disable the snd_hda_intel driver for my onboard card and HDMI audio but not the SoundBlaster. I found this StackOverflow post and tried
Code:

% echo 0 > /sys/bus/pci/devices/0000\:02\:00.1/enable
to disable the HDMI audio device but that crashed my entire system immediately (hard-freeze). After a hard-reboot
Code:

% cat /sys/bus/pci/devices/0000\:02\:00.1/enable
% 1

For some reason, after this reboot I could hear any sound from the SoundBlaster for the first time. But no matter what audio was playing, I only heard an infinite series of identical pops/clicks, like a metronome. I don't know where these clicks where coming from.

To get rid of the pops/clicks I did
Code:

modprobe -r snd_hda_intel && modprobe snd_hda_intel
to reload the driver. I hadn't tried doing that yet actually. And, amazingly, after doing that I can hear audio out of all three of my cards (including the SoundBlaster) by setting which device to use with speaker-test. After undisabling pulseaudio and restarting it I can use it to direct output to the SoundBlaster, so I'm all set, apparently. I just wish I knew how that driver reload fixed it. The only thing I can think of is somehow, during system startup, the snd_hda_intel driver gets properly loaded for the onboard card and the HDMI audio device, but not the SoundBlaster, whereas after startup, reloading the snd_hda_intel driver did set it up properly for all three devices. I'm not convinced that my SoundBlaster will continue to work, and if I have to reboot this machine I expect to have to reload the driver manually again, but I guess that isn't that bad.

So, if I can in fact have the snd_hda_intel driver loaded for all three devices at the same time and switch between all three devices using alsa (with pulseaudio disabled) or with pulseaudio, what explains my original problem?

snellwilco 01-12-2015 04:42 PM

OK, thanks for the update. A couple questions though: was the initramfs patch still applied as of your last post? And did you rerun:
% echo 0 > /sys/bus/pci/devices/0000\:02\:00.1/enable

because I don't understand how
% cat /sys/bus/pci/devices/0000\:02\:00.1/enable
% 1
does anything. (and wouldn't the second line just be 1? % 1 makes it look like you entered a "1" with a keystroke.

algorhythm99 01-12-2015 05:09 PM

Quote:

Originally Posted by snellwilco (Post 5299929)
OK, thanks for the update. A couple questions though: was the initramfs patch still applied as of your last post? And did you rerun:
% echo 0 > /sys/bus/pci/devices/0000\:02\:00.1/enable

The initramfs patch was applied as of my first of those new posts by me, yes. It had applied the one time I tried running "% echo 0 > /sys/bus/pci/devices/0000\:02\:00.1/enable" and remains applied.

Quote:

Originally Posted by snellwilco (Post 5299929)
because I don't understand how
% cat /sys/bus/pci/devices/0000\:02\:00.1/enable
% 1
does anything. (and wouldn't the second line just be 1? % 1 makes it look like you entered a "1" with a keystroke.

That was just me checking the value of enable for that device after I crashed my system (it was still '1', like I was expecting). The extra '%' was a formatting error on my part writing the post.


I'm still looking for more information on how the snd_hda_intel driver originally worked for 2 out 3 devices simultaneously but now works for all 3. My soundcard is working now but I don't feel like I learned as much here as I could have; like I'm still missing something.

snellwilco 01-13-2015 05:09 AM

Unfortunately there's only time to say I tried a "whole lot of stuff", including changing initramfs, and nothing worked. echo 0 blah blah enable or echo 1 blah blah remove will get rid of the hdmi listing in aplay -L...but the SPDIF is still dead as a doornail. Won't even start sending a sync stream.

I have a super cheap DVI-only PCIe gfx card on order...which is, amazingly, less expensive than the 3" X 3" PCB of the Phantom Yoyo. I'd rather go with that as the solution at the moment. The 24 bit depth is more important to me than ever being able to hook it up to an HDMI monitor w/sound. There's just no more time to burn on this.

The notable difference between us is you are running the proprietary AMD driver; it would indeed be a bitter victory if changing to that fixed my problem...since the whole reason I moved away from Nvidia was to be able to use a correctly functioning default driver that comes with the distro! So now I've wasted $50 and could be right back where I started. (worse, actually, because there's no kmod-fglrx for Centos 7 yet, there is a kmod-nvidia)

Update on my situation: decided I should go back to square one and see why the superior functioning Audiophile 24/96 didn't work. Although it had _seemed_ to be recognized under plain Centos 7, I wondered, when I discovered the shocking difference between Centos and Centos Plus (where is the Dateline expose on this?) whether a missing driver removed to make Centos 7 more efficient or whatever was the problem. Well, guess what, when I switched to Centos 7 Plus kernel, it is now automatically recognized as an Audiophile 2496 instead of a generic ICE device...AND it works! Although there are still a few kinks to work out, I can't get the correct alsamixer settings to be saved.
(Btw for the record, when I did the echo 1 > to disable hdmi statements above, it kept alsamixer from being able to run w/o specifying alsamixer -c1...apparently because that kluge causes a pci bus to "go missing" without a logical explanation, and alsamixer gets confused or something)
I'm a little concerned about running an almost 15 year old PCI card...it's practically time to replace the capacitors. But at least I can stop banging my head against the wall to get 2 snd_hda_intel devices working on the same backplane. (well, even just one I would have been happy with, as long as it wasn't the HDMI)


All times are GMT -5. The time now is 07:05 AM.