(완전 초보자로서) 사용하려고 합니다.ofono
SIMCOM 800C 장치를 작동합니다. 소스에서 컴파일하고 필요한 모든 서비스(D-bus 및 udev)를 구성했습니다. 문서의 udev 규칙이 작동하지 않습니다. 장치를 감지하고 OFONO_DRIVER
속성을 sim900
. 테스트 스크립트를 사용하여 수행하는 모든 테스트 ofono
에서는 오류가 발생합니다. 올바르게 설정하는 방법에 대한 가이드가 있나요? 예를 들어 online-modem
스크립트는 다음 오류를 반환합니다.
Setting modem /sim900_0 online...
Traceback (most recent call last):
File "/home/.../ofono/test/./online-modem", line 17, in <module>
modem.SetProperty("Online", dbus.Boolean(1), timeout = 120)
File "/usr/lib/python3.11/site-packages/dbus/proxies.py", line 72, in __call__
return self._proxy_method(*args, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/dbus/proxies.py", line 141, in __call__
return self._connection.call_blocking(self._named_service,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/dbus/connection.py", line 652, in call_blocking
reply_message = self.send_message_with_reply_and_block(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
dbus.exceptions.DBusException: org.ofono.Error.NotAvailable: Operation currently not available
다음은 스크립트의 출력입니다 list-modems
.
[ /sim900_0 ]
Online = 0
Powered = 0
Lockdown = 0
Emergency = 0
SystemPath = /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2
Interfaces =
Features =
Type = hardware
[ /stktest ]
Online = 0
Powered = 0
Lockdown = 0
Emergency = 0
Interfaces =
Features =
Type = test
기본 D 버스 구성을 변경하지 않았습니다. 내가 사용하는 것은 다음과 같습니다 udev
.
DRIVERS=="ch341", ENV{OFONO_DRIVER}="sim900"
로그에는 sudo ofonod -nd
내 장치가 감지되었다고 표시됩니다.
ofonod[3141]: oFono version 2.1
ofonod[3141]: src/plugin.c:__ofono_plugin_init()
ofonod[3141]: src/gprs-provision.c:ofono_gprs_provision_driver_register() driver: 0x558ba57afe20 name: GPRS context provisioning
ofonod[3141]: plugins/push-notification.c:push_notification_init()
ofonod[3141]: plugins/smart-messaging.c:smart_messaging_init()
ofonod[3141]: plugins/emulator_fuzz.c:emulator_fuzz_init()
ofonod[3141]: src/modem.c:ofono_modem_driver_register() driver: 0x558ba57b0080, name: stktest
ofonod[3141]: src/modem.c:ofono_modem_create() name: stktest, type: stktest
ofonod[3141]: src/modem.c:ofono_modem_register() 0x558ba6c64c20
ofonod[3141]: plugins/stktest.c:stktest_probe() 0x558ba6c64c20
ofonod[3141]: src/modem.c:emit_modem_added() 0x558ba6c64c20
ofonod[3141]: src/modem.c:get_modem_property() modem 0x558ba6c64c20 property SystemPath
ofonod[3141]: src/modem.c:call_modemwatches() 0x558ba6c64c20 added:1
ofonod[3141]: plugins/udevng.c:udev_start()
ofonod[3141]: plugins/udevng.c:enumerate_devices()
ofonod[3141]: plugins/udevng.c:check_usb_device() usb [1d6b:0002]
ofonod[3141]: plugins/udevng.c:check_usb_device() ch341 [1a86:7523]
ofonod[3141]: plugins/udevng.c:add_device() /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2
ofonod[3141]: plugins/udevng.c:add_device() /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/ttyUSB0/tty/ttyUSB0
...
ofonod[3141]: plugins/udevng.c:create_modem() /sys/devices/pci0000:00/0000:00:14.0/usb1/1-2
ofonod[3141]: plugins/udevng.c:create_modem() driver=sim900
ofonod[3141]: src/modem.c:ofono_modem_create() name: (null), type: sim900
ofonod[3141]: src/modem.c:set_modem_property() modem 0x558ba6c942b0 property Device
ofonod[3141]: src/modem.c:set_modem_property() modem 0x558ba6c942b0 property SystemPath
ofonod[3141]: src/modem.c:ofono_modem_register() 0x558ba6c942b0
ofonod[3141]: plugins/sim900.c:sim900_probe() 0x558ba6c942b0
ofonod[3141]: src/modem.c:emit_modem_added() 0x558ba6c942b0
ofonod[3141]: src/modem.c:get_modem_property() modem 0x558ba6c942b0 property SystemPath
ofonod[3141]: src/modem.c:call_modemwatches() 0x558ba6c942b0 added:1
ofonod[3141]: plugins/dun_gw_bluez5.c:modem_watch() modem: 0x558ba6c942b0, added: 1
ofonod[3141]: plugins/hfp_ag_bluez5.c:modem_watch() modem: 0x558ba6c942b0, added: 1
ofonod[3141]: examples/emulator.c:modem_watch() modem: 0x558ba6c942b0, added: 1
ofonod[3141]: plugins/smart-messaging.c:modem_watch() modem: 0x558ba6c942b0, added: 1
ofonod[3141]: plugins/push-notification.c:modem_watch() modem: 0x558ba6c942b0, added: 1
...
ofonod[3141]: src/modem.c:get_modem_property() modem 0x558ba6c64c20 property SystemPath
ofonod[3141]: src/modem.c:get_modem_property() modem 0x558ba6c942b0 property SystemPath
ofonod[3141]: src/modem.c:get_modem_property() modem 0x558ba6c64c20 property SystemPath
...
ofonod[3141]: plugins/upower.c:modemwatch() modem: /sim900_0, added: 1
ofonod[3141]: plugins/upower.c:modemwatch() modem: /stktest, added: 1
...
스크립트의 내용은 다음과 같습니다 online-modem
.
#!/usr/bin/python3
import dbus, sys
bus = dbus.SystemBus()
if len(sys.argv) == 2:
path = sys.argv[1]
else:
manager = dbus.Interface(bus.get_object('org.ofono', '/'),
'org.ofono.Manager')
modems = manager.GetModems()
path = modems[0][0]
print("Setting modem %s online..." % path)
modem = dbus.Interface(bus.get_object('org.ofono', path), 'org.ofono.Modem')
modem.SetProperty("Online", dbus.Boolean(1), timeout = 120)
내 장치에서 ofono를 올바르게 구성하고 D-bus API를 사용하려면 어떻게 해야 합니까?