jhonny

ODROID H2 - Error 13

Recommended Posts

Posted (edited)

Hi guys,

 

Long time lurker, first time poster.

 

I've been trying to get Xpenology running on the ODROID H2. Its an awesome little piece of hardware. 4 cores, up to 32gb ddr4 ram, nvme, 2 x sata, 2 x realtek 8111G lan in the size slightly larger than a nuc.

Anyway, Im getting off topic here but basically I'm running into the following issues:

a) If I use loader 1.04b and try to install ds918 I get error 13 right after the installation reaches 56%.

b) If I use any loader prior to that, the system doesn't even boot into grub, just hangs at the bios screen right before grub

 

Regarding issue a)

I've tried installing the system with various options in the bios, setting the USB Drive to be detected as HDD, Floppy, Forced floppy .... there's even a south bridge setting for making the device more Linux or Windows compatible, I've tried playing with that .... still doesn't work.

I've tried installing the system with 1 stick of ram, 1 hdd, no nvme drive connected.

I've tried 5 different brands of USB's including a USB 2.0 card reader. Each time of course I would update the PID and VID accordingly to the USB stick used.

I've tried the following images:

DSM_DS918+_23739.pat

DSM_DS918+_23824.pat

I just keep getting error 13.

 

Regarding issue b)

I've tried different imaging tools: Win32Imager, Rufus etc .... nothing seems to allow the device to boot correctly. I've even tried running Genesys MBR version of the loaders and that doesn't work either. Same problem, system just gets stuck before getting to grub.

 

It would be awesome to get ds918 running on this little box as perhaps I could make use of the nvme caching ?

Unfortunately troubleshooting this is proving difficult as there's no COM ports that I can break out to on this board, even though there is console redirection in the bios.

 

e13.png

e13-1.png

 

My grub config:

if serial --port=0x3F8 --speed=115200;then
        set has_serial=true
        terminal_input --append serial
        terminal_output --append serial
else
        clear
fi

terminal_input --append console
terminal_output --append console

if [ x"${grub_platform}" = xefi ]; then
        insmod efi_gop
        insmod efi_uga
else
        insmod vbe
fi

set extra_initrd="extra.lzma"
set info="info.txt"

set vid=0x0781
set pid=0x5583
set sn=1780PDN123456
set mac1=001E064xxxxx
set mac2=001E064xxxxx
set rootdev=/dev/md0
set netif_num=1
#set extra_args_918='earlycon=uart8250,io,0x3f8,115200n8 earlyprintk loglevel=15 memmap=0x1000$223515000'
set extra_args_918=''

set common_args_918='syno_hdd_powerup_seq=1 HddHotplug=0 syno_hw_version=DS918+ vender_format_version=2 console=ttyS0,115200n8 withefi elevator=elevator quiet syno_hdd_detect=0 syno_port_thaw=1'

#for testing on VM
set sata_args='SataPortMap=4'

set default='0'
set timeout='1'
set fallback='1'

if [ -s $prefix/grubenv ]; then
        load_env
        if [ -n "$saved_entry" ]; then
                set default="${saved_entry}"
        fi
fi

VERSION="with Jun's Mod v1.04b"

search --file -s /bzImage

function savedefault {
        if [ -s $prefix/grubenv  ]; then
                saved_entry="${chosen}"
                save_env saved_entry
        fi
}

function do_option {
        if [ $# -lt 2 ]; then
                eval "set value=\"\$$1\""
                echo "current $1: $value"; return;
        fi
        set key=$1
        shift
        set $key="$*"
        if [ -s $prefix/grubenv  ]; then
                save_env $key
        fi
}

function vid { do_option vid $@; }
function pid { do_option pid $@; }
function sn { do_option sn $@; }
function mac1 { do_option mac1 $@; }
function mac2 { do_option mac2 $@; }
function mac3 { do_option mac3 $@; }
function mac4 { do_option mac4 $@; }
function rootdev { do_option rootdev $@; }
function append { do_option extra_args_918 $@; }

function vidpid {
        if [ $# -lt 2 ]; then
                echo "usage: vidpid 0xVVVV 0xPPPP"; return;
        fi
        set usb_args="vid=$1 pid=$2"
        if [ -s $prefix/grubenv  ]; then
                save_env usb_args
        fi
}

function showtips {
        if [ -n "$has_serial" ]; then
                terminal_output --remove serial
        fi
        echo "Screen will stop updating shortly, please open http://find.synology.com to continue."
        echo
        echo
        if [ -n "$has_serial" ]; then
                terminal_output --append serial
        fi
}

function loadinitrd {
        if [ -s $img/$info ]; then
                if [ -n "$has_serial" ]; then
                        terminal_output --remove serial
                fi
                cat $img/$info
                if [ -n "$has_serial" ]; then
                        terminal_output --append serial
                fi
        fi
#        if [ -s $img/$extra_initrd ]; then
#                initrd $img/rd.gz $img/$extra_initrd
#        else
#                initrd $img/rd.gz
#        fi
}

function common_add_option {
        eval "set value=\"\$$1\""
        if [ -z $value ]; then return 1; fi
        set common_args="$common_args $1=$value"
}

function common_add_option_ex {
        eval "set value=\"\$$1\""
        if [ -z $value ]; then return 1; fi
        set common_args="$common_args $2=$value"
}

function loadlinux {
        set model=$1
        set bootdev=$2
        shift 2
        if [ -n $vid -a -n $pid ]; then
                set usb_args="vid=$vid pid=$pid"
        fi
        eval "set common_args=\"\$common_args_$model\""
        eval "set extra_args=\"\$extra_args_$model\""
        eval "set bootdev_args=\"\$${bootdev}_args\""
        common_add_option_ex rootdev root
        common_add_option sn
        if common_add_option mac1; then set netif_num=1; fi
        if common_add_option mac2; then set netif_num=2; fi
        if common_add_option mac3; then set netif_num=3; fi
        if common_add_option mac4; then set netif_num=4; fi
        common_add_option netif_num
	if [ -z $zImage ]; then
		set zImage=bzImage
	fi
        linux $img/$zImage $common_args $bootdev_args $extra_args $@
}

menuentry "DS918+ 6.2.1/6.2 Baremetal $VERSION" --class os {
        set img=
        savedefault
        loadlinux 918 usb
        loadinitrd
        showtips
}

menuentry "DS918+ 6.2.1/6.2 Baremetal $VERSION Reinstall" --class os {
        set img=
        loadlinux 918 usb mfg
        loadinitrd
        showtips
}

menuentry "DS918+ 6.2.1/6.2 VMWare/ESXI $VERSION" --class os {
        set img=
        savedefault
        loadlinux 918 sata
        loadinitrd
        showtips
}

 

Output from Mac about USB key's VID / PID:

Product ID: 0x5583
Vendor ID: 0x0781  (SanDisk Corporation)

 

Edited by jhonny

Share this post


Link to post
Share on other sites
Posted (edited)

EDIT: ODROID H2 is an Intel system - first I've seen it.

Edited by flyride

Share this post


Link to post
Share on other sites

Small update.


So I managed to get around issue b and try other loaders. The way I fixed that was used a new BOOTx64 loader for the /EFI/BOOT/BOOTx64.EFI

I injected the BOOTx64.EFI from Jun's 1.04b loader into older loaders and they seem to work fine.

However, issue a still persists ... so I've tried 1.02b and I'm still running into error 13 issues.

 

Can anyone tell me how to do a force install ? I've tried googling but haven't been able to find a guide how to run a force install

Share this post


Link to post
Share on other sites

Just a small update ...


I finally got DSM installed on the ODROID-H2.

I had to use a donor board.

Setup DSM 6.2.1 using juns 1.04b loader and DSM_DS918+_23824.pat on an Asrock z390 board with 9900x and a PCIe Realtek network card (onboard card did not work).

Once DSM was installed on the USB I moved it and the SATA HDD to the ODROID-H2 and it booted up.

 

Now I'm trying to install the DSM using eMMC instead of USB and it seems the box fails to boot.

If I flash juns loader onto the eMMC, I will see the loader boot up, and the usual splash screen comes up, however beyond that there is no activity. The ODROID H2 does not get an IP, doesn't connect to the network yet network lights are up.

If I put the eMMC onto a eMMC->USB adapter and boot the ODRID-H2 from that it works perfectly.

 

Any ideas ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.