dell / libsmbios

library for interacting with Dell SMBIOS tables
Other
190 stars 39 forks source link

Settings revert back to default after boot #11

Closed doylefermi closed 7 years ago

doylefermi commented 7 years ago

Can the settings be made permanent?

Laptop: https://wiki.archlinux.org/index.php/Dell_Inspiron_13_(5368)

prabhakarpujeri commented 7 years ago

can you let me know which are settings revert back to default. i tested on E6430 and E5250 for LCD brightness and keyboard ctl. setting saved across reboot

doylefermi commented 7 years ago

Setting backlight timeout to 10s: screenshot from 2017-03-10 06-12-28

After reboot, again setting to 10s: (The value has reverted to the default value of 1min) screenshot from 2017-03-10 06-14-08

prabhakarpujeri commented 7 years ago

can you execute keboard-ctl with --trace as below which will provide SMI call return status

`[root@localhost libsmbios]# ./src/bin/smbios-keyboard-ctl --trace --set-timeout=7s Setting keyboard illumination timeout value of: 7s ENTER simple_ci_smi(4, 11, 1, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7fdb6438cc80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7fdb6434eb00>, <libsmbios_c.smi.c_int_Array_4 object at 0x7fdb6434eb90>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 84344833, 0, 851967]

Your Keyboard will illumination on: Any Keystroke Touchpad activity Pointing stick

Old Keyboard illumination timeout is: 5 Seconds ENTER simple_ci_smi(4, 11, 1, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7fdb6438cc80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7fdb6434eb90>, <libsmbios_c.smi.c_int_Array_4 object at 0x7fdb6434eb00>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 84344833, 0, 851967]

ENTER simple_ci_smi(4, 11, 2, 117899265, 0, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7fdb6438cc80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7fdb6434eb00>, <libsmbios_c.smi.c_int_Array_4 object at 0x7fdb6434eb90>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 117899265, 0, 851967]

New timeout parameter set Successfully `

prabhakarpujeri commented 7 years ago

also provide output of smbios-keyboard-ctl -g

doylefermi commented 7 years ago

Trace:

sudo smbios-keyboard-ctl --trace --set-timeout=7s [sudo] password for haxorware: Setting keyboard illumination timeout value of: 7s ENTER simple_ci_smi(4, 11, 1, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7f46da489c80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7f46da3cbb00>, <libsmbios_c.smi.c_int_Array_4 object at 0x7f46da3cbb90>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 1090977793, 0, 0]

Your Keyboard will illumination on: Any Keystroke Touchpad activity Pointing stick

Old Keyboard illumination timeout is: 1 Minutes ENTER simple_ci_smi(4, 11, 1, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7f46da489c80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7f46da3cbb90>, <libsmbios_c.smi.c_int_Array_4 object at 0x7f46da3cbb00>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 1090977793, 0, 0]

ENTER simple_ci_smi(4, 11, 2, 117899265, 0, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7f46da489c80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7f46da3cbb00>, <libsmbios_c.smi.c_int_Array_4 object at 0x7f46da3cbb90>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 117899265, 0, 0]

New timeout parameter set Successfully

Output of smbios-keyboard-ctl -g: image

doylefermi commented 7 years ago

After a system reboot

Output of smbios-keyboard-ctl -g:

image

superm1 commented 7 years ago

Would you mind checking the following?

  1. If the fix in #3 fixes this issue for you too. There is a chance it might fix it because it's returning the values more like the BIOS is expecting to parse them. If it doesn't fix your issue:
  2. Can you try to check if any updates are available to your BIOS version?

If there are no updates left, can you please try changing the defaults in BIOS setup to see if they're effective to the OS? You should be able to configure these same options in BIOS setup.

doylefermi commented 7 years ago

Yes, changing settings in the BIOS affect the OS. However I don't see options to control the keyboard light from the BIOS (brightness can be changed).

I have updated to the latest available BIOS version.

The following fix isn't possible for me because there is no option to change the keyboard light from BIOS (its always switched ON): https://bugs.launchpad.net/dell-sputnik/+bug/1510344/comments/104

superm1 commented 7 years ago

On this particular system the backlight timeout is not configurable. That is a feature only available on Latitude, Precision, XPS systems. Even though you can "change" it using this interface it's not actually an affected change. It will still operate at the 1 minute timeout.

Sorry for the confusion in the tool showing the timeout can be configured, but it's not true.

doylefermi commented 7 years ago

Hmm. Glad to know. Actually the timeout works, it's just that it doesnt persist after a reboot. Mayb will add it to startup scripts.

Just curious, will it be possible to add this via a BIOS upgrade? or the kernel module handling the backlight restoring feature (whether on or off previously) picking up the values.

superm1 commented 7 years ago

Are you sure the timeout is working for you? I just tested on hardware in your family and set the timeout for 10seconds. It still took a minute to turn off.

I wouldn't expect this feature to be enabled on a consumer (Inspiron) system if it's not offered in bios setup. It's typically only available on commerical (latitude, precision, xps) systems

doylefermi commented 7 years ago

Yes, the timeout works. See it in action: Video

I have set the timeout to 2sec

sudo smbios-keyboard-ctl --trace --set-timeout=2s [sudo] password for haxorware: Setting keyboard illumination timeout value of: 2s ENTER simple_ci_smi(4, 11, 1, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7fc8f2720c80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7fc8f2662b00>, <libsmbios_c.smi.c_int_Array_4 object at 0x7fc8f2662b90>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 1090977856, 0, 0]

Your Keyboard will illumination on: Any Keystroke Touchpad activity Pointing stick

Old Keyboard illumination timeout is: 1 Minutes ENTER simple_ci_smi(4, 11, 1, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7fc8f2720c80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7fc8f2662b90>, <libsmbios_c.smi.c_int_Array_4 object at 0x7fc8f2662b00>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 1090977856, 0, 0]

ENTER simple_ci_smi(4, 11, 2, 34013248, 0, ) ENTER _errorOnNegativeFN(0, <_FuncPtr object at 0x7fc8f2720c80>, (4, 11, <libsmbios_c.smi.c_int_Array_4 object at 0x7fc8f2662b00>, <libsmbios_c.smi.c_int_Array_4 object at 0x7fc8f2662b90>), ) RAN CTYPES FUNCTION: dell_simple_ci_smi LEAVE _errorOnNegativeFN --> 0

LEAVE simple_ci_smi --> [0, 34013248, 0, 0]

New timeout parameter set Successfully