{"id":86,"date":"2013-09-30T13:26:57","date_gmt":"2013-09-30T13:26:57","guid":{"rendered":"http:\/\/drsfenner.org\/blog\/?p=86"},"modified":"2013-09-30T13:27:27","modified_gmt":"2013-09-30T13:27:27","slug":"the-sound-and-the-fury","status":"publish","type":"post","link":"http:\/\/drsfenner.org\/blog\/2013\/09\/the-sound-and-the-fury\/","title":{"rendered":"The sound (and the fury)"},"content":{"rendered":"<p>Linux (namely, handspun distros) definitely has some rough edges. \u00a0Multimedia can be one of them. \u00a0I&#8217;m currently working on solving a sound issue: \u00a0really, it&#8217;s the microphone. \u00a0It won&#8217;t record anything. \u00a0And debugging it isn&#8217;t a whole lot of fun. \u00a0But, there are tools. \u00a0<em>lspci -vvnk\u00a0<\/em>gets you a very detailed list of what the kernel sees on the hardware side of things. \u00a0Adding\u00a0<em>-s<\/em> lets you focus on the device of interest. \u00a0Quick question: \u00a0how do you get the slot-id to use with\u00a0<em>-s<\/em>? \u00a0Use a different\u00a0<em>lspci<\/em> command.<\/p>\n<pre># lspci | grep Audio\r\n00:1b.0 Audio device: Intel Corporation 7 Series\/C210 Series Chipset Family High Definition Audio Controller (rev 04)\r\n01:00.1 Audio device: NVIDIA Corporation GF114 HDMI Audio Controller (rev a1)<\/pre>\n<p>And, now, since I&#8217;m dealing with the Intel sound device, I know that I care about slot\u00a0<em>00:1b.0<\/em><\/p>\n<pre># lspci -vvnnk -s 00:1b.0\r\n00:1b.0 Audio device [0403]: Intel Corporation 7 Series\/C210 Series Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)\r\n Subsystem: Micro-Star International Co., Ltd. Device [1462:d751]\r\n Control: I\/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+\r\n Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast &gt;TAbort- &lt;TAbort- &lt;MAbort- &gt;SERR- &lt;PERR- INTx-\r\n Latency: 0, Cache Line Size: 64 bytes\r\n Interrupt: pin A routed to IRQ 45\r\n Region 0: Memory at f6a30000 (64-bit, non-prefetchable) [size=16K]\r\n Capabilities: [50] Power Management version 2\r\n Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+)\r\n Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-\r\n Capabilities: [60] MSI: Enable+ Count=1\/1 Maskable- 64bit+\r\n Address: 00000000feeff00c Data: 4122\r\n Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00\r\n DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s &lt;64ns, L1 &lt;1us\r\n ExtTag- RBE- FLReset+\r\n DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-\r\n RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-\r\n MaxPayload 128 bytes, MaxReadReq 128 bytes\r\n DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-\r\n LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 &lt;64ns, L1 &lt;1us\r\n ClockPM- Surprise- LLActRep- BwNot-\r\n LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-\r\n ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-\r\n LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-\r\n Capabilities: [100 v1] Virtual Channel\r\n Caps: LPEVC=0 RefClk=100ns PATEntryBits=1\r\n Arb: Fixed- WRR32- WRR64- WRR128-\r\n Ctrl: ArbSelect=Fixed\r\n Status: InProgress-\r\n VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-\r\n Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-\r\n Ctrl: Enable+ ID=0 ArbSelect=Fixed TC\/VC=01\r\n Status: NegoPending- InProgress-\r\n VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-\r\n Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-\r\n Ctrl: Enable+ ID=1 ArbSelect=Fixed TC\/VC=22\r\n Status: NegoPending- InProgress-\r\n Capabilities: [130 v1] Root Complex Link\r\n Desc: PortNumber=0f ComponentID=00 EltType=Config\r\n Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped LinkValid+\r\n Addr: 00000000fed1c000\r\n Kernel driver in use: snd_hda_intel\r\n Kernel modules: snd_hda_intel\r\n#<\/pre>\n<p>Should have grabbed some other pieces of information first:<\/p>\n<p>I&#8217;m trying to enable built-in sound on:<\/p>\n<ul>\n<li>Motherboard:\u00a0MSI Z77A-GD65 LGA 1155 Intel Z77<\/li>\n<li>lspci:\u00a0Audio device [0403]: Intel Corporation 7 Series\/C210 Series Chipset Family High \u00a0Definition Audio Controller [8086:1e20] (rev 04)<\/li>\n<li>lspci: \u00a0Subsystem: Micro-Star International Co., Ltd. Device [1462:d751]<\/li>\n<li>kernel module: \u00a0snd_hda_intel<\/li>\n<li>tail -1 \/etc\/modprobe.d\/alsa.conf:\u00a0options snd-hda-intel model=auto<\/li>\n<li>grep \/proc\/asound\/card0\/codec#0: Codec Realtek ALC898<\/li>\n<li>grep \/proc\/asound\/card0\/codec#1: Intel PantherPoint HDMI<\/li>\n<\/ul>\n<p>I&#8217;m not at all convinced that the codecs are being chosen correctly with the <em>model=auto<\/em> option for snd. \u00a0Why? \u00a0Because the control sets in <i>alsamixer<\/i>\u00a0seem way too convoluted (which I think I&#8217;ve dealt with after dealing with driver mismatches).<\/p>\n<p><em>I ended up calling the microphone a *fail* for now. \u00a0The only thing I need it for is Skype and I can skype on a different machine. \u00a0I ended up with this line in \/etc\/modprobe.d\/alsa.conf:<\/em><\/p>\n<pre>options snd-hda-intel model=auto position_fix=1 enable_msi=1<\/pre>\n<p>Some folks had luck with the <em>postition_fix<\/em>\u00a0parameter getting the microphone working. \u00a0For me, it simply convinced me that the mic was picking up the environment and not just amplifying noise\/feedback in the system. \u00a0The various\u00a0<em>hda\u00a0<\/em>devices have &#8220;pin&#8221; configurations with different attributes (input, output, enabled, disabled, etc.) that you can see with a python program: \u00a0<em>hda_analyzer.py<\/em>. \u00a0However, that looked intimidating enough that I didn&#8217;t want to try to experiment with it. \u00a0So, for now, no mic. \u00a0But sound works fine.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Linux (namely, handspun distros) definitely has some rough edges. \u00a0Multimedia can be one of them. \u00a0I&#8217;m currently working on solving a sound issue: \u00a0really, it&#8217;s the microphone. \u00a0It won&#8217;t record anything. \u00a0And debugging it isn&#8217;t a whole lot of fun. \u00a0But, there are tools. \u00a0lspci -vvnk\u00a0gets you a very detailed list of what the kernel [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,6],"tags":[],"class_list":["post-86","post","type-post","status-publish","format-standard","hentry","category-gentoo","category-mrdr"],"_links":{"self":[{"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/posts\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":5,"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/posts\/86\/revisions"}],"predecessor-version":[{"id":92,"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/posts\/86\/revisions\/92"}],"wp:attachment":[{"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/media?parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/categories?post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/drsfenner.org\/blog\/wp-json\/wp\/v2\/tags?post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}