Whats it 'like'?


#1

I currently have a Raspberry Pi B that I’ve been running OSMC from for ever…
Recently purchased a Vero 4k to up my game and looking to set it up and migrate over as I run some home automation stuff on it.

Reading about I think it’s armhf by default and arm64 if you load it?

For ease of reading tutorials and selecting what to use what is Vero 4K most like hardware wise?
Is it the same architecture as a raspberry pi for purposes of following tutorials?


#2

Vero 4K has a 64-bit kernel, but armhf userland, so software that works on Pi 2/3 will work on Vero 4K.

As always, if you have problems getting something to work just let us know.

Sam


#3

Thanks Sam,
I’ll go down the Raspberry Pi install/troubleshooting route as I go :slight_smile:


#4

A couple of things that may be different:

  • VNC (different capture mode)
  • Some peripherals like touch screens etc.

#5

Going to sound daft but what’s ‘userland’?

I’m tryingt to install Domoticz from https://www.domoticz.com/downloads/ using the command Raspberry Pi/Ubuntu installation: ‘sudo curl -L install.domoticz.com | bash’ which runs fine and installs correctly but then doesn’t run, looking through the install logs it looks like the install is detecting the OS/Architecture and downloads the Arm64 domoticz_linux_aarch64.tgz version.

Is this correct?


#6

No — you want the armhf / armv7 version
Some auto detection scripts can get confused

Sam


#7

Is there any way to fool it automatically?

I can manually install the armhf version but as soon as it updates it detects Arm64 and converts it all to this :frowning: I guess I can turn off automatic updates but then have to manually update each time.

Or does their script need a better detection process?


#8

Their script needs fixing ideally
Setarch might be able to work but depends how they’ve written it


#9

The domoticz update script (quite reasonably) uses the value returned from running uname -m. The Vero4K returns a value of aarch64, whereas the Pi returns either armv7l or armv6l, depending on architecture.

Unfortunately, the value of aarch64 returned by the Ver04K is positively unhelpful since all userland applications should be either armv6l or armv7l. Similarly, we cannot use setarch armv7l on the Vero4K because it doesn’t recognise it as being a valid architecture:

osmc@osmc-4k:~$ setarch armv7l uname -m
setarch: armv7l: Unrecognized architecture
osmc@osmc-4k:~$ setarch --list
uname26
linux32
linux64
aarch64

and prefixing the command with setarch linux32 also doesn’t help, with uname -m returning a value of armv8l that setarch doesn’t recognise:

osmc@osmc-4k:~$ setarch linux32 uname -m
armv8l
osmc@osmc-4k:~$ setarch armv8l uname -m
setarch: armv8l: Unrecognized architecture

Unless you really want uname -m to return a value of aarch64, it might be better to create a wrapper on the Vero4K for /bin/uname, much like you do for apt-get.


#10

This is already done for toolchain:

I don’t think it’s appropriate for userland.


#11

Care to elaborate? Returning a value of aarch64 seems to be positively unhelpful for userland apps.


#12

It would completely break DVB et al.
It would also make it difficult to run aarch64 binaries, which can be necessary (also part of the update system)

For Netflix / Amazon (widevine) I’ve patched Kodi accordingly to return the value it expects.

Sam


#13

I see. Is there any reason why setarch can’t be fixed to allow the armv7l architecture?


#14

I think Debian would expect it to be armv8l.


#15

Ok not sure what the outcome is from the above conversation but managed to get it working.

Essentially ran the install script then extracted the Arm7l version over the top and it works.
I’ve disabled auto update and will need to perform the same extract over the top to update :slight_smile:


#16

Getting around this is quite easy. You just need to modify the install script

first download it:

curl -L https://install.domoticz.com > installstuff.sh

then edit it

nano installstuff.sh

Then find the line that says

if [ ${MACH} = “armv6l” ]

and change to

if [ ${MACH} = “aarch64” ]

then ctrl+o to save, yes to confirm.
Set executable

chmod +x installstuff.sh

run the script

sudo ./installstuff.sh

Away you go. No need to worry about what uname -m returns then


#17

This post hasn’t received a reply for about 7 months.
I think any issues are solved now.

Sam


#18

Well I had the issue tonight and this is how I solved it :slight_smile: