RE: [iPAQ] More on mouting CFs

From: Hicks, Jamey <Jamey.Hicks.a.t.compaq.com>
Date: Tue Apr 16 2002 - 19:26:52 EDT

Rich,

Nice work!

It looks like the problem is due to the fact that there is no way for the suspend script in cardmgr to hold up the actual socket suspend until the cardmgr suspend script can complete.

Hmm. Actually, it looks like /etc/pcmcia/ide suspend does not do anything. From a quick glance at the various pieces, it really looks like the power to the ide device is shut off without any preparation. That can't be good.

You could try explicitly umounting the CF filesystems in a script in /etc/suspend-scripts -- and cardctl eject might not hurt either.

Jamey

> -----Original Message-----
> From: Rich Warren [mailto:rwml@warrens.toythieves.com]
> Sent: Tuesday, April 16, 2002 6:44 PM
> To: ipaq@handhelds.org
> Subject: [iPAQ] More on mouting CFs
>
>
> 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-
>
> _______________________________________________
> Open Source Software for Compaq iPAQ Handhelds.
> iPAQ mailing list
> iPAQ@handhelds.org
> http://handhelds.org/mailman/listinfo/ipaq
> irc://irc.openprojects.net #ipaq
>
Received on Tue Apr 16 23:26:56 2002

This archive was generated by hypermail 2.1.8 : Tue May 04 2004 - 09:44:46 EDT