Segmentation Fault,
#1
Hi there. I'm trying to get the 1.1.0.1 binary to work on Ubuntu 10.04.1 LTS. I downloaded the archive assault.cubers.net/download.html

When I run the assaultcube.sh file, the title screen flashes up for a second before I get a seg fault:

Code:
Using home directory: /home/X/.assaultcube_v1.1 current locale: en_US.utf8 init: sdl init: net init: world init: video: sdl init: video: mode init: video: misc init: gl Renderer: GeForce 7600 GT/AGP/SSE2 (NVIDIA Corporation) Driver: 2.1.2 NVIDIA 195.36.24 init: console init: sound Audio devices: PulseAudio Software, ALSA Software, OSS Software stacktrace: Segmentation fault

I don't actually use PulseAudio, just ALSA. I uninstalled it a while ago as it caused me so much grief. Any ideas if this could be the culprit?
Thanks given by:
#2
if you don't use pulseaudio, it could be SDL using pulseaudio... try this:

Code:
sudo apt-get remove libsdl1.2debian-pulseaudio && sudo apt-get install libsdl1.2debian-alsa
Thanks given by:
#3
^ that.
As you can see in the output, it has PulseAudio listed first, which means SDL will try to use it. But if it doesn't exist, well...
Thanks given by:
#4
(02 Oct 10, 10:04AM)RandumKiwi Wrote: if you don't use pulseaudio, it could be SDL using pulseaudio... try this:

Code:
sudo apt-get remove libsdl1.2debian-pulseaudio && sudo apt-get install libsdl1.2debian-alsa

OK, I've executed the above command which removed libsdl1.2debian-all that I was previously using and replaced it with libsdl1.2debian-alsa.

Unfortunately, assaultcube still does exactly the same, and urbanterror has stopped working, as it relied on libsdl1.2debian-all.

Is there anything else I can try, apart from re-installing pulseaudio, which makes my system inoperable?
Thanks given by:
#5
I think I've found a solution. Appears that AC checks for an "openaldevice" alias (hidden somewhere in soundmanager.cpp).

You have to add this line somewhere in init.cfg (NOT in saved.cfg or autoexec.cfg!):
Code:
alias openaldevice "ALSA Software"

However, the problem is that this line is overwritten every time AC quits. So you'll either have to remove write permission for init.cfg or use a shell script that does something like
Code:
echo >> ~/.assaultcube_v1.1/config/init.cfg "alias openaldevice \"ALSA Software\""
after AC has quit. Of course, the most convenient place would be assaultcube.sh (if you're using it).
Thanks given by:
#6
(02 Oct 10, 04:44PM)tempest Wrote: I think I've found a solution. Appears that AC checks for an "openaldevice" alias (hidden somewhere in soundmanager.cpp).

You have to add this line somewhere in init.cfg (NOT in saved.cfg or autoexec.cfg!):
Code:
alias openaldevice "ALSA Software"

However, the problem is that this line is overwritten every time AC quits. So you'll either have to remove write permission for init.cfg or use a shell script that does something like
Code:
echo >> ~/.assaultcube_v1.1/config/init.cfg "alias openaldevice \"ALSA Software\""
after AC has quit. Of course, the most convenient place would be assaultcube.sh (if you're using it).

OK, I've run

Code:
echo >> ~/.assaultcube_v1.1/config/init.cfg "alias openaldevice \"ALSA Software\""

and also put that command at the end of the assaultcube.sh file. Is this what you mean?

assaultcube is still seg-faulting at the same place.
Thanks given by:
#7
Hmm. Weird.
Try running it in GDB and see what you get.
Code:
gdb --args bin_unix/linux_client --home=${HOME}/.assaultcube_v1.1 --init -r -t0
(of course you'll have to cd to AC's main directory first)

But before that, make sure that that stuff is really executed:
Code:
echo >> ~/.assaultcube_v1.1/config/init.cfg "alias openaldevice \"ALSA Software\"; echo works"
then run the game, and now you should find works somewhere in the output (even if it doesn't work :S).
Thanks given by:
#8
Ok here's the gdb output
Code:
gdb --args bin_unix/linux_client --home=${HOME}/.assaultcube_v1.1 --init -r -t0 GNU gdb (GDB) 7.1-ubuntu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/X/assaultcube/1.1.0.1/bin_unix/linux_client...done. (gdb) r Starting program: /home/X/assaultcube/1.1.0.1/bin_unix/linux_client --home=/home/X/.assaultcube_v1.1 --init -r -t0 [Thread debugging using libthread_db enabled] Using home directory: /home/X/.assaultcube_v1.1 works current locale: en_US.utf8 init: sdl [New Thread 0xb7a7ab70 (LWP 21009)] init: net init: world init: video: sdl init: video: mode init: video: misc init: gl Renderer: GeForce 7600 GT/AGP/SSE2 (NVIDIA Corporation) Driver: 2.1.2 NVIDIA 195.36.24 init: console init: sound [New Thread 0xb5fb1b70 (LWP 21010)] [Thread 0xb5fb1b70 (LWP 21010) exited] Audio devices: PulseAudio Software, ALSA Software, OSS Software Program received signal SIGSEGV, Segmentation fault. 0x024d05d0 in ?? () (gdb) bt #0 0x024d05d0 in ?? () #1 0x00726bcc in ?? () from /usr/lib/libasound.so.2 #2 0x007276ef in snd_func_card_driver () from /usr/lib/libasound.so.2 #3 0x00725140 in ?? () from /usr/lib/libasound.so.2 #4 0x0071f0e3 in ?? () from /usr/lib/libasound.so.2 #5 0x0071f132 in ?? () from /usr/lib/libasound.so.2 #6 0x00727ab9 in snd_func_concat () from /usr/lib/libasound.so.2 #7 0x00725140 in ?? () from /usr/lib/libasound.so.2 #8 0x0071f0e3 in ?? () from /usr/lib/libasound.so.2 #9 0x00725eba in snd_func_refer () from /usr/lib/libasound.so.2 #10 0x00725140 in ?? () from /usr/lib/libasound.so.2 #11 0x0071f0e3 in ?? () from /usr/lib/libasound.so.2 #12 0x0071f132 in ?? () from /usr/lib/libasound.so.2 #13 0x0071f132 in ?? () from /usr/lib/libasound.so.2 #14 0x007237a8 in snd_config_expand () from /usr/lib/libasound.so.2 #15 0x00724fd4 in snd_config_search_definition () from /usr/lib/libasound.so.2 #16 0x0074c8df in ?? () from /usr/lib/libasound.so.2 #17 0x0030503e in alsa_open_playback (device=0xb69e5008, deviceName=0x81f6458 "ALSA Software") at /build/buildd/openal-soft-1.12.854/Alc/alsa.c:572 #18 0x002ece3c in alcOpenDevice (deviceName=0x81f6458 "ALSA Software") at /build/buildd/openal-soft-1.12.854/Alc/ALc.c:1755 #19 0x0806e223 in audiomanager::initsound() () #20 0x0809e464 in main () (gdb) r The program being debugged has been started already. Start it from the beginning? (y or n) n Program not restarted. (gdb) c Continuing. stacktrace: Program received signal SIGSEGV, Segmentation fault. x86_fallback_frame_state (context=<value optimized out>, fs=0xbfffde4c) at ../../../src/libgcc/../gcc/config/i386/linux-unwind.h:125 125 ../../../src/libgcc/../gcc/config/i386/linux-unwind.h: No such file or directory. in ../../../src/libgcc/../gcc/config/i386/linux-unwind.h (gdb) c Continuing. [Thread 0xb7a7ab70 (LWP 21009) exited] Program terminated with signal SIGSEGV, Segmentation fault. The program no longer exists. (gdb)

I've altered the other files like you said, and 'works' does indeed appear. It's still crashing though...

I'm a bit new to memory debugging so if there is anything else I can try, please let me know. :)
Thanks given by:
#9
Have you read ACwiki:Sounds and ACwiki:Linux Support - you might have better luck with OpenAL-soft than with the regular OpenAL .. but maybe you haven't even gotten that installed, it should be available from the ubuntu repositories for your release so compiling from source would only be required if your systems fails with the regular OpenAL instance. HTH
Thanks given by:
#10
For now, you can change audio 1 in init.cfg to audio 0, so AC will at least run (without sound, of course).

Other than that, IDK. You can try installing debug symbols for ALSA. Other than that, I'd say you should better ask on the Ubuntu forums, as this seems more like an OS+Driver+HW bug. Also, the guys there definitely know a lot more than I do.
Thanks given by:
#11
Problem solved! I installed alsoft-conf from the repositories, removed pulse audio from there, and now it's working, sound and all.

Code:
assaultcube.sh current locale: en_US.utf8 init: sdl init: net init: world init: video: sdl init: video: mode init: video: misc init: gl Renderer: GeForce 7600 GT/AGP/SSE2 (NVIDIA Corporation) Driver: 2.1.2 NVIDIA 195.36.24 init: console init: sound Audio devices: ALSA Software ALSA lib confmisc.c:768:(parse_card) cannot find card 'ICH5' ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_card_driver returned error: No such device ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_concat returned error: No such device ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_refer returned error: No such device ALSA lib conf.c:4633:(snd_config_expand) Evaluate error: No such device ALSA lib pcm.c:2211:(snd_pcm_open_noupdate) Unknown PCM default ALSA lib confmisc.c:768:(parse_card) cannot find card 'ICH5' ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_card_driver returned error: No such device ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_concat returned error: No such device ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name ALSA lib conf.c:4154:(_snd_config_evaluate) function snd_func_refer returned error: No such device ALSA lib conf.c:4633:(snd_config_expand) Evaluate error: No such device ALSA lib pcm.c:2211:(snd_pcm_open_noupdate) Unknown PCM default AL lib: alsa.c:587: Could not open playback device 'default': No such device Sound: OSS Software / OpenAL Soft (OpenAL Community) Driver: 1.1 ALSOFT 1.12.854 init: cfg init: models init: docs init: localconnect read map packages/maps/official/ac_shine.cgz rev 2 (67 milliseconds) ac_shine by DogDancing loaded textures (226 milliseconds) loaded mapmodels (3 milliseconds) loaded mapsounds (551 milliseconds) game mode is "TDM" init: mainloop unarmed: quit writing to file: config/servers.cfg writing to file: config/saved.cfg

Thanks everyone!
Thanks given by:
#12
Okay, now I wouldn't call that bunch of errors "working", but if it works, who cares :D
Thanks given by: