[ 物联网篇 ] 20 - aplay Segmentation fault

系统移植过程中发现

# cat /proc/asound/cards
 0 [Loopback       ]: Loopback - Loopback
                      Loopback 1
 1 [wm8524audio    ]: wm8524-audio - wm8524-audio
                      wm8524-audio
 2 [imxspdif       ]: imx-spdif - imx-spdif
                      imx-spdif
 3 [imxaudiomicfil ]: imx-audio-micfi - imx-audio-micfil
                      imx-audio-micfil\
                      
# cat /proc/asound/pcm
00-00: Loopback PCM : Loopback PCM : playback 8 : capture 8
00-01: Loopback PCM : Loopback PCM : playback 8 : capture 8
01-00: HiFi wm8524-hifi-0 :  : playback 1 : capture 1
02-00: S/PDIF PCM snd-soc-dummy-dai-0 :  : playback 1 : capture 1
03-00: micfil hifi snd-soc-dummy-dai-0 :  : capture 1

 aplay -L
Segmentation fault
$ aplay /tmp/test.wav
Segmentation fault

Segfault with any ALSA apps

  1. Linux 系统从32bit 升级为64bit
  2. 起初怀疑是编译器的问题,所以花费了很长时间排查. 想到用Yocto 中的aplay 替换排查是否是编译器的问题,最终发现不是,一下陷入了困境.
  3. 0508晚上11点的时候,发现之前32bit 兼容64bit 运行程序的时候, Rootfs直接安装了/lib64/ld-linux-aarch64.so.1,而目前编译器生成的 ld-linux-aarch64.so.1 直接被它覆盖调了。 经过调试果然是这个库导致的

你可能感兴趣的:([,工作积累,])