Hallo Takashi!
> >
> > > ~/.asoundrc.  simply add
> > >
> > >   pcm.dsp0 pcm.default
> >
> > Thanks! It helped one step more!
> > Now:
> > ***
> > hfkernel[1488]: hfkernel 0.4.2 starting...
> > hfkernel[1488]: Your soundcard is full duplex capable.
> > Good; the reference time will be
> > derived from the sample clock, which should be accurate within +-20ppm.
> > So I hope your soundcard uses 'real' crystals instead of cheap ceramic
> > resonators. Adjust the clock with the soundcard correction factor.
> > ALSA lib pcm_plug.c:727:(snd_pcm_plug_hw_refine_schange) Unable to find
> > an usable access for 'dsp0'
> > hfkernel[1488]: error: probe_oss: mmap: ibuf: PROT_READ: Invalid argument
>
> hmm, how about the following?
>
>       pcm.dsp0 {
>               type hw
>               card 0
>       }
>
Oh, one step on! 
Now no error any more from the ALSA lib,
but still it says.
hfkernel[1488]: error: probe_oss: mmap: ibuf: PROT_READ: Invalid argument

this comes from last line of following snip:
***
 /*
         * set fragment sizes
         */
        apar = 0xffff0007U;
        if (ioctl(fd_audio, SNDCTL_DSP_SETFRAGMENT, &apar) == -1)
                errstr(SEV_FATAL, "ioctl: SNDCTL_DSP_SETFRAGMENT");
        if (ioctl(fd_audio, SNDCTL_DSP_GETOSPACE, &oinfo) == -1)
                errstr(SEV_FATAL, "ioctl: SNDCTL_DSP_GETOSPACE");
        osize = oinfo.fragstotal * oinfo.fragsize;
        if (ioctl(fd_audio, SNDCTL_DSP_GETISPACE, &iinfo) == -1)
                errstr(SEV_FATAL, "ioctl: SNDCTL_DSP_GETISPACE");
        isize = iinfo.fragstotal * iinfo.fragsize;
        if (EXCESS_FRAGS * iinfo.fragsize > pagesize)
                errprintf(SEV_FATAL, "OSS: input: fragment size %d times excess frags 
> page 
size %d\n",
                          iinfo.fragsize, pagesize);
        /*
         * mmap buffers
         *
         * BSD people attention: you may need to uncomment the PROT_READ
         * feedback welcome: [EMAIL PROTECTED]
         */
        if ((ibuf.v = mmap(NULL, isize, PROT_READ | PROT_WRITE, 
                           MAP_ANON | MAP_PRIVATE, -1, 0)) == MAP_FAILED)
                errstr(SEV_FATAL, "mmap: MAP_ANONYMOUS");
        ibuf_ext = ibuf.v + isize;
        if (munmap(ibuf.v, isize))
                errstr(SEV_FATAL, "munmap: MAP_ANONYMOUS");
        if ((ibuf.v = mmap(ibuf.v, isize, PROT_READ, MAP_FILE 
                          | MAP_SHARED | MAP_FIXED, 
                          fd_audio, 0)) == MAP_FAILED)

***
so i suppose something wrong with "isize"
only with ESS1938, it works with other cards.
Not-linear physical buffer in the card?
Do You know some hint, some trick out of ALSA API, how to "wrap" mmap? 
günther




-------------------------------------------------------
This SF.net email is sponsored by OSDN developer relations
Here's your chance to show off your extensive product knowledge
We want to know what you know. Tell us and you have a chance to win $100
http://www.zoomerang.com/survey.zgi?HRPT1X3RYQNC5V4MLNSV3E54
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Reply via email to