why is RUST so popular?

one surely does not want metal to rust… it’s named after a fungi.

„Rust is named after a fungus that is robust, distributed, and parallel.

It is also a substring of „robust“.“ (src)

https://www.quora.com/Why-is-Rust-becoming-popular (he really should write a book about it – or make a 1h video with hands on… way better 😉 (don’t forget the small and big victory celebration dances)

RUST up for ARM

yes it compiles on x86 and yes it runs on Debian Jessie 8 for arm on ODROID XU4. (Exynos5 Octa ARM Cortex A15 2Ghz produced by Samsung (4x ARM Cortex A15 MPCore (32Bit) implementing the ARMv7-A architecture) and 4x Cortex-A7 1.3GHz (ARM Cortex-A7 MPCore (32Bit) implementing the ARMv7-A architecture announced in 2011.)

hostnamectl 
   Static hostname: gamestation-turbo
         Icon name: computer
           Chassis: n/a
  Operating System: Debian GNU/Linux 8 (jessie)
            Kernel: Linux 3.10.106+
      Architecture: arm

odroid xu4 hardware cpuinfo.txt

why it says „xu3“ at the bottom of cpuinfo.txt one does not know (it’s a xu4)

# for example this CPU:
processor	: 0
model name	: ARMv7 Processor rev 3 (v7l)
BogoMIPS	: 36.00
Features	: half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xc07
CPU revision	: 3

hostnamectl; # tested on (DON'T YOU DARE TO FORGET THIS!)
   Static hostname: debian
         Icon name: computer-vm
    Virtualization: oracle
  Operating System: Debian GNU/Linux 9 (stretch)
            Kernel: Linux 4.9.0-9-amd64
      Architecture: x86-64

su - root; # become root and simulate a proper login or env variables not set (!? why now? su was enough in Debian 8)

# and the right C compiler
apt install gcc-arm-linux-gnueabihf; # install gcc arm compiler
dpkg -l|grep gcc; # check what was installed
ii  gcc                                   4:6.3.0-4                         amd64        GNU C compiler
ii  gcc-6                                 6.3.0-18+deb9u1                   amd64        GNU C compiler
ii  gcc-6-arm-linux-gnueabihf             6.3.0-18cross1                    amd64        GNU C compiler
ii  gcc-6-arm-linux-gnueabihf-base:amd64  6.3.0-18cross1                    amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-6-base:amd64                      6.3.0-18+deb9u1                   amd64        GCC, the GNU Compiler Collection (base package)
ii  gcc-6-cross-base                      6.3.0-18cross1                    all          GCC, the GNU Compiler Collection (library base package)
ii  gcc-arm-linux-gnueabihf               4:6.3.0-4                         amd64        GNU C compiler for the armhf architecture
ii  libgcc-6-dev:amd64                    6.3.0-18+deb9u1                   amd64        GCC support library (development files)
ii  libgcc-6-dev-armhf-cross              6.3.0-18cross1                    all          GCC support library (development files)
ii  libgcc1:amd64                         1:6.3.0-18+deb9u1                 amd64        GCC support library
ii  libgcc1-armhf-cross                   1:6.3.0-18cross1                  all          GCC support library
ii  linux-compiler-gcc-6-x86              4.9.168-1+deb9u4                  amd64        Compiler for Linux on x86 (meta-package)

Ctrl+D; # exit to non-root user prompt

cd ~; # go home!

curl https://sh.rustup.rs -sSf | sh; # install rust (no need to be rude)
# press 1 to install

rustup target add armv7-unknown-linux-gnueabihf; # add the toolchain for Rust

# need to add build target
# so that rust knows which linker to use
vim ~/.cargo/config
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-gcc-6"
:wq # write and quit in vim

# Rust package manager pulls hello world sources nice ;)
cargo new hello-rpi --bin
cd hello-rpi
# do the actual compilation
cargo build --target=armv7-unknown-linux-gnueabihf
    Finished dev [unoptimized + debuginfo] target(s) in 0.01s :)

# check file type
file target/armv7-unknown-linux-gnueabihf/debug/hello-rpi
ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=347dfe809f02be733ef01976c397606dadbd3c7e, not stripped
# do a little victory dance, to celebrate the acchievement :)

ArmBian: https://forum.odroid.com/viewtopic.php?f=96&t=24309

Android

Ubuntu

Other OS (ArmBian)

Debian Based Gaming Station! OGST-XU4

ONE IS RUSTING OUT 🙂

inspired by: https://hackernoon.com/compiling-rust-for-the-raspberry-pi-49fdcd7df658

what other multilibs are there?

apt search multilib
Sorting… Done
Full Text Search… Done
g++-6-multilib/oldstable,oldstable 6.3.0-18+deb9u1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-mips-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-mips64-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-mips64el-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-mipsel-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-powerpc-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-powerpc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-s390x-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-6-multilib-sparc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C++ compiler (multilib support)

g++-multilib/oldstable 4:6.3.0-4 amd64
GNU C++ compiler (multilib files)

g++-multilib-mips-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the mips architecture

g++-multilib-mips64-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the mips64 architecture

g++-multilib-mips64el-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the mips64el architecture

g++-multilib-mipsel-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the mipsel architecture

g++-multilib-powerpc-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the powerpc architecture

g++-multilib-powerpc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the ppc64 architecture

g++-multilib-s390x-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the s390x architecture

g++-multilib-sparc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C++ compiler for the sparc64 architecture

gcc-6-multilib/oldstable,oldstable 6.3.0-18+deb9u1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-mips-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-mips64-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-mips64el-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-mipsel-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-powerpc-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-powerpc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-s390x-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-6-multilib-sparc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU C compiler (multilib support)

gcc-multilib/oldstable 4:6.3.0-4 amd64
GNU C compiler (multilib files)

gcc-multilib-mips-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C compiler for the mips architecture

gcc-multilib-mips64-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU C compiler for the mips64 architecture

gcc-multilib-mips64el-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU C compiler for the mips64el architecture

gcc-multilib-mipsel-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C compiler for the mipsel architecture

gcc-multilib-powerpc-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C compiler for the powerpc architecture

gcc-multilib-powerpc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C compiler for the ppc64 architecture

gcc-multilib-s390x-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C compiler for the s390x architecture

gcc-multilib-sparc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU C compiler for the sparc64 architecture

gccgo-6-multilib/oldstable,oldstable 6.3.0-18+deb9u1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-mips-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-mips64-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-mips64el-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-mipsel-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-powerpc-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-powerpc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-s390x-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-6-multilib-sparc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Go compiler (multilib support)

gccgo-multilib/oldstable 4:6.3.0-4 amd64
Go compiler, based on the GCC backend (multilib files)

gccgo-multilib-mips-linux-gnu/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the mips architecture

gccgo-multilib-mips64-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the mips64 architecture

gccgo-multilib-mips64el-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the mips64el architecture

gccgo-multilib-mipsel-linux-gnu/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the mipsel architecture

gccgo-multilib-powerpc-linux-gnu/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the powerpc architecture

gccgo-multilib-powerpc64-linux-gnu/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the ppc64 architecture

gccgo-multilib-s390x-linux-gnu/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the s390x architecture

gccgo-multilib-sparc64-linux-gnu/oldstable 4:6.3.0-4 amd64
Go compiler (based on GCC) for the sparc64 architecture

gdc-6-multilib/oldstable,oldstable 6.3.0-18+deb9u1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-mips-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-mips64-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-mips64el-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-mipsel-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-powerpc-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-powerpc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-s390x-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-6-multilib-sparc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU D compiler (version 2, multilib support)

gdc-multilib/oldstable 4:6.3.0-4 amd64
D compiler (language version 2) (multilib files)

gdc-multilib-mips-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the mips architecture

gdc-multilib-mips64-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the mips64 architecture

gdc-multilib-mips64el-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the mips64el architecture

gdc-multilib-mipsel-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the mipsel architecture

gdc-multilib-powerpc-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the powerpc architecture

gdc-multilib-powerpc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the ppc64 architecture

gdc-multilib-s390x-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the s390x architecture

gdc-multilib-sparc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU D compiler (based on GCC) for the sparc64 architecture

gfortran-6-multilib/oldstable,oldstable 6.3.0-18+deb9u1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-mips-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-mips64-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-mips64el-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-mipsel-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-powerpc-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-powerpc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-s390x-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-6-multilib-sparc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Fortran compiler (multilib support)

gfortran-multilib/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler (multilib files)

gfortran-multilib-mips-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the mips architecture

gfortran-multilib-mips64-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the mips64 architecture

gfortran-multilib-mips64el-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the mips64el architecture

gfortran-multilib-mipsel-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the mipsel architecture

gfortran-multilib-powerpc-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the powerpc architecture

gfortran-multilib-powerpc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the ppc64 architecture

gfortran-multilib-s390x-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the s390x architecture

gfortran-multilib-sparc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Fortran 95 compiler for the sparc64 architecture

gobjc++-6-multilib/oldstable,oldstable 6.3.0-18+deb9u1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-mips-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-mips64-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-mips64el-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-mipsel-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-powerpc-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-powerpc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-s390x-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-6-multilib-sparc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C++ compiler (multilib support)

gobjc++-multilib/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler (multilib files)

gobjc++-multilib-mips-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the mips architecture

gobjc++-multilib-mips64-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the mips64 architecture

gobjc++-multilib-mips64el-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the mips64el architecture

gobjc++-multilib-mipsel-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the mipsel architecture

gobjc++-multilib-powerpc-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the powerpc architecture

gobjc++-multilib-powerpc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the ppc64 architecture

gobjc++-multilib-s390x-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the s390x architecture

gobjc++-multilib-sparc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C++ compiler for the sparc64 architecture

gobjc-6-multilib/oldstable,oldstable 6.3.0-18+deb9u1 amd64t
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-mips-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-mips64-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-mips64el-linux-gnuabi64/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-mipsel-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-powerpc-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-powerpc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-s390x-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-6-multilib-sparc64-linux-gnu/oldstable 6.3.0-18cross1 amd64
GNU Objective-C compiler (multilib support)

gobjc-multilib/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler (multilib files)

gobjc-multilib-mips-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the mips architecture

gobjc-multilib-mips64-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the mips64 architecture

gobjc-multilib-mips64el-linux-gnuabi64/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the mips64el architecture

gobjc-multilib-mipsel-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the mipsel architecture

gobjc-multilib-powerpc-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the powerpc architecture

gobjc-multilib-powerpc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the ppc64 architecture

gobjc-multilib-s390x-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the s390x architecture

gobjc-multilib-sparc64-linux-gnu/oldstable 4:6.3.0-4 amd64
GNU Objective-C compiler for the sparc64 architecture

admin