Steam Link

Steam Link

Struggling with RetroArch compile
cd steamlink-sdk/examples git clone https://github.com/libretro/RetroArch cd RetroArch source ../../setenv.sh

First issue I run across is that it doesn't like the way the setenv sets the compiler variables

set | grep arm AS=armv7a-cros-linux-gnueabi-as CC='armv7a-cros-linux-gnueabi-gcc --sysroot=/home/parker/build/steamlink-sdk/rootfs -marm -mfloat-abi=hard' CPP='armv7a-cros-linux-gnueabi-cpp --sysroot=/home/parker/build/steamlink-sdk/rootfs -marm -mfloat-abi=hard' CROSS=armv7a-cros-linux-gnueabi- CROSS_COMPILE=armv7a-cros-linux-gnueabi- CXX='armv7a-cros-linux-gnueabi-g++ --sysroot=/home/parker/build/steamlink-sdk/rootfs -marm -mfloat-abi=hard' SOC_BUILD=armv7a-cros-linux-gnueabi STEAMLINK_CONFIGURE_OPTS=$'--host=armv7a-cros-linux-gnueabi \t--prefix=/usr \t--sysconfdir=/etc \t--localstatedir=/var \t--with-sysroot=/home/parker/build/steamlink-sdk/rootfs' STRIP=armv7a-cros-linux-gnueabi-strip ./configure --disable-x11 --disable-pulse --disable-ffmpeg --enable-opengles --enable-floathard --enable-sdl2 --disable-shaderpipeline Checking operating system ... Linux Checking for suitable working C compiler ... armv7a-cros-linux-gnueabi-gcc --sysroot=/home/parker/build/steamlink-sdk/rootfs -marm -mfloat-abi=hard does not work Error: Cannot proceed without a working C compiler.

If I fix those to be only the binary command and move the arguments into CFLAGS, configure continues.

./configure --disable-x11 --disable-pulse --disable-ffmpeg --enable-opengles --enable-floathard --enable-sdl2 --disable-shaderpipeline Checking operating system ... Linux Checking for suitable working C compiler ... armv7a-cros-linux-gnueabi-gcc works Checking for suitable working C++ compiler ... armv7a-cros-linux-gnueabi-g++ works Checking for pkg-config ... none Warning: pkg-config not found, package checks will fail. Checking for availability of switch -std=gnu99 in armv7a-cros-linux-gnueabi-gcc ... yes Checking for availability of switch -Wno-unused-result in armv7a-cros-linux-gnueabi-gcc ... yes Checking for availability of switch -Wno-unused-variable in armv7a-cros-linux-gnueabi-gcc ... yes Checking function bcm_host_init in -lbcm_host ... no Checking function sd_get_machine_names in -lsystemd ... no Checking presence of package egl ... no Checking existence of -lEGL ... no Checking function ass_library_init in -lass ... no Checking function pthread_create in -lpthread ... yes Checking function pthread_key_create in -lpthread ... yes Checking function dlopen in -ldl ... yes Checking function socket in -lc ... yes Checking function getaddrinfo in -lc ... yes Checking existence of -lminiupnpc ... no Checking function fcntl in -lc ... yes Checking function getopt_long in -lc ... yes Checking presence of package alsa ... no Checking presence of header file sys/soundcard.h ... yes Checking presence of header file soundcard.h ... no Checking existence of -lossaudio ... no Checking function alcOpenDevice in -lopenal ... no Checking presence of package rsound >= 1.1 ... no Checking presence of package libroar ... no Checking presence of package jack >= 0.120.1 ... no Checking presence of package sdl >= 1.2.10 ... no Checking presence of package sdl2 >= 2.0.0 ... no Checking presence of package libusb-1.0 >= 1.0.16 ... no Checking presence of package zlib ... no Checking existence of -lz ... no Checking function dlopen in -ldl ... yes Checking presence of package gbm >= 9.0 ... no Checking presence of package libdrm ... no Checking presence of package libxml-2.0 ... no Checking presence of package libv4l2 ... no Checking function glFramebufferTexture2D in -lGL ... no Checking presence of package freetype2 ... no Checking presence of package xcb ... no Checking presence of package wayland-egl ... no Checking presence of package wayland-cursor ... no Checking presence of package xkbcommon >= 0.3.2 ... no Checking presence of package dbus-1 ... no Notice: X11, Xext or xf86vm not present. Skipping X11 code paths. Checking presence of package libudev ... no Checking existence of -ludev ... no Checking presence of header file linux/parport.h ... yes Checking presence of header file linux/ppdev.h ... yes Checking function strlcpy in -lc ... no Checking function strcasestr in -lc ... yes Checking function mmap in -lc ... yes Checking function vkCreateInstance in -lvulkan ... no Notice: zlib is not available, RPNG will also be disabled. Creating make config: config.mk Creating config header: config.h

Problem is now it doesn't pick up pkg-config at all. The files exist at /home/parker/build/steamlink-sdk/rootfs/usr/lib/pkgconfig but I think it's trying to use my system pkg-config and never works. Any idea on how I could clear this up? A RetroArch port seems very possible.
< >
Showing 1-9 of 9 comments
Got it working at least on the pkgconfig side of things

PKG_CONF_PATH=pkg-config PKG_CONFIG_PATH=/home/parker/build/steamlink-sdk/rootfs/usr/lib/pkgconfig ./configure --disable-x11 --disable-pulse --disable-ffmpeg --enable-opengles --enable-floathard --enable-sdl2 --disable-shaderpipeline Checking operating system ... Linux Checking for suitable working C compiler ... armv7a-cros-linux-gnueabi-gcc works Checking for suitable working C++ compiler ... armv7a-cros-linux-gnueabi-g++ works Checking for pkg-config ... pkg-config Checking for availability of switch -std=gnu99 in armv7a-cros-linux-gnueabi-gcc ... yes Checking for availability of switch -Wno-unused-result in armv7a-cros-linux-gnueabi-gcc ... yes Checking for availability of switch -Wno-unused-variable in armv7a-cros-linux-gnueabi-gcc ... yes Checking function bcm_host_init in -lbcm_host ... no Checking function sd_get_machine_names in -lsystemd ... no Checking presence of package egl ... 13.1.0-devel Checking function ass_library_init in -lass ... no Checking function pthread_create in -lpthread ... yes Checking function pthread_key_create in -lpthread ... yes Checking function dlopen in -ldl ... yes Checking function socket in -lc ... yes Checking function getaddrinfo in -lc ... yes Checking existence of -lminiupnpc ... no Checking function fcntl in -lc ... yes Checking function getopt_long in -lc ... yes Checking presence of package alsa ... 1.1.2 Checking presence of header file sys/soundcard.h ... yes Checking presence of header file soundcard.h ... no Checking existence of -lossaudio ... no Checking function alcOpenDevice in -lopenal ... no Checking presence of package rsound >= 1.1 ... no Checking presence of package libroar ... no Checking presence of package jack >= 0.120.1 ... 1.9.10 Checking presence of package sdl >= 1.2.10 ... 1.2.15 Checking presence of package sdl2 >= 2.0.0 ... 2.0.5 Notice: SDL drivers will be replaced by SDL2 ones. Checking presence of package libusb-1.0 >= 1.0.16 ... no Checking presence of package zlib ... 1.2.3.3 Checking function dlopen in -ldl ... yes Checking presence of package gbm >= 9.0 ... 13.1.0-devel Checking presence of package libdrm ... 2.4.74 Checking presence of package libxml-2.0 ... 2.9.4 Checking presence of package glesv2 ... 13.1.0-devel Checking presence of package vg ... no Checking existence of -lOpenVG ... no Checking presence of package libv4l2 ... 1.10.1 Checking presence of package freetype2 ... 17.4.11 Checking presence of package xcb ... 1.12 Checking presence of package wayland-egl ... 13.1.0-devel Checking presence of package wayland-cursor ... 1.12.0 Checking presence of package xkbcommon >= 0.3.2 ... 0.7.0 Checking presence of package dbus-1 ... 1.8.8 Notice: X11, Xext or xf86vm not present. Skipping X11 code paths. Checking presence of package libudev ... 232 Checking presence of header file linux/parport.h ... yes Checking presence of header file linux/ppdev.h ... yes Checking function strlcpy in -lc ... no Checking function strcasestr in -lc ... yes Checking function mmap in -lc ... yes Checking function vkCreateInstance in -lvulkan ... no Creating make config: config.mk Creating config header: config.h

Compiling with that leads to

./libretro-common/include/glsym/rglgen_headers.h:27:21: fatal error: EGL/egl.h: No such file or directory #include <EGL/egl.h> ^ compilation terminated. make: *** [Makefile:147: obj-unix/gfx/drivers_shader/shader_null.o] Error 1 make: *** Waiting for unfinished jobs....

Just to see I tried with --disable-egl and then it quits out on can't find an alsa file although configure said it found alsa

CC audio/drivers/alsa.c audio/drivers/alsa.c:21:28: fatal error: alsa/asoundlib.h: No such file or directory #include <alsa/asoundlib.h> ^ compilation terminated. make: *** [Makefile:147: obj-unix/audio/drivers/alsa.o] Error 1 make: *** Waiting for unfinished jobs....

I think something is just messing up as part of the toolchain but I'm not sure what or where to look.

EDIT: Oh it seems to be finding my local versions of things
glesv2 ... 13.1.0-devel
That's mesa-git on my computer. Something is fubar.
FYI, I typically do my builds in a clean Ubuntu install on a virtual machine.
I tried this long ago on a branch, but no luck

https://github.com/mdeguzis/steamlink-sdk
Anybody else trying to get this going? It seems possible but the RetroArch build scripts seem very picky about how everything should go. I've tried poking the IRC channel but not much response.
I've been working on a Mednafen port and it can't find some OGL stuff that is clearly present. Frustrating.
Hi,

The latest version compiled for me, just configure the make file like this:

./configure --enable-sdl2 --disable-sdl --enable-floathard --enable-neon --disable-opengl --disable-vg --disable-fbo --disable-egl --disable-pulse --disable-oss --disable-x11 --disable-wayland --disable-ffmpeg --disable-7zip --disable-libxml2 --disable-freetype --disable-shaderpipeline

Like you, I had to modify the setenv script and also the file RetroArch/qb/qb.system.sh to force OS="Linux" because $(uname) is empty after executing the setenv script and some more files to fix some errors and adding gles2
Originally posted by hermitmaster:
I've been working on a Mednafen port and it can't find some OGL stuff that is clearly present. Frustrating.

How did you manage the libsndfile dependency?
Originally posted by Cauteloso:
Hi,

The latest version compiled for me, just configure the make file like this:

./configure --enable-sdl2 --disable-sdl --enable-floathard --enable-neon --disable-opengl --disable-vg --disable-fbo --disable-egl --disable-pulse --disable-oss --disable-x11 --disable-wayland --disable-ffmpeg --disable-7zip --disable-libxml2 --disable-freetype --disable-shaderpipeline

Like you, I had to modify the setenv script and also the file RetroArch/qb/qb.system.sh to force OS="Linux" because $(uname) is empty after executing the setenv script and some more files to fix some errors and adding gles2

Do you actually get video output on the Link though? I got mine to compile a few times but in the end it compiled with no video context drivers so there was nothing to output.
Originally posted by parkerlreed Linux represent:
Do you actually get video output on the Link though? I got mine to compile a few times but in the end it compiled with no video context drivers so there was nothing to output.

Yes, I can navigate the menus, everything works fine using sdl2 for video, audio and input.
The problem is that all the cores that I've tried stop or exit right after loading the content with no error.

I opened another thread with this problem in case anyone has experience with retroarch
< >
Showing 1-9 of 9 comments
Per page: 1530 50