I'm trying to record audio on a beaglebone (Debian 8.7) with the Bela cape connected on top, But I'm unsuccessful.
I've loaded the BB-BONE-AUDI-02-00A0.dtbo overlay and the beaglebone seems to detect the audio codec chip on the Bela cape:
Running dmesg
, last few lines show:
[ 41.990168] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 43.096703] /sound: could not find phandle
[ 43.101018] /sound: could not find phandle
[ 43.698918] asoc-simple-card sound: tlv320aic3x-hifi <-> 48038000.mcasp mapping ok
and then i try using arecord
to capture some audio from the input jack on the bela cape:
$ arecord -D hw:0,0 -r8000 -c 2 -f S16_LE -d 5 -t wav /root/test.wav
Recording WAVE '/root/test.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Stereo
arecord: pcm_read:2031: read error: Input/output error
and dmesg
shows:
[ 1636.756245] davinci-mcasp 48038000.mcasp: Too fast reference clock (24576000)
using strace
shows:
strace arecord -D hw:0,0 -r8000 -c 2 -f S16_LE -d 5 -t wav /root/test.wav execve("/usr/bin/arecord", ["arecord", "-D", "hw:0,0", "-r8000", "-c", "2", "-f", "S16_LE", "-d", "5", "-t", "wav", "/root/test.wav"], [/* 18 vars */]) = 0 brk(0) = 0x627000 uname({sys="Linux", node="beaglebone", ...}) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f68000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=84045, ...}) = 0 mmap2(NULL, 84045, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6f2e000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/librt.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@\30\0\0004\0\0\0"..., 512) = 512 lseek(3, 21260, SEEK_SET) = 21260 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1320) = 1320 lseek(3, 20868, SEEK_SET) = 20868 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0644, st_size=22580, ...}) = 0 mmap2(NULL, 86588, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6f18000 mprotect(0xb6f1d000, 61440, PROT_NONE) = 0 mmap2(0xb6f2c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0xb6f2c000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/usr/lib/arm-linux-gnueabihf/libasound.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\350\346\1\0004\0\0\0"..., 512) = 512 lseek(3, 609792, SEEK_SET) = 609792 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 609420, SEEK_SET) = 609420 read(3, "A2\0\0\0aeabi\0\1(\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 51) = 51 fstat64(3, {st_mode=S_IFREG|0644, st_size=610952, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f67000 mmap2(NULL, 642424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e7b000 mprotect(0xb6f0c000, 32768, PROT_NONE) = 0 mmap2(0xb6f14000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x91000) = 0xb6f14000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h<\0\0004\0\0\0"..., 512) = 512 lseek(3, 405976, SEEK_SET) = 405976 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 405640, SEEK_SET) = 405640 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0644, st_size=407136, ...}) = 0 mmap2(NULL, 471184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e07000 mprotect(0xb6e6a000, 61440, PROT_NONE) = 0 mmap2(0xb6e79000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x62000) = 0xb6e79000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240\t\0\0004\0\0\0"..., 512) = 512 lseek(3, 8664, SEEK_SET) = 8664 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160 lseek(3, 8328, SEEK_SET) = 8328 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0644, st_size=9824, ...}) = 0 mmap2(NULL, 73912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6df4000 mprotect(0xb6df6000, 61440, PROT_NONE) = 0 mmap2(0xb6e05000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb6e05000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0EQ\0\0004\0\0\0"..., 512) = 512 lseek(3, 100684, SEEK_SET) = 100684 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1520) = 1520 lseek(3, 65940, SEEK_SET) = 65940 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\4\22"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0755, st_size=102204, ...}) = 0 mmap2(NULL, 139836, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6dd1000 mprotect(0xb6de1000, 61440, PROT_NONE) = 0 mmap2(0xb6df0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf000) = 0xb6df0000 mmap2(0xb6df2000, 4668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6df2000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0Mw\1\0004\0\0\0"..., 512) = 512 lseek(3, 908188, SEEK_SET) = 908188 read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2880) = 2880 lseek(3, 904740, SEEK_SET) = 904740 read(3, "A4\0\0\0aeabi\0\1*\0\0\0\0057-A\0\6\n\7A\10\1\t\2\n\3\f"..., 53) = 53 fstat64(3, {st_mode=S_IFREG|0755, st_size=911068, ...}) = 0 mmap2(NULL, 980392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6ce1000 mprotect(0xb6dbc000, 61440, PROT_NONE) = 0 mmap2(0xb6dcb000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xda000) = 0xb6dcb000 mmap2(0xb6dce000, 9640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6dce000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f66000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f65000 set_tls(0xb6f654c0, 0xb6f6b050, 0xb6f65ba8, 0xb6f654c0, 0xb6f6b050) = 0 mprotect(0xb6dcb000, 8192, PROT_READ) = 0 mprotect(0xb6df0000, 4096, PROT_READ) = 0 mprotect(0xb6e05000, 4096, PROT_READ) = 0 mprotect(0xb6e79000, 4096, PROT_READ) = 0 mprotect(0xb6f2c000, 4096, PROT_READ) = 0 mprotect(0xb6f14000, 12288, PROT_READ) = 0 mprotect(0x1b000, 4096, PROT_READ) = 0 mprotect(0xb6f6a000, 4096, PROT_READ) = 0 munmap(0xb6f2e000, 84045) = 0 set_tid_address(0xb6f65068) = 15735 set_robust_list(0xb6f65070, 12) = 0 rt_sigaction(SIGRTMIN, {0xb6dd5d9d, [], SA_RESTORER|SA_SIGINFO, 0xb6d07b01}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xb6dd5cbd, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0xb6d07b01}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 brk(0) = 0x627000 brk(0x648000) = 0x648000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1607712, ...}) = 0 mmap2(NULL, 1607712, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6b58000 close(3) = 0 ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0 futex(0xb6f17cac, FUTEX_WAKE_PRIVATE, 2147483647) = 0 stat64("/usr/share/alsa/alsa.conf", {st_mode=S_IFREG|0644, st_size=9316, ...}) = 0 open("/usr/share/alsa/alsa.conf", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=9316, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f64000 read(3, "#\n# ALSA library configuration "..., 4096) = 4096 read(3, "unc refer\n\t\t\tname defaults.nameh"..., 4096) = 4096 read(3, "aults.hwdep.device\n\t\t\t}\n\t\t}\n\t}\n\t"..., 4096) = 1124 read(3, "", 4096) = 0 read(3, "", 4096) = 0 close(3) = 0 munmap(0xb6f64000, 4096) = 0 futex(0xb6e060ac, FUTEX_WAKE_PRIVATE, 2147483647) = 0 access("/usr/share/alsa/alsa.conf.d/", R_OK) = 0 stat64("/usr/share/alsa/alsa.conf.d/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 openat(AT_FDCWD, "/usr/share/alsa/alsa.conf.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC) getdents(3, /* 3 entries */, 32768) = 52 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 access("/etc/asound.conf", R_OK) = -1 ENOENT (No such file or directory) access("/root/.asoundrc", R_OK) = -1 ENOENT (No such file or directory) open("/dev/snd/controlC0", O_RDONLY|O_CLOEXEC) = 3 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 ioctl(3, SNDRV_CTL_IOCTL_CARD_INFO or UI_DEV_CREATE, 0xbed554ec) = 0 close(3) = 0 open("/dev/snd/controlC0", O_RDWR|O_CLOEXEC) = 3 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 ioctl(3, SNDRV_CTL_IOCTL_PVERSION or USBDEVFS_CONTROL, 0xbed55694) = 0 ioctl(3, SNDRV_CTL_IOCTL_PCM_PREFER_SUBDEVICE, 0xbed556d4) = 0 open("/dev/snd/pcmC0D0c", O_RDWR|O_NONBLOCK|O_CLOEXEC) = 4 fcntl64(4, F_SETFD, FD_CLOEXEC) = 0 close(3) = 0 ioctl(4, AGPIOC_ACQUIRE or APM_IOC_STANDBY or SNDRV_PCM_IOCTL_INFO, 0xbed55594) = 0 fcntl64(4, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) ioctl(4, AGPIOC_INFO or SNDRV_PCM_IOCTL_PVERSION, 0xbed554fc) = 0 clock_gettime(CLOCK_MONOTONIC, {1894, 643919765}) = 0 ioctl(4, AGPIOC_SETUP or SNDRV_PCM_IOCTL_TTSTAMP, 0xbed55504) = 0 mmap2(NULL, 4096, PROT_READ, MAP_SHARED, 4, 0x80000000) = -1 ENXIO (No such device or address) ioctl(4, SNDRV_PCM_IOCTL_SYNC_PTR, 0xbed55510) = 0 fcntl64(4, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) fcntl64(4, F_SETFL, O_RDWR) = 0 ioctl(4, AGPIOC_ACQUIRE or APM_IOC_STANDBY or SNDRV_PCM_IOCTL_INFO, 0xbed559d8) = 0 rt_sigaction(SIGINT, {0x10985, [INT], SA_RESTORER|SA_RESTART, 0xb6d07ae1}, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTERM, {0x10985, [TERM], SA_RESTORER|SA_RESTART, 0xb6d07ae1}, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGABRT, {0x10985, [ABRT], SA_RESTORER|SA_RESTART, 0xb6d07ae1}, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGUSR1, {0x100c5, [USR1], SA_RESTORER|SA_RESTART, 0xb6d07ae1}, {SIG_DFL, [], 0}, 8) = 0 open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=2492, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f64000 read(3, "# Locale name alias data base.\n#"..., 4096) = 2492 read(3, "", 4096) = 0 close(3) = 0 munmap(0xb6f64000, 4096) = 0 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/alsa-utils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/alsa-utils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/alsa-utils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/alsa-utils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/alsa-utils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/alsa-utils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "Recording WAVE '/root/test.wav' "..., 34Recording WAVE '/root/test.wav' : ) = 34 write(2, "Signed 16 bit Little Endian, ", 29Signed 16 bit Little Endian, ) = 29 write(2, "Rate 8000 Hz, ", 14Rate 8000 Hz, ) = 14 write(2, "Stereo", 6Stereo) = 6 write(2, "\n", 1 ) = 1 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_REFINE, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_PARAMS, 0xbed53598) = 0 ioctl(4, SNDRV_PCM_IOCTL_SYNC_PTR, 0x630e88) = 0 ioctl(4, SNDRV_PCM_IOCTL_SW_PARAMS, 0xbed53484) = 0 ioctl(4, SNDRV_PCM_IOCTL_PREPARE, 0x77679700) = 0 ioctl(4, SNDRV_PCM_IOCTL_SYNC_PTR, 0x630e88) = 0 ioctl(4, SNDRV_PCM_IOCTL_SYNC_PTR, 0x630e88) = 0 unlink("/root/test.wav") = 0 open("/root/test.wav", O_WRONLY|O_CREAT, 0644) = 3 write(3, "RIFF$q\2\0WAVE", 12) = 12 write(3, "fmt \20\0\0\0", 8) = 8 write(3, "\1\0\2\0@\37\0\0\0}\0\0\4\0\20\0", 16) = 16 write(3, "data\0q\2\0", 8) = 8 ioctl(4, SNDRV_PCM_IOCTL_READI_FRAMES, 0xbed53944) = -1 EIO (Input/output error) write(2, "arecord: pcm_read:2031: ", 24arecord: pcm_read:2031: ) = 24 open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory) write(2, "read error: Input/output error", 30read error: Input/output error) = 30 write(2, "\n", 1 ) = 1 ioctl(4, SNDRV_PCM_IOCTL_DROP, 0x77679700) = 0 ioctl(4, SNDRV_PCM_IOCTL_HW_FREE, 0x77679700) = 0 close(4) = 0 exit_group(1) = ? +++ exited with 1 +++
When running strace
, arecord
hangs at:
ioctl(4, SNDRV_PCM_IOCTL_READI_FRAMES, 0xbed53944) = -1 EIO (Input/output error)
I can't find the reason why it's producing this issue. I'm thinking it's something to do with the beaglebone's system clock not matching the clock on the audio chip on the bela cape.
User contributions licensed under CC BY-SA 3.0