libretro / Lakka-LibreELEC

Lakka is a lightweight Linux distribution that transforms a small computer into a full blown game console.
https://www.lakka.tv
1.73k stars 286 forks source link

Lakka 5.x: Notes for building for i386 #1901

Closed metchebe closed 10 months ago

metchebe commented 10 months ago

Hello all.

As commented on Discord, I managed to build a test image of Lakka 5.x (a34748f) for i386 by doing some changes:

I also updated retroarch packages via libretro_update.sh --retroarch and disabled slang shaders to reduce image size.

I built a small set of cores, the command used was:

DISTRO=Lakka PROJECT=Generic ARCH=i386 AUTOREMOVE=yes CUSTOM_LIBRETRO_CORES="ccache:host 2048 snes9x2010 nestopia picodrive mgba gambatte" make image

Tested and working on a Thinkpad T61 with Intel Graphics: boot, shutdown, wifi, and cores all load and run.

The changes were made only for the purpose of seeing if an i386 build was possible, probably breaking other targets. I will leave it to the devs to consider properly adding support for i386 if desired, since I also won't test all cores.

For reference here is the diff file (retroarch updates excluded):

diff --git a/config/functions b/config/functions
  index c350b75..c4daa77 100644
  --- a/config/functions
  +++ b/config/functions
  @@ -630,7 +630,7 @@ endian = 'little'

   [host_machine]
   system = 'linux'
  -cpu_family = '$TARGET_ARCH'
  +cpu_family = '${TARGET_ARCH/i386/x86}'
   cpu = '$TARGET_SUBARCH'
   endian = 'little'

  diff --git a/config/graphic b/config/graphic
  index 45e8ade..2f8c2ad 100644
  --- a/config/graphic
  +++ b/config/graphic
  @@ -41,7 +41,7 @@ get_graphicdrivers() {
       GALLIUM_DRIVERS+=" crocus"
       XORG_DRIVERS+=" intel"
       COMPOSITE_SUPPORT="yes"
  -    VAAPI_SUPPORT="yes"
  +    VAAPI_SUPPORT="no"
     fi

     if listcontains "${GRAPHIC_DRIVERS}" "etnaviv"; then
  @@ -63,7 +63,7 @@ get_graphicdrivers() {
       GALLIUM_DRIVERS+=" i915"
       XORG_DRIVERS+=" intel"
       COMPOSITE_SUPPORT="yes"
  -    VAAPI_SUPPORT="yes"
  +    VAAPI_SUPPORT="no"
     fi

     if listcontains "${GRAPHIC_DRIVERS}" "iris"; then
  @@ -71,7 +71,7 @@ get_graphicdrivers() {
       XORG_DRIVERS+=" intel"
       VULKAN_DRIVERS_MESA+=" intel"
       COMPOSITE_SUPPORT="yes"
  -    VAAPI_SUPPORT="yes"
  +    VAAPI_SUPPORT="no"
     fi

     if listcontains "${GRAPHIC_DRIVERS}" "lima"; then
  @@ -96,7 +96,7 @@ get_graphicdrivers() {

     if listcontains "${GRAPHIC_DRIVERS}" "nvidia-ng"; then
       VULKAN_DRIVERS_CONFIG+=" nvidia-ng"
  -    VAAPI_SUPPORT="yes"
  +    VAAPI_SUPPORT="no"
     fi

     if listcontains "${GRAPHIC_DRIVERS}" "panfrost"; then
  @@ -119,7 +119,7 @@ get_graphicdrivers() {
       LLVM_SUPPORT="yes"
       COMPOSITE_SUPPORT="yes"
       VDPAU_SUPPORT="yes"
  -    VAAPI_SUPPORT="yes"
  +    VAAPI_SUPPORT="no"
     fi

     if listcontains "${GRAPHIC_DRIVERS}" "radeonsi"; then
  @@ -129,7 +129,7 @@ get_graphicdrivers() {
       LLVM_SUPPORT="yes"
       COMPOSITE_SUPPORT="yes"
       VDPAU_SUPPORT="yes"
  -    VAAPI_SUPPORT="yes"
  +    VAAPI_SUPPORT="no"
     fi

     if listcontains "${GRAPHIC_DRIVERS}" "vc4"; then
  diff --git a/packages/lakka/retroarch_base/retroarch/package.mk b/packages/lakka/retroarch_base/retroarch/package.mk
  index ebe73d7..532f7ce 100644
  --- a/packages/lakka/retroarch_base/retroarch/package.mk
  +++ b/packages/lakka/retroarch_base/retroarch/package.mk
  @@ -1,9 +1,9 @@
   PKG_NAME="retroarch"
  -PKG_VERSION="7264c13b0104ca74b27305c1f3b27d7fd4e48911"
  +PKG_VERSION="6c2cc456284fcfa6fa5f94664950926c020d2f7b"
   PKG_LICENSE="GPLv3"
   PKG_SITE="https://github.com/libretro/RetroArch"
   PKG_URL="${PKG_SITE}.git"
  -PKG_DEPENDS_TARGET="toolchain freetype zlib ffmpeg libass libvdpau libxkbcommon glsl_shaders slang_shaders systemd libpng fontconfig"
  +PKG_DEPENDS_TARGET="toolchain freetype zlib libass libvdpau libxkbcommon glsl_shaders systemd libpng fontconfig"
   PKG_LONGDESC="Reference frontend for the libretro API."
   PKG_LR_UPDATE_TAG="yes"

  diff --git a/packages/sysutils/libusb-compat/package.mk b/packages/sysutils/libusb-compat/package.mk
  index 9631b90..a9b77a1 100644
  --- a/packages/sysutils/libusb-compat/package.mk
  +++ b/packages/sysutils/libusb-compat/package.mk
  @@ -4,7 +4,7 @@

   PKG_NAME="libusb-compat"
   PKG_VERSION="0.1.8"
  -PKG_SHA256="698c76484f3dec1e0175067cbd1556c3021e94e7f2313ae3ea6a66d900e00827"
  +#PKG_SHA256="698c76484f3dec1e0175067cbd1556c3021e94e7f2313ae3ea6a66d900e00827"
   PKG_LICENSE="GPL"
   PKG_SITE="https://github.com/libusb/libusb-compat-0.1"
   PKG_URL="https://github.com/libusb/libusb-compat-0.1/releases/download/v${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.bz2"
metchebe commented 10 months ago

Closed as i386 has now been removed for this project (5c36edd).

Hopefully these comments can help someone with a personal i386 build, if they need it.