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.
Download and extract a recent version of the Iriver firmware
Direct links for iHP110 and iHP115
Direct links for iHP120, H120, iHP140 and H140
None of these URLs work anymore. Consider using the mirror link below instead!
Direct links for H320 and H340
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:
H110/H115
Firmware Version |
MD5 sum |
User |
1.63-EU |
4938420d83aa6da3764d33e5a008c8d4 |
|
1.63-K |
044b737ddb74436353e290d3fbcc3333 |
|
1.63-US |
e51883ed89d49f5677b0a976aef7b154 |
|
1.65-EU |
528917d9e5b34a3e5bcac8fe1f4bd7a9 |
AndreScheffler |
1.65-K |
ef24f69a679e5eba2216045cb24d8b15 |
|
1.65-US |
76d83812b9e1856f768ba913eeba44e1 |
|
1.66-EU |
2aa9d16d3e166a7575fc652db8588daa |
AndreScheffler |
1.66-K |
a87dbe604ea98d035450a34b6e184a08 |
|
1.66-US |
f7668e8949f1a78e8ecd685db78b6824 |
|
1.66-JP |
72613b75c5196f63e99e41b7a88d7241 |
|
H120/H140
Firmware Version |
MD5 sum |
User |
1.63-EU |
15f09130a1aa02c25f820e8cc68259a4 |
|
1.63-K |
55e4cb20e36f4da06ad80b31aaaa3054 |
|
1.63-US |
dbdd012a3d821d26f907879cca71e9f4 |
|
1.65-EU |
43454df30c176e55d0df7e3c48e67785 |
JensArnold |
1.65-K |
d8cb7d9f586186bf9780ee761fc8a677 |
JohnSmith69 |
1.65-US |
99c5666e990dc782b9daefcb1a087ec0 |
AndrewPilley, JonathanHull |
1.66-EU |
e26d2574f39cee0adcdd54fb9f316293 |
ChrisKuhn |
1.66-K |
e76121ba9efe72ecfbb6392eaefe6d96 |
JohnSmith69 |
1.66-US |
12194678a2fdd0814d2e0bb57c8e8e6e |
SimonIten |
1.66-JP |
51716393ea0605d225e70a6be29dfdbd |
|
H320/H340
Firmware Version |
MD5 sum |
User |
1.04-US |
8b48bfa236408c088c2a82cfda87a6e1 |
reported by IanDouglas Apr 3 2006 |
1.28-EU |
9cd7e291a66f55335c619d63f3a7634b |
|
1.28-K |
90967247ba3f1bcb257432a4d78553bf |
|
1.28-JP |
cfd22c20e473727148f11f83d0028fb3 |
MichaelCarr - 2020-08-10 |
1.29-EU |
5982302507d57c2a96e9480c242b5de0 |
JonSenior |
1.29-K |
1303e22ef5b1af866aa4def03d6c5f5a |
BlakeJohnson |
1.29-JP |
ce433c404ff7531f5852ce3cb61143ee |
|
1.30-EU |
7fb49041294b3e6aea3894218d6d64cf |
GerTimmens, ManuelDejonghe |
1.31-K |
b92d631a8978eaf5467fb7e3f952feaa |
lebellium |

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).
Linux example:
$ mount /mnt/iriver
$ cp new.hex /mnt/iriver/ihp_120.hex
$ umount /mnt/iriver
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?
This is fixed in SVN now. --
SteveBavin - 19 Apr 2007
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
DavideGentile: On CFModded H1x0 targets USB disk mode does not exit gracefully. Target throws a "ATA error: -80" and a reset is subsequently required.
TODO list for the upcoming bootloader revision
Task |
Fixed in SVN? |
H300: Make USB bootloader mode work on devices where v5 does not |
Yes |
H300: Prevent HD click in USB bootloader mode |
Yes |
H300: Charging screen with AC/DC charging |
Yes |
H300: Charging screen with USB charging |
Yes |
H300: RTC alarm handling |
Yes |
H300: Handle startup by the non-LCD remote |
Yes |
Output the text on the remote LCD too |
Yes |
H300: Remove/reduce nasty audio "thump" |
Yes |
Replace the error codes with informative text |
Yes |
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) |
Yes |
H100: Support USB Diskmode for CFModded players |
Yes |
Copyright © by the contributing authors.