| #!/bin/sh |
| # |
| # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| # |
| # Collect information about the audio system from top to bottom. |
| |
| dump_cards() { |
| for card in ${@} |
| do |
| echo '=== amixer -c' $card scontents '===' |
| amixer -c $card scontents |
| echo '=== amixer -c' $card contents '===' |
| amixer -c $card contents |
| done |
| } |
| |
| echo '=== cras_test_client --dump_server_info ===' |
| cras_test_client --dump_server_info |
| |
| echo '=== cras_test_client --dump_audio_thread ===' |
| cras_test_client --dump_audio_thread |
| |
| echo '=== aplay -l ===' |
| aplay -l |
| echo '=== arecord -l ===' |
| arecord -l |
| |
| output_cards=$(aplay -l | egrep ^card | sed 's/card \([0-9]\+\).*/\1/' | sort -u) |
| dump_cards $output_cards |
| |
| input_cards=$(arecord -l | egrep ^card | sed 's/card \([0-9]\+\).*/\1/' | sort -u) |
| dump_cards $input_cards |
| |
| # HDA codec for codecs on x86. |
| codecs=$(find /proc/asound -mindepth 2 -maxdepth 2 -path '*card*/codec#*') |
| for codec in $codecs |
| do |
| echo '=== codec:' $codec '===' |
| cat $codec |
| done |
| |
| # I2C dump for codecs on arm. |
| # Find lines like "max98088.7-0010" and extract "7 0x0010" from it. |
| if [ -e /sys/kernel/debug/asoc/codecs ]; then |
| sed_expr='s/^\([^.-]\+\)\.\([0-9]\+\)-\([0-9]\+\)$/\2 0x\3/p' |
| sed -n "$sed_expr" /sys/kernel/debug/asoc/codecs | |
| while read i2c_addr |
| do |
| echo '===' i2cdump -f -y $i2c_addr '===' |
| i2cdump -f -y $i2c_addr |
| done |
| fi |