3

I bought a laptop recently with a unknown bios password that I need to reset. It is running pop os, I also do have access to the OS.

I was wondering if there is any equivalent in Linux to the MS-DOS command or any general way to reset a bios password of a Linux system you do have access to.

debug
o 70 2E
o 71 FF
quit

EDIT: I'm running a Fujitsu Lifebook A series.

EDIT: Here is an explanation of the MS-DOS command for which I ask if there is a Linux derivative.

"The "o" character present at first in these commands, outputs the values to IO ports. The number 70 and 71 are port numbers which are used to access CMOS memory. By providing FF value we are telling CMOS that there is an invalid checksum and it resets the CMOS settings as well as BIOS password."

1 Answers1

3

As far as I can see, the Linux equivalent of that old MS-DOS debug trick would be:

modprobe nvram
printf "\xff" | dd of=/dev/nvram bs=1 seek=32

Explanation: the nvram module allows root to access the PC CMOS memory as /dev/nvram, starting from the 14th byte of it (the bytes 0..13 are reserved for the CMOS real-time clock which can be accessed through its own driver and the hwclock command). The CMOS address 0x2e used in the debug trick is 46 in decimal, and 46 - 14 = 32, so you would want to overwrite the corresponding byte of /dev/nvram with value 0xff.

If the CMOS memory follows the classic layout, this CMOS address 0x2e is the most significant byte of the CMOS checksum. Writing 0xff into it will most likely cause the checksum to be invalid. This is supposed to cause the BIOS settings to reset to factory defaults... including clearing the BIOS password.

However, because laptops are prone to be stolen, some manufacturers have upgraded the password security mechanism from the classic model. Just invalidating the CMOS checksum will not necessarily remove the password. The presence of a password that cannot be easily reset reduces the value of a stolen laptop for a thief.

telcoM
  • 96,466