Bluetooth-гарнитура Sony WH-1000XM3 не работает в качестве аудиовхода

Клиентские библиотеки DNS.

Библиотеки C содержат DNS-клиенты, которые оборачивают поиск адресов с -по -в протокол DNS и передают их прокси-серверам DNS для выполнения всей черновой работы по разрешению запросов. Таких DNS-клиентов очень много. Тот, который находится в основной библиотеке времени выполнения C вашей операционной системы, скорее всего, будет библиотекой ISC BIND. Но есть масса других, начиная с библиотеки Daniel J. Bernstein dnsи заканчивая c -ares и adns.

Хотя некоторые из них содержат собственные механизмы конфигурации, они обычно имеют режим совместимости с библиотекой BIND, где они читаются как resolv.conf, который является файлом конфигурации для клиентской библиотеки ISC BIND C.

NSS располагается поверх этого и настраивается с помощью nsswitch.conf. Одна из вещей, которую поиск NSS может вызывать внутри, — это DNS-клиент, и nsswitch.confсчитывается кодом NSS в библиотеке C, чтобы определить, передаются ли и где запросы DNS-клиенту, и как обрабатывать различные ответы.

(Есть небольшое усложнение этой идеи, вызванное демоном кэширования служб имен, nscd. Но это просто добавляет дополнительный клиент верхнего уровня -в библиотеку C, говорящий по идиосинкразическому протоколу с локальным сервером, который, в свою очередь, действует как DNS-клиент, говорящий по протоколу DNS с прокси-сервером DNS. systemd-resolvedдобавляет аналогичные осложнения.)

systemd-resolved, NetworkManager, connman, dhcpcd, resolvconfи другие настраивают файл конфигурации DNS-клиента BIND для переключения DNS-клиентов для обмена данными с разными прокси-серверами DNS на лету. Это выходит за рамки этого ответа, тем более что на этом сайте WWW есть много ответов, которые уже касаются византийских деталей, связанных с таким механизмом.

Более традиционным способом работы в мире Unix является запуск прокси-сервера DNS либо на самом компьютере, либо в локальной сети. Отсюда то, что говорится в руководстве FreeBSD о нормально сконфигурированных системах,где действие по умолчанию клиентской библиотеки DNS при отсутствии resolv.confсоответствует тому, что обычно имеют системные администраторы Unix, а именно прокси-сервер DNS, прослушивающий 127.0.0.1. (Руководство FreeBSD для resolv.confна самом деле является документом, который также происходит из BIND ISC, и, конечно, его также можно найти там, где клиентская библиотека BIND DNS была включена в другие места, такие как GNU C. библиотека.)

Дополнительная литература

4
18.05.2020, 12:48
1 ответ

Вы правы в том, что для аудиовхода требуется HSP/HFP. Bluetooth может быть довольно привередливым, обязательно попробуйте забыть гарнитуру и отремонтировать ее.

Вот вывод /usr/bin/pacmd list-sourcesдля моей синей гарнитуры в режиме HSP/HSF.

* index: 23
    name: <bluez_source.00_16_94_1E_CC_05.headset_head_unit>
    driver: <module-bluez5-device.c>
    flags: HARDWARE HW_VOLUME_CTRL LATENCY 
    state: RUNNING
    suspend cause: (none)
    priority: 9050
    volume: mono: 61166 /  93%
            balance 0.00
    base volume: 65536 / 100%
    volume steps: 16
    muted: no
    current latency: 34.37 ms
    max rewind: 0 KiB
    sample spec: s16le 1ch 8000Hz
    channel map: mono
                 Mono
    used by: 1
    linked by: 1
    fixed latency: 28.00 ms
    card: 9 <bluez_card.00_16_94_1E_CC_05>
    module: 34
    properties:
        bluetooth.protocol = "headset_head_unit"
        device.intended_roles = "phone"
        device.description = "HD 4.40BT"
        device.string = "00:16:94:1E:CC:05"
        device.api = "bluez"
        device.class = "sound"
        device.bus = "bluetooth"
        device.form_factor = "headset"
        bluez.path = "/org/bluez/hci0/dev_00_16_94_1E_CC_05"
        bluez.class = "0x240404"
        bluez.alias = "HD 4.40BT"
        device.icon_name = "audio-headset-bluetooth"
    ports:
        headset-input: Headset (priority 0, latency offset 0 usec, available: yes)
            properties:

    active port: <headset-input>

Я вижу, что у меня suspend cause: (none)и у вас suspend cause:, но это единственная разница, которую я могу заметить.

К вашему сведению, при работе с bluetooth иногда недостаточно просто перезапустить службу bluetooth. Я нашел, что это работает лучше :sudo rfkill block bluetooth && sleep 0.1 && sudo rfkill unblock bluetooth;

1
28.04.2021, 23:16

Теги

Похожие вопросы