Назад | Перейти на главную страницу

DEBIAN: как подключить Bluetooth-принтер к консоли

Итак, статус такой:

1) USB-адаптер Bluetooth вставлен и распознан.

root@server:~# lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

2) Я установил следующие пакеты из buster без происшествий:

bluez amd64 5.50-1
bluetooth all 5.50-1
libical3 amd64 3.0.4-3
bluez-obexd amd64 5.50-1
bluez-tools amd64 2.0~20170911.0.7cb788c-2
rfkill amd64 2.33.1-0.1

3) блютуз не блокируется:

root@server:~# rfkill list
0: hci0: Bluetooth
        Soft blocked: no
        Hard blocked: no

4) служба bluetooth работает:

root@server:~# service bluetooth start
root@server:~# service bluetooth status
? bluetooth.service - Bluetooth service
   Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-03-19 12:42:35 CET; 1min 9s ago
     Docs: man:bluetoothd(8)
 Main PID: 29677 (bluetoothd)
   Status: "Running"
    Tasks: 1 (limit: 4333)
   Memory: 1.6M
   CGroup: /system.slice/bluetooth.service
           mq29677 /usr/lib/bluetooth/bluetoothd

У меня нет доступа к X, поэтому я не могу запустить blueman

Как теперь сделать устройство видимым и начать процесс сопряжения с принтером прямо с консоли, чтобы установить принтер на этот компьютер?

ОБНОВЛЕНИЕ 1: наконец, я смог увидеть принтер с

root@server~# bluetoothctl
Agent registered

Ладно.

[bluetooth]# help
Menu main:
Available commands:
-------------------
advertise                                         Advertise Options Submenu
scan                                              Scan Options Submenu
gatt                                              Generic Attribute Submenu
list                                              List available controllers
show [ctrl]                                       Controller information
select <ctrl>                                     Select default controller
devices                                           List available devices
paired-devices                                    List paired devices
system-alias <name>                               Set controller alias
reset-alias                                       Reset controller alias
power <on/off>                                    Set controller power
pairable <on/off>                                 Set controller pairable mode
discoverable <on/off>                             Set controller discoverable mode
agent <on/off/capability>                         Enable/disable agent with given capability
default-agent                                     Set agent as the default one
advertise <on/off/type>                           Enable/disable advertising with given type
set-alias <alias>                                 Set device alias
scan <on/off>                                     Scan for devices
info [dev]                                        Device information
pair [dev]                                        Pair with device
trust [dev]                                       Trust device
untrust [dev]                                     Untrust device
block [dev]                                       Block device
unblock [dev]                                     Unblock device
remove <dev>                                      Remove device
connect <dev>                                     Connect device
disconnect [dev]                                  Disconnect device
menu <name>                                       Select submenu
version                                           Display version
quit                                              Quit program
exit                                              Quit program
help                                              Display help about this program
export                                            Print evironment variables

хорошо, поэтому я сказал так:

[bluetooth]# show
Controller 00:15:83:F4:BA:F5 (public)
        Name: server
        Alias: server
        Class: 0x00000104
        Powered: yes
        Discoverable: no
        Pairable: yes
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v1D6Bp0246d0532
        Discovering: no
[bluetooth]#

а потом я начал:

[bluetooth]# power on
Changing power on succeeded
[bluetooth]# discoverable on
Changing discoverable on succeeded
[CHG] Controller 00:15:83:F4:BA:F5 Discoverable: yes
[bluetooth]# devices
Device 06:0E:3C:5C:1A:FD ENVY 5000 series
[bluetooth]#

тогда я пойду

[bluetooth]# pair 06:0E:3C:5C:1A:FD
Attempting to pair with 06:0E:3C:5C:1A:FD
[CHG] Device 06:0E:3C:5C:1A:FD Connected: yes
[CHG] Device 06:0E:3C:5C:1A:FD Name: OfficeJet 5200 series
[CHG] Device 06:0E:3C:5C:1A:FD Alias: OfficeJet 5200 series
[CHG] Device 06:0E:3C:5C:1A:FD ServicesResolved: yes

и через несколько секунд ...

[CHG] Device 06:0E:3C:5C:1A:FD ServicesResolved: no
[CHG] Device 06:0E:3C:5C:1A:FD Connected: no
Failed to pair: org.bluez.Error.AuthenticationCanceled
[bluetooth]#

В принтере есть что-то под названием Smart Bluetooth, поэтому я сказал себе, что, может быть, я должен не «спаривать», а «доверять», поэтому я пошел:

[bluetooth]# trust 06:0E:3C:5C:1A:FD
Changing 06:0E:3C:5C:1A:FD trust succeeded
[bluetooth]#

и вот опять воткнул еще не вижу принтер на http://127.0.0.1:631

Намек?

Через несколько часов я нашел ответ.
сначала необходимо отключить включение / выключение режима простого сопряжения. в зависимости от того, что поддерживает ваше устройство. Мне это не нужно, поэтому я отключил.

hciconfig sspmode off

В следующий раз я отключил тайм-аут, потому что хочу, чтобы принтер оставался подключенным, пока я его не отключу. в /etc/bluetooth/input.conf

IdleTimeout=30

Просто измените его на 0, и устройства останутся подключенными.

IdleTimeout=0

Дело раскрыто.