无法将配置文件更改为 earphone_head_unit

无法将配置文件更改为 earphone_head_unit

我通过蓝牙将 Sony MDR-ZN770BN 连接到我的 PC。但我只能使用 A2DP。当我将其切换到 HSP 时,我收到消息“无法将配置文件更改为耳机头单元”,因此无法进行 Skype 通话。

我该如何解决这个问题?

答案1

我在 Ubuntu 18.04 上使用 Galaxy Earbuds + 时遇到了类似的问题,下面是我解决问题的方法:

我的耳机配置文件是 A2DP、AVRCP 和 HFP,不支持 HSP。Pulseaudio 仅支持开箱即用的 HSP。这就是我无法切换到 HSP/HFP 的原因。为了使 HSP/HFP 正常工作,您必须在需要 ofono 的 pulseaudio 上启用 HFP。

  1. 安装ofono

    sudo apt install ofono
    
  2. 配置 pulseaudio 以使用 ofono:

  • 找到/etc/pulse/default.pa该行load-module module-bluetooth-discover并将其更改为load-module module-bluetooth-discover headset=ofono

  • 将用户添加pulse到组bluetooth以授予权限:(sudo usermod -aG bluetooth pulse可能已经正确了)

  • 非常重要:要授予权限,请将其添加到/etc/dbus-1/system.d/ofono.conf(之前</busconfig>):

      <policy user="pulse">
        <allow send_destination="org.ofono"/>
      </policy>
    
  1. 提供phonesimofono。为了让 ofono 工作,你必须给它提供一个调制解调器!你可以安装一个叫 phonesim 的调制解调器模拟器(由 ofono 实现)来让它工作:
  • 安装ofono-phonesim(在某些发行版中它被称为phonesim)。在 Ubuntu 18.04 中(对于 Ubuntu 20.04,请按照此链接):

     sudo apt install ofono-phonesim
    
  • 通过添加以下行来配置phonesim /etc/ofono/phonesim.conf

      [phonesim]
      Driver=phonesim
      Address=127.0.0.1
      Port=12345
    
  • 重新开始ofono

     sudo systemctl restart ofono.service
    
  • 开始phonesim

     ofono-phonesim -p 12345 /usr/share/phonesim/default.xml
    

注意命令可以是phonesim。为了确保phonesim正确启动,你可以克隆ofono repo并使用他们的测试脚本:

cd /tmp
git clone git://git.kernel.org/pub/scm/network/ofono/ofono.git
cd ofono/test
./list-modems

您应该会在结果中看到调制解调器。您可能必须先通过执行同一目录中的脚本enable-modem来启用调制解调器。online-modem

  • 一旦启用调制解调器,您就应该能够启用 HFP 配置文件。
  1. 自动启动手机模拟器。由于您已手动执行手机模拟器,因此每次重启后您都应再次执行它。相反,您可以安装,ofono-phonesim-autostart它将以服务形式启动手机模拟器。

参考:

答案2

我在使用 Oneplus Wireless Z Bass 版本时遇到了同样的问题。PulseAudio 无法检测到我的耳机麦克风,问题是我的耳机没有 HSP 配置文件,只有 HFP 配置文件。经过 2 天的尝试,我找到了解决方案,用 Pipewire 声音服务器替换 PulseAudio,它本身支持 HSP、HFP 和 A2DP。因此无需安装任何其他实用程序,例如ofonophonesim另外,需要注意的是,即使按照所有步骤在 PulseAudio 中配置后,我的问题仍未解决ofono。所以我想出了用 PipeWire 替换 PulseAudio 的步骤。

这是我写的解决此问题的详细文章,其中的步骤我也在这里添加。您可以按照它进行操作,很可能能够解决您的问题。

未检测到蓝牙耳机麦克风

打开终端并执行以下步骤:

  1. 我们将使用 PPA 将 Pipewire 添加到 Ubuntu 20.04,该 PPA 会定期维护:

    sudo add-apt-repository ppa:pipewire-debian/pipewire-upstream
    
  2. 要更新系统中的 PPA 包,请执行以下操作:

    sudo apt update
    
  3. 安装软件包:

    sudo apt install pipewire
    
  4. Pipewire 还需要安装依赖项,否则你将面临以下问题“安装 pipewire 后蓝牙耳机无法连接”. 通过以下方式安装依赖项:

    sudo apt install libspa-0.2-bluetooth
    
  5. 现在,安装客户端库:

    sudo apt install pipewire-audio-client-libraries
    
  6. 重新加载守护进程:

    systemctl --user daemon-reload
    
  7. 禁用 PulseAudio:

    systemctl --user --now disable pulseaudio.service pulseaudio.socket
    
  8. 如果你使用的是 Ubuntu 20.04,你还需要通过以下方式“屏蔽”PulseAudio:

    systemctl --user mask pulseaudio
    

    我不确定,但如果可能的话,您也可以尝试在其他版本上运行它。

  9. 在 Pipewire 进行新更新后,您还需要启用pipewire-media-session-service

    systemctl --user --now enable pipewire-media-session.service
    
  10. 您可以确保 Pipewire 目前正在运行:

    pactl info
    

    此命令将给出以下输出,您可以在服务器名称中看到:

    PulseAudio (on PipeWire 0.3.28)
    

    现在一切应该已经正常,您可以看到您的麦克风了。


如果没有出现,请尝试通过以下命令重新启动 Pipewire:

systemctl --user restart pipewire

ofono此外,如果您已经安装了它们,则需要卸载它们ofono-phonesim

sudo apt remove ofono
sudo apt remove ofono-phonesim

如果仍然没有显示您的麦克风,您可以尝试重新启动一次,然后移除并再次配对您的蓝牙设备,以检查它是否正常工作。

我希望我已经帮助您解决了您的问题。

如果您想回滚我们所做的所有更改,您可以使用以下命令:

systemctl --user --now disable pipewire-media-session.service
systemctl --user unmask pulseaudio
systemctl --user --now enable pulseaudio.service pulseaudio.socket

从评论中复制,以防出现错误“连接失败:连接被拒绝”:

执行此步骤:

systemctl --user restart pipewire-pulse

答案3

我最初将此作为对@alisabzevari 帖子的编辑发布,但编辑被拒绝了 :( 我仍然认为这些信息非常有价值,我不想丢失它,所以我将其作为答案发布:

截至 2020-10-17,在 Ubuntu 20.04 中ofono-phonesim-autostart不可用。您可以做的是创建以下systemd单元以在启动时将其作为守护进程启动:

要作为 systemd 单元在启动时运行,请创建包含以下内容的ofono-phonesim -p 12345 /usr/share/phonesim/default.xml文件(以 root 身份):/etc/systemd/system/ofono-phonesim.service

[Unit]
Description=Run ofono-phonesim in the background
    
[Service]   
ExecStart=ofono-phonesim -p 12345 /usr/share/phonesim/default.xml
Type=simple
RemainAfterExit=yes

[Install]   
WantedBy=multi-user.target

运行后ofono-phonesim,您还需要启用调制解调器并将其phonesim联机。我 (@Zoltán) 通过创建另一个systemd依赖于上述ofono-phonesim systemd单元的单元文件来完成此操作。将以下内容放入/etc/systemd/system/phonesim-enable-modem.service

[Unit]
Description=Enable and online phonesim modem
Requires=ofono-phonesim.service
    
[Service]
ExecStart=/<path-to-cloned-ofono-git-repo>/test/enable-modem /phonesim
ExecStart=/<path-to-cloned-ofono-git-repo>/test/online-modem /phonesim
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

然后运行以下命令来运行两个守护进程:

sudo systemctl daemon-reload

sudo systemctl enable ofono-phonesim.service
sudo systemctl enable phonesim-enable-modem.service
sudo service phonesim-enable-modem start

检查服务是否正在运行

sudo service phonesim-enable-modem status

最后,pulseaudio使用重新启动pulseaudio -k。现在您应该能够将配置文件切换为headset_head_unit

答案4

在正常运行一段时间(大约 260 天)后遇到了这个问题,pulseaudio -k没有帮助,将音频配置文件切换为“关闭”也没有用。

重新启动蓝牙(systemctl restart bluetooth)即可。

相关内容