(auto)mouting a PCMCIA memory card

Platform: QNX 6.2.0 (NC) x86

It seems that default enumerator doesn’t have PCMCIA memory card configs,
so I tried to write one down:

================================ {

/etc/system/enum/oem/memcard

PCMCIA “Fixed Disk” (IDE type memory card)

device(pcmcia, .class=0400)
driver(devb-eide, “eide ioport=0x$(ioport):0x$(ioport)+12,irq=$(irq),noslave disk name=pcmem”)

does unmount, but not kill devb-eide??

#waitfor(/dev/pcmem0, 50)
#mount("-t dos /dev/pcmem0t1 /fs/pcmem0","-f /fs/pcmem0")

================================ }

The above file plopped into oem/ worked nicely
creating /dev/pcmem0, /dev/pcmem0t block devices on insertion,

but how can I setup automount/unmount “correctly”?

The commented-out waitfor()/mount() clause will mount the card alright,
but when (physically!) ejecting the card, umount works but
devb-eide fails to terminate. (will die on manual slay afterwards)

I know mount() clause is for io-audio/io-net and not for generic
filesystem mount manipulation, but is there any method to
neatly use these memory cards?
(At least you want to tell enum-devices that I’m going to eject the card
before physically ejecting it…)

kabe

You can use pccard-launch to start the driver, but you will have to slay the
driver manually before ejecting the card.
If you don’t slay the driver before the card is ejected, you could hang the
system or corrupt the disk.

<kabe@sra-tohoku.co.jp> wrote in message news:ca1kpu$aih$1@inn.qnx.com

Platform: QNX 6.2.0 (NC) x86

It seems that default enumerator doesn’t have PCMCIA memory card configs,
so I tried to write one down:

================================ {

/etc/system/enum/oem/memcard

PCMCIA “Fixed Disk” (IDE type memory card)

device(pcmcia, .class=0400)
driver(devb-eide, “eide
ioport=0x$(ioport):0x$(ioport)+12,irq=$(irq),noslave disk name=pcmem”)

does unmount, but not kill devb-eide??

#waitfor(/dev/pcmem0, 50)
#mount("-t dos /dev/pcmem0t1 /fs/pcmem0","-f /fs/pcmem0")

================================ }

The above file plopped into oem/ worked nicely
creating /dev/pcmem0, /dev/pcmem0t block devices on insertion,

but how can I setup automount/unmount “correctly”?

The commented-out waitfor()/mount() clause will mount the card alright,
but when (physically!) ejecting the card, umount works but
devb-eide fails to terminate. (will die on manual slay afterwards)

I know mount() clause is for io-audio/io-net and not for generic
filesystem mount manipulation, but is there any method to
neatly use these memory cards?
(At least you want to tell enum-devices that I’m going to eject the card
before physically ejecting it…)

kabe

hsbrown@qnx.com sed in <ca1nsi$d33$1@inn.qnx.com>:

You can use pccard-launch to start the driver, but you will have to slay the
driver manually before ejecting the card.
If you don’t slay the driver before the card is ejected, you could hang the
system or corrupt the disk.

I know so well that abrupt eject will corrupt fs,
but is there any “standard QNX-ish way” to tell system
(tell enum-devices? enum-pccard? devp-pccard?) that eject is requested?
You have to be root everytime when manually slaying devb-eide.

kabe

Its not devp-pccard that is concerned with the ejecting of the card, it is
devb-eide. As I said before, you will have to unmount the device and slay
devb-eide before the card can be ejected safely. Unfortunately there are no
other “hooks” to enable you to do this.

<kabe@sra-tohoku.co.jp> wrote in message news:ca1v34$i7j$1@inn.qnx.com

hsbrown@qnx.com > sed in <ca1nsi$d33$> 1@inn.qnx.com> >:

You can use pccard-launch to start the driver, but you will have to
slay the
driver manually before ejecting the card.
If you don’t slay the driver before the card is ejected, you could hang
the
system or corrupt the disk.

I know so well that abrupt eject will corrupt fs,
but is there any “standard QNX-ish way” to tell system
(tell enum-devices? enum-pccard? devp-pccard?) that eject is requested?
You have to be root everytime when manually slaying devb-eide.

kabe

BTW,

hsbrown@qnx.com sed in <ca1nsi$d33$1@inn.qnx.com>:

You can use pccard-launch to start the driver, but you will have to slay the

What’s the difference between writing a enumerator config file
and using pccard-launch 1-liner?
Does pccard-launch inject additional enumeration data into enum-devices?

kabe

<kabe@sra-tohoku.co.jp> wrote in message news:ca25p7$ncf$1@inn.qnx.com

BTW,

hsbrown@qnx.com > sed in <ca1nsi$d33$> 1@inn.qnx.com> >:

You can use pccard-launch to start the driver, but you will have to
slay the

What’s the difference between writing a enumerator config file
and using pccard-launch 1-liner?
Does pccard-launch inject additional enumeration data into enum-devices?

The reason that I mention pccard-launch is that we cannot keep the
enumeration files up to date for all pccards, so it is easier to let the
customer use pccard-launch instead.
No, pccard-launch does not do more than the enumerator, except that you can
specify your own command line arguments with pccard-launch.


kabe