X86 32 bit Linux RoonBridge still possible? [Resolved]

Hi @Extra_Fidelity (and others affected by this issue),

Can we please ask you to run these two commands in terminal on the machine you are trying to install RoonBridge on and share the output with us?

uname -m
uname -a

It will be a week or so before I have access to that hardware. In the meantime I looked at the 32 bit .sh and noticed that it does not check for that platform.
esac

#
# Check for proper architecture
#
case "$MACHINE_ARCH" in
    armv7*)
        if [ x$ARCH = xarmv7hf ]; then OK=1; fi
        ;;
    aarch64*)
        if [ x$ARCH = xarmv8 ]; then OK=1; fi
        if [ x$ARCH = xarmv7hf ]; then OK=1; fi
        ;;
    x86_64*)
        if [ x$ARCH = xx64 ]; then OK=1; fi 
        ;;

esac

Can you test or comment on my edited .sh where I added a check for x86_32 please?
esac

#
# Check for proper architecture
#
case "$MACHINE_ARCH" in
    armv7*)
        if [ x$ARCH = xarmv7hf ]; then OK=1; fi
        ;;
    aarch64*)
        if [ x$ARCH = xarmv8 ]; then OK=1; fi
        if [ x$ARCH = xarmv7hf ]; then OK=1; fi
        ;;
    x86_64*)
        if [ x$ARCH = xx64 ]; then OK=1; fi 
        ;;
    x86_32*)
        if [ x$ARCH = xx32 ]; then OK=1; fi 
        ;;
esac

I believe it should be x86* and not x86_32* (same as the ARCH statement in the beginning of the script). You also need to do the same change at the uninstall section further down the file.
If the binaries are 32bit it should work.

EDIT: the output of this should tell you what to use:

uname -m

uname -m

i686

uname -a

Linux lubuntu 4.18.0-25-generic #26~18.04.1-Ubuntu SMP Thu Jun 27 07:27:34 UTC 2019 i686 i686 i686 GNU/Linux

1 Like

You want to use arch from the shell, e.g.

$ arch
x86_64

i686 = 32 bit

Yes, I know … my point was to check the architecture using arch (or uname -p.) This gives the processor family whereas uname -m may give a different result since this information comes from the kernel.

That still yields i686. All of the posts above have confirmed the CPU identification as 32 bit.

Since the current version of the 32 bit script is missing the check and allow commands for 32 bit it fails. Currently I am focused on that error but need your expert help fixing it.

I will try to edit the script with the suggestions from ogs above while I wait for a reply from support.

Then I will have to figure out the commands to place and run the script locally.

You’ll need to replace your x86_32*) in the case statement with xi686*). This is matching the output of uname -m with one of the options.

Also, uname -m is correct in this instance because the check is to see if the OS is 32 bit (there are times when a 64 bit OS could have a 32 bit OS installed.)

I have been reading about the output of uname -m and I see what you mean in your last statement.

Before this arrived I edited a version using x86* but have not tested it.

I will now make a version with xi686*

If you don’t mind I could use some help with the proper commands to run the new .sh script. I need to move it to that machine and run it there I assume.

I have already installed the other items you sent to me 11 days ago successfully.

Thanks!

No need to copy the file, simply ssh to your Linux box and do the following from the home directory

  • curl -O http://download.roonlabs.com/builds/roonbridge-installer-linuxx86.sh to download
  • nano roonbridge-installer-linuxx86.sh and edit the file by adding the additional line–move to the first case Ctrl-k to cut, Ctrl-u to paste lines and then edit
  • chmod +x roonbridge-installer-linux86.sh to make the file executable
  • sudo ./roonbridge-installer-linux86.sh to run the script

PS. Sorry about edits; I’m tired and not concentrating.

Martin, I know how you feel. I will give this a try after my nap. :slight_smile:

Error: This package is intended for x86 platforms. It is not compatible with your machine. Exiting.

I edited a script and added the line to both the install and uninstall statements. Tried two different lines using i686 in one and x86* in the other. Both scripts failed.

Both of these failed:

  x86*)
        if [ x$ARCH = x86 ]; then OK=1; fi         
esac

i686*)
        if [ x$ARCH = i686 ]; then OK=1; fi         
esac

Did you edit exactly like Martin advised?

You’ll need to replace your x86_32*) in the case statement with xi686*)

EDIT:

i686*)
        if [ x$ARCH = xi686 ]; then OK=1; fi         
esac

Or maybe this will work?

    #
    # Check for proper architecture
    #
    case "$MACHINE_ARCH" in
        armv7*)
            if [ x$ARCH = xarmv7hf ]; then OK=1; fi
            ;;
        aarch64*)
            if [ x$ARCH = xarmv8 ]; then OK=1; fi
            if [ x$ARCH = xarmv7hf ]; then OK=1; fi
            ;;
        x86*)
            if [ x$ARCH = xx86 ]; then OK=1; fi
            if [ x$ARCH = xi686 ]; then OK=1; fi			
            ;;
    esac

That tricky little x. I caught x missing in linux86.sh but then I left it out of xi686.

I just tested with both of your statements by carefully using copy/paste. Both yielded the same error message about compatibility.

Noris, did you see my reply to your request?

Hmm problem is I do not have a 32bit Linux machine here so I can’t test. Besides my scripting skills are not top after not doing it for many years…

What happens if you remove all the arm stuff and the line with xx86 and only have this left?

    #
    # Check for proper architecture
    #
    case "$MACHINE_ARCH" in
        x86*)
            if [ x$ARCH = xi686 ]; then OK=1; fi			
            ;;
    esac
1 Like

Hi @Extra_Fidelity,

Thank you for sharing the uname -m and uname -a output, I have forwarded both of these to the QA team. I am still waiting to hear back from them regarding additional feedback for this case, as soon as I have any further details to share I will be sure to let you know.

1 Like

If I get the time I’ll fire-up an old netbook and and try the script myself. No promises though! :slight_smile:

1 Like