Notes on OLED on Linux

OLED screens have had issues on Linux. Main problem is unable to control the screen brightness. It looks like there are some ways to do it now

Looks like icc-brightness should help. Install instructions are from here

sudo apt install -y liblcms2-dev
git clone https://github.com/udifuchs/icc-brightness.git
cd icc-brightness
make

You can run the utility with

./icc-brightness

Installing it will set it up to automatically run on log in.

sudo make install

Log out and back in and it should work.

https://appaper.com/oled-laptop-screen-brightness-control-linux/
https://www.reddit.com/r/linux/comments/cmf0vi/the_state_of_oled_brightness_on_linux/

Alienware fan control in Linux notes

Helpful links

https://wiki.archlinux.org/index.php/Fan_Speed_Control#Dell_laptops
https://bbs.archlinux.org/viewtopic.php?id=248106
https://www.reddit.com/r/Dell/comments/9pdgid/configuring_the_xps_to_play_nice_with_linux

You can use the following commands to “initilize” the fans so the fancontrol can read them.

 sudo modprobe dell-smm-hwmon ignore_dmi=1
sudo sensors-detect

After that is done you should be able to setup a fancontrol config with

sudo pwmconfig

After it is set up you can launch fancontrol to control the fans

sudo fancontrol

If you want to tweak the setting, modify the fancontrol config under

/etc/fancontrol

or run pwmconfig again and replace config.

Sounds like you should be able to add the following to “etc/modprobe.d/dell.conf” to get it to run on boot.

options dell-smm-hwmon ignore_dmi=1

CPU stuck at 800Mhz or (.78Ghz)

Problem: CPU frequency is stuck at about 780 or 800mhz after waking up from sleep.

What causes the issue? Not sure what causes the issue, but seems to have something to do with unplugging the power adapter while putting to sleep or waking the system when it is pluged in after it was put to sleep on battery. Issue is random.

It appears that this issue can be temporarily resolved by disabling BD PROCHOT using ThrottleStop. Make sure the box is unchecked.

Download ThrottleStop from here

Things to try

Restart computer
Unplug and plug the power adapter in while computer is on
Put to sleep, plug or unplug power adapter, rewake up
Some other combination of the above.

More Info

https://forums.tomshardware.com/threads/laptop-i5-6300hq-cpu-suddenly-underclocking-stuck-at-0-78-ghz.2949019/
https://www.reddit.com/r/Dell/comments/6jecqd/thermal_throttling_idle/

CHIPSEC notes

The following is some quick notes on using CHIPSEC to compare the EFI whitelist on your current machine with the BIOS Dell provides

Quick notes.

  1. Install prerequisites (Uses python 2)
  2. Git clone Chipsec
  3. Install (Had to use a -i option, is in the manual)
  4. Run (Use spaces like below)

Extract Bios ROM from Dell EXE
Use the BIOS exe to output a .rom file that you can use in Linux. Run the following command from Windows command prompt, accept the security request. Change the EXE to the BIOS you downloaded.

Alienware_17_R2_1.5.0.EXE /writeromfile

The BIOS rom is named dell.rom in the following commands

Get list of Computer ROM

Should create fw.bin file and efilist.json file from local machine

sudo python chipsec_main.py -m tools.uefi.whitelist

Get list from Dell rom

sudo python chipsec_main.py -m tools.uefi.whitelist -a generate efilist.json dell.rom

Compare the current ROM against the one downloaded from Dell

sudo python chipsec_main.py -m tools.uefi.whitelist -a check efilist.json fw.bin

For some reason Ubuntu was not recognizing the last three options after the -a as individual options unless there was a space in between them.  All the examples online show that they had commas between them.  Which should work, so wonder if it was an environment variable problem or something.

The tell tell sign was the [*] Module arguments Line only shows 1 argument, needs 3.

Other links

Install instructions here.
https://github.com/chipsec/chipsec/wiki/Installing-CHIPSEC-in-Linux

LUV Linux download
https://01.org/linux-uefi-validation

Manual
https://github.com/chipsec/chipsec/blob/master/chipsec-manual.pdf