Hello Free60 team,
I'm currently trying to get a stable graphical environment (Xorg/LightDM) running on my Xbox 360 using a modern Debian Sid userland, but I am consistently hitting an Illegal Instruction error that crashes the X server instantly upon start.
After investigating the crash dumps and logs, I traced the issue back to the CPU's vector instructions. The pre-compiled Debian ppc64 packages for core graphical libraries — specifically libpixman-1-0 and mesa (specifically the software rasterizer swrast_dri.so / llvmpipe) — are compiled with AltiVec support enabled by default.
When Xorg tries to render the GUI using the CPU (since there is no hardware acceleration for the Xenos GPU), it calls these vector instructions. However, the Xenon CPU uses the custom VMX128 implementation, which seems to throw an Illegal Instruction (SIGILL) when standard PowerPC AltiVec instructions are executed by these modern libraries.
What I have tried so far:
Dropping to the standard fbdev driver (works for basic terminal, but no proper GUI performance).
(Current workaround): I am currently cross-compiling both pixman and mesa from source inside a chroot using QEMU, injecting the -mno-altivec (or -Dvmx=disabled for meson) flag into the debian/rules to generate custom .deb packages.
To be completely honest, I'm not a Linux expert (even though I've been using it as my daily OS for a few years now). I'm actually writing this post while waiting for my massive Mesa cross-compilation to finish, and I am almost out of ideas on what else to do to get a stable system running without breaking my back.
My questions for the community:
Is there a known kernel patch for the Free60 Linux kernel that can properly emulate or catch standard AltiVec calls and translate them for the Xenon VMX128 unit to prevent the userland SIGILL?
Are there any pre-configured repositories or PPAs maintained by the Free60 community that provide modern ppc64 userland packages compiled specifically with -mno-altivec?
Is there a recommended approach to get software rendering (llvmpipe/swrast) working smoothly on Debian without having to manually recompile the entire Mesa stack on every major update?
Any guidance or help would be greatly appreciated. Thanks for keeping this project alive!
System Information:
Console: Xbox 360
Kernel: Free60 Linux Kernel (6.18.38-xenon)
OS: Debian Sid (unstable) ppc64
Crashing Packages: libpixman-1-0, mesa (swrast_dri.so)
Hello Free60 team,
I'm currently trying to get a stable graphical environment (Xorg/LightDM) running on my Xbox 360 using a modern Debian Sid userland, but I am consistently hitting an Illegal Instruction error that crashes the X server instantly upon start.
After investigating the crash dumps and logs, I traced the issue back to the CPU's vector instructions. The pre-compiled Debian ppc64 packages for core graphical libraries — specifically libpixman-1-0 and mesa (specifically the software rasterizer swrast_dri.so / llvmpipe) — are compiled with AltiVec support enabled by default.
When Xorg tries to render the GUI using the CPU (since there is no hardware acceleration for the Xenos GPU), it calls these vector instructions. However, the Xenon CPU uses the custom VMX128 implementation, which seems to throw an Illegal Instruction (SIGILL) when standard PowerPC AltiVec instructions are executed by these modern libraries.
What I have tried so far:
Dropping to the standard fbdev driver (works for basic terminal, but no proper GUI performance).
(Current workaround): I am currently cross-compiling both pixman and mesa from source inside a chroot using QEMU, injecting the -mno-altivec (or -Dvmx=disabled for meson) flag into the debian/rules to generate custom .deb packages.
To be completely honest, I'm not a Linux expert (even though I've been using it as my daily OS for a few years now). I'm actually writing this post while waiting for my massive Mesa cross-compilation to finish, and I am almost out of ideas on what else to do to get a stable system running without breaking my back.
My questions for the community:
Is there a known kernel patch for the Free60 Linux kernel that can properly emulate or catch standard AltiVec calls and translate them for the Xenon VMX128 unit to prevent the userland SIGILL?
Are there any pre-configured repositories or PPAs maintained by the Free60 community that provide modern ppc64 userland packages compiled specifically with -mno-altivec?
Is there a recommended approach to get software rendering (llvmpipe/swrast) working smoothly on Debian without having to manually recompile the entire Mesa stack on every major update?
Any guidance or help would be greatly appreciated. Thanks for keeping this project alive!
System Information:
Console: Xbox 360
Kernel: Free60 Linux Kernel (6.18.38-xenon)
OS: Debian Sid (unstable) ppc64
Crashing Packages: libpixman-1-0, mesa (swrast_dri.so)