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
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
Comment