Build for RaspberryPi 3a+ Without GUI/GTK/Xorg?

About SheepShaver, a PPC Mac emulator for Windows, MacOS X, and Linux that can run System 7.5.3 to MacOS 9.0.4.

Moderators: Cat_7, Ronald P. Regensburg, ClockWise

Post Reply
MisutaaUrufu
Space Cadet
Posts: 2
Joined: Wed Feb 10, 2021 2:42 am

Build for RaspberryPi 3a+ Without GUI/GTK/Xorg?

Post by MisutaaUrufu »

What I'm Trying To Do:
I am trying to get SheepShaver running on a Raspberry Pi 3a+ running Raspbian Lite, without a desktop interface, as to save on overhead and performance. I am making for a very custom setup, as I want it to more or less boot straight into macOS 9, with as little "friction" between the two as possible.

However, I am having some trouble in either finding, or compiling, a build of SheepShaver that omits x-windows, GTK, and uses strictly SDL & the display.

I looked through the different compilation options, and got a build compiled with SDL (no GTK, and purportedly no x-window), but it throws this every time I try to boot:

Code: Select all

error: XDG_RUNTIME_DIR not set in the environment.
ERROR: Cannot map Low Memory Globals: Invalid Argument.
XDG appears to be related to the Xorg Window Server, which, being Raspbian lite and with no desktop, doesn't have this (to my knowledge).

As far as the memory globals, I have ensured that I am running as root, and have nogui set. The RAM is set to 16MB in the sheepshaver configuration file.

When trying to run the novaspirit build, it instead throws:

Code: Select all

(SheepShaver:3030): Gtk-WARNING **: (time): cannot open display: 
This also appears to be related to a GUI and the X window system, even though I set it to nogui???

None of the build instructions go into the different options of

Code: Select all

./configure
found by running

Code: Select all

./configure --help
and some options seem to be ignored. (For example, the option to be without x window is ignored if SDL is also disabled, and fbdev/framebuffer graphics are always disabled no matter what values are passed.

Can I get some help on what I'm doing wrong, and/or what I need to do to get it right? There's not a lot of documentation on the various build options, and everything seems to assume you'll be using SheepShaver from a windowed environment, even though it supports fullscreen SDL graphics.
WrenchHeadFox
Space Cadet
Posts: 1
Joined: Wed Mar 17, 2021 3:37 am

Re: Build for RaspberryPi 3a+ Without GUI/GTK/Xorg?

Post by WrenchHeadFox »

Hey, I'm trying to accomplish basically the identical thing on an RPi 3b+. Wondering if you've made any headway on this?
MisutaaUrufu
Space Cadet
Posts: 2
Joined: Wed Feb 10, 2021 2:42 am

Re: Build for RaspberryPi 3a+ Without GUI/GTK/Xorg?

Post by MisutaaUrufu »

WrenchHeadFox wrote: Wed Mar 17, 2021 3:39 am Hey, I'm trying to accomplish basically the identical thing on an RPi 3b+. Wondering if you've made any headway on this?
None at all. I can't find anything online about it either.

BasiliskII, which is part of the same project, does support Xorg-less builds, purportedly. But there's no real guides on the various autoconfig options specific to it.

I eventually chose to install just the base xorg server, which sorta works, sometimes. But if the program somehow "loses focus" you can't regain it because, well, there's no "window", or window manager, to give it focus. — It's rather... confusing.

I actually took a long hiatus from my project with this, due to frustrations, but coming back I'm finding that it still hasn't been answered from what I can find. — Surely someone has documented these features? SDL should be capable of using a framebuffer, but it keeps trying to attach to an xorg server instead. I'm left head scratching. (Funny enough, a thread about BasiliskII had the same question, and the answer to use SDL resulted in the same error as the novaspirit Sheepshaver build).
Jagmn
Student Driver
Posts: 10
Joined: Fri Feb 19, 2021 7:37 am

Re: Build for RaspberryPi 3a+ Without GUI/GTK/Xorg?

Post by Jagmn »

Hi Folks,

I've been working on getting SS functional on a few platforms and stumbled across how to make this work on a Raspberry Pi 3 B+ running 32bit Ubuntu-20.04 (though I suspect it should work on other platforms).
  • I needed to rebuild SDL2 for my platform as it didn't seem to have directfb support built-in. After installing libdirectfb-dev

    Code: Select all

    apt-get install libdirectfb-dev
    I configured SDL2 with

    Code: Select all

    --enable-arm-simd --enable-arm-neon --enable-video-rpi --enable-video-directfb
  • Then I built SheepShaver with

    Code: Select all

    --enable-sdl-video   --enable-sdl-audio
  • After much debugging, I found I then needed to create a /etc/directfbrc file containing

    Code: Select all

    no-sighandler
    - Turns out libdirectfbrc installs its own handlers and these clobbered SS's segfault-protecting handlers.
There are still some funnies (like you can move the cursor well beyond the Mac desktop and then take a while to find it again) but it seems to be functional.
Note: You don't have to 'make install' your own copy of libsdl2 if you don't want to overwrite what came with your system. You can simply update your LD_LIBRARY_PATH environment variable to point to its built directory before running SS

Code: Select all

export LD_LIBRARY_PATH=/path/to/SDL2-2.0.14/build/.libs:$LD_LIBRARY_PATH
./SheepShaver
Post Reply