Библиотеки 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. библиотека.)
dns
. кр.ып.к. Вы правы в том, что для аудиовхода требуется 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;