Upgrade ODROID-XU4 to OpenMediaVault 3

This short tutorial will show you how to upgrade a ODROID-XU4 running OpenMediaVault 2 to OpenMediaVault 3.
OMV 3 (Erasmus) uses Debian 8 (Jessie) instead of 7 (Wheezy). So alongside OMV you will get new packages as well.

  1. Make a backup of your current installation!
  2. Make sure your system is up-to date by running: apt-get update && apt-get upgrade
  3. Reboot
  4. Uninstall all plugins including the OMV-Extras package
  5. Before you upgrade you should change your boot.ini and /etc/fstab.
    Mount your boot partition like this:
  6. Then edit your /media/boot/boot.ini and change ro to rw in the setenv line. The line should look like below:
  7. Record your rootfs UUID
  8. Afterwards edit your /etc/fstab and add the following above the openmediavault volumes:
  9. Finally run omv-release-upgrade and reboot afterwards
  10. Now you can install the OMV-Extras package for OMV 3 and your plugins again:

32 thoughts on “Upgrade ODROID-XU4 to OpenMediaVault 3”

  1. I followed steps and the update was done well except for this:

    root@odroid:~# lscpu -e
    Segmentation fault

    root@odroid:~# lscpu
    Architecture: armv7l
    Byte Order: Little Endian
    CPU(s): 8
    On-line CPU(s) list: 0-3
    Off-line CPU(s) list: 4-7
    Thread(s) per core: 1
    Core(s) per socket: 4
    Socket(s): 1
    Model name: ARMv7 Processor rev 3 (v7l)
    CPU max MHz: 1400,0000
    CPU min MHz: 200,0000

    root@odroid:~# cpufreq-info -c 4
    cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
    Report errors and bugs to, please.
    analyzing CPU 4:
    no or unknown cpufreq driver is active on this CPU
    maximum transition latency: 0.00 ms.


    It seems that cpu4~7 can’t be enabled. Can you help me please?

    1. Throttling issue, but… why? Without touching anything on the device, it went about 60ºC with omv2.

        1. I’m using a microSD card. This is my output from your script:
          Extract kernel

          Kernel Version: 4.9.35

          Copy firmware and modules

          Create intramfs and uInitrd
          update-initramfs: Generating /boot/initrd.img-4.9.35
          W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.
          W: mdadm: no arrays defined in configuration file.
          Image Name: uInitrd-4.9.35
          Created: Thu Jul 13 12:51:38 2017
          Image Type: ARM Linux RAMDisk Image (uncompressed)
          Data Size: 4739268 Bytes = 4628.19 kB = 4.52 MB
          Load Address: 00000000
          Entry Point: 00000000

          Install kernel
          mount: special device /dev/mmcblk1p1 does not exist
          Using dtb: exynos5422-odroidxu4.dtb

          Kernel updated successfully
          Reboot to use new kernel
          When I reboot the odroid, it never comes up again.

      1. Still in kernel 3.10.82+. The device was not hot, so I think I found the “problem”. CPU cores 4-7 are in idle state when not needed, and this makes the temperature value set to max (?). And when any core is disabled…

        ~# lscpu -e
        Segmentation fault

        I can enable cpu4-7 manually:

        ~# echo 1 > /sys/devices/system/cpu4/online
        ~# echo 1 > /sys/devices/system/cpu5/online
        ~# echo 1 > /sys/devices/system/cpu6/online
        ~# echo 1 > /sys/devices/system/cpu7/online

        ~# lscpu -e
        0 0 0 yes 1400,0000 200,0000
        1 0 1 yes 1400,0000 200,0000
        2 0 2 yes 1400,0000 200,0000
        3 0 3 yes 1400,0000 200,0000
        4 1 4 yes 2000,0000 200,0000
        5 1 5 yes 2000,0000 200,0000
        6 1 6 yes 2000,0000 200,0000
        7 1 7 yes 2000,0000 200,0000

        But I still getting this fake temperature:

        ~# cat /sys/class/thermal/thermal_zone0/temp

        1. mhh something is really strange in your setup.

          Please backup your SD card or use another SD card and install the following image:

          Then boot your odroid with this image and execute lscpu and cat /sys/class/thermal/thermal_zone0/temp.
          It should work fine. If it doesn’t your Odroid seems to have an HW issue.

          Furthermore please upload the output of dmesg somewhere.

          1. Bad news: My XU4 died this morning. I’ll try to get a new one as soon as I can, then I will install the image of the link. Thanks anyway.

          2. Working like a charm. How can I put in OMV3 the graphs about cpufreq & cputemp? The scripts from OMV2 shows broken graphs.

          3. Using kernel 4.9.33, refreshing graphics CPUfreq & temp shows this error message:

            Failed to execute command ‘export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LANG=C; omv-mkgraph 2>&1’ with exit code ‘1’: ERROR: rrdc_flush (/var/lib/rrdcached/db//localhost/cpufreq/cpufreq-0.rrd) failed with status -1.

            Error #0:
            exception ‘OMV\ExecException’ with message ‘Failed to execute command ‘export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin; export LANG=C; omv-mkgraph 2>&1’ with exit code ‘1’: ERROR: rrdc_flush (/var/lib/rrdcached/db//localhost/cpufreq/cpufreq-0.rrd) failed with status -1.’ in /usr/share/php/openmediavault/system/
            Stack trace:
            #0 /usr/share/openmediavault/engined/rpc/ OMV\System\Process->execute(Array)
            #1 /usr/share/php/openmediavault/rpc/ OMVRpcServiceRrd->{closure}(‘/tmp/bgstatusCr…’, ‘/tmp/bgoutputVs…’)
            #2 /usr/share/openmediavault/engined/rpc/ OMV\Rpc\ServiceAbstract->execBgProc(Object(Closure))
            #3 [internal function]: OMVRpcServiceRrd->generate(NULL, Array)
            #4 /usr/share/php/openmediavault/rpc/ call_user_func_array(Array, Array)
            #5 /usr/share/php/openmediavault/rpc/ OMV\Rpc\ServiceAbstract->callMethod(‘generate’, NULL, Array)
            #6 /usr/sbin/omv-engined(536): OMV\Rpc\Rpc::call(‘Rrd’, ‘generate’, NULL, Array, 1)
            #7 {main}

  2. Hi,

    Nice info (I also used your tune tutorials 🙂 !) but before I jump right in, I do have a couple of questions:
    1) what’s the best way to make a backup of my current system?
    2) after reinstalling the plugins, will they find their configurations if they are still on the system (e.g. Plexmedia)?
    3) what about filesystem plugins (e.g. Snapraid) – can they be reinstalled and work right away if the config is preserved?

    Any insights are much appreciated!

    1. Hi,

      1) clone your micro SD card or rsync all files to an external drive
      2) maybe I didn’t test plexmedia. I just redid my configs from scratch.
      3) I don’t know. I don’t use it.

  3. Hello all,
    OMV just release omv_xu3_xu4_3.0.65.img.gz today, I tried on my XU4, it works great, eth ok, plexserver ok, transmission ok, maybe you can try it.

    1. The first time it boots is pretty slow. It has to run a script that creates a new partition with all the unused free space on the eMMC/SD card. Just let it boot for a few minutes. I just got my second one (the first one is a little dead and burried) and went through all the steps in the setup again.

    2. I tried the image and it did not boot properly. I could not even login via UART. The only way to get the upgrade is still with the guide described here. I went back to version 2, updated and upgraded to the latest version (2.2.13) and I may upgrade to version 3.x.x when it will be stable.

  4. Many thanks for this series of posts regarding OMV + ODROID
    Finally, I have an excellent replacement for my old NAS – WD ShareSpace

  5. If anyone is trying this, best to do run: “dpkg -l | grep openm” and then purge (apt-get –purge remove “app name”) anything apart from openmediavault and openmediavault-keyring

    If anything else is still showing then you will have issues Like I did.

    Thanks Obihoernchen for these great how-to’s much appreciated, this little box is replacing 3 small intel machines, going from around 100watt consumption to 10 to 20watt, much better.

  6. Followed this with a fresh install (updated first) of OMV 2 and it almost worked, SSH works but the web interface is returning an error. Any advice on how to repair

    “Error #0:
    exception ‘OMV\Rpc\Exception’ with message ‘Failed to connect to socket: No such file or directory’ in /usr/share/php/openmediavault/rpc/
    Stack trace:
    #0 /var/www/openmediavault/rpc/ OMV\Rpc\Rpc::call(‘UserMgmt’, ‘authUser’, Array, Array, 2, true)
    #1 [internal function]: OMVRpcServiceSession->login(Array, Array)
    #2 /usr/share/php/openmediavault/rpc/ call_user_func_array(Array, Array)
    #3 /usr/share/php/openmediavault/rpc/ OMV\Rpc\ServiceAbstract->callMethod(‘login’, Array, Array)
    #4 /usr/share/php/openmediavault/rpc/proxy/ OMV\Rpc\Rpc::call(‘Session’, ‘login’, Array, Array, 3)
    #5 /var/www/openmediavault/rpc.php(45): OMV\Rpc\Proxy\Json->handle()
    #6 {main}”

  7. Thanks a lot for these posts about ODROID XU4, very helpful! I was able to upgrade my OMV by reading this post.
    I want to ask you something else, how do I update my ODROID’s kernel to latest 3.10.104? Is it recommended? When I use Ubuntu 16.04 LTS, apt-get command does it automatically but OMV doesn’t.
    I’m korean, sorry for my un-fluent English 🙂

    1. Okay.. I finally found odroid-utility to update my kernel, I think it will works well on my odroid as I expected.
      Thanks anyway, keep your posting on 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.