strange "mount -t dos" problem

Hello everybody,

I got some strange problem with mounting FAT32 partition on my HDD.

The disk is partitioned like this:


OS Start End Number Size Boot
name type Cylinder Cylinder Cylinders Blocks

  1. QNZ 79 0 636 636 10233342 4996 MB *
  2. QNX 77 638 891 253 4080510 1992 MB
  3. FAT32 12 892 3737 2845 45720990 22324 MB

When I try to mount FAT32 partition I got an error:

mount -vv -t dos /dev/hd0t12 /fs/hd0-dos

Parsed: mount from [/dev/hd0t12] mount on [/fs/hd0-dos] type [dos]
exec: mount_dos /dev/hd0t12 /fs/hd0-dos
Using internal mount (mount_dos not found)
Type [dos] Flags 0x00000000
Device [/dev/hd0t12] Directory [/fs/hd0-dos]
Options []
mount: Can’t mount /fs/hd0-dos (type dos)
mount: Possible reason: Can’t access shared library

According to this message I’m missing a library, but I have brand new full QNX 6.2 installation and can mount dos floppy without a problem.

I suspected that something might be wrong with that partition, but Win 98 installed on it doesn’t think so. Fatfsys in QNX 4.25 also works as expected.

Any ideas what can be a problem?

Thanks,

Serge

Serge Yuschenko <nospam@forums.openqnx.com> wrote:

When I try to mount FAT32 partition I got an error:
mount: Possible reason: Can’t access shared library

Are you sure you have fs-dos.so located somewhere in the
LD_LIBRARY_PATH of the devb-eide executable (but not on a
disk filesystem itself) - the normal place for it would be
in “/proc/boot”, set up by your build file/image.

Thank you John.

It works now. I forgot to include fs-dos.so to my build file and I was able to mount dos floppy only because devb-fdc was launched not from boot image.

devb-eide after receiving the mount request looks for the library in the /proc/boot, but what about the LD_LIBRARY_PATH=/proc/boot:/lib:/usr/lib:/lib/dll declared in the build file? Obviously /lib/dll is also mentioned there.

I understood that if I start devb-* from a boot image the only way to mount a file system on it is to include correspondent fs-* to that image. Why driver cannot look beyond the /proc/boot?

Sincerely,

Serge


Serge Yuschenko <> nospam@forums.openqnx.com> > wrote:
When I try to mount FAT32 partition I got an error:
mount: Possible reason: Can’t access shared library


Are you sure you have fs-dos.so located somewhere in the
LD_LIBRARY_PATH of the devb-eide executable (but not on a
disk filesystem itself) - the normal place for it would be
in “/proc/boot”, set up by your build file/image.

Serge Yuschenko <nospam@forums.openqnx.com> wrote:

I understood that if I start devb-* from a boot image the only way to
mount a file system on it is to include correspondent fs-* to that image.
Why driver cannot look beyond the /proc/boot?

The DLL can be anywhere in the path that is not managed by devb-eide
(ie it cannot load it from itself); this is due to a deadlock bug in
procnto with dlopen/mmap (internal PR/7225, which I workaround by not
allowing this). Otherwise the LD_LIBRARY_PATH is honoured (if it
included /dev/shmem, for example, you could have loaded from there).