라즈베리파이에서, ble 사용시 dbus 에러가 발생할 경우
ERROR:dbus.proxies:Introspect error on :1.5:/: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 2 matched rules; type="method_call", sender=":1.16" (uid=1000 pid=2709 comm="/usr/bin/python ./example_advertisement.py ") interface="org.freedesktop.DBus.Introspectable" member="Introspect" error name="(unset)" requested_reply="0" destination=":1.5" (uid=0 pid=522 comm="/usr/lib/bluetooth/bluetoothd ")
Traceback (most recent call last):
File "./example_advertisement.py", line 204, in <module>
main()
File "./example_advertisement.py", line 180, in main
adapter = find_adapter(bus)
File "./example_advertisement.py", line 164, in find_adapter
objects = remote_om.GetManagedObjects()
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 70, in __call__
return self._proxy_method(*args, **keywords)
File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
**keywords)
File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 2 matched rules; type="method_call", sender=":1.16" (uid=1000 pid=2709 comm="/usr/bin/python ./example_advertisement.py ") interface="org.freedesktop.DBus.ObjectManager" member="GetManagedObjects" error name="(unset)" requested_reply="0" destination=":1.5" (uid=0 pid=522 comm="/usr/lib/bluetooth/bluetoothd ")
라즈비안이 lite 버전인지 확인한다.
lite 버전에서는 pi에 default로 일부 bt 제어 권한이 없기 때문에 다음과 같이 해결할 수 있다.
sudo usermod -G bluetooth -a pi
sudo reboot now
'Tips & Managements' 카테고리의 다른 글
[Linux][udev] 특정 네트워크 장치의 이름을 MAC 기반으로 명시하는 방법 (0) | 2023.01.26 |
---|---|
Dell R240 및 S140 컨트롤러에 우분투 설치하기 (0) | 2022.11.21 |
Windows OS 에서 OS 타입 확인하기 (0) | 2022.01.12 |
[아두이노] 시리얼 객체를 함수 arg로 넘기는 방법 (0) | 2022.01.03 |
라즈베리 한국 미러 정보 (1) | 2021.10.22 |