Заводим камеру в Sailfish - Часть 1

Итак, сегодня, я расскажу как запустить камеру в SailfishOS при портировании.
Заводим камеру в Sailfish - Часть 1


Тут и далее мы будем считать, что у Вас есть уже собранный и запущенный образ SailfishOS

Залог успешного запуска камеры состоит из 2х пунктов.
1 - Пакет gstreamer1.0-droid
2 - Рабочий сервис minimediaservice

Итак, начнём с первого пункта:
1. Скачиваем gst-droid
Код BASH:
  1. #sdk
  2. ./rpm/dhd/helpers/build_packages.sh --mw=https://github.com/sailfishos/gst-droid.git
Удоволетворяем зависимости, в итоге получаем пакет устанавливаем его на устройство

2. Делаем рабочим minimediaservice
Для первого пункта проверьте на устройстве есть ли файл /usr/libexec/droid-hybris/system/bin/minimediaservice . Если его нет, надо бы собрать его.

Код BASH:
  1. #hadk
  2. cd $ANDROID_ROOT
  3. source build/envsetup.sh
  4. lunch target_device
  5. make minimediaservice
target_device заменять на свой! Перекидываем его на устройство по месту.

Далее собираем libcameraservice так же как и minimediaservice

Код BASH:
  1. #hadk
  2. cd $ANDROID_ROOT
  3. source build/envsetup.sh
  4. lunch target_device
  5. make libcameraservice
Дальше нам понадобится libcameraservice.so

В /init.rc на устройстве добавляем
Код INI:
  1. service minimedia /usr/libexec/droid-hybris/system/bin/minimediaservice
  2. class main
  3. user media
  4. group audio camera
  5. ioprio rt 4
  6. setenv LD_PRELOAD /usr/libexec/droid-hybris/system/lib/libcameraservice.so
Подробнее про init.rc читать тут

Перезагружаемся и смотрим запустился ли у нас сервис:
Код BASH:
  1. systemctl status droid-hal-init | grep minimediaservice
Если всё гуд, то проверяем в logcat чтобы не было сообщений вида:
Код INI:
  1. I/ServiceManager( 377): Waiting for service sensorservice...
  2. I/ServiceManager( 377): Waiting for service sensorservice...
  3. I/ServiceManager( 377): Waiting for service sensorservice...
  4. I/ServiceManager( 377): Waiting for service sensorservice...
  5. I/ServiceManager( 377): Waiting for service sensorservice...
  6. I/ServiceManager( 377): Waiting for service sensorservice...
  7. I/ServiceManager( 377): Waiting for service sensorservice...
  8. I/ServiceManager( 377): Waiting for service sensorservice..
Если есть, добавляем в /init.rc
Код INI:
  1. service sensorservice /system/bin/sensorservice
  2. class main
  3. user system
  4. group system
Итак, теперь у нас есть запущенные сервисы камеры, осталось всё это привязать и интерфейсу! Но об этом в следующей серии
Комментарии (0)

Нет комментариев. Ваш будет первым!

Copyright 2016-2024 NeoChapay