1

I am using the Raspberry Pi 3 Model B (64 bit) and I'd like to run a TeamSpeak 3 server on it. Since there is a 64 bit version available , it shouldn't be a problem, right?

The server even seems to start, as suggested by this message (if you ignore the second line):

Starting the TeamSpeak 3 server
./ts3server: 1: ./ts3server: Syntax error: Unterminated quoted string
TeamSpeak 3 server started, for details please view the log file

After this, nothing else is output. The problem is I'm unable to find the log file anywhere and ps x tells me the server is not even running...
I should probably note that I get a different output trying to start the server from the root user:

Starting the TeamSpeak 3 server
./ts3server: 1: ./ts3server: Syntax error: Unterminated quoted string
TeamSpeak 3 server could not start

Can someone explain what is happening here (and maybe how to fix it)? Thanks!

0

1 Answer 1

1

An ISA is more than just an instruction/address size. ARMv8, aka. aarch64, is not the same as x86-64, which is what the TeamSpeak binaries will be for (tangential to this, the system libraries on almost all Pi distros are 32-bit anyway, with which the Pi 3 is backward compatible, but it means you will not be able to run dynamically linked 64-bit binaries).

The fact that it seems to start is simply indicative of the fact that a start-up script is used.

I had a peek in the linux download from the page you linked.

> file ts3server 
ts3server: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.8, stripped
                                      ^^^^^^

That's no good. The script the error is being thrown from is ts3server_startscript.sh.

echo "Starting the TeamSpeak 3 server"
if [ -e "$BINARYNAME" ]; then
        if [ ! -x "$BINARYNAME" ]; then
                echo "${BINARYNAME} is not executable, trying to set it"
                chmod u+x "${BINARYNAME}"
        fi
        if [ -x "$BINARYNAME" ]; then
                export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}"                                      
                "./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null &
                PID=$!
                ps -p ${PID} > /dev/null 2>&1
                if [ "$?" -ne "0" ]; then
                        echo "TeamSpeak 3 server could not start"
                else
                        echo $PID > ts3server.pid
                        echo "TeamSpeak 3 server started, for details please view the log file"
                fi
        else
                echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 server"
        fi

Note the fail being caught. If you try to run that directly on a pi, you will probably get:

Failed to execute process './ts3server'. Reason:
exec: Exec format error
The file './ts3server' is marked as an executable but could not be run by the operating system.
1
  • Thanks, but I'm still wondering where the output ./ts3server: 1: ./ts3server: Syntax error: Unterminated quoted string is coming from, because the startup script does not contain anything like this?
    – Gherkay
    Mar 6, 2017 at 13:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.