Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

smm_send error #4

Closed
sandhawke opened this issue Sep 23, 2019 · 11 comments
Closed

smm_send error #4

sandhawke opened this issue Sep 23, 2019 · 11 comments

Comments

@sandhawke
Copy link

For all three values of bios_disable_method, I get the error: g128·0 gƒ(2) set_fan_state smm_send error

In more detail:

$ sudo ./dell-fan-mon -v --bios_disable_method 1
dell-fan-mon v1.1 by https://github.com/ru-ace
Fan monitor and control for Dell laptops via dell-smm-hwmon(i8k) kernel module or direct SMM BIOS calls.

Disabling bios fan control MAY BE succeeded.
Config:
  mode                  smm
  discrete_gpu_mode     max(cpu_temp, gpu_temp)
  fan_ctrl_logic_mode   default
  bios_disable_method   1
  period                1000 ms
  jump_timeout          2000 ms
  jump_temp_delta       5°
  t_low  / t_low_fan    45° / off
  t_mid  / t_mid_fan    60° / low
  t_high / t_high_fan   80° / high
  gpu_temp_sensor_id    3 (autodetected)
Legend:
  [t****] t is temp sensor type: c = CPU, g = GPU
  [tTT·F] Current temp and fan state. TT - temp, F - fan state
  [tƒ(F)] Set fans state to F. Fan states: 0 = OFF, 1 = LOW, 2 = HIGH
  [t¡TT!] Abnormal temp jump detected. TT - temp
Monitor:
g128·0  gƒ(2)  set_fan_state smm_send error
$ sudo ./dell-fan-mon -v --bios_disable_method 2
dell-fan-mon v1.1 by https://github.com/ru-ace
Fan monitor and control for Dell laptops via dell-smm-hwmon(i8k) kernel module or direct SMM BIOS calls.

Disabling bios fan control MAY BE succeeded.
Config:
  mode                  smm
  discrete_gpu_mode     max(cpu_temp, gpu_temp)
  fan_ctrl_logic_mode   default
  bios_disable_method   2
  period                1000 ms
  jump_timeout          2000 ms
  jump_temp_delta       5°
  t_low  / t_low_fan    45° / off
  t_mid  / t_mid_fan    60° / low
  t_high / t_high_fan   80° / high
  gpu_temp_sensor_id    3 (autodetected)
Legend:
  [t****] t is temp sensor type: c = CPU, g = GPU
  [tTT·F] Current temp and fan state. TT - temp, F - fan state
  [tƒ(F)] Set fans state to F. Fan states: 0 = OFF, 1 = LOW, 2 = HIGH
  [t¡TT!] Abnormal temp jump detected. TT - temp
Monitor:
g128·0  gƒ(2)  set_fan_state smm_send error
$ uname -a
Linux magrathea 4.15.0-64-generic #73-Ubuntu SMP Thu Sep 12 13:16:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
$ lsb
lsblk        lsb_release  
$ lsb_release -a
LSB Version:	core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.3 LTS
Release:	18.04
Codename:	bionic
$ ^C
$ 
@sandhawke
Copy link
Author

I see there are some extended diagnostics in smm_send commented out in the code. I uncommented them and ran it again, in case that's useful.

 sudo ./dell-fan-mon -v --bios_disable_method 1
dell_smm_signature: 000000, 0x44494147, 0x44454c4c

dell-fan-mon v1.1 by https://github.com/ru-ace
Fan monitor and control for Dell laptops via dell-smm-hwmon(i8k) kernel module or direct SMM BIOS calls.

smm_send(0x11a3, 000000): i8k_smm returns 000000, eax = 000000
smm_send(0x11a3, 0x0001): i8k_smm returns 000000, eax = 0x0004
smm_send(0x11a3, 0x0002): i8k_smm returns 000000, eax = 0x0002
smm_send(0x11a3, 0x0003): i8k_smm returns 000000, eax = 0x0001
smm_send(0x30a3, 000000): i8k_smm returns 000000, eax = 000000
Disabling bios fan control MAY BE succeeded.
Config:
  mode                  smm
  discrete_gpu_mode     max(cpu_temp, gpu_temp)
  fan_ctrl_logic_mode   default
  bios_disable_method   1
  period                1000 ms
  jump_timeout          2000 ms
  jump_temp_delta       5°
  t_low  / t_low_fan    45° / off
  t_mid  / t_mid_fan    60° / low
  t_high / t_high_fan   80° / high
  gpu_temp_sensor_id    3 (autodetected)
Legend:
  [t****] t is temp sensor type: c = CPU, g = GPU
  [tTT·F] Current temp and fan state. TT - temp, F - fan state
  [tƒ(F)] Set fans state to F. Fan states: 0 = OFF, 1 = LOW, 2 = HIGH
  [t¡TT!] Abnormal temp jump detected. TT - temp
Monitor:
smm_send(0x10a3, 000000): i8k_smm returns 000000, eax = 0x0030
smm_send(0x10a3, 0x0003): i8k_smm returns 000000, eax = 0x0080
smm_send(0x10a3, 000000): i8k_smm returns 000000, eax = 0x0030
smm_send(0x10a3, 0x0003): i8k_smm returns 000000, eax = 0x0080
smm_send(0x10a3, 000000): i8k_smm returns 000000, eax = 0x0030
smm_send(0x10a3, 0x0003): i8k_smm returns 000000, eax = 0x0080
g128·0  gƒ(2)  smm_send(0x01a3, 0x0201): i8k_smm returns 0xffffffff, eax = 0xffff
set_fan_state smm_send error
$ sudo ./dell-fan-mon -v --bios_disable_method 2
dell_smm_signature: 000000, 0x44494147, 0x44454c4c

dell-fan-mon v1.1 by https://github.com/ru-ace
Fan monitor and control for Dell laptops via dell-smm-hwmon(i8k) kernel module or direct SMM BIOS calls.

smm_send(0x11a3, 000000): i8k_smm returns 000000, eax = 000000
smm_send(0x11a3, 0x0001): i8k_smm returns 000000, eax = 0x0004
smm_send(0x11a3, 0x0002): i8k_smm returns 000000, eax = 0x0002
smm_send(0x11a3, 0x0003): i8k_smm returns 000000, eax = 0x0001
smm_send(0x34a3, 000000): i8k_smm returns 000000, eax = 000000
Disabling bios fan control MAY BE succeeded.
Config:
  mode                  smm
  discrete_gpu_mode     max(cpu_temp, gpu_temp)
  fan_ctrl_logic_mode   default
  bios_disable_method   2
  period                1000 ms
  jump_timeout          2000 ms
  jump_temp_delta       5°
  t_low  / t_low_fan    45° / off
  t_mid  / t_mid_fan    60° / low
  t_high / t_high_fan   80° / high
  gpu_temp_sensor_id    3 (autodetected)
Legend:
  [t****] t is temp sensor type: c = CPU, g = GPU
  [tTT·F] Current temp and fan state. TT - temp, F - fan state
  [tƒ(F)] Set fans state to F. Fan states: 0 = OFF, 1 = LOW, 2 = HIGH
  [t¡TT!] Abnormal temp jump detected. TT - temp
Monitor:
smm_send(0x10a3, 000000): i8k_smm returns 000000, eax = 0x0030
smm_send(0x10a3, 0x0003): i8k_smm returns 000000, eax = 0x0080
smm_send(0x10a3, 000000): i8k_smm returns 000000, eax = 0x0030
smm_send(0x10a3, 0x0003): i8k_smm returns 000000, eax = 0x0080
smm_send(0x10a3, 000000): i8k_smm returns 000000, eax = 0x0030
smm_send(0x10a3, 0x0003): i8k_smm returns 000000, eax = 0x0080
g128·0  gƒ(2)  smm_send(0x01a3, 0x0201): i8k_smm returns 0xffffffff, eax = 0xffff
set_fan_state smm_send error
$ 

@sandhawke
Copy link
Author

I wonder if the problem is that my bios is too old. dmidecode reports:

BIOS Information
        Vendor: Dell Inc.
        Version: A15
        Release Date: 05/19/2015
...
        BIOS Revision: 4.6

@ru-ace
Copy link
Owner

ru-ace commented Sep 23, 2019

Hi! Seems problem in detection gpu (sensor & fan)
Could you provide next information:

  • output of sensors -u (dell_smm-virtual-0 section)
  • device model (i'm interesting: is it has discrete gpu and real number of fans?)

@sandhawke
Copy link
Author

Thanks. It's a Dell Latitude E6540 (Version 01, according to dmidecode) made mid-2015.

$ sudo sensors -u
dell_smm-virtual-0
Adapter: Virtual device
Processor Fan:
  fan1_input: 3207.000
CPU:
  temp1_input: 47.000
Ambient:
  temp2_input: 48.000
SODIMM:
  temp3_input: 34.000
GPU:
ERROR: Can't get value of subfeature temp4_input: Can't read

acpitz-virtual-0
Adapter: Virtual device
temp1:
  temp1_input: 25.000
  temp1_crit: 107.000

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:
  temp1_input: 54.000
  temp1_max: 84.000
  temp1_crit: 100.000
  temp1_crit_alarm: 0.000
Core 0:
  temp2_input: 54.000
  temp2_max: 84.000
  temp2_crit: 100.000
  temp2_crit_alarm: 0.000
Core 1:
  temp3_input: 50.000
  temp3_max: 84.000
  temp3_crit: 100.000
  temp3_crit_alarm: 0.000
Core 2:
  temp4_input: 53.000
  temp4_max: 84.000
  temp4_crit: 100.000
  temp4_crit_alarm: 0.000
Core 3:
  temp5_input: 53.000
  temp5_max: 84.000
  temp5_crit: 100.000
  temp5_crit_alarm: 0.000

radeon-pci-0100
Adapter: PCI adapter
temp1:
ERROR: Can't get value of subfeature temp1_input: Can't read
  temp1_crit: 120.000
  temp1_crit_hyst: 90.000

@ru-ace
Copy link
Owner

ru-ace commented Sep 23, 2019

Problem is that yours device has 1 fan, and current code expect 2 fans.
I need some time to make workaround about fans detection.
I'll let you know when finish.

@sandhawke
Copy link
Author

Okay, thanks! Let me know if I can help.

@ru-ace
Copy link
Owner

ru-ace commented Sep 25, 2019

Okay, please check last master - i think it will works for you.
Could you please provide me your auto-detection lines (sudo ./dell-fan-mon -t -v):

Sensors autodetect: t0·0·cpu·44° t1·1·gpu·44° t2·2·53° t3·-1
Fans autodetect: ƒ0·0·cpu ƒ1·0·cpu ƒ2·-1 fans_count = 2

@sandhawke
Copy link
Author

It works! Thank you! For me, a t_low of 50 will mean the fan is almost never on. Very nice.

Interesting that the low fan speed is a lower fan speed (2500 RPM) than the BIOS lowest fan speed (3200 RPM). Seems fine. Two CPU threads stays about 60C.

I don't see a "Fans autodetect" line there. Here's the full output:

$ sudo ./dell-fan-mon -t -v
/etc/dell-fan-mon.conf line 49: parameter monitor_fan_id is deprecated(ignoring). Please remove this line.
/etc/dell-fan-mon.conf line 75: parameter cpu_fan_id is deprecated(ignoring). Please remove this line.
Sensors autodetect: t0·0·cpu·51° t1·4·54° t2·2·33° t3·1·128°
If you don't have discrete GPU - you can ignore this message.

Couldn't autodetect gpu_temp_sensor_id. Seems there no discrete gpu.
Using discrete_gpu_mode 0 (cpu temp monitor only)

PLEASE NOTICE: If you have discrete gpu and can get temp via command line utilites
You can set get_gpu_temp_cmd in /etc/dell-fan-mon.conf to provide command for acquiring gpu temp
As output of command dell-fan-mon awaiting line with number.

$

@sandhawke
Copy link
Author

Oh, one little thing, when I start it, and we're already below t-low, with the fan on because the BIOS had it on, the fan stays on. Once t goes up and comes back down below t-low, the fan shuts off.

@ru-ace
Copy link
Owner

ru-ace commented Sep 25, 2019

Please check last master: i'm fix startup issue.
Also please edit /etc/dell-fan-mon.conf and set discrete_gpu_mode 0 - to avoid message about GPU. Also remove lines with monitor_fan_id and cpu_fan_id.
After that please send me output of sudo ./dell-fan-mon -t -v.

@sandhawke
Copy link
Author

$ sudo ./dell-fan-mon -t -v
Fans autodetect: ƒ0·0·cpu ƒ1·-1 fans_count = 1
Sensors autodetect: t0·0·cpu·55° t1·4·57° t2·2·38° t3·1·128°

And startup seems to work now, shutting down the fan immediately, when the system is cool.

Thank you again!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants