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
#
CONFIG_USB=y
CONFIG_USB_DEBUG=y
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_UHCI_HCD=m
# USB Device Class drivers
#
CONFIG_USB_BLUETOOTH_TTY=m
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DEBUG=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_JUMPSHOT=y
# USB Human Interface Devices (HID)
CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y

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.