C1 音频拓扑: Windows/ChromeOS 收集脚本与 README 更新
- 新增 collect_windows_audio_topology.ps1 (C1b) - 新增 collect_chromeos_audio_topology.sh (C1c) - README 标注 C1/C1a/C1b 完成,补充 C1c 说明与验证步骤 - audio_topology/README 补充 Windows/ChromeOS 用法与脚本验证说明 - 附一份 Windows 拓扑收集示例输出 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
117
audio_topology/collect_chromeos_audio_topology.sh
Normal file
117
audio_topology/collect_chromeos_audio_topology.sh
Normal file
@@ -0,0 +1,117 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Chromebox 10 代 - 原生 ChromeOS 音频硬件拓扑收集脚本
|
||||
# 用于 C1c 任务:在原生 ChromeOS 下收集硬件拓扑,供与 Coreboot+Linux/Windows 对比
|
||||
#
|
||||
# 用法(在 ChromeOS 上):
|
||||
# 1. 打开 crosh:浏览器按 Ctrl+Alt+T
|
||||
# 2. 输入 shell 进入 bash
|
||||
# 3. 将本脚本传到设备后运行,或把下面整段复制粘贴到 shell 中执行
|
||||
#
|
||||
# 输出:默认写入 /tmp/audio_topology_chromeos_$(hostname)_$(date).txt
|
||||
# 请用 文件 应用打开 /tmp 复制到下载目录,或 cat 该文件复制内容到电脑
|
||||
#
|
||||
# 注意:ChromeOS 使用 CRAS,无 PulseAudio;部分信息需在浏览器打开 chrome://system
|
||||
# 在「audio」一节可复制粘贴到本输出文件末尾作为补充
|
||||
|
||||
set -e
|
||||
|
||||
OUTPUT_DIR="${OUTPUT_DIR:-/tmp}"
|
||||
OUTPUT="${1:-${OUTPUT_DIR}/audio_topology_chromeos_$(hostname)_$(date +%Y%m%d_%H%M%S).txt}"
|
||||
|
||||
log() { echo "[$(date +%H:%M:%S)] $*"; }
|
||||
section() {
|
||||
echo "" >> "$OUTPUT"
|
||||
echo "========================================" >> "$OUTPUT"
|
||||
echo "### $1" >> "$OUTPUT"
|
||||
echo "========================================" >> "$OUTPUT"
|
||||
echo "" >> "$OUTPUT"
|
||||
}
|
||||
run_cmd() {
|
||||
local desc="$1"
|
||||
shift
|
||||
echo "# $desc" >> "$OUTPUT"
|
||||
echo '```' >> "$OUTPUT"
|
||||
"$@" >> "$OUTPUT" 2>&1 || echo "(command failed or not available)" >> "$OUTPUT"
|
||||
echo '```' >> "$OUTPUT"
|
||||
echo "" >> "$OUTPUT"
|
||||
}
|
||||
|
||||
log "Collecting ChromeOS audio topology..."
|
||||
log "Output: $OUTPUT"
|
||||
|
||||
: > "$OUTPUT"
|
||||
echo "# Chromebox 10 - ChromeOS (native) audio topology" >> "$OUTPUT"
|
||||
echo "# Collected: $(date -Iseconds 2>/dev/null || date)" >> "$OUTPUT"
|
||||
echo "# Host: $(hostname)" >> "$OUTPUT"
|
||||
echo "# Note: Add content from chrome://system -> audio section manually if needed." >> "$OUTPUT"
|
||||
echo "" >> "$OUTPUT"
|
||||
|
||||
# --- System ---
|
||||
section "System"
|
||||
run_cmd "uname -a" uname -a
|
||||
run_cmd "Release (if exists)" cat /etc/lsb-release 2>/dev/null || true
|
||||
|
||||
# --- ALSA (kernel layer, CRAS sits on top) ---
|
||||
section "ALSA /proc/asound"
|
||||
run_cmd "cat /proc/asound/cards" cat /proc/asound/cards 2>/dev/null || echo "(no /proc/asound/cards)" >> "$OUTPUT"
|
||||
run_cmd "cat /proc/asound/pcm" cat /proc/asound/pcm 2>/dev/null || true
|
||||
run_cmd "ls -la /proc/asound" ls -la /proc/asound 2>/dev/null || true
|
||||
|
||||
for card_dir in /proc/asound/card[0-9]*; do
|
||||
[ -d "$card_dir" ] || continue
|
||||
card=$(basename "$card_dir")
|
||||
echo "# $card dir:" >> "$OUTPUT"
|
||||
echo '```' >> "$OUTPUT"
|
||||
ls -la "$card_dir" 2>/dev/null >> "$OUTPUT" || true
|
||||
echo '```' >> "$OUTPUT"
|
||||
done
|
||||
|
||||
# --- Codec (HDA) ---
|
||||
section "HDA Codec"
|
||||
for codec in /proc/asound/card*/codec*; do
|
||||
[ -f "$codec" ] || continue
|
||||
echo "# $codec" >> "$OUTPUT"
|
||||
echo '```' >> "$OUTPUT"
|
||||
cat "$codec" 2>/dev/null >> "$OUTPUT" || true
|
||||
echo '```' >> "$OUTPUT"
|
||||
done
|
||||
|
||||
# --- HDMI ELD ---
|
||||
section "HDMI ELD"
|
||||
for eld in /proc/asound/card*/eld*; do
|
||||
[ -f "$eld" ] || continue
|
||||
echo "# $eld" >> "$OUTPUT"
|
||||
echo '```' >> "$OUTPUT"
|
||||
cat "$eld" 2>/dev/null >> "$OUTPUT" || true
|
||||
echo '```' >> "$OUTPUT"
|
||||
done
|
||||
|
||||
# --- sysfs sound ---
|
||||
section "/sys/class/sound"
|
||||
run_cmd "ls -la /sys/class/sound" ls -la /sys/class/sound 2>/dev/null || true
|
||||
|
||||
# --- PCI (if available) ---
|
||||
section "PCI audio (if lspci exists)"
|
||||
if command -v lspci &>/dev/null; then
|
||||
run_cmd "lspci -nn | grep -i audio" bash -c "lspci -nn | grep -i audio || echo '(none)'"
|
||||
else
|
||||
echo "# lspci not available on this ChromeOS image" >> "$OUTPUT"
|
||||
echo "" >> "$OUTPUT"
|
||||
fi
|
||||
|
||||
# --- CRAS / ALSA utils (if present) ---
|
||||
section "Audio tools (optional)"
|
||||
run_cmd "which cras_test aplay amixer" bash -c "which cras_test aplay amixer 2>/dev/null || true"
|
||||
if command -v cras_test &>/dev/null; then
|
||||
run_cmd "cras_test --help 2>&1 | head -5" bash -c "cras_test --help 2>&1 | head -5" || true
|
||||
fi
|
||||
|
||||
# --- DMI / board (if readable) ---
|
||||
section "Board (DMI-like)"
|
||||
for f in /sys/class/dmi/id/board_name /sys/class/dmi/id/product_name /sys/class/dmi/id/sys_vendor; do
|
||||
[ -f "$f" ] && echo "$f: $(cat "$f" 2>/dev/null)" >> "$OUTPUT"
|
||||
done
|
||||
|
||||
log "Done. Output: $OUTPUT"
|
||||
log "Copy this file to your PC and save under audio_topology/collected/"
|
||||
Reference in New Issue
Block a user