13 May 2002

Andrew, Catherine and I are all out of hospital again. We’re trialling a new scheme where I go to bed really early, and then it is my job to wake up to Andrew during the night and early in the morning. It is actually pretty good, because I get at least a few hours of sleep before I am first woken up. Catherine gets to stay up to do the late (midnight feed), and then gets to sleep for the rest of the night, so hopefully she wont get so tired either.

Still trying to debug this APM on 2.4.18 problem. My notes so far read something like:

I think my initial problem was some undefined symbols. I am not sure why
these weren't defined, I should try to find out why sometime...

[root@localhost kernel]# insmod apm
Using /lib/modules/2.4.18/kernel/arch/i386/kernel/apm.o
/lib/modules/2.4.18/kernel/arch/i386/kernel/apm.o: unresolved symbol machine_real_restart_Rsmp_3da1b07a
/lib/modules/2.4.18/kernel/arch/i386/kernel/apm.o: unresolved symbol default_idle_Rsmp_92897e3d

After commenting these function calls out, recompiling the module and
rebooting with an apm=debug, I get:

apm: BIOS version 152.172 Flags 0xd231 (Driver version 1.16)
apm: no 32 bit BIOS support

Which is interesting, because the 2.4.2 kernel says the following
(with apm-debug):

apm: BIOS version 1.2 Flags 0x03 (Driver version 1.14)
apm: entry f000:3f7f cseg16 f000 dseg 40 cseg len ffff, dseg len ffff cseg16 len ffff
Starting kswapd v1.8
apm: Connection version 1.2
apm: AC off line, battery status high, battery life 76%
apm: battery flag 0x01, battery life 81 minutes

The APM_BIOS_INFO #define in setup.c has not changed between the versions,
and seems to be copied straight to apm_info.bios.

I then printed out the value of the pointer to the apm_info.bios structure
for 2.4.18, and 2.4.2:

Mikal: apm.bios points to 0xc3a398ac   <---- 2.4.18

These values don't change across multiple insmods, but this isn't conclusive.