Stuff related to linux / Redhat 9 on IBM T40P / 2373G1U
Dave Ackley
{as of: Wed Aug 20, 2003}
Random notes I haven't seen elsewhere..
- BIOS version matters to suspend/resume. I
originally had a system board with BIOS version 1.03, and
suspend/resume worked. But that board succumbed to infant mortality
within a week or so of getting the unit. The replacement system
board had BIOS version 1.02 (gah!), and suspend/resume did not
work. When I flashed the BIOS up to 1.05 suspend/resume started
working again.
- Default BIOS parameters before flashing. I did
the flashing from winxp :(, using the 'non-diskette' files d/led
from ibm support. My first attempts to do so, failed, however,
until I reset the bios settings to factory defaults. I don't
know if it was the fact that I had 'spread out' the PCI IRQ
assignments as some folk have suggested (e.g., here), or what, but
when I ran the update programs before resetting the bios config,
winxp just started to shut down and then hung at various places.
- Working around screen blanking problems. It seems
that after entering standby while in graphics mode, after resuming
the screen does not get redrawn. There ought to be a proper
solution to this, but in the meantime, here's the megacrock hack I'm
currently using:
- I have (I believe) turned off screen blanking in the bios. So
if I don't arrange for it to happen deliberately, I think it won't
at all.
- I made a little program chvtbl.C that
takes an optional integer argument N (defaulting to 1). It
switches to virtual terminal N, and then links to tpctl to turn off
the backlight/standby.
- I setuid'd root the resulting program 'chvtbl', because the
VT-switching ioctl needs it and tpctl (currently) needs it.
Needing to be setuid is why I compiled C++ instead of just making a
script for this. Tried to keep the code way simple..
- I added a line in my ~/.xscreensaver file to make chvtbl
available as a screensaver. I provided an argument of 6 to the
chvtbl command line, so it'll switch to vt 6. I used
xscreesaver-demo to select chvtbl as the only screenhack to use.
So now when xscreensaver decides it's time to run a screensaver, it
runs chvtbl 6, which switches to VT6 and blanks the screen. That's
the main part of it, such as it is.
- With a negative argument, like 'chvtbl -7', it acts differently.
In that case it prints a prompt like 'Hit Enter to chvt to 7', and
then enters a loop reading from stdin. Every time it sees Enter,
it chvt's to the absolute value of its argument.
- So is the full bogosity of the idea now apparent? In addition to
specifying 'chvtbl 6' as the only xscreensaver, I also log myself
into VT6 and leave 'chvtbl -7' running there..
- So the net effect, overall, is: When the xscreensaver idle timer
expires, we are automatically switched out of graphics mode and the
screen is blanked. When we want to resume, we just hit Enter, and
the screen lights up and we're back in X. (If we hit some other
key instead, the screen lights up in console mode saying 'Hit
Enter to chvt to 7' or whatever.)
Gah. Well, I like it better than VT switching by hand.
- (Available, if anybody cares:) A workaround for failure to
suspend when using PCMCIA...
- X configuration for external monitors My current
config file is here.