release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Search | Go
Wiki > Main > IriverH10InstallationBeta > AutomaticChecking
This script will check if dual-booting is correctly set.

Please modify the "h10" variable at the begining of this script to point to your iriver H10 (UMS) mount point. Also, set "h10_20GB" to 1 if it is a 20GB model, or to 0 if not.


#!/bin/bash

h10=/media/H10
h10_20GB=1
#h10_20GB=0

if [[ "${h10_20GB}" == "1" ]]; then
        h10_fw=H10_20GC.mi4
else
        h10_fw=H10.mi4
fi

# Test if mounted
h10_mounted=mount | grep $h10
if [[ ! -n $h10_mounted ]]; then
    echo "FAILED - IRiver H10 not mounted as Universal Mass Storage (UMS)"
    echo "Please use the UMS trick to mount device"
    echo "See http://www.rockbox.org/manual.shtml"
    exit
else
    echo "OK - IRiver H10 mounted as UMS..."
fi

# Check the bootloader
cd $h10
if [[ ! -e $h10/System/${h10_fw} ]]; then
    echo "FAILED - Rockbox Bootloader ($h10/System/${h10_fw}) missing"
    echo "See http://www.rockbox.org/manual.shtml"
    exit
else
    rbfw=grep -i rockbox $h10/System/${h10_fw}
    if [[ ! -n $rbfw ]]; then
        echo "FAILED - Bootloader $h10/System/${h10_fw} is present but doesn't seems to be Rockbox's"
        echo "Please install the Rockbox bootloader"
        echo "See http://www.rockbox.org/manual.shtml"
        exit
    fi
    echo "OK - Rockbox bootloader is installed"
fi

# Check the firmware
rbpresent=ls $h10/.rockbox 2>&1 | grep ls
if [[ "$rbpresent" != "" ]]; then
    echo "FAILED - Rockbox ($h10/.rockbox) missing"
    echo "See http://www.rockbox.org/manual.shtml"
    exit
fi
if [[ ! -e $h10/rockbox.h10 ]]; then
    echo "FAILED - Rockbox ($h10/rockbox.h10) missing"
    echo "Some daily builds don't include the file rockbox.h10"
    echo "Please download http://build.rockbox.org/dist/build-h10_5gb/rockbox.zip"
    echo "from http://build.rockbox.org/ and unzip to $h10"
    exit
fi
echo "OK - Rockbox firmware is installed"

# Check original firmware for dual-booting (optional)
if [[ ! -e $h10/System/OF.bin ]]; then
    echo "Decrypted original firmware not present ($h10/System/OF.bin)"
    echo "If you want to dualboot (IRiver/Rockbox) you need to install"
    echo "an iriver's decrypted firmware."
    echo "Please see http://www.rockbox.org/manual.shtml"
else
    if [[ ! -e /tmp/mi4code/mi4code ]]; then
        mkdir -p /tmp/mi4code
        cd /tmp/mi4code
        if [[ ! -e mi4code.c ]]; then
            wget http://daniel.haxx.se/sansa/mi4code.c
        fi
        gcc -o mi4code mi4code.c -lgcrypt
    fi
    decrypted=/tmp/mi4code/mi4code verify $h10/System/OF.bin 2>&1 | grep -i invalid
    if [[ "$decrypted" == "" ]]; then
        echo "FAILED - Your iriver's firmware ($h10/System/OF.bin) is not decrypted!"
        echo "Please decrypt it using mi4code"
        echo "http://www.rockbox.org/manual.shtml"
    fi
    iriver_fw=grep -i rockbox $h10/System/OF.bin
    if [[ "$iriver_fw" != "" ]]; then
        echo "FAILED - File $h10/System/OF.bin is present but"
        echo "it is not orignal (decrypted) Iriver firmware!"
        echo "Please put it back to place and decrypt!"
        exit
    fi
fi
echo "OK - Original iriver's firmware is in place and ready to dualboot"



r5 - 02 Apr 2021 - 20:46:06 - UnknownUser

Copyright © by the contributing authors.