Follow-up Comment #2, sr #111312 (group freeipmi): Here is the debug output:
sudo ipmi-sensors --record-ids=77 --debug
=====================================================
Get SDR Repository Info Request
=====================================================
[ 20h] = cmd[ 8b]
=====================================================
Get SDR Repository Info Response
=====================================================
[ 20h] = cmd[ 8b]
[ 0h] = comp_code[ 8b]
[ 1h] = sdr_version_major[ 4b]
[ 5h] = sdr_version_minor[ 4b]
[ 88h] = record_count[16b]
[ DF0Eh] = free_space[16b]
[ 68A8CBB9h] = most_recent_addition_timestamp[32b]
[ 68A8CBB9h] = most_recent_erase_timestamp[32b]
[ 1h] = get_sdr_repository_allocation_info_command_supported[
1b]
[ 1h] = reserve_sdr_repository_command_supported[ 1b]
[ 0h] = partial_add_sdr_command_supported[ 1b]
[ 0h] = delete_sdr_command_supported[ 1b]
[ 0h] = reserved[ 1b]
[ 0h] =
modal_non_modal_sdr_repository_update_operation_supported[ 2b]
[ 1h] = overflow_flag[ 1b]
=====================================================
SDR Full Sensor Record
=====================================================
[ 4Dh] = record_id[16b]
[ 1h] = sdr_version_major[ 4b]
[ 5h] = sdr_version_minor[ 4b]
[ 1h] = record_type[ 8b]
[ 3Bh] = record_length[ 8b]
[ 0h] = sensor_owner_id.type[ 1b]
[ 10h] = sensor_owner_id[ 7b]
[ 0h] = sensor_owner_lun[ 2b]
[ 0h] = sensor_owner_lun.reserved[ 2b]
[ 0h] = channel_number[ 4b]
[ 4Dh] = sensor_number[ 8b]
[ 0h] = entity_id[ 8b]
[ 1h] = entity_instance[ 7b]
[ 0h] = entity_instance.type[ 1b]
[ 0h] = sensor_initialization.sensor_scanning[ 1b]
[ 0h] = sensor_initialization.event_generation[ 1b]
[ 0h] = sensor_initialization.init_sensor_type[ 1b]
[ 0h] = sensor_initialization.init_hysteresis[ 1b]
[ 0h] = sensor_initialization.init_thresholds[ 1b]
[ 0h] = sensor_initialization.init_events[ 1b]
[ 0h] = sensor_initialization.init_scanning[ 1b]
[ 0h] = sensor_initialization.reserved[ 1b]
[ 0h] = sensor_capabilities.event_message_control_support[ 2b]
[ 2h] = sensor_capabilities.threshold_access_support[ 2b]
[ 2h] = sensor_capabilities.hysteresis_support[ 2b]
[ 1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[ 0h] = sensor_capabilities.entity_ignore_support[ 1b]
[ 1h] = sensor_type[ 8b]
[ 1h] = event_reading_type_code[ 8b]
[ 0h] =
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[
1b]
[ 0h] =
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[ 1h] =
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[ 1h] =
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[
1b]
[ 0h] =
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[ 0h] =
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[ 0h] =
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[ 0h] = lower_threshold_reading_mask.reserved[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[
1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[
1b]
[ 0h] =
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[ 1h] =
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[ 1h] =
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[
1b]
[ 0h] =
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[
1b]
[ 1h] =
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[ 1h] =
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[ 0h] =
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[ 0h] = upper_threshold_reading_mask.reserved[ 1b]
[ 0h] =
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[ 0h] =
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[ 0h] =
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[ 1h] =
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[ 1h] =
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[ 0h] =
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[ 0h] = readable_threshold_mask.reserved1[ 1b]
[ 0h] = readable_threshold_mask.reserved2[ 1b]
[ 0h] =
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[ 0h] =
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[ 0h] =
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[ 1h] =
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[ 1h] =
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[ 0h] =
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[ 0h] = settable_threshold_mask.reserved1[ 1b]
[ 0h] = settable_threshold_mask.reserved2[ 1b]
[ 0h] = sensor_unit1.percentage[ 1b]
[ 0h] = sensor_unit1.modifier_unit[ 2b]
[ 0h] = sensor_unit1.rate_unit[ 3b]
[ 2h] = sensor_unit1.analog_data_format[ 2b]
[ 1h] = sensor_unit2.base_unit[ 8b]
[ 0h] = sensor_unit3.modifier_unit[ 8b]
[ 0h] = linearization[ 7b]
[ 0h] = linearization.reserved[ 1b]
[ 3Fh] = m_ls[ 8b]
[ 0h] = tolerance[ 6b]
[ 0h] = m_ms[ 2b]
[ 93h] = b_ls[ 8b]
[ 0h] = accuracy_ls[ 6b]
[ 1h] = b_ms[ 2b]
[ 0h] = sensor_direction[ 2b]
[ 0h] = accuracy_exp[ 2b]
[ 0h] = accuracy_ms[ 4b]
[ 1h] = b_exponent[ 4b]
[ Eh] = r_exponent[ 4b]
[ 0h] = analog_characteristics_flag.nominal_reading[ 1b]
[ 0h] = analog_characteristics_flag.normal_max[ 1b]
[ 0h] = analog_characteristics_flag.normal_min[ 1b]
[ 0h] = analog_characteristics_flag.reserved[ 5b]
[ 0h] = nominal_reading[ 8b]
[ 0h] = normal_maximum[ 8b]
[ 0h] = normal_minimum[ 8b]
[ 0h] = sensor_maximum_reading[ 8b]
[ 0h] = sensor_minimum_reading[ 8b]
[ 0h] = upper_non_recoverable_threshold[ 8b]
[ 3Fh] = upper_critical_threshold[ 8b]
[ 37h] = upper_non_critical_threshold[ 8b]
[ 0h] = lower_non_recoverable_threshold[ 8b]
[ 0h] = lower_critical_threshold[ 8b]
[ 0h] = lower_non_critical_threshold[ 8b]
[ 0h] = positive_going_threshold_hysteresis[ 8b]
[ 0h] = negative_going_threshold_hysteresis[ 8b]
[ 0h] = reserved[16b]
[ 0h] = oem[ 8b]
[ D0h] = id_string_type_length_code[ 8b]
[ BYTE ARRAY ... ] = id_string[16B]
[ 49h 4Fh 42h 6Fh 30h 43h 58h 37h ]
[ 30h 50h 6Fh 72h 30h 54h 65h 6Dh ]
=====================================================
SDR Full Sensor Record
=====================================================
[ 4Dh] = record_id[16b]
[ 1h] = sdr_version_major[ 4b]
[ 5h] = sdr_version_minor[ 4b]
[ 1h] = record_type[ 8b]
[ 3Bh] = record_length[ 8b]
[ 0h] = sensor_owner_id.type[ 1b]
[ 10h] = sensor_owner_id[ 7b]
[ 0h] = sensor_owner_lun[ 2b]
[ 0h] = sensor_owner_lun.reserved[ 2b]
[ 0h] = channel_number[ 4b]
[ 4Dh] = sensor_number[ 8b]
[ 0h] = entity_id[ 8b]
[ 1h] = entity_instance[ 7b]
[ 0h] = entity_instance.type[ 1b]
[ 0h] = sensor_initialization.sensor_scanning[ 1b]
[ 0h] = sensor_initialization.event_generation[ 1b]
[ 0h] = sensor_initialization.init_sensor_type[ 1b]
[ 0h] = sensor_initialization.init_hysteresis[ 1b]
[ 0h] = sensor_initialization.init_thresholds[ 1b]
[ 0h] = sensor_initialization.init_events[ 1b]
[ 0h] = sensor_initialization.init_scanning[ 1b]
[ 0h] = sensor_initialization.reserved[ 1b]
[ 0h] = sensor_capabilities.event_message_control_support[ 2b]
[ 2h] = sensor_capabilities.threshold_access_support[ 2b]
[ 2h] = sensor_capabilities.hysteresis_support[ 2b]
[ 1h] = sensor_capabilities.auto_re_arm_support[ 1b]
[ 0h] = sensor_capabilities.entity_ignore_support[ 1b]
[ 1h] = sensor_type[ 8b]
[ 1h] = event_reading_type_code[ 8b]
[ 0h] =
threshold_assertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_critical_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_non_recoverable_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.lower_non_recoverable_going_high_supported[
1b]
[ 0h] =
threshold_assertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[ 1h] =
threshold_assertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.upper_critical_going_low_supported[ 1b]
[ 1h] =
threshold_assertion_event_mask.upper_critical_going_high_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.upper_non_recoverable_going_low_supported[ 1b]
[ 0h] =
threshold_assertion_event_mask.upper_non_recoverable_going_high_supported[
1b]
[ 0h] =
lower_threshold_reading_mask.lower_non_critical_threshold_is_comparison[ 1b]
[ 0h] =
lower_threshold_reading_mask.lower_critical_threshold_is_comparison[ 1b]
[ 0h] =
lower_threshold_reading_mask.lower_non_recoverable_is_comparison[ 1b]
[ 0h] = lower_threshold_reading_mask.reserved[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_critical_going_low_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_critical_going_low_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_recoverable_going_low_supported[
1b]
[ 0h] =
threshold_deassertion_event_mask.lower_non_recoverable_going_high_supported[
1b]
[ 0h] =
threshold_deassertion_event_mask.upper_non_critical_going_low_supported[ 1b]
[ 1h] =
threshold_deassertion_event_mask.upper_non_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.upper_critical_going_low_supported[ 1b]
[ 1h] =
threshold_deassertion_event_mask.upper_critical_going_high_supported[ 1b]
[ 0h] =
threshold_deassertion_event_mask.upper_non_recoverable_going_low_supported[
1b]
[ 0h] =
threshold_deassertion_event_mask.upper_non_recoverable_going_high_supported[
1b]
[ 1h] =
upper_threshold_reading_mask.upper_non_critical_threshold_is_comparison[ 1b]
[ 1h] =
upper_threshold_reading_mask.upper_critical_threshold_is_comparison[ 1b]
[ 0h] =
upper_threshold_reading_mask.upper_non_recoverable_is_comparison[ 1b]
[ 0h] = upper_threshold_reading_mask.reserved[ 1b]
[ 0h] =
readable_threshold_mask.lower_non_critical_threshold_is_readable[ 1b]
[ 0h] =
readable_threshold_mask.lower_critical_threshold_is_readable[ 1b]
[ 0h] =
readable_threshold_mask.lower_non_recoverable_threshold_is_readable[ 1b]
[ 1h] =
readable_threshold_mask.upper_non_critical_threshold_is_readable[ 1b]
[ 1h] =
readable_threshold_mask.upper_critical_threshold_is_readable[ 1b]
[ 0h] =
readable_threshold_mask.upper_non_recoverable_threshold_is_readable[ 1b]
[ 0h] = readable_threshold_mask.reserved1[ 1b]
[ 0h] = readable_threshold_mask.reserved2[ 1b]
[ 0h] =
settable_threshold_mask.lower_non_critical_threshold_is_settable[ 1b]
[ 0h] =
settable_threshold_mask.lower_critical_threshold_is_settable[ 1b]
[ 0h] =
settable_threshold_mask.lower_non_recoverable_threshold_is_settable[ 1b]
[ 1h] =
settable_threshold_mask.upper_non_critical_threshold_is_settable[ 1b]
[ 1h] =
settable_threshold_mask.upper_critical_threshold_is_settable[ 1b]
[ 0h] =
settable_threshold_mask.upper_non_recoverable_threshold_is_settable[ 1b]
[ 0h] = settable_threshold_mask.reserved1[ 1b]
[ 0h] = settable_threshold_mask.reserved2[ 1b]
[ 0h] = sensor_unit1.percentage[ 1b]
[ 0h] = sensor_unit1.modifier_unit[ 2b]
[ 0h] = sensor_unit1.rate_unit[ 3b]
[ 2h] = sensor_unit1.analog_data_format[ 2b]
[ 1h] = sensor_unit2.base_unit[ 8b]
[ 0h] = sensor_unit3.modifier_unit[ 8b]
[ 0h] = linearization[ 7b]
[ 0h] = linearization.reserved[ 1b]
[ 3Fh] = m_ls[ 8b]
[ 0h] = tolerance[ 6b]
[ 0h] = m_ms[ 2b]
[ 93h] = b_ls[ 8b]
[ 0h] = accuracy_ls[ 6b]
[ 1h] = b_ms[ 2b]
[ 0h] = sensor_direction[ 2b]
[ 0h] = accuracy_exp[ 2b]
[ 0h] = accuracy_ms[ 4b]
[ 1h] = b_exponent[ 4b]
[ Eh] = r_exponent[ 4b]
[ 0h] = analog_characteristics_flag.nominal_reading[ 1b]
[ 0h] = analog_characteristics_flag.normal_max[ 1b]
[ 0h] = analog_characteristics_flag.normal_min[ 1b]
[ 0h] = analog_characteristics_flag.reserved[ 5b]
[ 0h] = nominal_reading[ 8b]
[ 0h] = normal_maximum[ 8b]
[ 0h] = normal_minimum[ 8b]
[ 0h] = sensor_maximum_reading[ 8b]
[ 0h] = sensor_minimum_reading[ 8b]
[ 0h] = upper_non_recoverable_threshold[ 8b]
[ 3Fh] = upper_critical_threshold[ 8b]
[ 37h] = upper_non_critical_threshold[ 8b]
[ 0h] = lower_non_recoverable_threshold[ 8b]
[ 0h] = lower_critical_threshold[ 8b]
[ 0h] = lower_non_critical_threshold[ 8b]
[ 0h] = positive_going_threshold_hysteresis[ 8b]
[ 0h] = negative_going_threshold_hysteresis[ 8b]
[ 0h] = reserved[16b]
[ 0h] = oem[ 8b]
[ D0h] = id_string_type_length_code[ 8b]
[ BYTE ARRAY ... ] = id_string[16B]
[ 49h 4Fh 42h 6Fh 30h 43h 58h 37h ]
[ 30h 50h 6Fh 72h 30h 54h 65h 6Dh ]
=====================================================
Get Sensor Reading Request
=====================================================
[ 2Dh] = cmd[ 8b]
[ 4Dh] = sensor_number[ 8b]
=====================================================
Get Sensor Reading Response
=====================================================
[ 2Dh] = cmd[ 8b]
[ 0h] = comp_code[ 8b]
[ FCh] = sensor_reading[ 8b]
[ 0h] = reserved1[ 5b]
[ 0h] = reading_state[ 1b]
[ 1h] = sensor_scanning[ 1b]
[ 1h] = all_event_messages[ 1b]
[ 0h] = sensor_event_bitmask1[ 8b]
ID | Name | Type | Reading | Units | Event
77 | IOBo0CX70Por0Tem | Temperature | 199.06 | C | 'OK'
I am just running ipmitool sdr list. Here is the -vvv snippet for that
particular sensor:
Sensor ID : IOBo0CX70Por0Tem (0x4d)
Entity ID : 0.1 (Unspecified)
Sensor Type (Threshold) : Temperature (0x01)
Sensor Reading : 37.150 (+/- 0) degrees C
Status : ok
Positive Hysteresis : Unspecified
Negative Hysteresis : Unspecified
Minimum sensor range : 40.300
Maximum sensor range : 40.300
Event Message Control : Per-threshold
Readable Thresholds : unc ucr
Settable Thresholds : unc ucr
Threshold Read Mask : unc ucr
Assertion Events :
Event Enable : Event Messages Disabled
Assertions Enabled : lnc- lcr- unc+ ucr+
Deassertions Enabled : lnc+ lcr+ unc- ucr-
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/support/?111312>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
