BeagleBone Black aplay using USB audio adapter causes crash

149 views
Skip to first unread message

wwe...@gmail.com

unread,
Jun 22, 2016, 8:02:50 AM6/22/16
to BeagleBoard
Question: I can't get aplay to work reliably with a USB audio adapter.  It works most of the time, but every once in a while it crashes and hangs, I can't play again.   The only fix seems to be to cycle the power on the BeagleBone Black.

Any help on how to debug this?  I know linux but have never debugged someone else's kernel crashes.

----------------------

Linux beaglebone 4.1.15-ti-rt-r43 #1 SMP PREEMPT RT Thu Jan 21 20:13:58 UTC 2016 armv7l GNU/Linux
BeagleBone Black rev C
USB audio dongle from Sabrent, or from Syba (I tried both and the both cause the same problem).  I believe they both have the same internal hardware but that may not matter.

I haven't altered the kernel or cape in any way (I installed on microSD using bone-debian-8.3-lxqt-4gb-armhf-2016-01-24-4gb.img)
I have run "apt-get update" and "apt-get upgrade"

If I play some files in a loop like this, it eventually crashes and aplay hangs.  It is hard to repeat but it is repeatable

for ((i=0; i<1; i++))
do
  aplay -Ddefault:Device /opt/sounds/wav/yipe.wav
  aplay -Ddefault:Device /opt/sounds/wav/fart_z.wav
  aplay -Ddefault:Device /opt/sounds/wav/scream2.wav
done

dmesg:
[  331.175898] Unable to handle kernel NULL pointer dereference at virtual address 0000001c
[  331.194307] pgd = db8bc000
[  331.197049] [0000001c] *pgd=9c25e831, *pte=00000000, *ppte=00000000
[  331.213614] Internal error: Oops: 17 [#1] PREEMPT SMP THUMB2
[  331.213726] Modules linked in: c_can_platform c_can can_dev spidev pwm_tiehrpwm pwm_tiecap tieqep snd_soc_evm pruss_remoteproc snd_usb_audio snd_hwdep snd_usbmidi_lib snd_rawmidi snd_seq_device omap_rng rng_core tilcdc snd_soc_davinci_mcasp snd_soc_edma spi_omap2_mcspi usb_f_acm u_serial usb_f_rndis g_multi usb_f_mass_storage u_ether libcomposite tda998x snd_soc_hdmi_codec uio_pdrv_genirq uio
[  331.213743] CPU: 0 PID: 2871 Comm: aplay Not tainted 4.1.15-ti-rt-r43 #1
[  331.213748] Hardware name: Generic AM33XX (Flattened Device Tree)
[  331.213757] task: dc2d9680 ti: ddcee000 task.ti: ddcee000
[  331.213780] PC is at musb_start_urb+0x34/0x93c
[  331.213790] LR is at musb_cleanup_urb+0x87/0x98
[  331.213800] pc : [<c0529fcc>]    lr : [<c052ab43>]    psr: 000f0133
sp : ddcefde0  ip : 00000000  fp : 00000000
[  331.213806] r10: 00000000  r9 : ffffffec  r8 : c0cfdea0
[  331.213812] r7 : e083ec10  r6 : 00000001  r5 : dc2bc500  r4 : ddb24010
[  331.213818] r3 : ddb24b60  r2 : 00000000  r1 : 00000000  r0 : ddb24010
[  331.213828] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA Thumb  Segment user
[  331.213835] Control: 50c5387d  Table: 9b8bc019  DAC: 00000015
[  331.213843] Process aplay (pid: 2871, stack limit = 0xddcee218)
[  331.213850] Stack: (0xddcefde0 to 0xddcf0000)
[  331.213864] fde0: ddb24010 00001284 00000000 c0529f33 00000003 000003e7 e083ec10 c0cfdea0
[  331.213876] fe00: c0cfde98 c0c2ee00 ddb24b60 00000000 dc2bc500 00000000 dc7f7300 00000000
[  331.213889] fe20: ddb24010 c052a96f e083ec00 dc2bc500 dc2d9680 ddb24010 1b4f1d09 ddb24b60
[  331.213901] fe40: 00000000 dc7f7300 e083ec10 c0cfdea0 c0cfde98 00000000 00000000 c052ab43
[  331.213912] fe60: dc7f7300 dc2bc500 ddb24010 00000000 00000000 00000001 dc7cad08 c052af59
[  331.213925] fe80: ddcefe88 c004e8e9 00000000 c011d71b dc2bb000 dc7f7300 ffffff98 dcf51000
[  331.213936] fea0: dccd53ec dccd53e8 00000008 c04f27fd dfd72e94 c00ef857 00000002 dccd53f0
[  331.213948] fec0: dccd40e0 bf8d9249 00000000 dccd4000 00000000 db84b600 dcdd64b8 bf8d9fd3
[  331.213960] fee0: 00000001 dc15c410 dc15c474 bf8e0577 dc15c410 c0c0ba94 00000001 bf8e0673
[  331.213972] ff00: db84b600 c05c548f c05c5459 c05c52df 00000003 db84b600 dc730400 00000000
[  331.213985] ff20: dc2f8540 c05c5937 db84b600 dc7cad00 dcdd6000 c05c5ecf 00000000 db84b600
[  331.213997] ff40: dc7cad00 c05c5fa7 dc7cad00 dc1c4230 00000000 dcd9d410 db2243c0 c012ae5f
[  331.214009] ff60: 00000000 00000000 dc2d9c3c 00000000 c0c379c8 dc2d9680 c000eac4 ddcee000
[  331.214021] ff80: 00000000 c00468dd dc7cad00 ddcee000 c000eac4 ddceffb0 00000006 c00112d3
[  331.214033] ffa0: 007045e8 007046f0 007045e8 c000e979 00000000 00000000 007043f8 b6ee45a1
[  331.214045] ffc0: 007045e8 007046f0 007045e8 00000006 b6f3f000 0001c2d0 007057f8 00000000
[  331.214057] ffe0: 00000000 be96038c b6ee45b9 b6e045f6 600d0030 00000004 d1f10301 0126e9cd
[  331.214087] [<c0529fcc>] (musb_start_urb) from [<c052ab43>] (musb_cleanup_urb+0x87/0x98)
[  331.214102] [<c052ab43>] (musb_cleanup_urb) from [<c052af59>] (musb_urb_dequeue+0xfd/0x114)
[  331.214128] [<c052af59>] (musb_urb_dequeue) from [<c04f27fd>] (usb_hcd_unlink_urb+0x3d/0xa0)
[  331.214260] [<c04f27fd>] (usb_hcd_unlink_urb) from [<bf8d9249>] (deactivate_urbs+0x90/0xa8 [snd_usb_audio])
[  331.214358] [<bf8d9249>] (deactivate_urbs [snd_usb_audio]) from [<bf8d9fd3>] (snd_usb_endpoint_stop+0x1e/0x34 [snd_usb_audio])
[  331.214453] [<bf8d9fd3>] (snd_usb_endpoint_stop [snd_usb_audio]) from [<bf8e0577>] (stop_endpoints+0x3a/0x44 [snd_usb_audio])
[  331.214546] [<bf8e0577>] (stop_endpoints [snd_usb_audio]) from [<bf8e0673>] (snd_usb_substream_playback_trigger+0x76/0x8c [snd_usb_audio])
[  331.214615] [<bf8e0673>] (snd_usb_substream_playback_trigger [snd_usb_audio]) from [<c05c548f>] (snd_pcm_do_stop+0x37/0x38)
[  331.214636] [<c05c548f>] (snd_pcm_do_stop) from [<c05c52df>] (snd_pcm_action_single+0x23/0x44)
[  331.214653] [<c05c52df>] (snd_pcm_action_single) from [<c05c5937>] (snd_pcm_drop+0x43/0x6c)
[  331.214667] [<c05c5937>] (snd_pcm_drop) from [<c05c5ecf>] (snd_pcm_release_substream.part.12+0xf/0x68)
[  331.214682] [<c05c5ecf>] (snd_pcm_release_substream.part.12) from [<c05c5fa7>] (snd_pcm_release+0x67/0x70)
[  331.214699] [<c05c5fa7>] (snd_pcm_release) from [<c012ae5f>] (__fput+0x63/0x14c)
[  331.214724] [<c012ae5f>] (__fput) from [<c00468dd>] (task_work_run+0x79/0xac)
[  331.214753] [<c00468dd>] (task_work_run) from [<c00112d3>] (do_work_pending+0x6b/0x7c)
[  331.214771] [<c00112d3>] (do_work_pending) from [<c000e979>] (work_pending+0x9/0x18)
[  331.214786] Code: 0900 68ab f895 6026 (f8d9) 0030 
[  331.725539] ---[ end trace 0000000000000002 ]---





William Hermans

unread,
Jun 22, 2016, 11:14:12 AM6/22/16
to beagl...@googlegroups.com
If I play some files in a loop like this, it eventually crashes and aplay hangs.  It is hard to repeat but it is repeatable

for ((i=0; i<1; i++))
do
  aplay -Ddefault:Device /opt/sounds/wav/yipe.wav
  aplay -Ddefault:Device /opt/sounds/wav/fart_z.wav
  aplay -Ddefault:Device /opt/sounds/wav/scream2.wav
done

Except, in that code, you're not really looping at all. You're just playing 3 sound files one after the other through aplay. i increments then exits. So how many times are you really looping when this script crashes your system ?

regardless, you can always run the script from strace, while piping the output to a file. You'll need to pipe strace to a file for two reasons.

  1. Lots of data being dumped
  2. When your script crashes the kernel, you wont have a record after a restart,

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/083bb37d-3c07-4e4a-87a8-ce8ce1b1533b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

William Hermans

unread,
Jun 22, 2016, 11:15:55 AM6/22/16
to beagl...@googlegroups.com
Anyway I suspect you're exceeding the Linux stack size, and in this case with debian. stack size is as much memory as is available.

William Wendin

unread,
Jun 23, 2016, 1:16:33 AM6/23/16
to BeagleBoard
Ooops, yes it dies sometimes on 1 cycle through. 

Usually I set it to 100

William Wendin

unread,
Jun 23, 2016, 1:17:53 AM6/23/16
to BeagleBoard
BTW, I usually set the for loop to 100, not 1.   Sometimes it crashes doing it just once however.

Dieter Wirz

unread,
Jun 24, 2016, 10:43:40 AM6/24/16
to beagl...@googlegroups.com
wav Files are huge, even if its only a fart;), depending on number of
channels and sampling rate. Its a raw format. The reading speed from
your Memory (sd or mmc) might simply be to slow. Convert the files to
another format and have a look at mp123, nvlc, mplayer, .... Some of
them work even with lossless formats. I propose: give mp3 and mp123 a
try;)
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to beagleboard...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/beagleboard/1da90314-5c09-4636-b143-8d4735238b5b%40googlegroups.com.

William Wendin

unread,
Jun 29, 2016, 1:20:46 AM6/29/16
to BeagleBoard
I upgraded to BeagleBone Black 8.4 and the problem went away.   After a week of testing, I can't get the error any more.    I don't see any fixes in the 8.4 release notes.   But I'll call this fixed unless I see it again.
Reply all
Reply to author
Forward
0 new messages