ALSA beaglebone

hi,

I try to use alsa on beaglebone but i can’t launch aplay.
I use a kernel 3.2 an LFS system.
gdb return this:

-bash-4.2# gdb aplay

(gdb) run
Starting program: /usr/bin/aplay
[Thread debugging using libthread_db enabled]
Using host libthread_db library “/lib/libthread_db.so.1”.

Program received signal SIGSEGV, Segmentation fault.
0x4000951c in do_lookup_x () from /lib/ld-linux.so.3
(gdb) bt
#0 0x4000951c in do_lookup_x () from /lib/ld-linux.so.3
#1 0x40009d24 in _dl_lookup_symbol_x () from /lib/ld-linux.so.3
#2 0x4030561c in do_sym () from /lib/libc.so.6
#3 0x40305b48 in _dl_sym () from /lib/libc.so.6
#4 0x401c5bc8 in dlsym_doit () from /lib/libdl.so.2
#5 0x4000eb80 in _dl_catch_error () from /lib/ld-linux.so.3
#6 0x401c615c in _dlerror_run () from /lib/libdl.so.2
#7 0x401c5c28 in dlsym () from /lib/libdl.so.2
#8 0x400643dc in snd_dlsym_verify () from /usr/lib/libasound.so.2
#9 0x400644a0 in snd_dlsym () from /usr/lib/libasound.so.2
#10 0x4005a5d4 in snd_config_hooks_call () from /usr/lib/libasound.so.2
#11 0x4005a95c in snd_config_hooks () from /usr/lib/libasound.so.2
#12 0x40059c78 in snd_config_searcha_hooks () from /usr/lib/libasound.so.2
#13 0x40059f14 in snd1_config_search_alias_hooks ()
from /usr/lib/libasound.so.2
#14 0x4005ee8c in snd_config_search_definition () from /usr/lib/libasound.so.2
#15 0x4008f548 in snd_pcm_open_noupdate () from /usr/lib/libasound.so.2
#16 0x4008f718 in snd_pcm_open () from /usr/lib/libasound.so.2
#17 0x000122d4 in main (argc=1, argv=0xbefffe04) at aplay.c:680
(gdb)

can you help me??

and strace return this:

-bash-4.2# strace aplay balle_1.wav
execve("/usr/bin/aplay", [“aplay”, “balle_1.wav”], [/* 13 vars /]) = 0
brk(0) = 0x1e000
uname({sys=“Linux”, node=“EmoxBeaglebone”, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400a0000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=46153, …}) = 0
mmap2(NULL, 46153, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4011b000
close(3) = 0
open("/lib/librt.so.1", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\320\26\0\0004\0\0\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=39206, …}) = 0
mmap2(NULL, 57876, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x401cb000
mprotect(0x401d1000, 28672, PROT_NONE) = 0
mmap2(0x401d8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5) = 0x401d8000
close(3) = 0
open("/usr/lib/libasound.so.2", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\340\324\1\0004\0\0\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1412894, …}) = 0
mmap2(NULL, 1158352, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x401da000
mprotect(0x402ea000, 28672, PROT_NONE) = 0
mmap2(0x402f1000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x10f) = 0x402f1000
close(3) = 0
open("/lib/libm.so.6", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\3301\0\0004\0\0\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=499795, …}) = 0
mmap2(NULL, 467112, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40127000
mprotect(0x40191000, 28672, PROT_NONE) = 0
mmap2(0x40198000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x69) = 0x40198000
close(3) = 0
open("/lib/libdl.so.2", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\374\10\0\0004\0\0\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=14360, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400ca000
mmap2(NULL, 41136, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x402f5000
mprotect(0x402f7000, 28672, PROT_NONE) = 0
mmap2(0x402fe000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0x402fe000
close(3) = 0
open("/lib/libpthread.so.0", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0PE\0\0004\0\0\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=131643, …}) = 0
mmap2(NULL, 127508, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x400a9000
mprotect(0x400be000, 28672, PROT_NONE) = 0
mmap2(0x400c5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14) = 0x400c5000
mmap2(0x400c7000, 4628, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400c7000
close(3) = 0
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0p&\0\0004\0\0\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=173334, …}) = 0
mmap2(NULL, 70176, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x400cb000
mprotect(0x400d4000, 32768, PROT_NONE) = 0
mmap2(0x400dc000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9) = 0x400dc000
close(3)open("/lib/libc.so.6", O_RDONLY) = 3
read(3, “\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0P^\1\0004\0\0\0”…, 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1571032, …}) = 0
mmap2(NULL, 1283336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x40300000
mprotect(0x4042c000, 32768, PROT_NONE) = 0
mmap2(0x40434000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12c) = 0x40434000
mmap2(0x40437000, 9480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40437000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4005a000
set_tls(0x4005a810, 0x400a8918, 0x4005aee8, 0x4005a810, 0x400a8000) = 0
mprotect(0x40300000, 1228800, PROT_READ|PROT_WRITE) = 0
mprotect(0x40300000, 1228800, PROT_READ|PROT_EXEC) = 0
cacheflush(0x40300000, 0x4042c000, 0, 0x15, 0x400ca7e8) = 0
mprotect(0x40434000, 8192, PROT_READ) = 0
mprotect(0x400c5000, 4096, PROT_READ) = 0
mprotect(0x402fe000, 4096, PROT_READ) = 0
mprotect(0x40198000, 4096, PROT_READ) = 0
mprotect(0x401cb000, 24576, PROT_READ|PROT_WRITE) = 0
mprotect(0x401cb000, 24576, PROT_READ|PROT_EXEC) = 0
cacheflush(0x401cb000, 0x401d1000, 0, 0x15, 0x400a0650) = 0
mprotect(0x401d8000, 4096, PROT_READ) = 0
mprotect(0x400a7000, 4096, PROT_READ) = 0
munmap(0x4011b000, 46153) = 0
set_tid_address(0x4005a3b8) = 1007
set_robust_list(0x4005a3c0, 12) = 0
futex(0xbe817d94, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 400c6000) = -1 EAGAIN (Resource temporarily unavailable)
rt_sigaction(SIGRTMIN, {0x400ad0c4, [], SA_SIGINFO|0x4000000}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x400acf6c, [], SA_RESTART|SA_SIGINFO|0x4000000}, 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) = 0x1e000
brk(0x3f000) = 0x3f000
stat64("/usr/share/alsa/alsa.conf", {st_mode=S_IFREG|0644, st_size=9184, …}) = 0
open("/usr/share/alsa/alsa.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=9184, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400fe000
read(3, “#\n# ALSA library configuration “…, 4096) = 4096
read(3, “@args [ CARD DEV SUBDEV ]\n\t@args”…, 4096) = 4096
read(3, “query.hw {\n\ttype hw\n}\n\ntimer.def”…, 4096) = 992
read(3, “”, 4096) = 0
read(3, “”, 4096) = 0
close(3) = 0
munmap(0x400fe000, 4096) = 0
futex(0x402ff0a4, 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
open("/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)
stat64("/usr/share/alsa/cards/aliases.conf", {st_mode=S_IFREG|0644, st_size=1405, …}) = 0
open("/usr/share/alsa/cards/aliases.conf", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1405, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4003b000
read(3, “#\n# Define aliases for various “…, 4096) = 1405
open(”/usr/share/alsa/pcm/default.conf”, O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=762, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400ec000
read(4, “#\n# Default output\n#\n\npcm.!defau”…, 4096) = 762
read(4, “”, 4096) = 0
close(4) = 0
munmap(0x400ec000, 4096) = 0
open("/usr/share/alsa/pcm/dmix.conf", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=1517, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400dd000
read(4, “#\n# dmix output\n#\n\npcm.!dmix {\n\t”…, 4096) = 1517
read(4, “”, 4096) = 0
close(4) = 0
munmap(0x400dd000, 4096) = 0
open("/usr/share/alsa/pcm/dsnoop.conf", O_RDONLY) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=1532, …}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400ec000
read(4, “#\n# dsnoop\n#\n\npcm.!dsnoop {\n\t@ar”…, 4096) = 1532
read(4, “”, 4096) = 0
close(4) = 0
munmap(0x400ec000, 4096) = 0
read(3, “”, 4096) = 0
read(3, “”, 4096) = 0
close(3) = 0
munmap(0x4003b000, 4096) = 0
— SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x35} —
+++ killed by SIGSEGV +++
Segmentation fault

how to have:
/dev/snd/controlC0
/dev/snd/pcmC0D0c
/dev/snd/pcmC0D0p

thank you for your help

there is no audio chip on bare beaglebone.

can you try aplay -l ? anything show up?

thank you Yiling Cao, aplay -l return this:
-bash-4.2# aplay -l
aplay: device_list:252: no soundcards found…

while angstrom return this:
root@beaglebone:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: DAC [USB Audio DAC], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0

the problem is not the kernel because if i boot my rootfs with Angstrom kernel i have no audio chip also.

how to have audio chip? do I have to install a package in my rootfs? would you like dmesg?

thank you.

i use pcm2707 such as audio chip
http://www.ti.com/product/pcm2707

you can also use a USB sound card, simply rebuild kernel with usb sound card support. or use audio cape.

thank you Yiling Cao ALSA works well.