Ad Widget

Collapse

Making install in ipmi error

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • buiphe
    Junior Member
    • May 2019
    • 1

    #1

    Making install in ipmi error

    hi all,
    I do compile Zabbix 4.2.1, but when it comes to ipmi, I get an error like the one below

    ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-libcurl --with-libxml2 --with-libpcre


    make[3]: Entering directory `/root/zabbix-4.2.1/src/zabbix_server/ipmi'
    cc -DHAVE_CONFIG_H -I. -I../../../include -I/usr/include -g -O2 -Iyes/include -MT libipmi_a-checks_ipmi.o -MD -MP -MF .deps/libipmi_a-checks_ipmi.Tpo -c -o libipmi_a-checks_ipmi.o `test -f 'checks_ipmi.c' || echo './'`checks_ipmi.c
    checks_ipmi.c:58:2: error: unknown type name ‘ipmi_sensor_t’
    ipmi_sensor_t *sensor;
    ^
    checks_ipmi.c:60:23: error: field ‘id_type’ has incomplete type
    enum ipmi_str_type_e id_type; /* For sensors IPMI specifications mention Unicode, BCD plus, */
    ^
    checks_ipmi.c:74:2: error: unknown type name ‘ipmi_control_t’
    ipmi_control_t *control;
    ^
    checks_ipmi.c:95:2: error: unknown type name ‘ipmi_con_t’
    ipmi_con_t *con;
    ^
    checks_ipmi.c:109:1: error: unknown type name ‘os_handler_t’
    static os_handler_t *os_hnd;
    ^
    checks_ipmi.c:111:98: error: parameter 4 (‘id_type’) has incomplete type
    static char *zbx_sensor_id_to_str(char *str, size_t str_sz, const char *id, enum ipmi_str_type_e id_type, int id_sz)
    ^
    checks_ipmi.c: In function ‘zbx_sensor_id_to_str’:
    checks_ipmi.c:133:8: error: ‘IPMI_ASCII_STR’ undeclared (first use in this function)
    case IPMI_ASCII_STR:
    ^
    checks_ipmi.c:133:8: note: each undeclared identifier is reported only once for each function it appears in
    checks_ipmi.c:134:8: error: ‘IPMI_UNICODE_STR’ undeclared (first use in this function)
    case IPMI_UNICODE_STR:
    ^
    checks_ipmi.c:139:8: error: ‘IPMI_BINARY_STR’ undeclared (first use in this function)
    case IPMI_BINARY_STR:
    ^
    checks_ipmi.c: At top level:
    checks_ipmi.c:230:1: error: unknown type name ‘ipmi_sensor_t’
    static zbx_ipmi_sensor_t *zbx_get_ipmi_sensor(const zbx_ipmi_host_t *h, const ipmi_sensor_t *sensor)
    ^
    checks_ipmi.c: In function ‘zbx_get_ipmi_sensor_by_id’:
    checks_ipmi.c:268:8: error: ‘IPMI_EVENT_READING_TYPE_THRESHOLD’ undeclared (first use in this function)
    if (IPMI_EVENT_READING_TYPE_THRESHOLD == s->reading_type)
    ^
    checks_ipmi.c: In function ‘get_domain_offset’:
    checks_ipmi.c:314:19: error: ‘IPMI_DOMAIN_NAME_LEN’ undeclared (first use in this function)
    char domain_name[IPMI_DOMAIN_NAME_LEN];
    ^
    checks_ipmi.c: At top level:
    checks_ipmi.c:326:72: error: unknown type name ‘ipmi_sensor_t’
    static zbx_ipmi_sensor_t *zbx_allocate_ipmi_sensor(zbx_ipmi_host_t *h, ipmi_sensor_t *sensor)
    ^
    checks_ipmi.c:376:1: error: unknown type name ‘ipmi_sensor_t’
    static void zbx_delete_ipmi_sensor(zbx_ipmi_host_t *h, const ipmi_sensor_t *sensor)
    ^
    checks_ipmi.c:408:1: error: unknown type name ‘ipmi_control_t’
    static zbx_ipmi_control_t *zbx_get_ipmi_control(const zbx_ipmi_host_t *h, const ipmi_control_t *control)
    ^
    checks_ipmi.c:471:74: error: unknown type name ‘ipmi_control_t’
    static zbx_ipmi_control_t *zbx_allocate_ipmi_control(zbx_ipmi_host_t *h, ipmi_control_t *control)
    ^
    checks_ipmi.c:513:1: error: unknown type name ‘ipmi_control_t’
    static void zbx_delete_ipmi_control(zbx_ipmi_host_t *h, const ipmi_control_t *control)
    ^
    checks_ipmi.c:545:39: error: unknown type name ‘ipmi_sensor_t’
    static void zbx_got_thresh_reading_cb(ipmi_sensor_t *sensor, int err, enum ipmi_value_present_e value_present,
    ^
    checks_ipmi.c:546:39: error: unknown type name ‘ipmi_states_t’
    unsigned int raw_value, double val, ipmi_states_t *states, void *cb_data)
    ^
    checks_ipmi.c:640:40: error: unknown type name ‘ipmi_sensor_t’
    static void zbx_got_discrete_states_cb(ipmi_sensor_t *sensor, int err, ipmi_states_t *states, void *cb_data)
    ^
    checks_ipmi.c:640:72: error: unknown type name ‘ipmi_states_t’
    static void zbx_got_discrete_states_cb(ipmi_sensor_t *sensor, int err, ipmi_states_t *states, void *cb_data)
    ^
    checks_ipmi.c: In function ‘zbx_perform_openipmi_ops’:
    checks_ipmi.c:731:25: error: request for member ‘perform_one_op’ in something not a structure or union
    if (0 == (res = os_hnd->perform_one_op(os_hnd, &tv)))
    ^
    checks_ipmi.c: In function ‘zbx_perform_all_openipmi_ops’:
    checks_ipmi.c:769:15: error: request for member ‘perform_one_op’ in something not a structure or union
    res = os_hnd->perform_one_op(os_hnd, &tv);
    ^
    checks_ipmi.c: In function ‘zbx_read_ipmi_sensor’:
    checks_ipmi.c:802:8: error: ‘IPMI_EVENT_READING_TYPE_THRESHOLD’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_THRESHOLD:
    ^
    checks_ipmi.c:803:55: error: ‘zbx_got_thresh_reading_cb’ undeclared (first use in this function)
    if (0 != (ret = ipmi_sensor_get_reading(s->sensor, zbx_got_thresh_reading_cb, h)))
    ^
    checks_ipmi.c:814:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_USAGE’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_USAGE:
    ^
    checks_ipmi.c:815:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_STATE’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_STATE:
    ^
    checks_ipmi.c:816:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_PREDICTIVE_FAILU RE’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_PREDICTIVE_FAILUR E:
    ^
    checks_ipmi.c:817:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_LIMIT_EXCEEDED’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_LIMIT_EXCEEDED:
    ^
    checks_ipmi.c:818:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_PERFORMANCE_MET’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_PERFORMANCE_MET:
    ^
    checks_ipmi.c:819:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_SEVERITY’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_SEVERITY:
    ^
    checks_ipmi.c:820:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_DEVICE_PRESENCE’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_DEVICE_PRESENCE:
    ^
    checks_ipmi.c:821:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_DEVICE_ENABLE’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_DEVICE_ENABLE:
    ^
    checks_ipmi.c:822:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_AVAILABILITY’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_AVAILABILITY:
    ^
    checks_ipmi.c:823:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_REDUNDANCY’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_REDUNDANCY:
    ^
    checks_ipmi.c:824:8: error: ‘IPMI_EVENT_READING_TYPE_DISCRETE_ACPI_POWER’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_DISCRETE_ACPI_POWER:
    ^
    checks_ipmi.c:825:8: error: ‘IPMI_EVENT_READING_TYPE_SENSOR_SPECIFIC’ undeclared (first use in this function)
    case IPMI_EVENT_READING_TYPE_SENSOR_SPECIFIC:
    ^
    checks_ipmi.c:842:54: error: ‘zbx_got_discrete_states_cb’ undeclared (first use in this function)
    if (0 != (ret = ipmi_sensor_get_states(s->sensor, zbx_got_discrete_states_cb, h)))
    ^
    checks_ipmi.c:854:26: warning: assignment makes pointer from integer without a cast [enabled by default]
    s_reading_type_string = ipmi_sensor_get_event_reading_type_string(s->sensor);
    ^
    checks_ipmi.c: At top level:
    checks_ipmi.c:868:40: error: unknown type name ‘ipmi_control_t’
    static void zbx_got_control_reading_cb(ipmi_control_t *control, int err, int *val, void *cb_data)
    ^
    checks_ipmi.c:924:40: error: unknown type name ‘ipmi_control_t’
    static void zbx_got_control_setting_cb(ipmi_control_t *control, int err, void *cb_data)
    ^
    checks_ipmi.c: In function ‘zbx_read_ipmi_control’:
    checks_ipmi.c:981:51: error: ‘zbx_got_control_reading_cb’ undeclared (first use in this function)
    if (0 != (ret = ipmi_control_get_val(c->control, zbx_got_control_reading_cb, h)))
    ^
    checks_ipmi.c: In function ‘zbx_set_ipmi_control’:
    checks_ipmi.c:1027:59: error: ‘zbx_got_control_setting_cb’ undeclared (first use in this function)
    if (0 != (ret = ipmi_control_set_val(c->control, c->val, zbx_got_control_setting_cb, h)))
    ^
    checks_ipmi.c: At top level:
    checks_ipmi.c:1043:57: error: unknown type name ‘ipmi_entity_t’
    static void zbx_sensor_change_cb(enum ipmi_update_e op, ipmi_entity_t *ent, ipmi_sensor_t *sensor, void *cb_data)
    ^
    checks_ipmi.c:1043:77: error: unknown type name ‘ipmi_sensor_t’
    static void zbx_sensor_change_cb(enum ipmi_update_e op, ipmi_entity_t *ent, ipmi_sensor_t *sensor, void *cb_data)
    ^
    checks_ipmi.c:1075:58: error: unknown type name ‘ipmi_entity_t’
    static void zbx_control_change_cb(enum ipmi_update_e op, ipmi_entity_t *ent, ipmi_control_t *control, void *cb_data)
    ^
    checks_ipmi.c:1075:78: error: unknown type name ‘ipmi_control_t’
    static void zbx_control_change_cb(enum ipmi_update_e op, ipmi_entity_t *ent, ipmi_control_t *control, void *cb_data)
    ^
    checks_ipmi.c:1103:57: error: unknown type name ‘ipmi_domain_t’
    static void zbx_entity_change_cb(enum ipmi_update_e op, ipmi_domain_t *domain, ipmi_entity_t *entity, void *cb_data)
    ^
    checks_ipmi.c:1103:80: error: unknown type name ‘ipmi_entity_t’
    static void zbx_entity_change_cb(enum ipmi_update_e op, ipmi_domain_t *domain, ipmi_entity_t *entity, void *cb_data)
    ^
    checks_ipmi.c:1155:38: error: unknown type name ‘ipmi_domain_t’
    static void zbx_connection_change_cb(ipmi_domain_t *domain, int err, unsigned int conn_num, unsigned int port_num,
    ^
    checks_ipmi.c:1192:30: error: unknown type name ‘ipmi_domain_t’
    static void zbx_domain_up_cb(ipmi_domain_t *domain, void *cb_data)
    ^
    checks_ipmi.c:1207:22: error: unknown type name ‘os_handler_t’
    static void zbx_vlog(os_handler_t *handler, const char *format, enum ipmi_log_type_e log_type, va_list ap)
    ^
    checks_ipmi.c: In function ‘zbx_init_ipmi_handler’:
    checks_ipmi.c:1238:22: warning: assignment makes pointer from integer without a cast [enabled by default]
    if (NULL == (os_hnd = ipmi_posix_setup_os_handler()))
    ^
    checks_ipmi.c:1244:8: error: request for member ‘set_log_handler’ in something not a structure or union
    os_hnd->set_log_handler(os_hnd, zbx_vlog);
    ^
    checks_ipmi.c:1244:34: error: ‘zbx_vlog’ undeclared (first use in this function)
    os_hnd->set_log_handler(os_hnd, zbx_vlog);
    ^
    checks_ipmi.c: In function ‘zbx_free_ipmi_handler’:
    checks_ipmi.c:1298:8: error: request for member ‘free_os_handler’ in something not a structure or union
    os_hnd->free_os_handler(os_hnd);
    ^
    checks_ipmi.c: In function ‘zbx_init_ipmi_host’:
    checks_ipmi.c:1307:2: error: unknown type name ‘ipmi_open_option_t’
    ipmi_open_option_t options[4];
    ^
    checks_ipmi.c:1343:38: error: ‘IPMI_AUTHTYPE_DEFAULT’ undeclared (first use in this function)
    h->authtype == -1 ? (unsigned int)IPMI_AUTHTYPE_DEFAULT : (unsigned int)h->authtype,
    ^
    checks_ipmi.c:1354:24: error: request for member ‘start_con’ in something not a structure or union
    if (0 != (ret = h->con->start_con(h->con)))
    ^
    checks_ipmi.c:1363:12: error: request for member ‘option’ in something not a structure or union
    options[0].option = IPMI_OPEN_OPTION_ALL;
    ^
    checks_ipmi.c:1363:22: error: ‘IPMI_OPEN_OPTION_ALL’ undeclared (first use in this function)
    options[0].option = IPMI_OPEN_OPTION_ALL;
    ^
    checks_ipmi.c:1364:12: error: request for member ‘ival’ in something not a structure or union
    options[0].ival = 0;
    ^
    checks_ipmi.c:1365:12: error: request for member ‘option’ in something not a structure or union
    options[1].option = IPMI_OPEN_OPTION_SDRS; /* scan SDRs */
    ^
    checks_ipmi.c:1365:22: error: ‘IPMI_OPEN_OPTION_SDRS’ undeclared (first use in this function)
    options[1].option = IPMI_OPEN_OPTION_SDRS; /* scan SDRs */
    ^
    checks_ipmi.c:1366:12: error: request for member ‘ival’ in something not a structure or union
    options[1].ival = 1;
    ^
    checks_ipmi.c:1367:12: error: request for member ‘option’ in something not a structure or union
    options[2].option = IPMI_OPEN_OPTION_IPMB_SCAN; /* scan IPMB bus to find out as much as possible */
    ^
    checks_ipmi.c:1367:22: error: ‘IPMI_OPEN_OPTION_IPMB_SCAN’ undeclared (first use in this function)
    options[2].option = IPMI_OPEN_OPTION_IPMB_SCAN; /* scan IPMB bus to find out as much as possible */
    ^
    checks_ipmi.c:1368:12: error: request for member ‘ival’ in something not a structure or union
    options[2].ival = 1;
    ^
    checks_ipmi.c:1369:12: error: request for member ‘option’ in something not a structure or union
    options[3].option = IPMI_OPEN_OPTION_LOCAL_ONLY; /* scan only local resources */
    ^
    checks_ipmi.c:1369:22: error: ‘IPMI_OPEN_OPTION_LOCAL_ONLY’ undeclared (first use in this function)
    options[3].option = IPMI_OPEN_OPTION_LOCAL_ONLY; /* scan only local resources */
    ^
    checks_ipmi.c:1370:12: error: request for member ‘ival’ in something not a structure or union
    options[3].ival = 1;
    ^
    checks_ipmi.c:1374:60: error: ‘zbx_connection_change_cb’ undeclared (first use in this function)
    if (0 != (ret = ipmi_open_domain(domain_name, &h->con, 1, zbx_connection_change_cb, h, zbx_domain_up_cb, h,
    ^
    checks_ipmi.c:1374:89: error: ‘zbx_domain_up_cb’ undeclared (first use in this function)
    if (0 != (ret = ipmi_open_domain(domain_name, &h->con, 1, zbx_connection_change_cb, h, zbx_domain_up_cb, h,
    ^
    checks_ipmi.c: At top level:
    checks_ipmi.c:1393:1: error: unknown type name ‘ipmi_domain_id_t’
    static ipmi_domain_id_t domain_id; /* global variable for passing OpenIPMI domain ID between callbacks */
    ^
    checks_ipmi.c:1400:42: error: unknown type name ‘ipmi_domain_t’
    static void zbx_get_domain_id_by_name_cb(ipmi_domain_t *domain, void *cb_data)
    ^
    checks_ipmi.c:1418:33: error: unknown type name ‘ipmi_domain_t’
    static void zbx_domain_close_cb(ipmi_domain_t *domain, void *cb_data)
    ^
    checks_ipmi.c: In function ‘zbx_close_inactive_host’:
    checks_ipmi.c:1445:30: error: ‘zbx_get_domain_id_by_name_cb’ undeclared (first use in this function)
    ipmi_domain_iterate_domains(zbx_get_domain_id_by_n ame_cb, domain_name);
    ^
    checks_ipmi.c:1454:53: error: ‘zbx_domain_close_cb’ undeclared (first use in this function)
    if (0 != (res = ipmi_domain_pointer_cb(domain_id, zbx_domain_close_cb, h)))
    ^
    checks_ipmi.c: In function ‘get_value_ipmi’:
    checks_ipmi.c:1604:7: error: ‘IPMI_EVENT_READING_TYPE_THRESHOLD’ undeclared (first use in this function)
    if (IPMI_EVENT_READING_TYPE_THRESHOLD == s->reading_type)
    ^
    make[3]: *** [libipmi_a-checks_ipmi.o] Error 1
    make[3]: Leaving directory `/root/zabbix-4.2.1/src/zabbix_server/ipmi'
    make[2]: *** [install-recursive] Error 1
    make[2]: Leaving directory `/root/zabbix-4.2.1/src/zabbix_server'
    make[1]: *** [install-recursive] Error 1
    make[1]: Leaving directory `/root/zabbix-4.2.1/src'
    make: *** [install-recursive] Error 1
    [root@zabbix zabbix-4.2.1]#

    [root@zabbix zabbix-4.2.1]# yum list installed | grep -i ipmi
    OpenIPMI.x86_64 2.0.23-2.el7 @/
    OpenIPMI-devel.x86_64 2.0.23-2.el7 @/
    OpenIPMI-libs.x86_64 2.0.23-2.el7 @/
    OpenIPMI-modalias.x86_64 2.0.23-2.el7 @/

    After installed
    [root@zabbix zabbix-4.2.1]# find / -name ipmiif.h
    /usr/include/OpenIPMI/ipmiif.h
  • Atsushi
    Senior Member
    • Aug 2013
    • 2028

    #2
    I think you are using RHEL 7. Did you get any errors when running configure?
    It is a method to use only the standard library, but it can be compiled without error according to the following procedure.

    Code:
    # yum groupinstall 'Development tools'
    # yum install mysql-devel libxml2-devel unixODBC-devel net-snmp-devel libssh2-devel OpenIPMI-devel libevent-devel java-devel curl-devel
    $ ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --with-libxml2 --with-unixodbc --with-net-snmp --with-ssh2 --with-openipmi --with-libcurl --with-libxml2 --with-libpcre
    $ make

    Comment

    Working...