<div dir="ltr">Thanks for reply.<br><br>System Information is:<br><br>OS: Ubuntu 8.10<br>Kernel: 2.6.27-7-generic #1 SMP<br>libasound2: 1.0.17a (1.0.17a-0ubuntu4)<br>libasound2-plugins: 1.0.17 (1.0.17-0ubuntu4)<br>pulseaudio: 0.9.10 (0.9.10-2ubuntu8)<br>
<br>installed pulseaudio packages:<br>&gt; $ dpkg --get-selections | grep pulseaudio<br>&gt; gstreamer0.10-pulseaudio&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>&gt; pulseaudio&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>&gt; pulseaudio-esound-compat&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>
&gt; pulseaudio-module-gconf&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>&gt; pulseaudio-module-hal&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>&gt; pulseaudio-module-x11&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>&gt; pulseaudio-module-zeroconf&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>&gt; pulseaudio-utils&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; install<br>
<br>pulseaudio setting from PerfectSetup<br>&gt; $ cat .pulse/<a href="http://default.pa">default.pa</a><br>&gt; load-module module-esound-protocol-tcp auth-ip-acl=<a href="http://127.0.0.1">127.0.0.1</a>;<a href="http://192.168.0.0/16">192.168.0.0/16</a><br>
&gt; load-module module-native-protocol-tcp auth-ip-acl=<a href="http://127.0.0.1">127.0.0.1</a>;<a href="http://192.168.0.0/16">192.168.0.0/16</a><br>&gt; load-module module-zeroconf-publish<br>&gt; <br>&gt; load-module module-alsa-sink device=hw:0<br>
&gt; load-module module-alsa-source device=hw:0<br><br>alsa setting from PerfectSetup<br>&gt; $ cat ~/.asoundrc<br>&gt; pcm.pulse {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; type pulse<br>&gt; }<br>&gt; <br>&gt; ctl.pulse {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; type pulse<br>&gt; }<br>
&gt; <br>&gt; pcm.!default {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; type pulse<br>&gt; }<br>&gt; <br>&gt; ctl.!default {<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; type pulse<br>&gt; }<br><br>Error Msg of arecord program:<br>&gt; $&nbsp; arecord -d 10 -f cd -t wav foobar.wav<br>&gt; Recording WAVE &#39;foobar.wav&#39; : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo<br>
&gt; arecord: pcm_read:1473: read error: Input/output error<br>&gt; $<br><br>arecord(aplay.c) program dies at pcm_read() which is in aplay.c:<br><br>&gt; pcm_read()<br>&gt; &nbsp;&nbsp; -&gt; readi_func()<br>&gt; &nbsp; &nbsp; &nbsp;&nbsp; -&gt; snd_pcm_readi()<br>
<br>and snd_pcm_readi() function returns -EIO(-5)<br><br>In aplay.c:<br><br>&gt; /*<br>&gt;&nbsp; *&nbsp; read function<br>&gt;&nbsp; */<br>&gt; <br>&gt; static ssize_t pcm_read(u_char *data, size_t rcount)<br>&gt; {<br>&gt; &nbsp;&nbsp;&nbsp; ...<br>
&gt; &nbsp;&nbsp;&nbsp; while (count &gt; 0) {<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; r = readi_func(handle, data, count);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fprintf(stderr, &quot;pcm-&gt;setup: %d\n&quot;, handle-&gt;setup);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (r == -EAGAIN || (r &gt;= 0 &amp;&amp; (size_t)r &lt; count)) {<br>
&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; snd_pcm_wait(handle, 1000);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else if (r == -EPIPE) {<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xrun();<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else if (r == -ESTRPIPE) {<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; suspend();<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else if (r &lt; 0) {<br>
&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; error(_(&quot;read error: %s&quot;), snd_strerror(r));<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit(EXIT_FAILURE);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (r &gt; 0) {<br>&gt; &nbsp;&nbsp;&nbsp; ...<br><br>In snd_pcm_readi() function (src/pcm/pcm.c of alsa-lib),<br>
it seems CHECK_SANITY(! pcm-&gt;setup) condition makes IO error<br><br>In src/pcm/pcm.c:<br><br>&gt; snd_pcm_sframes_t snd_pcm_readi(snd_pcm_t *pcm, void *buffer, snd_pcm_uframes_t size)<br>&gt; {<br>&gt; &nbsp;&nbsp;&nbsp; assert(pcm);<br>
&gt; &nbsp;&nbsp;&nbsp; assert(size == 0 || buffer);<br>&gt; &nbsp;&nbsp;&nbsp; if (CHECK_SANITY(! pcm-&gt;setup)) {<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SNDMSG(&quot;PCM not set up&quot;);<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return -EIO;<br>&gt; &nbsp;&nbsp;&nbsp; }<br>&gt; &nbsp;&nbsp;&nbsp; if (pcm-&gt;access != SND_PCM_ACCESS_RW_INTERLEAVED) {<br>
&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; SNDMSG(&quot;invalid access type %s&quot;, snd_pcm_access_name(pcm-&gt;access));<br>&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return -EINVAL;<br>&gt; &nbsp;&nbsp;&nbsp; }<br>&gt; &nbsp;&nbsp;&nbsp; return _snd_pcm_readi(pcm, buffer, size);<br>&gt; }<br><br>And there was only one place where sets pcm-&gt;setup is<br>
_snd_pcm_hw_params() in src/pcm/pcm_params.c.<br><br>Thanks for any advice,<br clear="all"><br>-- <br>Best Regards,<br><br>Keedi Kim<br><br><br><div class="gmail_quote">2008/10/17 Luke Yelavich <span dir="ltr">&lt;<a href="mailto:themuso@ubuntu.com">themuso@ubuntu.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">On Fri, Oct 17, 2008 at 02:10:22PM EST, Keedi Kim wrote:<br>
&gt; Hi.<br>
&gt;<br>
&gt; I followed PerfectSetup of pulseaudio wiki,<br>
&gt; &nbsp;then aplay works well, but arecord doesn&#39;t.<br>
&gt; ALSA&#39;s arecord terminates with<br>
&gt; &quot;pcm_read:1473: read error: Input/output error&quot; message.<br>
&gt;<br>
&gt; Does anybody has idea?<br>
<br>
</div>Could you please tell us what version of alsa-lib/libasound2, alsa-plugins/libasound2-plugins and pulseaudio you are running? Having a better idea what software versions you have will better help us work out the problem.<br>

<font color="#888888"><br>
Luke<br>
</font><br>-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v1.4.9 (GNU/Linux)<br>
<br>
iEYEARECAAYFAkj4BVEACgkQjVefwtBjIM4g1QCg3UjPGhHeYbjvMWXF0OR9rgXS<br>
rvQAoO30vGWi9gsrR83YJ11R71IPVl+t<br>
=ucms<br>
-----END PGP SIGNATURE-----<br>
<br>_______________________________________________<br>
pulseaudio-discuss mailing list<br>
<a href="mailto:pulseaudio-discuss@mail.0pointer.de">pulseaudio-discuss@mail.0pointer.de</a><br>
<a href="https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss" target="_blank">https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss</a><br>
<br></blockquote></div><br>
</div>