I have managed to upgrade (to the latest SVN trunk), compile, and install freeswitch + its packages on an external USB partition of my WGT634U. Every time when I try to run /etc/init.d/freeswitch start (once I have executed ulimit -s 240), freeswitch returns the Aborted message. So, I installed strace package and captured its output to a file. The file is about 27KB in size and I don't suppose it will be prudent to post it here unless I can attach it. However, after studying the output file from strace, I noticed the following two ioctl lines (towards the end of the file) before freeswitched terminated its process:
ioctl(0, TIOCNXCL, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCNXCL, 0x7fa522c8) = -1 ENOTTY (Inappropriate ioctl for device)
getpid() = 4768
getrlimit(RLIMIT_STACK, {rlim_cur=240*1024, rlim_max=240*1024}) = 0
rt_sigaction(SIGRT_0, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|SA_SIGINFO|0x2c669f0}, NULL, 16)
rt_sigaction(SIGRT_1, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|SA_SIGINFO|0x2c66910}, NULL, 16)
rt_sigaction(SIGRT_2, {SIG_DFL, [], SA_STACK|SA_INTERRUPT|0x2c65b24}, NULL, 16) = 0
rt_sigprocmask(SIG_BLOCK, [RT_0], NULL, 16) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 16) = 0
brk(0) = 0x416000
brk(0x417000) = 0x417000
brk(0x419000) = 0x419000
brk(0x41b000) = 0x41b000
rt_sigaction(SIGILL, {0x10000000, [], 0x401190 /* SA_??? */}, {SIG_DFL, [], 0}, 16) = 0
rt_sigaction(SIGTERM, {0x10000000, [], 0x401190 /* SA_??? */}, {SIG_DFL, [], 0}, 16) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=240*1024, rlim_max=240*1024}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=240*1024, rlim_max=8192*1024}) = 0
setrlimit(RLIMIT_NOFILE, {rlim_cur=999999, rlim_max=999999}) = 0
setrlimit(RLIMIT_CPU, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_DATA, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_FSIZE, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_NPROC, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_RTPRIO, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_AS, {rlim_cur=RLIM_INFINITY, rlim_max=RLIM_INFINITY}) = 0
brk(0x41c000) = 0x41c000
getpid() = 4768
brk(0x41e000) = 0x41e000
open("/tmp/freeswitch/log//freeswitch.pid", O_RDONLY) = 3
read(3, "4743"..., 32) = 4
close(3) = 0
open("/tmp/freeswitch/log//freeswitch.pid", O_WRONLY|O_CREAT|O_TRUNC, 0600) = 3
fcntl(3, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0
write(3, "4768"..., 4) = 4
brk(0x420000) = 0x420000
rt_sigprocmask(SIG_UNBLOCK, [IOT], NULL, 16) = 0
getpid() = 4768
kill(4768, SIGIOT) = 0
--- SIGIOT (Aborted) @ 0 (0) ---
+++ killed by SIGIOT +++
- /tmp/freeswitch.strace
From the above excerpt, the only thing I noticed is freeswitch had a problem with IOCTL. Being a non-programmer, I am hoping anyone out here can help me out to debug this problem.