Автоматическое подключение bluetooth-наушников в Linux
Обновлено: 21.11.2024
BT включается при запуске. Это приятно. Но он не будет автоматически соединяться/подключаться к устройству, даже если оно когда-то было сопряжено и получило статус «доверенный». Я могу подключиться к динамику с помощью инструмента, выбрав устройство и «подключиться к аудиовыходу». Как это сделать автоматически при загрузке? Я могу сделать это также с помощью «bluetoothctl», а затем «connect», но это интерактивно, похоже, не для сценариев.
Второй шаг заключается в том, что BT становится аудиоприемником по умолчанию.
Разве это не обычный вариант использования?
(Я нашел здесь несколько страниц, большинство из которых устарели.) Автоподключение Bluetooth-устройств: у меня не работает load-module module-switch-on-connect.
Я также установил bt-autoconnect. Но несколько проблем: - он не нашел BT-адаптер - Кнопка Audio-Setting ничего не делает - Сохранить и выйти не просто ничего
Согласен, это было бы очень приятно. Это обсуждение выглядит актуальным. Я тестирую решение для pulseaudio> 1.0. Судя по вашему ответу, вы его уже видели.
6 ответов 6
Попробуйте команду bluetoothctl.
Если вы затем войдете в help , вы увидите команды, которые нужно использовать.
- 'список' (устройства)
- 'trust 78:44:aa:bb:cc:dd' (MAC-адрес устройства)
- 'info 78:44:aa:bb:cc:dd' (MAC-адрес устройства)
- 'парные устройства'
Попробуйте, у меня сработало.
Мне это не помогло. Я успешно доверил устройство, но оно не подключается к нему автоматически. Когда я запускаю информацию
Для автоматического подключения к Audio Sink вы можете добавить следующую строку в /etc/rc.local :
Обновите адрес. Вы можете проверить из командной строки:
В моем случае спящего режима 6 достаточно, но, возможно, на вашем компьютере его необходимо увеличить, чтобы можно было полностью выполнить другие шаги подключения Bluetooth.
Как правило, с помощью знака & в конце вы запускаете процесс, который будет выполняться через 6 секунд, не блокируя следующие процессы, запускающие обычные функции подключения Bluetooth. Если rc.local не существует (в моем случае это было), вы можете создать его или инициировать при запуске с другим файлом.
НО: как сервер BT может автоматически подключиться к динамику, как только он станет доступен? ПОМОГИТЕ!
Редактировать: нашел (имхо, не самое лучшее) решение для первого вопроса:
НО: было бы еще лучше, если бы это работало без этого MAC-адреса для всех когда-либо подключенных и доверенных устройств.
Я написал простой скрипт, который будет повторно подключать устройство при перезагрузке компьютера или когда устройство переключает статус Bluetooth или теряет сигнал на некоторое время.
- Обновите переменную MAC, указав MAC-адрес вашего устройства. (динамик, смартфон. )
эхо "устройства" | bluetoothctl | grep Устройство - Сохраните скрипт, например, как ~/.bt-autoconnect.sh
- Сделать его исполняемым chmod +x ~/.bt-autoconnect.sh
- Запустите его при входе в систему echo "~/.bt-autoconnect.sh &" >> "~/.xprofile"
В Ubuntu проблемы со звуком возникают из-за установленных драйверов. Если этот динамик является новейшим и самым модным оборудованием, у вас нет хороших шансов, и вам придется ждать от 2 до 8 месяцев, пока драйвер не появится в сообществе Linux. Но вы можете попробовать установить в терминал следующие пакеты:
sudo apt-get установить ритмбокс amarok
перезагрузить
Затем включите Bluetooth и проверьте, поддерживается ли ваш динамик:
- Откройте обзор действий и начните вводить Bluetooth.
- Нажмите Bluetooth, чтобы открыть панель.
- Переведите переключатель вверху в положение ВКЛ.
Удачи или терпения максимум 8 месяцев.
Его вопрос не имел ничего общего с драйверами или звуковыми «проблемами». Это было связано с настройкой автоподключения. Предложение подождать несколько произвольных месяцев вряд ли подходит для Stack Exchange.
В моем случае этот скрипт работает (я перепробовал все настройки, но у меня не работает, шаг 5 отсюда)
Сценарий Python на GitHub называется bluetooth-autoconnect. Это скрипт на Python, который автоматически подключается ко всем сопряженным и доверенным устройствам Bluetooth. Однако скрипт недоступен для прямой установки в репозиторий Flatpak или Apt. Следовательно, нам нужно вручную загрузить и настроить службу.
скачайте zip-файл с GitHub или используйте следующую команду, чтобы клонировать репозиторий в свой домашний каталог.
После того, как мы успешно скопировали службу в соответствующие каталоги, давайте включим и запустим службу. Для этого используйте следующую команду.
Теперь удалить и снова подключиться и Готово.
Единственное предостережение при использовании этого метода заключается в том, что вы не сможете подключить свое Bluetooth-устройство к другим системам, не выключив Bluetooth на вашем Linux-компьютере.
Если вы какое-то время пользовались Linux, то знаете, что Bluetooth и Linux несовместимы. Какой бы ни была причина, всегда сложно подключить устройства Bluetooth к вашей системе Linux. Недавно, после моего обновления до Ubuntu 20.04, я заметил, что устройства Bluetooth не просто автоматически подключаются к моей системе. Я много копался в этом, и вот способы исправить «Устройство Bluetooth не подключается автоматически в Ubuntu».
Исправить «Устройство Bluetooth не подключается автоматически» в Ubuntu
У этой проблемы нет универсального решения, и ваша проблема может отличаться от моей. Например, мои наушники Bluetooth автоматически подключаются к моей системе Ubuntu, как только я ее включаю. Но в следующую секунду он снова отключается, и мне приходится каждый раз подключать его вручную.
Итак, каким бы ни было устройство Bluetooth, вот пошаговое исправление, оставляйте комментарии и дайте мне знать, какое из них подходит вам.
Шаг 1. Автоматическое включение
В первую очередь необходимо убедиться, что модуль Bluetooth работает и включен. Как только мы это уберем, нам нужно проверить, включен ли AutoEnable. Автоматическое включение гарантирует, что модуль Bluetooth будет включаться после каждого перезапуска. Кроме того, если вы подключаете USB-устройство или модуль Bluetooth, AutoEnable гарантирует, что оно может запуститься без перезагрузки.
Чтобы убедиться, что AutoEnable включен, нам нужно покопаться в файле конфигурации Bluetooth. Для этого используйте следующую команду.
В файле конфигурации Bluetooth перейдите в самый низ. Если вы видите строку с надписью «AutoEnable = true», все в порядке. Если вы этого не сделаете, AutoEnable отключен. Следовательно, нам придется добавить следующую строку в конец файла.
Этот шаг не так важен для аудиоустройства Bluetooth, но может решить проблему автоматического подключения Bluetooth-мыши, веб-камеры или клавиатуры.
Шаг 2. Доверяйте устройству
Если описанный выше метод не помог решить проблему, причина может заключаться в том, что Ubuntu не доверяет Bluetooth-устройству. Это приводит к сбою аутентификации, когда устройство пытается автоматически подключиться. Чтобы убедиться, что ваше устройство Bluetooth является надежным, нам нужно добавить его в список надежных.
Для этого нам в первую очередь понадобится MAC-адрес устройства Bluetooth. Чтобы получить MAC-адрес, вам необходимо подключить устройство Bluetooth к вашей системе или, по крайней мере, сделать его доступным для обнаружения. Затем перейдите на верхнюю панель и нажмите на значок батареи. В расширенном раскрывающемся списке нажмите значок Bluetooth, а затем — Настройки Bluetooth.
В настройках Bluetooth найдите имя своего устройства Bluetooth и нажмите на него. Во всплывающем меню вы получите MAC-адрес устройства.
После получения MAC-адреса устройства нажмите «Alt+Ctrl+T», чтобы открыть терминал. В терминале введите следующую команду и нажмите Enter.
Чтобы убедиться, что устройство добавлено в список доверенных, нажмите следующую команду.
Теперь попробуйте перезапустить службу Bluetooth, теперь устройство должно автоматически подключиться.
Шаг 3. Повторно подключите Bluetooth-устройство
Если что-то пойдет не так, попробуйте удалить устройство Bluetooth и снова подключить его. Иногда Ubuntu может ошибаться в типе или классе устройства Bluetooth. Например, он может использовать класс наушников как клавиатуру Bluetooth. Эта проблема может быть устранена путем повторного сопряжения. Вы можете сделать это через графический интерфейс, удалив устройство, но если вы такой же клавиатурный ниндзя, как я, ниже приведена команда.
Переведите наушники в режим сопряжения и выполните следующую команду
После этого перезапустите Bluetooth и проверьте, подключается ли устройство автоматически.
Шаг 4. Переустановите Bluetooth
Это последнее средство, если что-то не получается. Переустановка может решить проблемы с Bluetooth и другими драйверами. BlueZ — это официальный стек Bluetooth для Linux. Чтобы переустановить Bluetooth, нам нужно переустановить пакет BlueZ. Для этого используйте следующую команду.
После переустановки Bluez включите и запустите службу Bluetooth с помощью следующей команды.
Теперь это может помочь вам исправить автоматическое повторное подключение устройства Bluetooth. В случае, если это не позволяет перейти к следующему шагу.
Шаг 5. Скрипт
Если описанные выше шаги вам не помогли, у нас одинаковые позиции. Когда я собирался вообще отказаться от этой статьи, я наткнулся на скрипт Python на GitHub под названием bluetooth-autoconnect. Это скрипт на Python, который автоматически подключается ко всем сопряженным и доверенным устройствам Bluetooth. Однако скрипт недоступен для прямой установки в репозиторий Flatpak или Apt. Следовательно, нам нужно вручную загрузить и настроить службу.
Прежде всего загрузите zip-файл с GitHub или используйте следующую команду, чтобы клонировать репозиторий в свой домашний каталог.
Теперь, когда у нас есть загруженный репозиторий, нам нужно переместить службу и скрипты в соответствующие места, прежде чем мы запустим службу. В моем случае я использую архитектуру systemd, поэтому упомянутые места назначения файлов будут применимы к таким дистрибутивам, как ArchLinux, Ubuntu, Debian и т. д. Если вы используете дистрибутивы, отличные от systemd, пожалуйста, погуглите свои служебные каталоги.
После того, как мы успешно скопировали службу в соответствующие каталоги, давайте включим и запустим службу. Для этого используйте следующую команду.
Теперь, когда служба запущена, она попытается повторно подключиться к каждому сопряженному и доверенному устройству Bluetooth. Единственное предостережение в отношении этого метода заключается в том, что вы не сможете соединить свое устройство Bluetooth с другими системами, не отключив Bluetooth на вашем Linux-компьютере. Поскольку устройство всегда будет пытаться подключиться к вашему Bluetooth-устройству.
Заключительные слова
Эта статья познакомила меня с десятками форумов и статей в Интернете. Я пробовал использовать сценарии udev для подключения PulseAudio к Bluez Manager, но ни один из них не смог выполнить работу автоматического подключения. Поэтому я опустил их в этой статье. В моем путешествии с системами Linux, помимо отсутствия хороших профессиональных приложений, Bluetooth был второй по значимости проблемой. Я никогда не мог прийти к выводу, что это проблема драйвера производителя или что-то, что Linux еще не понял.
Сообщите мне о своем опыте в комментариях, и мы вместе найдем решение.
Инструмент командной строки Linux для автоматического подключения ко всем сопряженным и доверенным устройствам Bluetooth.
Он может работать как одноразовый скрипт или как демон, ожидающий подключения адаптеров к сети.
- Требуется python3 , python-prctl , python-dbus и bluez.
Если вы упаковали это для другого дистрибутива, откройте вопрос или PR, чтобы инструкции можно было добавить в этот список.
- Если вы используете pulseaudio с Bluetooth-гарнитурой или динамиком, также включите вспомогательную службу с помощью systemctl --user enable pulseaudio-bluetooth-autoconnect
- Установите скрипт bluetooth-autoconnect где-нибудь в вашем PATH , например, /usr/local/bin/
- Если вы используете systemd, рассмотрите возможность установки файла bluetooth-autoconnect.service в /etc/systemd/system/ и изменения его, чтобы он отражал расположение, в котором вы установили скрипт
- Включите службу с помощью sudo systemctl enable bluetooth-autoconnect
Если вы используете bluetooth-гарнитуру с пульсаудио, работающим от имени вашего пользователя, указанная выше служба не сможет подключиться к вашей гарнитуре при загрузке, потому что пульсаудио не будет запущена, когда появится служба bluetooth.
- Если вы используете systemd, попробуйте установить файл pulseaudio-bluetooth-autoconnect.service в /etc/systemd/user/ или ~/.config/systemd/user/ и изменить его, чтобы он отражал расположение, в котором вы установили скрипт
- Включите службу с помощью systemctl --user enable pulseaudio-bluetooth-autoconnect
Просто запустив скрипт, вы просканируете все включенные адаптеры и подключитесь к любым доступным устройствам
При работе в режиме демона с флагом -d он сначала подключается к любым доступным устройствам, а затем ожидает подключения/включения новых адаптеров. Отправка процессу сигнала HUP заставит его повторно сканировать все адаптеры.
Авторское право (c) Джонатан Руло, 2019 г.
О нас
Инструмент командной строки Linux для автоматического подключения ко всем сопряженным и доверенным устройствам Bluetooth.
Как исправить ошибку «Устройство Bluetooth не подключается автоматически» в Linux.
Если вы какое-то время пользовались Linux, то должны знать, что Bluetooth и Linux несовместимы. Какой бы ни была причина, всегда сложно подключить устройства Bluetooth к вашей системе Linux. Недавно, после обновления до Ubuntu 20.04, я заметил, что устройства Bluetooth не просто автоматически подключаются к моей системе. Я много копался в этом, и вот способы исправить «Устройство Bluetooth не подключается автоматически в Ubuntu».
Исправить «Устройство Bluetooth не подключается автоматически» в Ubuntu
У этой проблемы нет универсального решения, и ваша проблема может отличаться от моей. Например, мои наушники Bluetooth автоматически подключаются к моей системе Ubuntu, как только я ее включаю. Но в следующую секунду он снова отключается, и мне приходится каждый раз заново подключать его вручную.
Итак, каким бы ни было устройство Bluetooth, вот пошаговое решение, оставьте комментарий и дайте мне знать, какое из них подходит вам.
Шаг 1. Включите автоматический
В первую очередь необходимо убедиться, что у вас есть работающий модуль Bluetooth и что он включен. Как только это будет сделано, нам нужно проверить, включен ли AutoEnable. Автоматическое включение обеспечивает включение модуля Bluetooth после каждого перезапуска. Кроме того, если вы подключаете USB-устройство или модуль Bluetooth, AutoEnable гарантирует, что оно может запуститься без перезагрузки.
Чтобы убедиться, что AutoEnable включен, нам нужно изучить файл конфигурации Bluetooth. Для этого используйте следующую команду. судо нано /etc/bluetooth/main.conf
В файле конфигурации bluetooth перейдите в самый низ. Если вы видите строчку «AutoEnable=true», все в порядке. Если вы этого не сделаете, AutoEnable отключен. Следовательно, нам нужно будет добавить следующую строку в конец файла. Автовключение = истина
Этот шаг не так важен для аудиоустройств Bluetooth, но может решить проблему с автоматическим подключением Bluetooth-мыши, веб-камеры или клавиатуры.
Читайте: как исправить неработающие AirPods в Ubuntu
Шаг 2. Доверьтесь устройству
Если описанный выше метод не решает проблему, причина может заключаться в том, что Ubuntu не доверяет Bluetooth-устройству. Это приводит к сбою аутентификации, когда устройство пытается подключиться автоматически. Чтобы убедиться, что ваше устройство Bluetooth является надежным, нам нужно добавить его в список надежных.
Для этого нам сначала нужен MAC-адрес Bluetooth-устройства. Чтобы получить MAC-адрес, вам нужно подключить устройство Bluetooth к вашей системе или, по крайней мере, сделать его доступным для обнаружения. Затем перейдите на верхнюю панель и нажмите на значок батареи. В расширенном раскрывающемся списке щелкните значок Bluetooth, а затем — Параметры Bluetooth.
В настройках Bluetooth найдите имя своего Bluetooth-устройства и нажмите на него. Во всплывающем меню вы получите MAC-адрес устройства.
После получения MAC-адреса устройства нажмите Alt + Ctrl + T, чтобы открыть терминал. В терминале введите следующую команду и нажмите Enter. bluetoothctl доверяет mac_address
Чтобы убедиться, что устройство добавлено в список доверенных, нажмите следующую команду. sudo bluetoothctl информация mac_address
Теперь попробуйте перезапустить службу Bluetooth, устройство должно подключиться автоматически.
Шаг 3. Повторно подключите Bluetooth-устройство
Если что-то не работает, попробуйте отключить устройство Bluetooth и снова подключить его. Иногда Ubuntu может ошибочно указать тип или класс Bluetooth-устройства. Например, он может принять класс наушников в качестве клавиатуры Bluetooth. Эта проблема может быть решена повторным сопряжением. Вы можете сделать это через графический интерфейс, удалив устройство, но если вы клавиатурный ниндзя, как я, команда ниже. bluetoothctl удалить mac_address
Переведите наушники в режим сопряжения и выполните следующую команду bluetoothctl connect mac_address
После этого перезапустите Bluetooth и проверьте, подключается ли устройство автоматически.
Шаг 4. Переустановите Bluetooth
Это последнее средство, если что-то не получается. Переустановка может исправить Bluetooth и другие проблемы с драйверами. BlueZ — это официальный стек Bluetooth для Linux. Чтобы переустановить Bluetooth, нам нужно переустановить пакет BlueZ. Для этого используйте следующую команду. sudo apt переустановить bluez
Читать: Как удалить приложение в Ubuntu
После переустановки Bluez включите и запустите службу Bluetooth с помощью следующей команды. sudo systemctl включить bluetooth.service sudo systemctl запустить bluetooth.service
Теперь это может помочь вам исправить автоматическое повторное подключение устройства Bluetooth. Если это не позволяет перейти к следующему шагу.
Шаг 5. Скрипт
Если описанные выше шаги не сработали для вас, мы находимся в том же положении. Собираясь полностью отказаться от этой статьи, я наткнулся на скрипт Python на GitHub под названием bluetooth-autoconnect. Это скрипт Python, который автоматически подключается ко всем сопряженным и доверенным устройствам Bluetooth. Однако скрипт недоступен для установки напрямую в репозиторий Flatpak или Apt. Следовательно, нам нужно вручную загрузить и настроить службу.
Теперь, когда у нас загружен репозиторий, нам нужно переместить службу и скрипты в соответствующие места, прежде чем мы запустим службу. В моем случае я использую архитектуру systemd, поэтому указанные адреса файлов применимы к таким дистрибутивам, как ArchLinux, Ubuntu, Debian и т. д. sudo cp bluetooth-autoconnect / bluetooth-autoconnect.service / etc / systemd / system / sudo cp '/home/pratik/bluetooth-autoconnect/bluetooth-autoconnect'/usr/bin/
После того, как мы успешно скопировали службу в соответствующие каталоги, давайте включим и запустим службу. Для этого используйте следующую команду. sudo systemctl включить bluetooth-autoconnect.service sudo systemctl запустить bluetooth-autoconnect.service
Теперь, когда служба запущена, она попытается повторно подключиться ко всем сопряженным и доверенным устройствам Bluetooth. Единственное предостережение при использовании этого метода заключается в том, что вы не сможете соединить свое устройство Bluetooth с другими системами, не отключив Bluetooth на своем компьютере с Linux. Поскольку устройство всегда будет пытаться подключиться к вашему Bluetooth-устройству.
Посетите GitHub с автоматическим подключением Bluetooth
Заключительные слова
В этой статье я просмотрел десятки форумов и статей в Интернете. Я пытался использовать сценарии udev для PulseAudio и Bluez Manager, но ни один из них не смог автоматически подключиться.Поэтому я исключил их из этой статьи. В моем путешествии с системами Linux, помимо отсутствия хороших профессиональных приложений, Bluetooth был второй по величине проблемой. Я никогда не мог прийти к выводу, что проблема в драйвере производителя или еще в чем, линукс еще не разобрался.
Расскажите о своем опыте в комментариях, и мы вместе найдем решение.
Читайте также: