..:: PCSX2 Forums ::..

Full Version: PCSX2 for Fedora
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
Just for information. GSdx need sdl 1.3 features that why cmake only link against ours sdl snapshot.

Note: there is also an issue for FAQ: http://code.google.com/p/pcsx2/issues/detail?id=1033&q=faq&sort=-id&colspec=ID%20Status%20Priority%20Component%20Plugin%20Owner%20Summary
Okay, I think it got late and somehow I'd not set things up correctly.

So I rebuilt and started from scratch, checked the libararies and started up - it froze up on opening the game window so I killed the process:
Code:
$ rm -r my_build && mkdir my_build && cd my_build && cmake ../CMakeLists.txt -DFORCE_INTERNAL_SDL=TRUE -DCMAKE_BUILD_TYPE=Debug && cd .. && make && make install

...

$ find /home/rpmbuild/pcsx2-read-only -iname libpcsx2_SDL.so
/home/rpmbuild/pcsx2-read-only/3rdparty/SDL-1.3.0-5387/libpcsx2_SDL.so
$ export LD_LIBRARY_PATH="/home/rpmbuild/pcsx2-read-only/3rdparty/SDL-1.3.0-5387:$LD_LIBRARY_PATH"
$ ldd ./bin/plugins/libGSdx-0.1.16.so
        linux-gate.so.1 =>  (0x00ced000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x00110000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x00ee0000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00118000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00f7b000)
        libpcsx2_SDL.so => /home/rpmbuild/pcsx2-read-only/3rdparty/SDL-1.3.0-5387/libpcsx2_SDL.so (0x00251000)
        libdl.so.2 => /lib/libdl.so.2 (0x003ce000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00cee000)
        libm.so.6 => /lib/libm.so.6 (0x00358000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00382000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x0039f000)
        libc.so.6 => /lib/libc.so.6 (0x00f8c000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x00c21000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x003d3000)
        /lib/ld-linux.so.2 (0x45da9000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x003b9000)
[rpmbuild@weaver pcsx2-read-only]$ cd bin
[rpmbuild@weaver bin]$ ./pcsx2-dbg
Interface is initializing.  Entering Pcsx2App::OnInit!
Applying operating system default language...
Command line parsing...
Command line parsed!
Creating UserLocalData folder: /home/rpmbuild/.config/pcsx2

(pcsx2-dbg:8337): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 14

(pcsx2-dbg:8337): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 14

(pcsx2-dbg:8337): Gtk-WARNING **: gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 14
/home/rpmbuild/pcsx2-read-only/common/src/Utilities/Linux/LnxHostSys.cpp(63) : assertion failed:
    Function:  void SysPageFaultSignalFilter(int, siginfo_t*, void*)
    Thread:    MTGS
    Condition: false
    Message:   Unhandled page fault @ 0x00000008
Killed

I then tried with preload - it crashed:

Code:
$ LD_PRELOAD="/home/rpmbuild/pcsx2-read-only/3rdparty/SDL-1.3.0-5387/libpcsx2_SDL.so" ~/pcsx2-read-only/bin/pcsx2-dbg
Interface is initializing.  Entering Pcsx2App::OnInit!
Applying operating system default language...
Command line parsing...
Command line parsed!
terminate called after throwing an instance of 'R5900Exception::TLBMiss'
Aborted (core dumped)

There is no log for either event - have I turned it off somehow..?
It froze because it segfault which is not normal except if you have the wxversion linked with sdl. Let's try to do thing 1 by 1. (note try both debug and release mode)

1/ SDL as a so + wxwidget sdl free + LD_LIBRARY_PATH
2/ SDL as a so + wxwidget sdl free + LD_PRELOAD (note unset LD_LIBRARY_PATH)
3/ SDL as a so + wxwidget + LD_PRELOAD (note unset LD_LIBRARY_PATH)
(08-16-2011, 07:52 PM)gregory Wrote: [ -> ]It froze because it segfault which is not normal except if you have the wxversion linked with sdl. Let's try to do thing 1 by 1. (note try both debug and release mode)

1/ SDL as a so + wxwidget sdl free + LD_LIBRARY_PATH
2/ SDL as a so + wxwidget sdl free + LD_PRELOAD (note unset LD_LIBRARY_PATH)
3/ SDL as a so + wxwidget + LD_PRELOAD (note unset LD_LIBRARY_PATH)

To use both debug and release I'll have to do this over the next few days. I've just tried option one in debug and it works, although I get an unfamiliar error on closing - I assume it's not significant?

Code:
dk-ERROR **: The program 'pcsx2-dbg' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 2244 error_code 3 request_code 10 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
aborting...
0mAborted (core dumped)

The first iso I tried produced a crash - this is the one I've used for all the previous tests, but I think it's got corrupted - so there's hope that preloading the library may still work Smile

to proceed to step 2, what command do I use to unset the LD_LIBRARY_PATH?

EDIT: Step 2 works okay. LD_LIBRARY_PATH unset by default after powering off the computer overnight:

Code:
ldd ./pcsx2-read-only/bin/plugins/libGSdx-0.1.16.so        linux-gate.so.1 =>  (0x00b91000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x00c16000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x00901000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x0091a000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00a53000)
        libpcsx2_SDL.so => not found
        libdl.so.2 => /lib/libdl.so.2 (0x00a64000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00a69000)
        libm.so.6 => /lib/libm.so.6 (0x00e41000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00b57000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00b74000)
        libc.so.6 => /lib/libc.so.6 (0x00c1e000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x00b92000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00f91000)
        /lib/ld-linux.so.2 (0x45da9000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00e2a000)
$ LD_PRELOAD="/home/giles/pcsx2-read-only/3rdparty/SDL-1.3.0-5387/libpcsx2_SDL.so" ~/pcsx2-read-only/bin/pcsx2-dbg
Interface is initializing.  Entering Pcsx2App::OnInit!
Applying operating system default language...
Command line parsing...
Command line parsed!
(UserMode) Found portable install ini @ /home/giles/pcsx2-read-only/bin/portable.ini

I'll recompile against fedora wxwidget tonight and test step 3.


it depends on the bash but try "unset the_vars" or open a new terminal. Good for the first 2 step, I keep my finger crossed.
Success.

Code:
$ mkdir my_build && cd my_build && cmake ../CMakeLists.txt -DFORCE_INTERNAL_SDL=TRUE -DCMAKE_BUILD_TYPE=Debug && cd .. && make && make install

...

$ldd ./plugins/libGSdx-0.1.16.so
        linux-gate.so.1 =>  (0x00d3b000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x00b2e000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x00a8b000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00901000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00a3a000)
        libpcsx2_SDL.so => not found
        libdl.so.2 => /lib/libdl.so.2 (0x00e33000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00b36000)
        libm.so.6 => /lib/libm.so.6 (0x00a4b000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aa4000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00e5f000)
        libc.so.6 => /lib/libc.so.6 (0x00e79000)
        libuuid.so.1 => /lib/libuuid.so.1 (0x00a75000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00ac1000)
        /lib/ld-linux.so.2 (0x45da9000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x00d53000)
$ LD_PRELOAD="/home/giles/pcsx2-read-only/3rdparty/SDL-1.3.0-5387/libpcsx2_SDL.so" ~/pcsx2-read-only/bin/pcsx2-dbg
Interface is initializing.  Entering Pcsx2App::OnInit!
Applying operating system default language...
Command line parsing...
Command line parsed!
(UserMode) Found portable install ini @ /home/giles/pcsx2-read-only/bin/portable.ini

(pcsx2-dbg:6739): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkRadioMenuItem'

(pcsx2-dbg:6739): Gtk-CRITICAL **: IA__gtk_radio_menu_item_get_group: assertion `GTK_IS_RADIO_MENU_ITEM (radio_menu_item)' failed
Releasing host memory maps for virtual systems...
Unloading plugins...                                                                      
Plugins unloaded successfully.

Next with build=release: step 3 working with native Fedora wxWidgets.

Code:
$ LD_PRELOAD="/home/giles/pcsx2-read-only/3rdparty/SDL-1.3.0-5387/libpcsx2_SDL.so" ~/pcsx2-read-only/bin/pcsx2
Interface is initializing.  Entering Pcsx2App::OnInit!
Applying operating system default language...
Command line parsing...
Command line parsed!
(UserMode) Found portable install ini @ /home/giles/pcsx2-read-only/bin/portable.ini

(pcsx2:12862): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GtkRadioMenuItem'

(pcsx2:12862): Gtk-CRITICAL **: IA__gtk_radio_menu_item_get_group: assertion `GTK_IS_RADIO_MENU_ITEM (radio_menu_item)' failed
Releasing host memory maps for virtual systems...

I think you've cracked it?
Hum, I'm a bit lost. It work or not ?
Yes step 3 works with both pcsx2-release and pcsx2-debug Laugh
Good very good news :d
What is the status of the fedora package? I got request to install additional files. Now the following stuff will be installed
- PCSX2 FAQ and Readme at /usr/share/doc/pcsx2
- pcsx2.xpm at /usr/share/pixmaps
- pcsx2.desktop at /usr/share/applications
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34