1 2 3 4 5 6 7 8 9 10 10/10 10,00оценок: 6

ПО мониторинга и управления МАП и MPPT linux. ПАК "МАЛИНА"

Тема в разделе "Бесперебойное (аварийное) электропитание", создана пользователем Osolemio, 26.07.15.

Статус темы:
Закрыта.
  1. kapik
    Регистрация:
    20.09.07
    Сообщения:
    2.122
    Благодарности:
    700

    kapik

    Живу здесь

    kapik

    Живу здесь

    Регистрация:
    20.09.07
    Сообщения:
    2.122
    Благодарности:
    700
    Адрес:
    Санкт-Петербург
    @Osolemio, а сбросить это можно. Просто может это и есть моя проблема связи мррт и мап?
     
  2. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920
    Адрес:
    Минск
    Это не та ошибка, которая сбрасывается. При восстановлении связи ее просто не будет.
    Это как бы индикатор состояния, она ничему не препятствует
     
  3. kapik
    Регистрация:
    20.09.07
    Сообщения:
    2.122
    Благодарности:
    700

    kapik

    Живу здесь

    kapik

    Живу здесь

    Регистрация:
    20.09.07
    Сообщения:
    2.122
    Благодарности:
    700
    Адрес:
    Санкт-Петербург
    Значит предполагаю, что когда связь i2c накрылась, эти флаги записались.

    http://www.microart.ru/scriptdata/forum/foruminvertorsservice/forumbegin.shtml

    Первичный осмотр сервисом мррт. Будем ждать результат. :hello:
     
  4. -KSV-
    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7

    -KSV-

    Участник

    -KSV-

    Участник

    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7
    Адрес:
    Минск
    @Osolemio, спасибо, буду пыхтеть...
    По поводу п. 1 я в ридми прочитал. Загвоздка в том, что самого скрипта mysql_config нету в MariaDB.
    Я пока не очень понял, как MariaDB коннектор компилируется gcc, с ним дел пока не имел.
    А с php думаю разберусь...

    В любом случае, если будут успехи, напишу о своем опыте сюда.

    @Recruit1406, не понял, зачем мне iSCSI. Текущая железка, арботающая под Synology меня вполне устраивает. А перенос Малины на Synology NAS может быть полезен многим, т. е. поставить его будет с пол-пинка, если грамотно все сделать.
     
    Последнее редактирование: 20.10.16
  5. Recruit1406
    Регистрация:
    11.08.15
    Сообщения:
    786
    Благодарности:
    218

    Recruit1406

    Живу здесь

    Recruit1406

    Живу здесь

    Регистрация:
    11.08.15
    Сообщения:
    786
    Благодарности:
    218
    Адрес:
    Алматы
    @-KSV-, я не говорил что вам оно надо... я предложил вариант... дальше уже демагогия пошла.
    Про полезность многим... тут тоже спорно... далеко не каждый захочет тянуть провода от силовой составляющей к сетевому мультимедийному хранилищу.
    Опыт безусловно интересный, но для очень ограниченного круга лиц :hello:
    ИМХО:victory:
     
  6. CybermindOff
    Регистрация:
    10.07.13
    Сообщения:
    108
    Благодарности:
    51

    CybermindOff

    Access Denied

    CybermindOff

    Access Denied

    Регистрация:
    10.07.13
    Сообщения:
    108
    Благодарности:
    51
    Адрес:
    Ивановская обл., г.Кохма
    Щас кто-нибудь придёт пилить в докер.)
     
  7. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920
    Адрес:
    Минск
    Скрипт всего лишь дает список библиотек и ключи.
    Вот мой вывод:
    Код:
    i@monitor1 ~ $ mysql_config --cflags --libs
    -I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing   -g
    -L/usr/lib/arm-linux-gnueabihf -lmysqlclient -lpthread -lz -lm -lrt -ldl
    pi@monitor1 ~ $
    Может поможет справиться напрямик похожими ключами.
    Кстати, а вы может просто забыли пакет разработчика установить? Типа mariadb-devel. Вот у вас скрипта и не появилось. В любом случае, проблема известная
    Я вот быстро нагуглил для Марии несколько решений https://stackoverflow.com/questions/22949654/mysql-config-not-found-when-installing-mysqldb-python-interface-for-mariadb-10-u

    Коннектор должен быть абсолютно идентичен пятой mysql
    Я пока не чувствую каких-то непреодолимых препятствий у вас :) Все должно заработать в итоге
     
    Последнее редактирование: 20.10.16
  8. -KSV-
    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7

    -KSV-

    Участник

    -KSV-

    Участник

    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7
    Адрес:
    Минск
    Да, mariadb-devel не стоит. Но и в пакетах его стандартных нету (через ipkg).
    Пока что попытался сбилдать с mysql, установленный через ipkg.
    Ругается на undefined reference to _dl_open...
    Storage> mysql_config -libs
    -L/home/slug/optware/syno-i686/staging/opt/lib -Wl,-rpath,/opt/lib -Wl,-rpath-link,/home/slug/optware/syno-i686/staging/opt/lib -Wl,-rpath,/opt/lib/mysql -L/opt/lib/mysql -lmysqlclient -L/home/slug/optware/syno-i686/staging/opt/lib -lz -lcrypt -lnsl -lm -L/home/slug/optware/syno-i686/staging/opt/lib -lssl -lcrypto
    Storage> mysql_config -cflags
    -I/opt/include/mysql
    Storage> gcc mapd. c -o mapd `mysql_config -cflags -libs`
    mapd. c: In function 'signal_hdl':
    mapd. c: 280: warning: assignment makes pointer from integer without a cast
    mapd. c: In function 'main':
    mapd. c: 759: warning: comparison is always false due to limited range of data type
    /opt/i686-linux-gnu/lib/libdl.so.2: undefined reference to `_dl_open@GLIBC_PRIVATE'
    /opt/i686-linux-gnu/lib/libdl.so.2: undefined reference to `_dl_close@GLIBC_PRIVATE'
    collect2: ld returned 1 exit status
    Попытался сбилдать с флажком -ldl, подхватывает libdl. so без двойки, но с той же ошибкой :(
    Сижу, ботанюсь...

    P. S. Для себя понял преимущества raspberry перед synology: у меня еще стоит задача включать вентиляцию принудительную для моих троянов при зарядке, в идеале в точке 4:
    62p21.png
    Рисунок отсюда: http://adopt-zu.soroka.org.ua/history.html
    А это проще всего сделать именно на raspberry, активировать выход на GPIO шине, подвесив на него релюшку. Ну и софт чуток поменять надо...
    Ну и при исчезновении сетевого напряжения я бы какую релюху подвесил, а на нее мигалку какую в доме (пищалка МАПа не слышна в доме, да и не надо громко, чтобы ночью не будила). А то сейчас бывает замечаешь что свет закончился только тогда, когда аккумы сядут полностью. А знал бы заранее - экономил бы.
     
  9. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920
    Адрес:
    Минск
    Отдельный скрипт по крону. И все.
     
  10. -KSV-
    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7

    -KSV-

    Участник

    -KSV-

    Участник

    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7
    Адрес:
    Минск
    @Osolemio, т. е. вы имеете в виду по крону запускать скрипт, скажем раз в минуту, который будет выбирать значение из БД и с помощью gpio устанавливать сигнал на нужном пине?

    Удалось таки сбилдить mapd против mariaDB.
    gcc mapd. c -o mapd -I/volume1/@appstore/MariaDB -L/lib -Wl,-rpath,/lib -Wl,-rpath-link,/lib -Wl,-rpath,/volume1/@appstore/MariaDB/lib -L/volume1/@appstore/MariaDB/lib -lmysqlclient -L/lib -lz -lcrypt -lnsl -lm -L/lib -lssl -lcrypto
    mapd. c: In function 'signal_hdl':
    mapd. c: 280: warning: assignment makes pointer from integer without a cast
    read_eeprom real_mode main
    mapd. c: In function 'main':
    mapd. c: 759: warning: comparison is always false due to limited range of data type
    Однако mapd при запуске упал с ошибкой Segmentation fault.
    Storage> gdb mapd

    dlopen failed on 'libthread_db.so.1' - libthread_db.so.1: cannot open shared object file: No such file or directory
    GDB will not be able to debug pthreads.

    (gdb) run

    Starting program: /opt/share/www/malina/usr/bin/mapd arguments

    Program received signal SIGSEGV, Segmentation fault.
    0x0804dd20 in Buffer ()
    (gdb) where
    #0 0x0804dd20 in Buffer ()
    #1 0xf71b8ff4 in ? () from /lib/libc.so.6
    #2 0x08049a4b in main ()
    (gdb) list
    1 /synosrc/source_backup/crosstool-0.43/build/i686-linux-gnu/build-glibc/csu/crti.S: No such file or directory.
    in /synosrc/source_backup/crosstool-0.43/build/i686-linux-gnu/build-glibc/csu/crti.S
    (gdb)

    Потиху превращаюсь из C# девелопера в linux/C+.
     
  11. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920
    Адрес:
    Минск
    Это уже хорошо. Проверок индексов у меня нет, поэтому очень удобно посмотреть где это вылазит. Скорее всего полей недостает в БД или еще чего.

    Совершенно верно. У меня архитектура сделана так, что любая примочка может работать отдельно.
    Не забывайте, что там кроме БД есть еще информация в shared memory сразу в JSON
     
  12. -KSV-
    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7

    -KSV-

    Участник

    -KSV-

    Участник

    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7
    Адрес:
    Минск
    Хе-хе... причин может быть 1000... Пересмотрел всю базу, проверил юзера. Вроде все ок. В базе не появилось ни одной новой записи. Может она вообще к базе не подконнектилось...
    Непонятно пока куда копать :(
     
  13. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920
    Адрес:
    Минск
    Ну прям и тысячи... Причин немного. Тут простой несчастный плоский бинарник. Основные ошибки старта обрабатываются, поэтому неконнект маловероятен. Отследите точку через сислог, там и понятно станет кто лезет в чужой монастырь :aga:
    Ну или если хоть какой дебагер там у вас живет
     
    Последнее редактирование: 24.10.16
  14. -KSV-
    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7

    -KSV-

    Участник

    -KSV-

    Участник

    Регистрация:
    20.06.16
    Сообщения:
    29
    Благодарности:
    7
    Адрес:
    Минск
    Из отладчиков у меня только gdb, т. к. command-line через ssh.
    Сегодня снова было немного вреимени поковырять. Падает на инициализации my_signal на стеке:
    (gdb) start
    Breakpoint 1 at 0x8049a18: file mapd. c, line 469.
    Starting program: /opt/share/www/malina/usr/bin/mapd
    main () at mapd. c: 469
    469 unsigned int tty_error_counter=0;
    (gdb) next
    474 float bms_alert=bms_high_u;
    (gdb) next
    477 unsigned char v, map_status_old=255;
    (gdb) next
    479 int write_flag=0;
    (gdb) next
    501 bzero(&my_signal, sizeof (my_signal);
    (gdb) next

    Program received signal SIGSEGV, Segmentation fault.
    0x0804dd20 in Buffer ()
    (gdb) bt
    #0 0x0804ddc0 in Buffer ()
    #1 0xf714cff4 in ? () from /lib/libc.so.6
    #2 0x08049a78 in main () at mapd. c: 501
    (gdb)

    и если gdb запускать под sudo то немного другой трейс:
    0x0804dc70 in bzero@@GLIBC_2.0 ()
    (gdb) bt
    #0 0x0804dc70 in bzero@@GLIBC_2.0 ()
    #1 0x08049a4b in main () at mapd. c: 501
    Стек 8 килобайт. попытался сделать
    ulimit -s unlimited
    не помогло :(

    Сделал инициализацию так: struct sigaction my_signal = { { 0 } };
    или так
    struct sigaction my_signal = { 0 };
    не помогает. валится начинает на этой строчке.
     
  15. Osolemio
    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920

    Osolemio

    Живу дома. Сюда захожу

    Osolemio

    Живу дома. Сюда захожу

    Регистрация:
    31.05.14
    Сообщения:
    6.026
    Благодарности:
    2.920
    Адрес:
    Минск
    @-KSV-,

    Примерно понятно. Вопрос компилятора и платформы => что-то меняется при вычислении указателей.
    Похоже выполнение bzero по указателю с размером структуры выходит за пределы.

    1. Попробуйте взять sizeof типа, а не переменной. sizeof (sigaction)
    2. попробуйте заменить bzero на memset
    Код:
    memset(&my_signal,0,sizeof(my_signal));
    3. убрать вообще bzero. По-идее, без него должно работать тоже
    Объявление структуры восстановите як было :)
     
    Последнее редактирование: 28.10.16
Статус темы:
Закрыта.