USB Bluetooth의 Bluetooth: hci0: hardware error 0x35 오류 대처 |
USB Bluetooth 동글을 USB 포트에 끼운 후에 dmesg 명령으로 블루투스 동작 여부를 확인해 보면 다음과 같은 오류 메시지가 나오는 경우가 있습니다.
Bluetooth: hci0: hardware error 0x35
상기 오류 메시지를 커널 메시지에서 보여 주면서 블루투스 동작이 안 될 때는 먼저 블루투쓰 데몬이 정상적으로 동작하고 있는지를 체크해봐야 합니다.
그러면 블루투쓰 데몬을 띄우기 전에 블루투스 동글을 커널에서 인식하는지 여부를 확인해 볼까요?
먼저 lsusb 명령으로 블루투스 동글 장치에 대한 정보가 있는지를 확인합니다.
[dumca@localhost ~]$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 007: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 005 Device 002: ID 1a81:1004 Holtek Semiconductor, Inc.
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
[dumca@localhost ~]$
상기 메시지에서는 CSR 블루투쓰 동글을 사용하고 있음을 보여 줍니다. 이번에는 lsmod 명령으로 USB 블루투스 모듈이 동작하였는지를 확인해 봅니다.
[dumca@localhost ~]$ lsmod | grep btusb
btusb 40960 0
btintel 16384 1 btusb
btbcm 16384 1 btusb
btrtl 16384 1 btusb
bluetooth 299008 9 rfcomm,bnep,btusb,btintel,btbcm,btrtl
[dumca@localhost ~]$
만일 커널에서 지원하는 블루투스 동글임에도 불구하고 모듈이 동작하질 않았다면 modprobe btusb 명령을 실행해 줍니다.
이번에는 dmesg 명령으로 커널에서 블루투스 동글에 대한 정보를 확인해 봅니다. 이 명령을 실행하기전에 블루투스 동글을 USB 포트에서 뺏다가 다시 끼워 놓습니다. 이전 메시지와 구별하기 위함입니다.
[53521.402332] usb 5-5: USB disconnect, device number 7
[53524.840211] usb 5-4: new full-speed USB device number 8 using ohci-pci
[53525.072007] usb 5-4: New USB device found, idVendor=0a12, idProduct=0001
[53525.072011] usb 5-4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[53525.438194] Bluetooth: hci0: hardware error 0x35
커널 메시지에서 hci0 장치에 대한 오류가 있음을 확인할 수 있습니다. 만일 이 오류가 없는 시스템이라면 블루투스 데몬이 정상적으로 동작하고 있는 것입니다.
[dumca@localhost ~]$ hciconfig hci0
hci0: Type: Primary Bus: USB
BD Address: 00:15:83:EC:11:7E ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING
RX bytes:2000 acl:0 sco:0 events:70 errors:0
TX bytes:757 acl:0 sco:0 commands:62 errors:0
[dumca@localhost ~]$
그러면 블루투스 데몬이 동작하고 있는지를 확인해 봅니다.
[dumca@localhost ~]$ ps ax | grep blue
2036 pts/1 S+ 0:00 grep --color blue
4129 ? S 0:00 /usr/libexec/bluetooth/obexd
25060 ? Sl 0:00 /usr/bin/kcmshell5 bluedevildevices bluedeviladapters bluedevilglobal
28460 ? Sl 0:00 /usr/bin/kcmshell5 bluedevildevices bluedeviladapters bluedevilglobal
[dumca@localhost ~]$
블루투스 데몬이 동작하지 않고 있음으로 루트 권한으로 백그라운드 모드로 블루투스 데몬을 띄웁니다.
[dumca@localhost ~]$ su
암호:
[root@localhost dumca]# bluetoothd &
[1] 6475
[root@localhost dumca]#
블루투스 동글을 다시 끼우고나서 dmesg 명령으로 커널 메시지를 확인해 보면 더 이상 오류 메시지가 발생되지 않습니다. hciconfig hci0 명령을 실행해 보면 아까하고는 다소 차이가 있을 겁니다. 초록색 표시된 부분이 추가로 나타나죠?
[root@localhost dumca]# hciconfig hci0
hci0: Type: Primary Bus: USB
BD Address: 00:15:83:EC:11:7E ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:1360 acl:0 sco:0 events:90 errors:0
TX bytes:4765 acl:0 sco:0 commands:87 errors:0
[root@localhost dumca]#블루투스 데몬이 정상적으로 구동되면 패널에 블루투스 시스템 트레이 아이콘이 나타납니다.
오른쪽 마우스를 클릭하여 [블루투스 설정]을 선택합니다.
[어탭터] 메뉴를 클릭해 보면 블루투스 장치에 대한 정보를 확인할 수 있습니다. 만일 데몬이 동작하질 않는다면 어탭터를 찾을 수 없다는 메시지가 있을 것입니다.
이제 블루투스 동글이 정상적으로 동작하고 있음을 확인하였습니다.
이와 같이 0x35 오류 메시지는 블루투스 동글에 문제가 있는 것이 아니라 블루투스 데몬 동작에 문제가 있는 것이므로, 부팅할 때 블루투스 데몬이 기본적으로 동작하게 끔 하여 사용하는 것이 편리할 것입니다.
블루투스 초보자들을 위해 좀 장대하게 설명을 드렸습니다. 여기서 설명하지 않은 블루투스 조작 관련 명령어들이 있는데, 어느 정도 블루투스 설정에 익숙해지면 구글 검색을 통해서 hciconfig나 rfkill 등의 명령어에 대해서도 익혀 보기 바랍니다.