Files
chromebox_10th_audio_driver/scripts/collect-hda-link-ftrace.sh
2026-04-05 08:30:54 +08:00

53 lines
1.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Kaisa对 hda_link_dma_hw_params / snd_hdac_ext_bus_link_set_stream_id / sof_ipc3_pcm_hw_params
# 做 function_graph 追踪(需 root、CONFIG_FUNCTION_GRAPH、debugfs 已挂载)。
# 用法sudo ./scripts/collect-hda-link-ftrace.sh [plughw:0,3]
# 产出:/tmp/hda_link_ftrace_<ts>.txt请复制到 audio_topology/collected/
# 详见 patches/ubuntu-hwe-6.17/STREAM_PCM_PARAMS_CHROME_UBUNTU_NOTES.md §6.1
set -euo pipefail
if [[ "${EUID:-}" -ne 0 ]]; then
echo "请使用 sudo 运行。" >&2
exit 1
fi
PLUG="${1:-plughw:0,3}"
TRACING="${TRACING:-/sys/kernel/tracing}"
if [[ ! -d "$TRACING" ]]; then
TRACING="/sys/kernel/debug/tracing"
fi
if [[ ! -d "$TRACING" ]]; then
echo "未找到 tracing$TRACING)。请确认 CONFIG_FTRACE。" >&2
exit 1
fi
TS=$(date +%Y%m%d_%H%M%S)
KR=$(uname -r)
OUT="/tmp/hda_link_ftrace_${KR}_${TS}.txt"
echo "tracing dir: $TRACING"
echo 0 > "$TRACING/tracing_on" 2>/dev/null || true
echo function_graph > "$TRACING/current_tracer"
echo 'hda_link_dma_hw_params' > "$TRACING/set_ftrace_filter"
echo 'snd_hdac_ext_bus_link_set_stream_id' >> "$TRACING/set_ftrace_filter"
echo 'sof_ipc3_pcm_hw_params' >> "$TRACING/set_ftrace_filter"
echo 1 > "$TRACING/options/funcgraph-proc" 2>/dev/null || true
: > "$TRACING/trace"
echo 1 > "$TRACING/tracing_on"
echo "播放: speaker-test -D $PLUG -c 2 -t wav -l 1 (约 8s)"
timeout 10 speaker-test -D "$PLUG" -c 2 -t wav -l 1 >/dev/null 2>&1 || true
echo 0 > "$TRACING/tracing_on"
{
echo "### uname -r: $KR"
echo "### plughw: $PLUG"
echo "### ftrace filter:"
cat "$TRACING/set_ftrace_filter" 2>/dev/null || true
echo "### trace:"
cat "$TRACING/trace"
} > "$OUT"
echo "已写入: $OUT ($(wc -l < "$OUT") 行)"
echo "复制到仓库: cp $OUT /path/to/chromebox_10th_audio_driver/audio_topology/collected/"