Is it possible?
I have some remote computers based on Linux and I'd like to change some BIOS
settings remotelly (namely, I want to turn on the "auto-power on after
power loss" feature). The only way I can communicate with these PC's is
through ssh.
--
damjan
|
|
0
|
|
|
|
Reply
|
gdamjan (281)
|
6/29/2005 9:34:22 PM |
|
On Wed, 29 Jun 2005 23:34:22 +0200, Damjan staggered into the Black Sun
and said:
> Is [changing settings in a machine's BIOS from within Linux] possible?
Yes. It'd be damned difficult, though, since the exact offsets in
/dev/mem to the settings you want are usually undocumented, and every
BIOS stores these settings in different places and has different
interpretations of those settings.
> I have some remote computers based on Linux and I'd like to change
> some BIOS settings remotely. The only way I can communicate with these
> PC's is through ssh.
The quickest, safest way to do this and have it all work right the first
time is to have someone who *does* have physical access to the machines
make this change at the console. If these machines are colo'ed, most
hosting providers have a PFY or 2 to do things like this for customers'
machines. If these machines are in very strange places (2/3 of the way
up Mt. McKinley, or the only person within 5 miles is a blind,
left-handed, midget lesbian Eskimo albino who can't type) then you may
be out of luck until the next maintenance interval.
--
Matt G|There is no Darkness in Eternity/But only Light too dim for us to see
Brainbench MVP for Linux Admin / mail: TRAP + SPAN don't belong
http://www.brainbench.com / Hire me!
-----------------------------/ http://crow202.dyndns.org/~mhgraham/resume
|
|
0
|
|
|
|
Reply
|
danSPANceswitTRAPhcrows (1928)
|
6/29/2005 10:39:10 PM
|
|
In comp.os.linux.misc Damjan <gdamjan@gmail.com>:
> Is it possible?
> I have some remote computers based on Linux and I'd like to change some BIOS
> settings remotelly (namely, I want to turn on the "auto-power on after
> power loss" feature). The only way I can communicate with these PC's is
> through ssh.
Should be no problem, if you have a terminal server in place and
systems have a complete serial/lan bios redirection like any
respectable server mobo should have built-in or at least some
add-on card.
--
Michael Heiming (X-PGP-Sig > GPG-Key ID: EDD27B94)
mail: echo zvpunry@urvzvat.qr | perl -pe 'y/a-z/n-za-m/'
#bofh excuse 121: halon system went off and killed the
operators.
|
|
0
|
|
|
|
Reply
|
USENET22 (5462)
|
6/30/2005 11:40:57 AM
|
|
>> I have some remote computers based on Linux and I'd like to change some
>> BIOS settings remotelly (namely, I want to turn on the "auto-power on
>> after power loss" feature). The only way I can communicate with these
>> PC's is through ssh.
>
> Should be no problem, if you have a terminal server in place and
> systems have a complete serial/lan bios redirection like any
> respectable server mobo should have built-in or at least some
> add-on card.
These are ordinary PCs, and are already deployed in hard to get places.
--
damjan
|
|
0
|
|
|
|
Reply
|
gdamjan (281)
|
6/30/2005 11:51:58 AM
|
|
>> Is [changing settings in a machine's BIOS from within Linux] possible?
>
> Yes. It'd be damned difficult, though, since the exact offsets in
> /dev/mem to the settings you want are usually undocumented, and every
> BIOS stores these settings in different places and has different
> interpretations of those settings.
But since all the PC's are exactly same (EXACTLY), I could compare some
parts of the memory and find out what to change... now I can't compare the
whole /dev/mem?
Aren't BIOS settings saved in nvram?
--
damjan
|
|
0
|
|
|
|
Reply
|
gdamjan (281)
|
6/30/2005 11:53:46 AM
|
|
On Thu, 30 Jun 2005 13:53:46 +0200, Damjan staggered into the Black Sun
and said:
>>> Is [changing settings in a machine's BIOS from within Linux]
>>> possible?
>> Yes. It'd be damned difficult, though, since the exact offsets in
>> /dev/mem to the settings you want are usually undocumented, and every
>> BIOS stores these settings in different places and has different
>> interpretations of those settings.
> But since all the PC's are exactly same (EXACTLY), I could compare
> some parts of the memory and find out what to change...
I thought you said all the machines were in inaccessible places. If you
have a motherboard of the exact same make and model with the exact same
BIOS revision, you might be able to change one setting and look for
differences in the proper /dev/mem segment. (Or /dev/nvram ,
whichever.) This will involve a lot of rebooting and record-keeping.
> now I can't compare the whole /dev/mem?
It'd be pointless to do that. Remember what /dev/mem represents.
> Aren't BIOS settings saved in nvram?
Yes, but I thought this NVRAM was mapped to part of the regular address
space somewhere. If you're really unlucky, the particular part of NVRAM
that you need to change won't be accessible, but the first thing to do
is check /dev/nvram.
--
Matt G|There is no Darkness in Eternity/But only Light too dim for us to see
Brainbench MVP for Linux Admin / mail: TRAP + SPAN don't belong
http://www.brainbench.com / Hire me!
-----------------------------/ http://crow202.dyndns.org/~mhgraham/resume
|
|
0
|
|
|
|
Reply
|
danSPANceswitTRAPhcrows (1928)
|
6/30/2005 2:10:41 PM
|
|
In comp.os.linux.misc Damjan <gdamjan@gmail.com>:
>>> I have some remote computers based on Linux and I'd like to change some
>>> BIOS settings remotelly (namely, I want to turn on the "auto-power on
>>> after power loss" feature). The only way I can communicate with these
>>> PC's is through ssh.
>>
>> Should be no problem, if you have a terminal server in place and
>> systems have a complete serial/lan bios redirection like any
>> respectable server mobo should have built-in or at least some
>> add-on card.
> These are ordinary PCs, and are already deployed in hard to get places.
Yep, that's the problem if you are using some cheapo crap PC as
server, it simply isn't suited for this task.
--
Michael Heiming (X-PGP-Sig > GPG-Key ID: EDD27B94)
mail: echo zvpunry@urvzvat.qr | perl -pe 'y/a-z/n-za-m/'
#bofh excuse 382: Someone was smoking in the computer room
and set off the halon systems.
|
|
0
|
|
|
|
Reply
|
USENET22 (5462)
|
6/30/2005 2:56:26 PM
|
|
Damjan wrote:
>
> Is it possible?
>
> I have some remote computers based on Linux and I'd like to change some BIOS
> settings remotelly (namely, I want to turn on the "auto-power on after
> power loss" feature). The only way I can communicate with these PC's is
> through ssh.
I don't know if it's an official standard, but on every PC I've tested
it, I could access the contents of the NVRAM through ports 0x70 and
0x71. To access byte #10 of the NVRAM, you send 9 (the first byte is #0)
out port 0x70, and then read the contents of port 0x71.
Remember:
* The first bytes are the RTC, and writing to them sets the h/w clock
* The contents of the BIOS is checksummed, so changing values without
recomputing the checksum will cause all BIOS settings to reset to their
default values upon reboot
* You'll probably need to write a kernel module to access I/O ports directly
|
|
0
|
|
|
|
Reply
|
kristian.rasmussen (74)
|
6/30/2005 10:19:21 PM
|
|
On Fri, 01 Jul 2005 00:19:21 +0200, KR staggered into the Black Sun and
said:
> I don't know if it's an official standard, but on every PC I've tested
> it, I could access the contents of the NVRAM through ports 0x70 and
> 0x71.
This is apparently a standard on the x86.
> * The first bytes are the RTC, and writing to them sets the h/w clock
> * The contents of the BIOS is checksummed, so changing values without
> recomputing the checksum will cause all BIOS settings to reset to
> their default values upon reboot
....you can use /dev/nvram to read and write to the NVRAM on several
architectures without fooling around with I/O ports, you know.
/dev/nvram also handles the checksum.
> * You'll probably need to write a kernel module to access I/O ports
> directly
Nope. See above for the NVRAM, and read the man pages for iopl, inb,
and outb for a general solution for direct I/O port access under Linux.
Note that a userspace process must be running with root privileges to
successfully execute iopl(). HTH,
--
Matt G|There is no Darkness in Eternity/But only Light too dim for us to see
Brainbench MVP for Linux Admin / mail: TRAP + SPAN don't belong
http://www.brainbench.com / Hire me!
-----------------------------/ http://crow202.dyndns.org/~mhgraham/resume
|
|
0
|
|
|
|
Reply
|
danSPANceswitTRAPhcrows (1928)
|
7/1/2005 2:50:08 PM
|
|
|
8 Replies
62 Views
(page loaded in 0.099 seconds)
|