The iriver Rockbox Bootloader

- THIS IS NOT THE INSTALLATION INSTRUCTIONS PAGE. This page contains information about the Rockbox bootloader intended for the use of Rockbox developers. For installation instructions intended for ordinary users, please refer to the Rockbox online manual.

Warnings and Disclaimers

WARNING 1! The bootloader is still in development. If it malfunctions, you may not be able to restore the flash contents, and your player will be rendered USELESS!. You use Rockbox at your own risk! By installing Rockbox, you agree that Rockbox and its developers are not responsible for any damage to your player or loss of manufacturer's warranty that may result.

Installing the Rockbox bootloader from SVN

Be careful! Do NOT attempt to build your own bootloader from SVN unless you know for sure what you're doing.

NOTE: this page applies only for H100 and H300 series! For Iriver H10 see IriverH10Port.

Mirror sites

If the one you need doesn't work, you could try this page which has most of the above mirrored. You should try and get it from iriver first though. Both for your safety, and for the site's bandwidth's sake.

Once you have unzipped the firmware file, you should have a file called "ihp_120.hex" (H120/140), "ihp_100.hex" (H110/115) or "H300.hex" (H320/340).

Patching the iriver firmware

Download bootloader.bin

You need to download the appropriate bootloader.bin that fits your model. It's at the bottom of this page.

Descramble the original firmware

H110 or H115:

$ tools/descramble -iriver ihp_100.hex ihp_100.bin

H120 or H140:

$ tools/descramble -iriver ihp_120.hex ihp_120.bin

H320 or H340:

$ tools/descramble -iriver H300.hex H300.bin

Merge the firmware and the boot loader into a new firmware file

H110 or H115:

$ tools/mkboot ihp_100.bin bootloader/bootloader.bin new.bin

H120 or H140:

$ tools/mkboot ihp_120.bin bootloader/bootloader.bin new.bin

H320 or H340:

$ tools/mkboot -h300 H300.bin bootloader/bootloader.bin new.bin

Scramble the new firmware file

$ tools/scramble -iriver new.bin new.hex

Checksums

If you used one of the attached bootloader(-version).bin, fwpatcher.exe or fwpatchernu.exe, your new.hex (or ihp_120.hex if you used a fwpatcher) should have one of these MD5 sums:

If you used fwpatcher or fwpatchernu, these are already checked by the patcher. means that this has been tested by at least one person - add one to the line if you're successful with one that hasn't been tested yet.

Copy the patched firmware file to your iriver

Copy the hex file you patched in Step 2 to the root of the iriver hard drive and make sure it is called "ihp_120.hex" (H120/140) , "ihp_100.hex" (H110/115) or "H300.hex" (H320/340).

Install it on the iriver

Follow the normal iriver firmware upgrade procedure (details are given below). Once completed, you should have a boot loader that tries to load Rockbox from disk whenever you start the player.

iriver Firmware Upgrade procedure:

Unplug your Iriver from the USB cable if it is attached

Press and hold down the Joystick(SELECT) button until the Settings menu appears

Click on 'General'

Scroll down and click on 'Firmware Upgrade'

You will be asked to confirm you want to upgrade. Move the joystick to the left so that the 'Yes' button is ticked and press the joystick button again

It should now say 'Firmware Upgrading...'. Do not touch the player during this process!

The player will switch itself off when it has completed the upgrade.

Once this is completed, when you now start your player up you should initially see a screen saying 'Rockbox Bootloader' at the top before the normal Iriver boot screen appears.

You have now successfully installed the bootloader and are ready to install Rockbox itself.

NOTE: You must now install the Rockbox files on your iriver, or it will simply boot the iriver firmware - see the manual for instructions on how to do this.

Selecting which firmware boots on start up

When you have installed Rockbox on your player, you will now be able to choose which firmware you want to use each time you turn on your player.

H100: To start the original Iriver firmware, hold the record button down and press Play. To start the Rockbox firmware, simply press Play on its own. H300: Hold the Record button, and press Play/On. Continue holding both until you see a message telling you that it is starting the original firmware. Then, you may release Record but continue holding Play/On. The iRiver firmware detects if Play/On is pressed when it starts, and if it isn't being pressed shuts itself down.

Note: When starting the original firmware from the remote with the main unit Hold switch on, you will need to hold the Play button until the iriver firmware has started. Otherwise you will get a "hold" message from the original firmware.

Current version

H1xx Bootloader v6

Better handling of Hold switches

Improved SDRAM settings

Looks for rockbox.iriver in both / and /.rockbox

Lights the remote backlight when booting

H3xx Bootloader v5

Bootloader USB mode

Solved the nasty timing issue in v4

Known issues

H300:

Still starts the iriver firmware when plugging in the charger (this is intentional until the charging code is updated for h300)

The hard drive spins down and restarts when entering the USB mode. I have yet to find out why.

Comments

MatthiasM?: Bootloader v2: make sure that you have only one primary harddisk partition with FAT32 at your H3x0! Otherwise the Rockbox bootloader works but fails to load Rockbox itself.

AlexanderSpyridakis: There is a serious Bootloader issue for many users. It seems that for some poeple the USB Bootloader mode failes to work. While the unit confirms that it is in a USB Bootloader mode the computer fails to recognise the device (not OS related). While normal USB detection works (within the firmware) if someone encounters the USB Bootloader failure, then the user has to wait for the player to boot up and wait for the disc to go to idle mode before inserting the USB cable again. Of course there is no problem, USB related, in default iriver firmware. Any ideas?

KevinFerrare: Since the beginning of the rockbox port on the H1x0 series, I've always got an "*Panic* ata:-32" error with vanilla bootloaders. The only solution I've found so far is to replace the content of the "check_registers" function in "firmware/drivers/ata.c" by a "return 0;", compile the bootloader, cross my fingers and flash it

H100: Fix remote detection so it is possible to turn on unit with all remote types (With v7pre3, original H1x0 lcd remote and H1x0, hold is detected as on when it is not, so it is impossible to turn H1x0 on with remote (fixed with v7pre4)