Найти в Дзене
Programma Boinc

Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона.

Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона. Хотел бы поделиться опытом в исправлении ошибки приложения в части заряда батареи смартфона. Сразу скажу, что описанный способ подходит только для устройств без батареи. Я совсем не программист, поэтому заранее прошу прощение за описанные костыли. Телефоны решил собрать в некое подобие кластера. Делаю все из подручных средств. Пока все еще в процессе. Первая часть кластера готова, подключено к компьютерному БП через преобразователь напряжения 12>5 В. Прикладываю фото работающих телефонов с модифицированным приложением. Небольшая предыстория. Ко мне в руки попало несколько смартфонов Vertex Impress Luck без батарей. Оперативки 1 Гб, 4 ядра, Android 8.1. Конечно железо слабое, но было интересно повозиться с этими телефонами и запустить на них BOINC. Телефоны предполагалось использовать без батарей, провода питания подключал к контактам вместо батареи. К сожалению, расчеты не запускались, все время висело соо

Мой опыт в исправлении ошибки приложения Boinc в части заряда батареи смартфона.

Хотел бы поделиться опытом в исправлении ошибки приложения в части заряда батареи смартфона. Сразу скажу, что описанный способ подходит только для устройств без батареи.

Я совсем не программист, поэтому заранее прошу прощение за описанные костыли.

Телефоны решил собрать в некое подобие кластера. Делаю все из подручных средств. Пока все еще в процессе.

Первая часть кластера готова, подключено к компьютерному БП через преобразователь напряжения 12>5 В.

Прикладываю фото работающих телефонов с модифицированным приложением.

Небольшая предыстория. Ко мне в руки попало несколько смартфонов Vertex Impress Luck без батарей. Оперативки 1 Гб, 4 ядра, Android 8.1. Конечно железо слабое, но было интересно повозиться с этими телефонами и запустить на них BOINC.

Телефоны предполагалось использовать без батарей, провода питания подключал к контактам вместо батареи.

К сожалению, расчеты не запускались, все время висело сообщение:

"Расчеты возобновятся, когда заряд батареи достигнет 90% (в настоящее время 100%) (computing will resume when battery charge reaches 90% (currently 100%))".

В сети решения этой проблемы не нашел, но возможно плохо искал. На форуме boincstats было сообщение, что разработчики знают о такой проблеме, но решения пока нет.

Я подумал, что смогу как-нибудь отключить использование батареи в исходном коде приложения, ломать - не строить. На гитхабе довольно подробная инструкция по компиляции приложения под андроид с помощью WSL. Для модификации использовал версию 8.0.2.

Методом проб и ошибок я сделал следующий костыль. В файле client/cs_prefs.cpp вручную указал значение заряда батареи: int cp = 90;

И это сработало. Приложение скачало задание, и начался расчет.

Но каждые 28 секунд вычисления останавливались и начинались сначала. Оказалось проблема в отсутствии батареи. Хотя у меня уже несколько лет BOINC работает на смартфоне без батареи, там таких проблем не было, но там андроид версии 4.2.

В логе постоянно было сообщение "E/BOINC_GUI( 3087): [MONITOR] Monitor.reportDeviceStatus exception: temperature parsing error."

Приложение не могло определить температуру батареи и постоянно перезапускало вычисления.

Эту проблему я также решил с помощью костыля. В файле android/BOINC/app/src/main/java/edu/berkeley/boinc/client/DeviceStatus.java вручную указал значение температуры батареи: int temperature = 10;

Сейчас приложение работает нормально, уже посчитано несколько заданий Einstein@home.

Костыль про температуру может быть опасен для устройств с батареей, может привести к перегреву батареи и к пожару. Поэтому его можно использовать только для устройств без батареи.

-2