OpenQNX :: The QNX Community Portal

Oct 06, 2008 - 06:38 PM
Google
  Web openqnx.com   
     Create an account Home · Submit News · QNX Forums · QNX Download · Search   
_
Main Menu
Who's Online
There are 58 unlogged users and 1 registered user online.

You can log-in or register for a user account here.

Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Author Message
Jeffrey Adler
Post subject: USB thumb drive  PostPosted: Jun 16, 2007 - 05:13 PM
Guest





Hello all-

I have been trying to get a USB thumb drive to work under QNX-4.

I do the following:

io-usb
Fsys.umass
mount -P /dev/hd1
Fatfsys

All works fine, I can access the drive as /dos/c

Now I want to remove the thing. I have tried several variations, such as:

slay Fatfsys
umount /dev/hd1 (umount /dev/hd1t6 doesn't work at all)

slay Fsys.umass
(this tends to lock up the computer)

I can't seem to find the right combination that will let me remove the thumb
drive, reinsert it again later, and have it work OK.

Any suggestions???

Thanks,

Jeff.
 
   
Reply with quote Back to top
maschoen
Post subject: RE: USB thumb drive  PostPosted: Jun 17, 2007 - 04:50 PM
QNX Master


Joined: Jun 25, 2003
Posts: 1095

After you slay Fatfsy try "umount /dev/hd1" and then "rm /dev/hd1".
 
 View user's profile Send private message Send e-mail Visit poster's website  
Reply with quote Back to top
Jeffrey Adler
Post subject: Re: USB thumb drive  PostPosted: Jun 18, 2007 - 01:08 PM
Guest





"maschoen" <maschoen@pobox-dot-com.no-spam.invalid> wrote in message
news:f53s9t$qn7$1@inn.qnx.com...
Quote:
After you slay Fatfsy try "umount /dev/hd1" and then
"rm /dev/hd1".


Can you explain WHY this is the right thing to do? It just doesn't seem
"normal".

Thanks
 
   
Reply with quote Back to top
Ryan J. Allen
Post subject: Re: USB thumb drive  PostPosted: Jun 18, 2007 - 01:21 PM
Guest





On 18/06/2007 9:08 AM, Jeffrey Adler wrote:
Quote:
Can you explain WHY this is the right thing to do? It just doesn't seem
"normal".

Fsys.umass doesn't support plug-and-play. It's a known issue and is
listed in the release notes:
http://www.qnx.com/developers/articles/rel_1637_1.html

--
Ryan J. Allen
QNX Software Systems
 
   
Reply with quote Back to top
Subcommander
Post subject: Re: USB thumb drive  PostPosted: Jun 29, 2007 - 08:50 PM
New Member


Joined: Jun 29, 2007
Posts: 2

Perhaps my response is a little old, but I have a little script that we use at work. We mount thumb drives as dos file systems for data backup.

use mt.t to mount the thing
use mt.t -u to unmount it. (or umt.t if you link it to mt.t)

the -v option gives you verbosineity.

It will run io-usb if it is not already running,
It will run Fatfsys if it is not already running
It will autodetect upto 1 partition on the drive
It mounts the drive or the first partition as /dos/usb

I created a link to the same script called umt.t. The script detects this and will un mount instead, or use the '-u' option.

NC-17 WARNING!!!!!

This is my first script and probably REALLY sucks!!!!

Use at your own RISK.

Also, if you know a better way, I am happy to learn.

here is the source
Code:

#! /bin/sh
#ifdef __USAGE
#%C [options]
#
#This script mounts a thumb drive as /dos/usb.
#
#Valid DOS partition types are 1, 4, 5, 6, 11, 12, 14, 15
#Partitions are searched for based on type in that order.
#If a drive has multiple partitions, only the first
#partition will be mounted.
#
#If the drive has no partitions the script will attempt to
#mount the raw device as a DOS drive...again as /dos/usb
#
#If the /bin/io-usb and /bin/Fatfsys processes are not
#already running, it will run them for you.
#
#
#Options:
# -u    : umount thumb drive and clean up the drivers
# -v    : verbose
#
#endif


#------------------------------------------------------------------
print_usage(){
  echo "mt.t [options]"
  echo
  echo "Options:"
  echo "  -u    : unmount thumb drive"
  echo "  -v    : verbose"
  exit 0
}
#------------------------------------------------------------------
unmount_clean(){
  if test $verbose; then
    printf "Unmount existing drive and stopping drivers...\n"

    printf "> umount /dos/usb: \n"
    umount /dos/usb
    printf "> umount /dev/hd_usb0: \n"
    umount /dev/hd_usb0
    printf "> slay -fQ Fsys.umass: \n"
    slay -f Fsys.umass
    printf "> rm /dev/hd_usb*: \n"
    /bin/rm -v /dev/hd_usb*
    echo
  else
    umount /dos/usb 2> /dev/null
    umount /dev/hd_usb0 2> /dev/null
    slay -fQ Fsys.umass 2> /dev/null
    /bin/rm /dev/hd_usb* 2> /dev/null
  fi
}
#------------------------------------------------------------------
mount_drive(){
  if test $umount; then
    if test $verbose; then
      printf "OKAY TO REMOVE THUMB DRIVE.\n"
    fi
    exit 0
  fi

  ########################################################33
  # run the Fsys.umass drivers
  ########################################################33
  if test $verbose; then
    printf "> Fsys.umass fsys -n0=hd_usb: \n"
    Fsys.umass fsys -n0=hd_usb
  else
    Fsys.umass fsys -n0=hd_usb 2> /dev/null
  fi

  sleep 1

  ########################################################33
  # find the partitions
  ########################################################33
  for tt in t1 t4 t5 t6 t11 t12 t14 t15
  do
    part=none;
    fdisk /dev/hd_usb0 query $tt > junk
    read myline < junk
    if test $myline -gt 0
    then
      part=$tt
      break;
    fi
  done

  ########################################################33
  # mount the partitions
  ########################################################33
  if test $verbose; then
    if test $part = "none"
    then
      mount -t dos /dev/hd_usb0 /dos/usb
      echo
      printf "USB MOUNTED AS /dos/usb\n" $part
    else
      mount -p /dev/hd_usb0
      mount -t dos /dev/hd_usb0$part /dos/usb
      echo
      printf "USB PARTITION TYPE(%s) MOUNTED AS /dos/usb\n" $part
    fi
  else
    if test $part = "none"
    then
      mount -t dos /dev/hd_usb0 /dos/usb 2> /dev/null
    else
      mount -p /dev/hd_usb0
      mount -t dos /dev/hd_usb0$part /dos/usb 2> /dev/null
    fi
  fi
}
#------------------------------------------------------------------

me=${0##*/}

###########################################################3333
#
# CHECK TO MAKE SURE THE io-usb IS RUNNING
#
# io-usb is the QNX driver for the usb ports
#
###########################################################3333
ps | grep 'io-usb' | wc -l > junk
read lines < junk
if test $lines -eq 1
then
  echo Starting io-usb...
  /bin/io-usb &
  sleep 4
fi

###########################################################3333
#
# CHECK TO MAKE SURE THE DOSFSYS IS !!!! NOT !!! RUNNING
#
# IF DOSFSYS IS RUNNING IT MUST BE STOPPED 
#
###########################################################3333
ps | grep Dosfsys | wc -l > junk
read lines < junk

if test $lines -gt 1
then
  echo "We Found Dosfsys Running, Dosfsys is OLD"
  echo "slay dosfsys (Dosfsys -x), and try again."
  exit 0;
fi

###########################################################3333
#
# CHECK TO MAKE SURE THE FATFSYS IS RUNNING
#
# FATFSYS IS THE DRIVER FOR THE DOS/WIN FAT32 FILESYSTEM
#
###########################################################3333
ps | grep Fatfsys | wc -l > junk
read lines < junk

if test $lines -eq 1
then
  echo Starting Fatfsys...
  /bin/Fatfsys &
  sleep 4
fi

while getopts vu opt $*
do
  case $opt in
    v)  verbose="yes";;
    u)  umount="yes";;
  esac
done

case $me in
 umt.t) umount="yes";;
esac

unmount_clean
mount_drive
exit 0
[/code]
 
 View user's profile Send private message  
Reply with quote Back to top
Display posts from previous:     
Jump to:  
All times are GMT
Post new topic   Reply to topic
View previous topic Printable version Log in to check your private messages View next topic
Powered by PNphpBB2 © 2003-2007 The PNphpBB Group
Credits
All logos and trademarks in this site are property of their respective owners. The comments are property of their posters.
Powered by OpenQNX: The QNX Community Portal Site
QNX and the QNX logo are registered trademarks of QNX Software Systems.