This service will be undergoing maintenance at 00:00 UTC, 2017-10-23 It is expected to last about 30 minutes
Bug 1480290 - The latest alsa-lib update seems to have altered the definition of ICE1724, device becomes unavailable to audio-entropyd
The latest alsa-lib update seems to have altered the definition of ICE1724, d...
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: alsa-lib (Show other bugs)
25
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Jaroslav Kysela
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-08-10 11:23 EDT by stan
Modified: 2017-08-12 09:59 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2017-08-12 06:02:18 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description stan 2017-08-10 11:23:11 EDT
Description of problem:
I run an application called audio-entropyd to harvest entropy for the kernel pool from a sound device.  This has worked fine until the recent alsa-lib update.  I get this error in journalctl, 
audio-entropyd[7660]: Record open error: No such file or directory
and the application fails.
aplay -lv shows the following for this card.
card 2: SQ210a [ooAoo SQ210a], device 0: ICE1724 [ICE1724]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: SQ210a [ooAoo SQ210a], device 1: ICE1724 IEC958 [ICE1724 IEC958]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Notice that it is no longer called ICE1724, and look at the device definition. SQ210a???  ooAoo????   What the hey?


Version-Release number of selected component (if applicable):
Name        : alsa-lib
Version     : 1.1.1
Release     : 2.fc25
Architecture: x86_64

How reproducible:
Every time

Steps to Reproduce:
1.  Have alsa-lib and audio-entropyd installed
2.  Configure audio-entropyd to use an ICE1724
3.  

Actual results:
audio-entropyd[7660]: Record open error: No such file or directory

Expected results:
audio-entropyd starts successfully

Additional info:

When I switched to a CA0106, which still is configured properly, audio-entropyd runs fine again.

card 1: CA0106 [CA0106], device 0: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CA0106 [CA0106], device 1: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CA0106 [CA0106], device 2: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CA0106 [CA0106], device 3: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
Comment 1 Jaroslav Kysela 2017-08-11 11:05:07 EDT
Your card is detected as 'ooAoo SQ210a'. This kernel patch adds support for this card:

  commit 52cd0a76fd7e7b47f0b0ad594ad5fd3b69949f76
  Author: Pavel Hofman <pavel.hofman@ivitera.com>
  Date:   Tue Jan 10 20:28:48 2012 +0100

    ALSA: ice1724 - Support for ooAoo SQ210a
    
    This card shares PCI ids with Chaintec AV710. Therefore, it will not be
    detected automatically, it can only be activated by the module parameter
    model=sq210a.
    
    Signed-off-by: Pavel Hofman <pavel.hofman@ivitera.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

You should consult dmesg what's going on.

You can modify the card id in modprobe.conf, too.
Comment 2 stan 2017-08-11 15:35:52 EDT
Thanks for your help.  I don't see any selection for sq210a in the kernel configuration options, but when I look in the code for ice1724, it is there, but I'm not clear about how to utilize it.  Or why I even have to utilize it.  If I select the kernel module for ICE1724 to be built, shouldn't it automatically set itself up to deal with this when it is loaded?

This is the call that is failing,

  if ((Snd_Pcm_Err = snd_pcm_open(&chandle, Capture_Device, SND_PCM_STREAM_CAPTURE, 0)) < 0)
    error_exit("Record open error: %s", snd_strerror(Snd_Pcm_Err));

The Capture_Device is specified as plughw:2 in that call.

In /etc/modprobe.d, I have the following set up in a file:

options snd cards_limit=8
alias snd-card-0 snd-hda-intel id="SB"
options snd-hda-intel index=0 model=auto vid=1002 pid=4383
alias snd-card-1 snd-ca0106 id="CA0106"
options snd-ca0106 index=1 model=auto vid=1102 pid=0007
alias snd-card-2 snd-ice1724 id="Revolution51"
options snd-ice1724 index=2 model=auto vid=1412 pid=1724
alias snd-card-3 snd-hda-intel id="HDMI"
options snd-hda-intel index=3 model=auto vid=1002 pid=aa98
alias snd-card-7 snd-usb-audio
options snd-usb-audio index=7

lspci shows this as the driver

04:06.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)

The boot messages show this about the ICE1724

Aug 11 06:26:16 localhost.localdomain kernel: snd_ice1724: unknown parameter 'vid' ignored
Aug 11 06:26:16 localhost.localdomain kernel: snd_ice1724: unknown parameter 'pid' ignored

aplay -lv shows this for output:

$ aplay -lv
**** List of PLAYBACK Hardware Devices ****
card 0: HDMI [HDA ATI HDMI], device 3: Generic Digital [Generic Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CA0106 [CA0106], device 0: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CA0106 [CA0106], device 1: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CA0106 [CA0106], device 2: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CA0106 [CA0106], device 3: ca0106 [CA0106]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: SQ210a [ooAoo SQ210a], device 0: ICE1724 [ICE1724]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: SQ210a [ooAoo SQ210a], device 1: ICE1724 IEC958 [ICE1724 IEC958]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: SB [HDA ATI SB], device 0: ALC887-VD Analog [ALC887-VD Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: SB [HDA ATI SB], device 1: ALC887-VD Digital [ALC887-VD Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 7: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

I thought that plughw:2 referred to card 2 in the aplay output, regardless of what it is called.  Should I put model=sq210a instead of auto in the modprobe.d file?  

When I use plughw:1 as the capture device, everything works as it used to for the ICE1724, except it is using the CA0106.
Comment 3 stan 2017-08-11 15:38:21 EDT
Forgot to mention, I'm using a locally compiled Fedora development kernel, 4.13.0.0, so it should have all the latest changes.
Comment 4 Jaroslav Kysela 2017-08-12 06:02:18 EDT
Remove model=auto option in modprobe.conf for ice1724 module. This option is not supported and it breaks the auto-detection of the ice1724 card.
Comment 5 Jaroslav Kysela 2017-08-12 06:03:06 EDT
The 'auto' argument is not supported to be precise for the model module parameter.
Comment 6 stan 2017-08-12 09:59:26 EDT
Thank you for your help.

Note You need to log in before you can comment on or make changes to this bug.