OK, I've hacked away at the /etc/pcmcia/ide and /etc/pcmcia/ide.opts scripts.
Here's what I've done:
1) added echoes, so I can track what does and what does not get called.
2) My first partition is a swap partition. I couldn't find settings for
ide.opts that would mount the swap, so I hard coded it into ide's start) and
stop) blocks.
3) I noticed that, when the CF is not unmounted properly, the "ide start hda"
command just runs fskc, and doesn't actually mount it. I added an if clause
that, if there's an error, tries one more time.
With these in place, my CF automounts 99% of the time. I have had occasional
lock-ups where I've had to reset the whole machine. But that's not a major
problem
The major problem is that, for some reason, my CF is not unmounting properly
when the machine suspends. I watched the suspend process using minicom and a
serial connection, and I saw the following:
sh-2.03# pm_do_suspend: suggest
run_sbin_pm_helper:205 pm_helper_path=/sbin/pm_helper
cardmgr[91]: executing: './ide suspend hda'
hda: status error: status=0xd0 { Busy }
hda: drive not ready for command
pm_force_suspend: yea
h3600_sleeve_suspend-9- sleeve_dev->driver=c288b768 sleeve suspended
It appears that the sleeve is being killed before it hits the scripts to
unmount the card. In fact, my scripts seem to run after the machine restarts
uschedulerun_sbin_pm_helper:205 pm_helper_path=/sbin/pm_helper
d[102]: reloading
iPAQ audio support initialized
hda: irq timeout: status=0xff { Busy }
cardmgr[90]: + *** in ide.opts ***
cardmgr[90]: + *** Stopping Swap ***
cardmgr[90]: + *** in ide.opts ***
cardmgr[90]: + *** /mnt/hda ***
hda: status error: status=0xff { Busy }
hda: drive not ready for command
ide0: reset timed-out, status=0xff
hda: status error: status=0xff { Busy }
hda: drive not ready for command
sh-2.03# ide0: reset timed-out, status=0xff
end_request: I/O error, dev 03:02 (hda), sector 2
cardmgr[90]: + /dev/hda2 umounted
cardmgr[90]: + *** /mnt/hda unmounted ***
cardmgr[90]: executing: './ide stop hda'
end_request: I/O error, dev 03:00 (hda), sector 0
end_request: I/O error, dev 03:00 (hda), sector 0
cardmgr[90]: + *** in ide.opts ***
cardmgr[90]: + *** Stopping Swap ***
cardmgr[90]: + swapoff: /dev/hda1: Invalid argument
cardmgr[90]: + *** in ide.opts ***
cardmgr[90]: + *** /mnt/hda ***
cardmgr[90]: + *** /mnt/hda unmounted ***
cardmgr[90]: executing: 'modprobe -r ide-cs'
cardmgr[90]: socket 0: ATA/IDE Fixed Disk
cardmgr[90]: executing: 'modprobe ide-cs'
Trying to free nonexistent resource <f6000000-f600000f>
hda: TDK TC_M, ATA DISK drive
ide0 at 0xf6000000-0xf6000007,0xf600000e on irq 42
hda: 250368 sectors (128 MB) w/1KiB Cache, CHS=978/8/32
/dev/ide/host0/bus0/target0/lun0: p1 p2
ide_cs: hda: Vcc = 5.0, Vpp = 0.0
cardmgr[90]: executing: './ide start hda'
cardmgr[90]: + *** in ide.opts ***
cardmgr[90]: + *** Starting Swap ***
/dev/ide/host0/bus0/target0/lun0: p1 p2
Adding Swap: 65640k swap-space (priority -4)
cardmgr[90]: + *** in ide.opts ***
cardmgr[90]: + *** /mnt/hda ***
cardmgr[90]: + /dev/hda2 was not cleanly unmounted, check forced.
cardmgr[90]: + /dev/hda2: 3089/14912 files (0.7% non-contiguous), 37932/59520
bscardmgr[90]: + *** in ide.opts ***
cardmgr[90]: + *** /mnt/hda ***
cardmgr[90]: + /dev/hda2: clean, 3089/14912 files, 37932/59520 blocks
cardmgr[90]: + /dev/hda2 on /mnt/hda type ext2 (rw)
When I run the /etc/pcmcia/ide stop hda or /etc/pcmcia/ide start hda scripts
manually, I never get the hda status errors.
Any suggestions?
-Rich-
Received on Tue Apr 16 22:39:05 2002
This archive was generated by hypermail 2.1.8 : Tue May 04 2004 - 09:44:46 EDT