Didj USB Mounting

This is a list of various techniques for mounting the Didj as a USB drive under Windows, Linux, and OS X. These techniques will make the /Didj folder on the Didj available, give you access to Base/ Data/ and ProgramFiles/ where you will find most of the image and sound files used by the AppManager for the GUI, plus other various files in use, except for the underlying linux system files.

Prerequisites
Disable LFConnect Auto Start Feature
 * This prevents LFConnect from interfering with the techniques that do not want it running.

Programs Needed
SCSI Command technique
 * sg3_util for Linux.
 * SCSI Utility v0.1 for Windows.

Hardware Needed
Required for usbctl options.

Console Access

On Didj
This method will leave your Didj partition permanently 'unlocked.' It will always be available to be mounted on a host PC. But will not be available for the Didj itself. It will not automount on the host unless the USB cable is plugged in when the Didj has already been booted.

 On Didj  echo "UNLOCKED" > /flags/usb_mass_storage

With LFConnect Running
When connecting the Didj to Windows under USB, the contents will be mounted in one of these folders, depending on your version of windows.

C:\Documents and Settings\All Users\Application Data\Leapfrog\LeapFrog Connect\Mnt\\0 C:\ProgramData\Leapfrog\LeapFrog Connect\Mnt\\0

LFConnect Software must be installed, and allowed to open for this to be accessible.

usbctl on Didj
LFConnect still must be installed, but this will prevent the need to have it running.

You will have to run this command on the Didj from a terminal, to unlock it.  On Didj  $ usbctl -d mass_storage -a unlock

Assigning Drive Letter
Assign Drive Letter Pictures

With LFConnect disabled from auto starting, you can assign a drive letter, and access it like a normal drive  On Didj 

/etc/init.d/lightning stop

usbctl -d mass_storage -a unlock

usbctl -d mass_storage -a enable

Make sure Monitor.exe is disabled, which can be done via Task Manager, then plug your Didj in.

Go to Administrative Tools > Computer Management > Disk Management

Right click the drive, and select  Change Drive Letters and Paths  click  Add  and assign the letter.

As long as you don't allow LFConnect to open, the drive letter will be recognized, even after reboot. You will have to continue using the commands on your Didj to access it, unless you create a custom script on the Didj to handle this.

SCSI Command
SCSI Commands Windows

Commands go in byte 0
 * C1 = Unlock (mount)
 * C2 = Lock (unmount)
 * C6 = Eject.

scsi_custom
This is a program provided in the Didj sources.

Compile the program Didj-Linux-4222-20090422-1236\host_tools\scsi\scsi_custom.c with

$ gcc -o scsi_custom scsi_custom.c

Tail your messages with

$ sudo tail -f /var/log/messages

Plug in your Didj to the USB

Look in your messages for something like this

kernel: sd 5:0:0:0: Attached scsi generic sg2 type 0

Your looking for the sg with a number sg0, sg1, sg2 etc.

Now run the scsi_custom app

$ sudo scsi_custom -c unlock /dev/sg

And depending on your system, it should auto mount the Didj as a USB drive.

SCSI Command
SCSI Commands Linux

Udev Rule
This is a permanent solution, as the device will be unlocked on plug in by udev. It requires your Linux system to be using udev and have sg3_utils installed, which seems rather common.

Create a text file named something like 99-LeapFrog-Didj.rules the number is the order it is called in, 99 works good. Insert this text all on one line:

SUBSYSTEM=="scsi_generic", KERNEL=="sg*", ACTION=="add", ATTRS{vendor}=="LeapFrog", ATTRS{model}=="Didj", MODE="666", NAME="didj", RUN+="/usr/bin/sg_raw /dev/didj C2 00 00 00 00 00 00 00 00 00"

This will run the sg_raw command to unlock the Didj, it also gives it a persistent device name of Didj, so you can further access it thru sg commands with /dev/didj. Also note you won't need sudo as the permissions are changed for regular users.

Finally: $ sudo chown root:root 99-LeapFrog-Didj.rules $ sudo chmod 644 99-LeapFrog-Didj.rules $ sudo cp 99-LeapFrog-Didj.rules /etc/udev/rules.d/

You may have to restart your system for it to take effect or try running: $ sudo udevadm test /sys/class/scsi_generic/sg2/

Under OS X
Easier than Windows or Linux.

Plug in your Didj to the USB

Now you can access the didj using terminal or in Finder by selecting the "Go" menu and using "Go to Folder..."

navigate to /Users/*current_user*/.lf_mount_points/

Once you have access to your Didj you can force quit LeapFrog Connect if it's bothering you. Quitting normally causes it to eject the Didj. However, you won't be able to unmount the Didj from finder, it keeps mounting again once it's unmounted. To safely disconnect the Didj you'll have to open LeapFrog Connect again and use the eject button inside the application.