Using an IRIVER IHP-120 from within Linux.

Roger

roger<at>eskimo.com

20040710


You are free to grab any portions of this document.  Just be sure to credit the author.
Created with OpenOffice.org ;-)



Contents


Introduction

The most notable features are:

  1. The device is capable of playing vorbis/ogg files (including the other windows file formats).

  2. The device is recognized as a "Mass Storage Device".

  3. Since the device is essentially a hard drive recognized as a “Mass Storage Device” via USB-2.0, backing up your files to this device is very easy! (ie. GPG Keyrings)


My experience using this device has been wonderful under Linux. Love it. Better then an Ipod. (*note - never used an ipod ;-)

I mostly learned about how to use this device with Linux from the following site including a tool called iripdb: http://lonelymachines.org/iriver.html


How I Sync My Iriver IHP-120

The IHP-120 device uses a FAT32 filesystem and the utilities cp/rsync may hang your system or the IHP-120 if you use these utilities with “permission preserving” features. To avoid these problems, I simply use “cp -r” or “rsync -r” -- and avoiding the “ -ax” switch options for archiving.


First, attach and mount the device (as user). I'm assuming USB Drivers are already loaded or the USB Drivers are statically compiled into the kernel. I'm also assuming that entires are made into the /etc/fstab file for allowing users to mount the specific mount points or you will need to be root to do so. An example of one of my mount points within fstab:

/etc/fstab

/dev/sda1 /mnt/disk1 auto noauto,user 0 0


Next, mount the device to /mnt/disk1 and create the following folder:

$ mkdir /mnt/disk1/ogg


Assuming that you keep all you vorbis/ogg files within $HOME/ogg, I now sync by using rsync – paying close attention to the “/” as they are essential characters with rsync!

$ rsync -r --size-only /home/roger/ogg/ /mnt/disk1/ogg/


(I'm not sure if “--size-only” will surfice, however, sync times are much faster using this option then without! Besides, we are usually only adding or maybe removing files.)


The following is a script I have within my /home/roger/bin folder for doing all this automatically and should take less then a minute or two to execute with ~5GB of vorbis files:


--- begin script --

#!/bin/bash

mount /dev/sda1

rsync -r --size-only $HOME/ogg/ /mnt/disk1/ogg/

# Now utilize the iripdb tool that was untarred and

# specify the iriver's mount point to create the database

$HOME/src/iRipDB-0.1.1/iripdb /mnt/disk1/

umount /dev/sda1

--- end script ---


I have modified my system to now utilize Autofs for automatically mounting filesystems on demand. To do so, you need to enable the appropriate kernel modules and install the user space utilities (net-fs/autofs). You also need to modify the autofs config file to unmount the file systems when not used within 15 seconds or less. In doing this, I no longer need the above script and only merrily connect the device and execute the rsync command. The filesystem is automatically mounted & umounted (after ~5 seconds – a slight delay), achieving a quick & easy sync!


Problems Encountered

- A Slight Problem When Dealing with the FAT File System

A problem I've noticed when dealing with the FAT32 file system is the user land tools (ie. cp & rsync) will fail or may even hang your kernel when trying to preserve file permissions on the FAT32 file system. If you deal with the FAT file systems daily, then this will be old news for you. (I am currently using kernel-2.6.x with kernel-2.6.x headers.)


One feature that would be really great with present capabilities of recording voice/audio would be to have the ability to use a file system (ie. ext2 or even ext3) that allowed using permissions. Primarily from a security aspect, imagine sharing this Iriver IHP-120 between several people and being able to allow logins via the interface and by using a series of unique joystick toggles for the password! And note, that there is are win32 drivers for the ext2/ext3 file systems.


- Sqealing Noises When Playing Vorbis Files

On a side note, I am getting some squealing with my vorbis files. It would appear that this is due to using a pre-release of vorbis libs and tools “libVorbis I 20011231 (1.0 rc3)”. By extracting my music cdroms with a more current release of vorbis libs and tools “libVorbis I 20030909 (1.0.1)”, this squealing has apparently stopped.


- To Format the IHP-120 Hard Drive

To remove the existing partition, utilize something like fdisk, cfdisk, or even qtparted and then the following:

# mkfs.vfat /dev/sda1 -F 32


"-F 32" is required per the man file or you will incur an error.


My Crazy Notes

I'm just itching to crack the case to view the MTD device.

I don't have a usb<>ethernet device here either to see what would happen. I have heard of some devices can utilize a usb<>ethernet device for system access. I can tell you that the kernel on the IHP-120 does not recognize a ext2 file system.


References

One of the first sites a user usually finds on google about the Iriver IHP-120

http://lonelymachines.org/iriver.html

Iripdb utility for creating the database for the Iriver IHP-120

http://www.marevalo.net/iRipDB/

The original url for this page

http://www.eskimo.com/~roger/programming/iriver_ihp-120.html