系統移植過程中發現
# 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
- Linux 系統從32bit 升級爲64bit
- 起初懷疑是編譯器的問題,所以花費了很長時間排查. 想到用Yocto 中的aplay 替換排查是否是編譯器的問題,最終發現不是,一下陷入了困境.
- 0508晚上11點的時候,發現之前32bit 兼容64bit 運行程序的時候, Rootfs直接安裝了/lib64/ld-linux-aarch64.so.1,而目前編譯器生成的 ld-linux-aarch64.so.1 直接被它覆蓋調了。 經過調試果然是這個庫導致的