我有一块 Corewind WiFiG25 主板,基于 AT91SAMG25 400 MHz ARM 处理器,运行 Linux 3.6.9,使用 Buildroot 构建。我尝试使用连接到 ALSA 设备的 mpg123 播放 mp3 文件,该设备由 USB 连接的 TI PCM2900C CODEC 组成。文件可以播放,但播放过程中会发出“噼啪”声。
我怀疑处理器在播放文件时超载了,但 top 命令显示 CPU 利用率不到 20%。为了进一步验证这个假设,我让 CPU 非常忙碌,看看问题是否会变得更糟。我使用以下命令让 CPU 忙碌
cat /dev/zero /dev/null
这消耗了 95% 或更多的 CPU。问题并没有变得更糟,相反,音频噪音完全消失了,音频效果很好。我现在怀疑是电源管理问题。
我配置了没有电源管理的内核,但这导致启动时出现以下情况:
usb 2-3: new full-speed USB device number 2 using at91_ohci
usb 2-3: New USB device found, idVendor=08bb, idProduct=29c0
usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-3: Product: USB AUDIO CODEC
usb 2-3: Manufacturer: BurrBrown from Texas Instruments
8192cu: Unknown symbol device_init_wakeup (err 0)
insmod: can't insert '/lib/modules/3.6.9+/8192cu.ko': unknown symbol in module, or unknown parameter
rtl8192cu wifi模块无法加载,导致wifi不可用。
我广泛搜索了其他想法或方法,试图验证我的最新想法,但无济于事。关于如何在 Linux 桌面系统上启用电源管理和音频问题的讨论很多,但没有这种嵌入式环境。
欢迎您提出任何想法、假设、测试等。我宁愿不将其留cat /dev/zero > /dev/null
在我的最终系统中 :)