Linux 下 Apple Macbook Air 1,1(2008 年初;A1237)上的麦克风无法使用

Linux 下 Apple Macbook Air 1,1(2008 年初;A1237)上的麦克风无法使用

我在 MBA 上运行 Linux。我无法让麦克风工作。

我使用 alsamixerarecord -Dhw -fdat -vv mic.wavaplay -Dhw -vv mic.wav

Linux 内核在尝试解密 Apple 损坏的“BIOS”时似乎存在问题,特别是麦克风引脚未显示/分配错误。

就我们这里而言,使用 rEFIt 和 BIOS 兼容模式有什么区别吗(见https://wiki.archlinux.org/index.php/MacBook他们声称在 mba1,1) 上以及在 Ubuntu 和 Arch 之间一切都能开箱即用?

一个好的建议是编译最新的 Linux 内核并运行 hda-jack-retask 或类似的修补程序,以找到正确的配置(对于 Realtek 编解码器,我应该检查的缺失内容是一些特定于供应商的 COEF 动词、EAPD 或 GPIO 设置),然后提出一个内核补丁来解决问题。

这里的主要问题似乎是缺乏有关 Apple 如何实现和控制编解码器的数据,即他们是否将麦克风引脚作为虚拟引脚,还是其他什么。


一些有用的数据:

以 root 身份运行 alsa 脚本的输出http://www.alsa-project.org/db/?f=adae8ebee1007043fe83414ac4972319e02255fa

命令 hda-jack-sense-test -a (与 HP 连接)

Pin 0x14 (Internal Speaker): present = No
Pin 0x15 (Green HP Out): present = Yes
Pin 0x16 (Not connected): present = No
Pin 0x17 (Not connected): present = No
Pin 0x18 (Not connected): present = No
Pin 0x19 (Not connected): present = No
Pin 0x1a (Not connected): present = No
Pin 0x1b (Not connected): present = No
Pin 0x1c (Not connected): present = No
Pin 0x1d (Not connected): present = No
Pin 0x1e (Not connected): present = No
Pin 0x1f (Not connected): present = No

最有可能的芯片是 Realtek ALC885(也比较 ALC889A)http://guide-images.ifixit.net/igi/bBTSqaeK5JpQ1AWe.large,尽管目前 alsa 将其读取为 ALC889A

岩井隆的教程 https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt

有些人研究了在同一型号上运行的 OS X 安装的原始文件(我认为相关文件是 AppleHDA.kext/Contents/MacOS/AppleHDA AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.p‌​‌​list AppleHDA.kext/Contents/Resources/layout12.xml.zlib AppleHDA.kext/Contents/Resources/Platforms.xml.zlib) http://www.insanelymac.com/forum/topic/220090-alc889a-pin-configuration/#entry1554954,尽管 OS X 所看到的麦克风引脚和 Linux 下的情况似乎不匹配(这里主要需要帮助)

数据表http://www.realtek.info/pdf/ALC885_1-1.pdf (从同一个 Realtek,也可以尝试下载 Linux 驱动程序,但这只是从 ALSA 项目中获取的,如自述文件中所述。)

这是首次将 MBA2,1(与 1,1 实质上相同)的音频(麦克风除外)支持修补到内核中http://www.alsa-project.org/pipermail/alsa-devel/2010-February/025511.html

这些人可能做过类似的工作,但版本较新,而且针对的是全球声音,而不仅仅是麦克风:http://blogs.aerys.in/jeanmarc-leroux/2013/09/15/fixing-2013-macbook-air-ubuntu-sound-issue/https://bugzilla.kernel.org/show_bug.cgi?id=60811

注意:在 Linux 下,MBA1,1 唯一不能使用麦克风,其余音频部分则工作正常。

答案1

我可能无法帮助你解决这个内核补丁,但我建议你尝试一下脉冲音频。它应该能让您的麦克风再次工作,并能解决/变通您的问题。

在此处输入图片描述

PulseAudio 是 POSIX 操作系统的音频系统,也就是说它是音频应用程序的代理。它允许您在音频数据在应用程序和硬件之间传递时对其进行高级操作。使用音频服务器可以轻松实现诸如将音频传输到另一台机器、更改样本格式或通道数以及将多个声音混合成一个声音等操作。

PulseAudio 专为 Linux 系统而设计。它还被移植到 Solaris、FreeBSD、NetBSD、MacOS X、Windows 2000 和 Windows XP 上并在这些系统上进行了测试。

PulseAudio 是所有相关现代 Linux 发行版不可或缺的一部分,并被多家供应商用于各种移动设备。

相关内容