PlaneShift
Support => Linux Specific Issues => Topic started by: Velamar on April 03, 2006, 07:44:46 pm
-
I am having a similar problem as APwrs ( http://planeshift3d.com/wbboard/thread.php?threadid=22262&boardid=41&sid=d58a59856a1bb5e98420d1721760a02e) except the xwindow or text mode doesn\'t work.
When I do \"./PlaneShift_CBV0.3.013.i686.bin\" I immediately get a \"Segmentation Fault\", no delay or anything coming up on the screen.
I have it chmodded to my account and have tried both as root and regular, with the same results. I am running Fedore Core 5 on i686.
I\'ve downloaded multiple times, from BitTorrent and direct from the server, thinking it may be a curropt file, but I get the same results...
Is there a way to install through yum or are there any compatable .rpm files available?
-
Same problem, using Fedora Core 4
I just upgraded to kernel-2.6.16-1.2069_FC4, while doing a clean install of FC4.
with kernel 2.4x the planeshift install worked, when using the tips from the forum. no idea if its the Kernel or one of the files it upgrades when changing to 2.6
-
Same problem here on Fedora Core 5 using kernel 2.6.16-1.2080_FC5.
(http://i2.photobucket.com/albums/y45/dudeman41465/Computer%20Screenshots/planeshiftcrash.jpg)
-
Same problem here on Fedora Core 5 (2.6.16-1.2074_FC5smp): Segmentation Fault
Anybody figure out a fix for this yet?
-
I tried it on FC4, it can be the same for FC5. This is probably caused by active SELinux policy. I use strict policy on the system, but default (targeted) policy can also prevent some programs from running. In this particular case the program is not allowed to execute some parts of code in memory.
Login as root (and you should change you role to sysadm_r if it is not the default for root; use \"id -Z\" to determine your current context, use \"newrole -r sysadm_r\" to change a context). Use the command \"getenforce\" to determine, whether SELinux is active. If you see \"Enforcing\" you must turn off SELinux by entering command \"setenforce 0\" (on FC5 you may have to switch to role secadm_r first). Install the game (DON\'T do this as root). Turn on enforcing back by using command \"setenforce 1\". If You can\'t play the game with active SELinux - turn it off, but remember, that Your system will be more vulnerable to attacks. Better way would be to write your own set of access rules, but that\'s another story...
-
same problem on fc 4 however if you go back a kernel the 15 version and then the latest the installer DOES work, no need to turn of SElinux then.
To me it seems that it has to do with the new kernel version. with my 16-1 kernel i have the same issues as you guys but 1 kernel back and it works like a charm.
Not that you can do anything with it now because we need the .14 version nowadays.
-
Sardit is right. I have never enabled SElinux, so I know that is not the problem. It definitely seems to be an issue with the newer kernels.
-
could be something to do with a bad ELF header in the installation binaries.. It could be the 2.4.16 kernel refuses to run binaries with corrupted headers. What system were these built on?
here\'s the output of file on my FC5 system
file ./PlaneShift_CBV0.3.013.i686.bin
PlaneShift_CBV0.3.013.i686.bin: ELF 32-bit LSB executable, Intel 80386, version 1, statically linked, corrupted section header size
file ./PlaneShift_CBV0.3.014b.bin
PlaneShift_CBV0.3.014b.bin: ELF 32-bit LSB executable, Intel 80386, version 1, statically linked, corrupted section header size
That just doesn\'t look very \"good\" IMHO.
And I reverified the torrent download. Also, turning off SELinux does not resolve the issue.
and I am finding no message in any logs as to WHY it is dying.
-
well since i dont have an old kernel anymore i segvault on the installer aswell. And since the cvs crashes for me aswell... Does anyone have an idea?
-
Well I don\'t exactly know what is the cause of all that, but indeed PS doesn\'t want to work.
I don\'t know if it\'s to blame on the kernel or on something else, but since my FC5 upgrade, a lot of programs don\'t work anymore. Mainly emulators : ePSXe, Mupen64... Zsnes has been corrected in their CVS, though...
So, maybe a graphic-related issue, since it seems only games are involved ?
-
I haven\'t had any \"graphics\" problems, I can play Unreal Tournament 2004, Sauerbraten and Nexuiz from their Linux installers with no problem, all 3 of which are 3-D openGL games. I just tried the \"new\" version on the website (3.014b) and it gives me the same error.
-
do you have an nvidia graphic card? cause that driver is broken. there is fix for it though.
-
Nvidia GeForce FX 5500
Works fine for me, but it may be that none of my games encounter the bug except Planeshift.
Edit: I\'m not at my Linux box right now, but could you tell me more about the fix?
-
Tried Nexuiz, works well...
I use the latest nvidia driver from the livna repo, but I\'d be happy if you could tell me more about this fix.
-
gl accelleration does not work with the latest livna driver
type as root
chcon -t texrel_shlib_t /usr/lib/xorg/modules/extensions/nvidia/*.so
and enable in ( start / administration / security level and firewall )
under the tab selinux set permissive click modify policy in the section compatibility cross the box at allow the use of shared librarys with text relocation
it enables the gl again ( well first thing does that the second helps with apps that need that particular strategy with text relocation )
Livna posts that they will fix the selinux issue asap and that they will make sure the next nvidia driver doesnt have that problem but that will have to wait till the next kernel upgrade.
-
OK... But as a rule I always deactivate everything related to SELinux, it causes nothing but trouble with me.
So I guess what you said doesn\'t apply ?
-
the chcon command does. that enables gl when its disabled ( try glxgears, it should crash on you right now )
-
Nope. glxgears works fine ;-)
The problems I have with emulators and PlaneShift is not that easy to solve, I\'m afraid.
-
Depending on how desperate you are to get Planeshift working on FC5, you can do what I did. I have a VMWare virtual machine with Ubuntu (Breezy) on it, and I just downloaded and ran the installer in Ubuntu to get the files out of the installer, and then copied the files over to the FC5 host again. The game runs fine, so it seems that this problem is specific to the installer only. This solution isn\'t the most straightforward, but hey, it works. :-)
I should also mention that you don\'t need to buy VMWare Workstation to do this. Just download the free VMWare Player (http://www.vmware.com/products/player/), and the free Browser Appliance, which is just a minimal Ubuntu install (http://www.vmware.com/vmtn/appliances/browserapp.html). Or if you want the ability to install any OS you want, check out this How-to: http://www.hackaday.com/entry/1234000153064739/
-
Yeah there are always this kind of workarounds... Maybe Wine could do the trick too...
But I\'m more interested in the real reasons of the bug, since it also affects other programs I\'d like to see running :-(
-
sick, but hey, ill just give it a try, perhaps that will work for me, cause right now im getting very frustrated by the cvs, its perfectely working, but it keeps crashing in the hydlaa_plazaa map...
hmm it fails to run the config
where can i find the kernel source it needs to build the module?
the directory i think they should be in
/usr/src/kernels/2.6.16_2080_FC5-i686/include
does not work, it complains about different memory sizes?
what did you use?
-
Did you even install it ? By default, Fedora does not ship with kernel sources.
-
Originally posted by sardit
gl accelleration does not work with the latest livna driver
type as root
chcon -t texrel_shlib_t /usr/lib/xorg/modules/extensions/nvidia/*.so
and enable in ( start / administration / security level and firewall )
under the tab selinux set permissive click modify policy in the section compatibility cross the box at allow the use of shared librarys with text relocation
it enables the gl again ( well first thing does that the second helps with apps that need that particular strategy with text relocation )
Livna posts that they will fix the selinux issue asap and that they will make sure the next nvidia driver doesnt have that problem but that will have to wait till the next kernel upgrade.
I\'ve had no problems running any opengl applications on FC5 w/ selinux enabled or set in permissive mode. However, the planeshift installation issue is NOT related to GL as the installer does not use opengl.. and crashes right after the ld-loader tried to LOAD the binary.
Output from running strace ./PlaneShift_CBV0.3.014b.bin
execve(\"./PlaneShift_CBV0.3.014b.bin\", [\"./PlaneShift_CBV0.3.014b.bin\"], [/* 38 vars */]) = 0
old_mmap(0x1000000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 0, 0) = 0x1000000
old_mmap(0x8048000, 999424, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 0, 0) = 0x8048000
munmap(0x8120000, 114688) = 0
old_mmap(0x8048000, 883086, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 17158829, 0) = 0x8048000
mprotect(0x8048000, 883083, PROT_READ|PROT_EXEC) = 0
old_mmap(0x8120000, 109555, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 17158829, 0xd7000) = 0x8120000
mprotect(0x8120000, 109552, PROT_READ|PROT_WRITE) = 0
old_mmap(0x813b000, 2416, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, 0, 0) = 0x813b000
brk(0x813c000) = 0x813c000
open(\"/lib/ld-linux.so.2\", O_RDONLY) = 4
read(4, \"\\177ELF\\1\\1\\1\\0\\0\\0\\0\\0\\0\\0\\0\\0\\3\\0\\3\\0\\1\\0\\0\\0@\\10\\0\\000\"..., 512) = 512
old_mmap(NULL, 110592, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0) = 0x219000
munmap(0x232000, 8192) = 0
old_mmap(0x219000, 99268, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0) = 0x219000
mprotect(0x219000, 99268, PROT_READ|PROT_EXEC) = 0
old_mmap(0x232000, 5624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4, 0x18000) = 0x232000
mprotect(0x232000, 5624, PROT_READ|PROT_WRITE) = 0
close(4) = 0
munmap(0x1000000, 385024) = 0
brk(0) = 0x813c000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
-
I think I found the cause of the problem.. I believe it\'s the ld-loader. (ld-linux.so) from glibc 2.4
What I did to get this to install. was install qemu from extras and download the qemu-gnemul-0.5.3.tar.gz from qemu\'s website.
http://fabrice.bellard.free.fr/qemu/qemu-gnemul-0.5.3.tar.gz
then extracted that into a temp directory (/home/urkle/qemu) and ran the following
qemu-i386 -L /home/urkle/qemu/usr/local/gnemul/qemu-i386/ ./PlaneShift_CBV0.3.014b.bin
and it runs.. albiet emulated through qemu via an older ld-linux and glibc. (2.1.3)
-
Sardit: It sounds like Urkle\'s workaround would be easier than the vmware method, but in case you still wanted to know how to install the vmware player on FC5:
1. Make sure you have the kernel-devel package installed for your running kernel.
2. You\'ll need to use this vmware patch: http://ftp.cvut.cz/vmware/vmware-any-any-update101.tar.gz
It is really easy to use, you just extract it and run the runme.pl script, and let it do its magic. I should have mentioned this FC5 requirement initially, but honestly I had forgotten all about it.
Urkle: Smart thinking to use qemu, wish I\'d thought of that!
-
Hum... So that would be glibc that is causing all these problems to me... Yeah, that could be it. Thanks for pointing it out :-)
-
You are right, it is kernel related problem. The installer is UPX-packed executable and it needs permission to execute code stored in stack area.
As root use command:
sysctl kernel.exec-shield=1
(I think echo \"1\" > /proc/sys/kernel/exec-shield would work too)
then run Planeshift installer.
Default value for FC5 (kernel 2.6.16) is 11 and I\'m not sure if it is not a kind of bug (which increases security).
If You want the change to be permanent give option \"-w\" to sysctl or add the line
kernel.exec-shield = 1
to /etc/sysctl.conf
Tested on Bitrock InstallBuilder installer, which was behaving the same way (I had no time to download PS installer).
-
THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS !!!!!!!!!!!!!!!!!!!!!!!!!
Not only did it solve the Planeshift installer problem, but also every other problem I had with various emulators.
So once again :
THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS THANKS !!!!!!!!!!!!!!!!!!!!!!!!!
I\'m maybe a bit too enthusiastic, but I searched an answer for my problem for a long time and couldn\'t find anything, so you can imagine how much I\'m relieved now :-)
Just to satisfy my curiosity, how did you find out ?
-
Just to satisfy my curiosity, how did you find out ?
It comes from the experience - after many years of using computers special kind of intuition develops in your mind, and you just get the ideas \"out of nowhere\" ;). Feed the brain with enough amount of data (like \"exec\", \"kernel\", \"segmentation fault\", \"selinux\", \"permission\", \"execstack\", \"sysctl\", \"upx\", \"this works, that does not\", \"on this system this works, on that does not\" etc, etc., search google for some ot those terms and get some more) and you will receive the result, sometimes it happens suddenly, when you don\'t even think about it... Do You remember mentats form \"Dune\" ? Who knows, maybe it is possible, that evolution of human brain will allow training of human computers in the future...
-
Finally something that worked !
thanks a lot Wired
-
Nice job finding that. :)
-
I know you\'ve already been thanked, but not by me, lol. Thank you, you are a godsend.
-
You are right, it is kernel related problem. The installer is UPX-packed executable and it needs permission to execute code stored in stack area.
As root use command:
sysctl kernel.exec-shield=1
(I think echo \"1\" > /proc/sys/kernel/exec-shield would work too)
then run Planeshift installer.
The second one worked for me. The first one didn't. Thank you :).
-
Unfortunately, neither worked on my Fedora 9.91 (a.k.a. F10 Beta). When I ran PlaneShift-v0.4.2-x86.bin I got: PROT_EXEC|PROT_WRITE failed.
sardit's chcon... was not appropriate for me, since I do not have /nvidia/ in /usr/lib/xorg/modules/extensions/.
On the Fedora Desktop I tried: System --> Administration --> SELinux Management --> Boolean --> Module: global --> „Allow unconfined executables to map a memory region as both executable and writable” and the PS-Installer started.
P.S.: I ignored: „this is dangerous and the executable should be reported in bugzilla” :-X