iRiver H320 on Linux

I just bought two of these and decided to get them working on Linux. This is a very rough guide on how to get it running, it is not a guide on how to compile a kernel. For Debian I wrote a page on Compiling a kernel for Debian that you could use as a guide but for other systems see the Kernel Rebuild Guide
First off these are USB Mass storage devices so you need to have USB enabled properly in your kernel. The appropriate options that I had to add to my kernel config file are as follows.

# USB support
# Miscellaneous USB options
# USB Host Controller Drivers
# USB Device Class drivers
# USB Human Interface Devices (HID)

For those that don’t know what the kernel config file is this is the file that is used to configure the kernel 😉 When I recompiled my kernel I used
make menuconfig
this edits the config file before you compile and install the kernel. After running “make menuconfig” then go to drivers and at the bottom you should see USB device option select this and then select the devices you have on your machine.
To see what devices are on your machine you need to enable them in your BIOS and then you can use
lspci -v | grep HCI
to have a look at what USB controller your motherboard or PCI card is using. Mine was running a VIA controller.
To get the usb to appear when you plug it in you need to have the hotplug scripts installed. On Debian this is a simple
apt-get install hotplug
and thats sorted. I also added the following to my fstab file so that I can browse the devices.
/dev/sda1 /mnt/usb vfat defaults,auto,user,sync 0 0
That was it. I now have the iRiver H320 on my machine and it looks like a 20Gb hard drive. Now to get my CD Collection converted to OGG’s.

7 Replies to “iRiver H320 on Linux”

  1. hi harry…
    i just got one of these things as a gift.
    ogg usb mass storage support is probably enough to keep me from returning it in favor of the apple device. however, i was wondering if you have had any luck with the H300 device’s database. my files have the proper id3 tags, but they do not get included in the database. so i can’t browse by genre, artist, etc. it worked for my dad using the included win32 software, but obviously, that’s not what we’re after…
    also, i can probably live without usbtg. but what are your thoughts on flashing in the asian or european firmware?

  2. The id3 tags are there. To see them stop playing music then press the A-B button and they will show up. I am assuming you are using m3u playlists.
    Only use the American firmware. The American H320 has some slight hardware changes which means that USBTG will never work on the American one. The firmware has been written to accomodate these changes the other firmware would probably crash the player.

  3. well, the .m3u playlists (made by grip) are there. but, the player throws “read error” when i try to play them.
    I have the player mounted at /mnt/iriver the root of my files is /mnt/iriver/albums. the playlists are here and they contain paths relative to here. example:
    $ pwd
    $ ls -al |grep judge
    drwxr-xr-x 3 root root 32768 Dec 26 14:36 judge_roughneck
    -rwxr-xr-x 1 root root 512 Dec 26 14:36 judge_roughneck-true.m3u
    $ cat judge_roughneck-true.m3u
    $ cat judge_roughneck-true.m3u |xargs ls -al
    -rwxr-xr-x 1 root root 6010131 Dec 26 14:36 judge_roughneck/true/01-just_be_there.ogg
    -rwxr-xr-x 1 root root 4629647 Dec 26 14:36 judge_roughneck/true/02-peace_of_mind.ogg
    -rwxr-xr-x 1 root root 9134591 Dec 26 14:36 judge_roughneck/true/03-true.ogg
    -rwxr-xr-x 1 root root 6873044 Dec 26 14:36 judge_roughneck/true/04-desire.ogg
    so, you can see that the paths are all relative and valid. any idea why id doesnt like these lists?

  4. ok, it seems the iriver can only deal with playlists that have DOS linefeeds and directory paths.
    i’m all sorted, i’ll stop bugging you now… thanks agian!

  5. I put a bit up about this after I had the same problem 😉
    m3u playlist error
    Your not bugging me, if something we write saves someone some time then thats good.

  6. A nice program to create the database and playlists for the iRiver is iFish ( ). It’s Java so all you need is the Java runtime. Databases that are created by this also load quicker than those made by the software that comes with the iRiver.
    As far as flashing to other firmware goes, it depends on what you want. The US versions has altered hardware from the international version (afaik) so USBOTG might not work even if you do flash. You will also lose the ability to transfer DRM files and the clock display. There are some who say that USBOTG works when you have the cable from the international version. Personally I’ve flashed to the Korean firmware for the novelty of being able to play videos and also display images of a larger filesize than the US firmware supports.
    Check out this site for a discussion on this and everything else iRiver related
    And now I have my brand new iRiver working on my desktop Debian box too (yay). For the last 4 days I’ve had to use the copy of XP (ugh) on my laptop to copy anything to it!

  7. um so which verion of the firmware should i flash my player too. the k0rean 1.25 or 1.27 i heard that 1.25 works but it has a battery problem. but i dont know if hte 1.27 works? can you help me i have the us h320

Leave a Reply

Your email address will not be published. Required fields are marked *