Support for ARMv8 as well as ARMv7? [Coming in 1.3]

I have a RPI2 (works w. roon bridge), a cubox-i (works w. roon bridge), an old RPI1 mod B with hifiberry digi (does not work) and a new Odroid C2 (does not work). I assume older chipsets are not going to be supported, but what about the new ones (armv8)?
I am sure that I can use these for other purposes as well, but I would like to have support for using these as roon-raat devices like I do with the RPI2 and Cubox-I. Is there a plan to make a http://download.roonlabs.com/builds/roonbridge-installer-linuxarmv8hf.sh so that we could use the same guide for armv8 devices as well?

5 Likes

:joy: funny you should ask. @brian’s going to think I put you up to it. I’m running Roon Bridge on an ODROID C2 using chroot in which I installed the armv7 binaries and Roon Bridge. Works a treat but haven’t gotten as far as launching automatically, so used ssh from my desktop pc to chroot and start Roon Bridge.

+1 though on an armv8 build of Roon Bridge…it’ll happen if there’s sufficient demand.

3 Likes

My guess is that it is very likely to happen and the timing may depend on numbers who support the request. No public announcement as yet.

3 Likes

That’s good to know. An AArch64 build would be nice as there is little use in buying armv7 devices now armv8 processors are available.

1 Like

I’d also like to see this happening.
I am close to trying installing a 32-bit distro while waiting for the Roon armv8 binaries.

I’m still figuring out how to get the chroot session started up automatically on boot. I’m close, but not quite there yet.

That shouldn’t be difficult, provided there’s time away from work/family, of course. I remember setting up jails in FreeBSD and loading on startup.
I think Linux should support jails, but maybe what you need is just time - not a new approach :slight_smile:

The main reason I’m waiting for native implementation is because I’d like to make PiCorePlayer work with Odroid C2.
Currently my setup is as follows:

  1. Removed all services that are not needed, such as Web Server, LMS, etc.
  2. Installed ROON manually.
  3. DAM 1021 connected directly to RPi2 via I2S.

The big benefit is that all is in memory with tinycore linux and when I switch my DAC off, there is no chance of messing up the file system. Plus, booting takes mere seconds.

I was hoping to achieve the same with the ODROID C2, but having beefier hardware and then I wanted to figure out how to provide master clock from my DAC to the ODROID.

I’ve purchased two C2’s to use as Roon Endpoints and will likely buy a 3rd in due course. I love the fact they’re low power, fast and have a great form factor. The board size and layout on the Wandboards I had before left a lot to be desired iro cable management and footprint. With the C2’s both are great so they’re unobtrusive.

For some reason systemd-nspawn isn’t working as intended and I’ve run out of ideas getting the container to boot so I’ll keep loading it manually till there’s an aarch64 build of Roon Bridge. Running it manually though means having to have a desktop PC running to keep the terminal session running.

/opt/RoonBridge/start.sh & disown doesn’t do the trick because exiting the terminal kills the chroot

Can you use screen?
That should theoretically solve the killing of the process, if I’m not mistaken.

BTW, I’m decent with Linux myself, but I have access to some really great sysadmins: if you give me an image of what you have… perhaps I can have them help us resolve it.

So I made it work.
Quick info: one needs the hybrid 32-bit edition from ODROBIAN Jessie (64bit) & (32bit).
This is the direct download link as of today.

Full solution (I may be missing some steps, because I’m reproducing it from memory):

  1. After booting the new distro, login as root/odrobian.
  2. Execute
    apt-get install curl
  3. Execute
    apt-get install libasound2
  4. Download the ROON BRIDGE automatic install script. Here comes the fun part:
    This is a bit of hacking, because we disregard the machine-reported architecture, but it’s OK if you use the distribution I pointed to.
    Search for this line:
    ``MACHINE_ARCH=uname -m``` For me it is on line 15 Replace it withMACHINE_ARCH=armv8`
    Follow the rest of the instructions in the Knowledge base

Let me know if it doesn’t work.

2 Likes

Running Arch Linux, no multilib in the Arm builds.

This is on @danny’s to-do list, but I don’t have a firm release date for it yet.

2 Likes

That’s great to know as it turns out systemd-nspawn is failing because of a bug related to the Arch Arm kernel on the C2. From what I’ve read compiling for aarch64 should be pretty painless.

Thanks for the guide. Got it working. I had to do apt-get install bzip2

Edit: looking forward to a install package for the armv8 from the roon-boys though. Should be good :slight_smile:

@danny, any hints re timing of the armv8 build?

I would love native binaries for the C2.

Yip, you’re not alone. They’ll appear when they’re ready I guess.

hi all,
@evand - thanks for your tips - they have been more then helpfiull !
I think i discovered little bit easier way … as Odrobian is not really maintaned anymore … i played with various distro’s to see what would be better alternative. Was on a same path to see how on 64bit linux i can chroot into 32bit environment and run Roon Bridge there. … then i read couple of articles that suggested if one had 32-bit libraries, 32-bit binaries could run with no modicications.
Tried latest minimal ubuntu 16.04 on Odroid-C2 and running either squeezelite … had pops with USB … which was very odd. Guess latest kernel/build have broken something.
Then i tried Armbian Ubuntu Xenial … recompiled squeezelite - all working great !!! I like to have both squeezelite and roonbridge and switch between them… Download this distribution here: (click on Xenial) Download Xenial Ubuntu and install as per usual (read instructions)

And then key pieces to have Roon Bridge run as well:
login to Odroid-C2 and :


sudo dpkg --add-architecture armhf
sudo apt-get update
sudo apt-get install libasound2:armhf
wget http://download.roonlabs.com/builds/roonbridge-installer-linuxarmv7hf.sh
chmod +x roonbridge-installer-linuxarmv7hf.sh

edit roonbridge-installer-linuxarmv7hf.sh as per @evand instructions (make line 15 look like this):

MACHINE_ARCH=armv8

and then run installer


sudo ./roonbridge-installer-linuxarmv7hf.sh

#Smile :smile:

2 Likes

Glad you came right. Unfortunately I can’t do the same with ArchLinuxArm as it doesn’t have 32 bit libs in the 64 bit build.

yup. but there might be other people who want to run Roon Bridge on Odroid-C2 and this is as easy as it gets, and works perfect … eventually other distro’s will have libraries for 32-bit compatibility and even Roon labs making armv8/64bit roon code available.
I am pretty impressed with Odroid-C2 - Roon flies and I’ve been using Squeezelite as well with dynamic/realtime upsampling … up to 192kHz for all sources as well as including DSD (64/128/256) and even those in spite of spikes in CPU utilisation do not cause any clicks/pops … so pretty powerful little inexpensive Roon EndPoint !
:slight_smile: