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.
- Make a backup of your current installation!
- Make sure your system is up-to date by running: apt-get update && apt-get upgrade
- Reboot
- Uninstall all plugins including the OMV-Extras package
- Before you upgrade you should change your
boot.ini
and/etc/fstab
.
Mount your boot partition like this:mkdir /media/boot mount /dev/mmcblk0p1 /media/boot
- Then edit your
/media/boot/boot.ini
and change ro to rw in the setenv line. The line should look like below:setenv bootrootfs "console=tty1 console=ttySAC2,115200n8 root=UUID=<YOUR_ROOTFS_UUID> rootwait rw fsck.repair=yes"
- Record your rootfs UUID
- Afterwards edit your
/etc/fstab
and add the following above the openmediavault volumes:# UNCONFIGURED FSTAB FOR BASE SYSTEM UUID=<YOUR_ROOTFS_UUID> / ext4 errors=remount-ro,noatime,nodiratime 0 1 # >>> [openmediavault] [...]
- Finally run omv-release-upgrade and reboot afterwards
- Now you can install the OMV-Extras package for OMV 3 and your plugins again:
wget dpkg -i openmediavault-omvextrasorg_latest_all3.deb apt-get update
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 cpufreq@vger.kernel.org, please.
analyzing CPU 4:
no or unknown cpufreq driver is active on this CPU
maximum transition latency: 0.00 ms.
root@odroid:~#
It seems that cpu4~7 can’t be enabled. Can you help me please?
Throttling issue, but… why? Without touching anything on the device, it went about 60ºC with omv2.
Try to update your kernel to newest 4.9 kernel. Backup your SD before you do so!
You can use this script: https://gist.github.com/Obihoernchen/28c02a8eeb37f816b4f3e9ea6f150f42
If you use eMMC you have to change the device path.
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.
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
CPU SOCKET CORE ONLINE MAXMHZ MINMHZ
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
125000
mhh something is really strange in your setup.
Please backup your SD card or use another SD card and install the following image: https://sourceforge.net/projects/openmediavault/files/Odroid-XU3_XU4/OMV_3_0_76_Odroidxu4_4.9.28.7z/download
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.
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.
Working like a charm. How can I put in OMV3 the graphs about cpufreq & cputemp? The scripts from OMV2 shows broken graphs.
Hmm it should just work. I’m using it as well with omv 3 on 2 Odroids.
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/process.inc:175
Stack trace:
#0 /usr/share/openmediavault/engined/rpc/rrd.inc(54): OMV\System\Process->execute(Array)
#1 /usr/share/php/openmediavault/rpc/serviceabstract.inc(528): OMVRpcServiceRrd->{closure}(‘/tmp/bgstatusCr…’, ‘/tmp/bgoutputVs…’)
#2 /usr/share/openmediavault/engined/rpc/rrd.inc(56): OMV\Rpc\ServiceAbstract->execBgProc(Object(Closure))
#3 [internal function]: OMVRpcServiceRrd->generate(NULL, Array)
#4 /usr/share/php/openmediavault/rpc/serviceabstract.inc(124): call_user_func_array(Array, Array)
#5 /usr/share/php/openmediavault/rpc/rpc.inc(86): OMV\Rpc\ServiceAbstract->callMethod(‘generate’, NULL, Array)
#6 /usr/sbin/omv-engined(536): OMV\Rpc\Rpc::call(‘Rrd’, ‘generate’, NULL, Array, 1)
#7 {main}
DAMN! Rebooted and working (?) Sorry for the extensive comments
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!
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.
Thanks!
Will try then and see what happens :-).
Hi, thank you again for your posts.
Recently, since official Linux kernel 4.9 for ODROID XU4 is published by Hardkernel, I installed latest Ubuntu 16.04.2 LTS image linked here: https://forum.odroid.com/viewtopic.php?f=146&t=26007&sid=90c9beeb2ff80a9ae681df2904387cea
And I wonder if it needs your ‘awesome’ tweaks. CPU governor, IRQ Turning, …
Can you answer that?
Thanks.
Okay, I think it needs your tweaks and I applied it.
Thank you!
Yes it’s useful for 4.9 as well but you need slightly different paths, IRQs etc.
I’ll try to update the post once I have some time.
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.
Thanks a lot for your post , i managed to upgrade to Erasmus using your tutorial.
Just got my XU4 home want to put OMV on it tried:
omv_xu3_xu4_3.0.64.img.gz
but my unit will not boot? just the blue led flashing?
Use Win32DiskImager-odroid-v1.3 to burn the image to the SD card. Any advice…
https://sourceforge.net/projects/openmediavault/files/Odroid-XU3_XU4/
Hmm never tried the OMV3 image. Did you try something else?
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.
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.
Worked perfectly, thanks!!!
Many thanks for this series of posts regarding OMV + ODROID
Finally, I have an excellent replacement for my old NAS – WD ShareSpace
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.
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/rpc.inc:138
Stack trace:
#0 /var/www/openmediavault/rpc/session.inc(56): OMV\Rpc\Rpc::call(‘UserMgmt’, ‘authUser’, Array, Array, 2, true)
#1 [internal function]: OMVRpcServiceSession->login(Array, Array)
#2 /usr/share/php/openmediavault/rpc/serviceabstract.inc(124): call_user_func_array(Array, Array)
#3 /usr/share/php/openmediavault/rpc/rpc.inc(84): OMV\Rpc\ServiceAbstract->callMethod(‘login’, Array, Array)
#4 /usr/share/php/openmediavault/rpc/proxy/json.inc(95): OMV\Rpc\Rpc::call(‘Session’, ‘login’, Array, Array, 3)
#5 /var/www/openmediavault/rpc.php(45): OMV\Rpc\Proxy\Json->handle()
#6 {main}”
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 🙂
Hey,
thank you 🙂
Yes unfortunately the newest kernel is not in the repositories. But you can use my build which is version 3.10.104 ftp://vserver.obihoernchen.net/ODROID-XU4-KERNEL/
Use this script to install it: https://gist.github.com/Obihoernchen/28c02a8eeb37f816b4f3e9ea6f150f42
I couldn’t see your reply 🙂
Thank you!
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 🙂
It didn’t work for me, so be careful. That’s why I’ve created my own.
In any case keep a backup of your boot partition!