Choose style:

Author Topic: Help a noob understand audio drivers (SOLVED)  (Read 1517 times)

0 Members and 1 Guest are viewing this topic.

Offline snide

  • nOOb
  • *
  • Posts: 16
  • Karma: 0
  • Old Experimenter
    • View Profile
  • Peppermint version(s): 9
Help a noob understand audio drivers (SOLVED)
« on: March 15, 2016, 01:27:08 pm »
As a windows user for almost 20 years I have developed the compulsion, for better or worse, to always install the latest available driver whenever I can. I suppose it came from being a gamer in the early days of Win 98 (and Win Vista) when driver updates were nearly a necessity to fix issues. Nowadays I don't game much anymore, but I don't care if the generic or MS-supplied driver works fine, I still gotta get the latest from the manufacturer website, if such exists. I will frequently update to a newer version when I learn one is available, whether or not I actually need it; I can't help it!

Based on what I've seen/read so far, and I'm sure I haven't properly understood most of that, drivers for Linux (are they even called drivers in Linux?) are built-in, and for the most part, you don't update them. If it works, don't fix it (anathema!). Now, my audio seems to work fine - I tested it for YouTube in Chrome and for movies in VLC. But it is a head-scratcher for me to see Intel Sunrise Point for audio instead of RealTek  :o. I start to get the heebie-jeebies - it takes a monumental effort to beat down the urge to try installing RealTek drivers from their site (except that the instructions are a bit bewildering for me). Anyway, here are the results of some audio device commands I found while perusing the forums (I do see a reference to ALC887, which is my audio chip, using the aplay command) - I hope it isn't bad form to use the spoiler tags:
Spoiler (click here to view / hide)
hgs@hgs-pep ~ $ inxi -Axx
Audio:     Card: Intel Sunrise Point-H HD Audio driver: snd_hda_intel bus-ID: 00:1f.3 chip-ID: 8086:a170
           Sound: Advanced Linux Sound Architecture ver: k4.2.0-30-generic
hgs@hgs-pep ~ $ lsmod | grep snd
snd_hda_codec_hdmi     49152  1
snd_hda_codec_realtek    86016  1
snd_hda_codec_generic    73728  1 snd_hda_codec_realtek
snd_hda_intel          36864  3
snd_hda_codec         135168  4 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_intel
snd_hda_core           65536  5 snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel
snd_hwdep              16384  1 snd_hda_codec
snd_pcm               102400  4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_hda_core
snd_seq_midi           16384  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            32768  1 snd_seq_midi
snd_seq                69632  2 snd_seq_midi_event,snd_seq_midi
snd_seq_device         16384  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_timer              32768  2 snd_pcm,snd_seq
snd                    81920  17 snd_hda_codec_realtek,snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device
soundcore              16384  1 snd
hgs@hgs-pep ~ $ sudo lshw -C multimedia
[sudo] password for hgs:
  *-multimedia           
       description: Audio device
       product: Sunrise Point-H HD Audio
       vendor: Intel Corporation
       physical id: 1f.3
       bus info: pci@0000:00:1f.3
       version: 31
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi bus_master cap_list
       configuration: driver=snd_hda_intel latency=32
       resources: irq:130 memory:df140000-df143fff memory:df120000-df12ffff
hgs@hgs-pep ~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
[close]

So I guess I'd like to know why doesn't Realtek appear as the vendor? What is Intel Sunrise Point audio?  Is it advisable to install Realtek drivers from their site? How do I resist the urge to leave well enough alone!?!? (arrgh... must ... resist.... tweaking...) So many questions, so little time.
Thanks!
« Last Edit: April 05, 2016, 05:41:08 pm by snide »

Offline Slim.Fatz

  • Trusted User
  • Veteran
  • *****
  • Posts: 1752
  • Karma: 466
  • Where's the mouse?
    • View Profile
  • Peppermint version(s): Peppermint 7, 8.5 & 10 - 64bit
Re: Help a noob understand audio drivers
« Reply #1 on: March 15, 2016, 01:50:48 pm »
Hi snide,

You don't see Realtek as the vendor because ... Intel is the vendor. As you said, and as your output shows, your audio card is an Intel Sunrise Point. I doubt that Realtek drivers will even work with your audio card (although I might be wrong).

I think that it would be best to use Intel drivers for an Intel audio card (especially considering the fact that the manufacturers usually do not release all of the technical details for their chips; so it is most likely that drivers from the manufacturer will work, while others are "hit or miss" since not all details are available for the programmers to use when writing the driver).

Regards,

-- Slim
"Life first -- Peppermint a close 2nd!" -- Zeb

Tread lightly: Fluxbox, JWM, i3, Openbox, awesome

Offline PCNetSpec

  • Administrator
  • Hero
  • *****
  • Posts: 25455
  • Karma: 2798
  • "-rw-rw-rw-" .. The Number Of The Beast
    • View Profile
    • PCNetSpec
  • Peppermint version(s): Peppermint 8R, 9, and 9R
Re: Help a noob understand audio drivers
« Reply #2 on: March 15, 2016, 02:07:36 pm »
The chipset is the Intel 100 series (aka Sunrise point) now whilst this may utilise a Realtek audio codec (yours is using Realtek's ALC887-VD codec), the actual FULL audio specification is owned by intel, who could and do use other peoples codecs too as long as they fit the intel HDA Audio spec which are then covered by the sdn-hda-intel kernel module (driver).

The full audio chipset, whilst containing a codec owned by Realtek, reports itself to the kernel (Windows or Linux) as the Vendor:Device ID string 8086:a170

8086  being Intel .. and a170 no doubt being Sunrise Point-H HD

In short, it's a collaborative effort but the Realtek owned Codec is just part of the larger Intel owned audio spec



Updating the drivers .. any updates to snd-hda-intel will come via kernel updates (or more correctly the linux-image-extra package that comes with a kernel update) so there's nothing for you to do.

Theoretically you could update to a more recent kernel series if you wish, but I doubt if snd-hda-intel would contain any improvement except maybe additional hardware support that you don't require.
« Last Edit: March 15, 2016, 02:19:02 pm by PCNetSpec »
WARNING: You are logged into reality as 'root' .. logging in as 'insane' is the only safe option.

Team Peppermint
PCNetSpec

Offline scifidude79

  • Global Moderator
  • Hero
  • *****
  • Posts: 4029
  • Karma: 863
    • View Profile
  • Peppermint version(s): Peppermint 9
Re: Help a noob understand audio drivers
« Reply #3 on: March 15, 2016, 02:14:53 pm »
Intel drivers are open source and are, therefore, preinstalled and available in the repositories.  Your audio driver will receive updates as the packages are updated in the repositories.  Running the update manager or updating using the terminal will install them.  Really, aside from a few WIFI adapters, printers and a few other miscellaneous things, there's no need to ever go outside of the software repositories for drivers.  Even AMD and Nvidia graphics drivers are in there.  Though, they're not open source, so they won't be installed by default (there are open source drivers, but they're not good for much.)  Unless you feel you actually need bleeding edge drivers, they'll work for most everything and do receive periodic updates during the LTS cycle.

Though, personally, I've never seen a need to continuously update audio drivers, even in Windows.  Unless your audio isn't working or the driver you're using is a security risk, there's no need to update.  Updating drivers just to keep them current can even cause more issues than it solves.  Just because a new driver was released doesn't mean it was fully tested, as the developers can't possibly test on every conceivable configuration.  I've even experienced issues with the actual Realtek driver in Windows that weren't there using the driver preinstalled by Microsoft.  And, I've never had a major audio issue in Linux.  Graphics drivers I can see updating, as some games even require it.  However, even those may not work fully as intended.  I've had to roll back drivers before because the latest one didn't work as intended.  So, there is something to be said for, "if it's working, why change it?"

Offline snide

  • nOOb
  • *
  • Posts: 16
  • Karma: 0
  • Old Experimenter
    • View Profile
  • Peppermint version(s): 9
Re: Help a noob understand audio drivers
« Reply #4 on: April 05, 2016, 05:39:20 pm »
Thank all of you for your responses as they gave me some leads that I've used to do more research. I'll try to summarize what I've inferred from what I've found, much of which reinforces PCNetSpec's post.

TL;DR:
On my mainboard, Realtek is the audio chip (codec) which provides sound. Intel Sunrise Point is the mainboard chipset. This chipset includes the HD Audio Bus controller, which is linked to the codec(s) that provide audio in the system. This information applies to HDA-compliant integrated (onboard) audio.

References:

The Intel HD audio spec defines the architecture, link frame format, and programming interfaces used by the controller on the PCI bus and by the codec on the other side of the link (Wikipedia, Intel, others).
The OpenBSD article plainly states: "The codec is the main audio processor."
From MSDN: "The HD Audio architecture is intended to eliminate the requirement for solution-specific drivers by specifying a base register set that is uniform across all implementations," and  "...the HD Audio bus driver detects the codecs that are attached to the HD Audio controller's HD Audio Link. For each codec, the bus driver loads one function driver (if available) for each function group that it finds within the codec." Also, the "...  HD Audio Bus Driver are provided by Microsoft." (for Windows, obviously).

So theoretically a motherboard manufacturer could use any HDA-compliant codec with any HDA-compliant bus controller (chipset) and it will work with at least basic functionality w/o manufacturer-specific drivers, assuming the operating system has HDA-compliant bus drivers. This would explain why audio worked for this board in my Win 7 install (Win 7 having been around long before Intel's Sunrise Point) w/o any mfg drivers installed. I suppose if the codec or chipset mfg (VIA and Nvidia also provide chipsets - Intel hasn't always been the only one) has features (or functions) that extend outside of the HDA spec then they would provide o/s drivers to enable those functions.

IMHO, the inxi -A command is misleading when it reports the audio "Card" in my system as Intel Sunrise Point. Without a doubt, my board's audio is provided by Realtek:
  • specs page (scroll down to the audio section)
  • driver download page (select All in the choose your OS spinbox)
  • screenshot from my Win 7 install on this system showing the audio codec drivers I installed from Realtek's site:
Sunrise Point is certainly the chipset name, and the chipset contains (or is) the HDA bus controller, which hooks into the codec.  So it appears that the inxi command identifies the bus controller, not the codec. On the other hand, the aplay -l command actually lists the codec(s) available, even though it doesn't list the codec mfg/vendor.

snd_hda_intel would then be the operating systems's HDA bus controller driver. I assume this driver would show up in every system using HDA-compliant onboard audio. I happened to have an old VIA-based chipset PC and a nVidia-based chipset PC on which I ran a Peppermint Live USB stick and sure enough:
VIA
Spoiler (click here to view / hide)
peppermint@peppermint ~ $ inxi -Axx
Audio:     Card: VIA VT8237A/VT8251 HDA Controller driver: snd_hda_intel bus-ID: 80:01.0 chip-ID: 1106:3288
           Sound: Advanced Linux Sound Architecture ver: k3.16.0-46-generic
peppermint@peppermint ~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: VT82xx [HDA VIA VT82xx], device 0: ALC883 Analog [ALC883 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: VT82xx [HDA VIA VT82xx], device 1: ALC883 Digital [ALC883 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
[close]

nvidia:
Spoiler (click here to view / hide)
peppermint@peppermint ~ $ inxi -Axx
Audio:     Card: NVIDIA MCP61 High Definition Audio driver: snd_hda_intel bus-ID: 00:05.0 chip-ID: 10de:03f0
           Sound: Advanced Linux Sound Architecture ver: k3.16.0-46-generic
peppermint@peppermint ~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: ALC883 Analog [ALC883 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 1: ALC883 Digital [ALC883 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
peppermint@peppermint ~ $
[close]

So, I am still curious to see what, if any, difference installing the Linux driver from Realtek's site would make. In Windows I know installing the driver adds codec vendor identification in the Device Manager (pictured above - it didn't specify Realtek as the vendor until after the driver was installed) and adds an audio control panel which probably doesn't do anything different than what Windows' native one does, but is easier to access and, IMHO, understand:

But I couldn't make much sense of Realtek's Linux install instructions on my skim through, other than it ties in with ALSA and snd_hda_intel. And while I can roll-back Windows drivers in my sleep, I certainly wouldn't know the first thing about rolling back drivers in Linux.

So if you've made it this far, hopefully you've learned something new, and maybe even helpful, and didn't get a headache doing it (and don't see many flaws in my logic!). Unfortunately, I am puzzled why I've seen so many posts on various sites of people with audio issues in Linux. Obviously I am clueless when it comes to drivers, and I assume Linux handles that stuff very differently than Windows, but I wonder if the snd_hda_intel driver is less general/generic than the equivalent Windows driver. Theoretically, it should just work, assuming everything is HDA compliant. Oh well, another topic for another day (or not). At least now I understand (I think) what is being reported and why in regards to my audio.