alsa-1.0.20: recording only works if controls have been setup with amixer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I created my own ALSA machine kernel driver for a custom TLV320AIC23
codec based soundcard I built on a breadboard.
(Note that I just created the machine driver, I did not change anything
in the codec driver itself.)
The "soundcard" is connected to an Olimex Sam9-L9260 evaluation kit with
an ARM9 AT91SAM9260 CPU on it:

http://www.olimex.com/dev/sam9-L9260.html


Now comes the interesting part:
I got sound playback and recording working on the board.
However, there are two strange problems I cannot explain right now:



After loading the ALSA machine driver module I wrote, one can play sound
with aplay.
However, recording does not work, it just records some background noise.
Obviously, I enabled all microphone inputs in alsamixer.
I can hear myself pretty clear if I talk into the microphone, but I
cannot record it.
Also, the VU meter which appears if one starts arecord with the -vv
flags is between 1% and 2% all the time.

After a short chat on freenode in #alsa, the following solved the problem:

------------------------------------
# amixer set 'Mic Input',0 on
# amixer set 'Mic',0 cap on
------------------------------------

After that I can record and play sound just fine.
Also the VU meter is moving just fine and the recording is loud and clear.

* How come that I cannot make these settings in alsamixer ?
* Is it possible that there are some controls available through amixer,
  but now through alsamixer ?




The next problem is that while recording, I seem to get buffer overruns:
------------------------------------
# arecord -f cd -vv recording.wav
Recording WAVE 'recording.wav' : Signed 16 bit Little Endian, Rate 44100
Hz, Stereo
Plug PCM: Hardware PCM card 0 'sam9l9260' device 0 subdevice 0
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 44100
  exact rate   : 44100 (44100/1)
  msbits       : 16
  buffer_size  : 8192
  period_size  : 2048
  period_time  : 46439
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 2048
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 8192
  silence_threshold: 0
  silence_size : 0
  boundary     : 1073741824
##                             +                   | 60%overrun!!! (at
least 1755605307.470 ms long)
Status:
  state       : XRUN
  trigger_time: 519.572774859
  tstamp      : 520.141848901
  delay       : 0
  avail       : 8192
  avail_max   : 8192
############                +                      | 55%overrun!!! (at
least 1755605209.897 ms long)
Status:
  state       : XRUN
  trigger_time: 535.531210229
  tstamp      : 536.2782850
  delay       : 0
  avail       : 8192
  avail_max   : 8192
# +                                                | 03%^C
Aborted by signal Interrupt...
------------------------------------


The root-filesystem of the board is mounted over NFS and it seems that
the ethernet driver of the board has some problems so that the
connection is slow (like 300kb/s or so).

* Is it possible that this is the reason for the overflows, or is it an
  ALSA problem ?


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux