1

Similar to previous questions (example 1, example 2), the BIOS is limiting my CPU frequency because of a bad connection with the center pin of the adapter on my Dell Precision M5520 (which leads to BIOS warning: "The AC power adapter wattage and type cannot be determined. The battery may not charge. The system will adjust the performance to match the power available."). Indeed the computer is very slow and the battery won't charge.

I believe the computer actually is getting enough power, so I'd like to override the BIOS limitation.

I tried the answers from the above example questions, but they did not work. Furthermore, I don't have a bios_limit file (search entire disk).

What else can I do to override the BIOS?

(I've ordered a replacement charging jack, but want to do this in the meantime)


Background Info

~ $ lscpu | grep MHz
CPU MHz:             603.129
CPU max MHz:         3900.0000
CPU min MHz:         800.0000


~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.5 LTS
Release:    18.04
Codename:   bionic

~ $ uname -r
4.15.0-147-generic

~ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 
3900000
~ $ cat /sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq 
3900000

~ $ cat /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash processor.ignore_ppc=1"
GRUB_CMDLINE_LINUX="acpi_rev_override"

~ $ sudo update-grub
~ $ sudo reboot

~ $ for i in {0..7}; do sudo cpufreq-set -c $i -g performance; done
~ $ cat /sys/devices/system/cpu/cpu{0..7}/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
performance
performance


~ $ sensors | grep -P "Core \d"
Core 0:        +40.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +42.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +41.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +41.0°C  (high = +100.0°C, crit = +100.0°C)

~ $ lscpu | grep MHz
CPU MHz:             605.135
CPU max MHz:         3900.0000
CPU min MHz:         800.0000


Garrett
  • 750
  • 3
  • 13
  • 28
  • 2
    BIOS is hardware level so I don't think you can override it with software and even if you could, it sounds like a very bad idea in this scenario and a recipe for bricking your hardware. Don't mess with voltages unless you know for a fact that it's going to be fine. I wouldn't go off a feeling here. – Nmath Jul 07 '21 at 00:43
  • 1
    Dell forces clock modulation when it doesn't detect its own power supply. If you force the performance governor, then you are already doing all you can. I think, but am not sure, if you disable clock modulation via direct MSR write, the BIOS will just enable it again. – Doug Smythies Jul 07 '21 at 03:02

1 Answers1

0

Ok, I was able to get it to work following this answer.

~ $ lscpu | grep MHz
CPU MHz:             2934.500
CPU max MHz:         3900.0000
CPU min MHz:         800.0000

While in general, overriding the BIOS does seem like a bad idea, in this case this whole problem seems to have been caused Dell's tactic to prevent non-OEM adapters. I know the AC jack can't read the center pin because I see that part is broken and I have no reason to think there's anything wrong with the actual power supplied (delivered through the inner and outer side of the charger's outer tube).

The frequency fluctuates. I seem to remember this command printing the max MHz for CPU MHz before my AC power jack's center pin receptor broke. I do notice that if you disable Intel SpeedStep in the BIOS, then it will run at the full frequency, but I'm guessing that's not a great idea since the frequency fluctuating is the whole point of that.

Garrett
  • 750
  • 3
  • 13
  • 28
  • Follow up: was actually not the center pin issue, turned out to be something in the circuit that connects to the battery. In any case, this solution worked as a workaround. – Garrett Aug 20 '21 at 22:01