Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am trying to run Firefox inside of a Linux chroot. The chroot has a copy of Debian Etch installed via debootstrap. If the chroot is running on a machine w/ a 2.6 kernel, I can run Firefox 2.0, 3.0 and 3.5 all fine. My problem occurs when I move the chroot to a machine running a 2.4.37 kernel, then I can run 2.0 alright, but 3.0 and 3.5 both hang silently with no display and no errors output.

With Firefox 3.5 on the Kernel 2.4 machine, strace -f ./firefox outputs: (only the last few lines before the hang shown)

[pid  8220] set_thread_area({entry_number:-1 -> -1, base_addr:0x41bef140, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = -1 ENOSYS (Function not implemented)
[pid  8220] modify_ldt(1, {entry_number:0, base_addr:0x41bef140, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = 0
[pid  8220] munmap(0x40019000, 11144)   = 0
[pid  8220] getpid()                    = 8220
[pid  8220] rt_sigaction(SIGRTMIN, {0x400241e0, [], SA_RESTORER, 0x416f58f8}, NULL, 8) =     0
[pid  8220] rt_sigaction(SIGRT_1, {0x40023cc0, [RTMIN], SA_RESTORER, 0x416f58f8}, NULL, 8) = 0
[pid  8220] rt_sigaction(SIGRT_2, {0x40023500, [], SA_RESTORER, 0x416f58f8}, NULL, 8) = 0
[pid  8220] rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
[pid  8220] rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
[pid  8220] open("/proc/cpuinfo", O_RDONLY) = 3
[pid  8220] read(3, "processor\t: 0\nvendor_id\t: Genuin"..., 1024) = 422
[pid  8220] read(3, "", 1024)           = 0
[pid  8220] close(3)                    = 0
[pid  8220] readlink("/etc/malloc.conf", 0xbfffe47b, 4096) = -1 ENOENT (No such file or     directory)
[pid  8220] rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
[pid  8220] rt_sigsuspend([]

The set_thread_area call failing with "Function Not Implemented" along with the fact that since I'm runninng in a chroot, only the kernel is different between my two running environments, leads me to believe that Firefox does not run on the 2.4 kernel. However, Mozilla lists a long list of requirements for running Firefox, and 2.6 kernel is not one of them. Can anyone suggest a workaround for how I can get this running?

share|improve this question
add comment

5 Answers

up vote 3 down vote accepted

The first thing I'd try is to actually compile it on the 2.4-kernel machine, so your compiler doesn't try to use the 2.6-kernel ABI. If you can successfully compile under 2.4, it'll probably work fine. If not, there's probably a hidden dependency somewhere.

share|improve this answer
add comment

While this function is indeed not implemented in 2.4, it's probably not called from Firefox itself. I'm guessing that by running -- in 2.4 -- a binary compiled and linked against 2.6, you call a library that is incompatible. Since Firefox is portable stuff, this is either ifdef'ed or part of a separate library.

share|improve this answer
add comment

are you downloading binaries, or compiling from source? for binary, are you sure the version of glibc matches what you have installed?

share|improve this answer
    
I'm using the precompiled Linux binaries from mozilla.com. The same page w/ the downlod link includes the system requirements including minimum glibc version, which I meet. mozilla.com/en-US/firefox/system-requirements.html –  bk. Jul 28 '09 at 20:10
    
if so, I would give the strace and your /proc/cpuinfo to bugzilla.mozilla.org –  Notmyfault Jul 28 '09 at 20:15
    
then have you tried compiling from source or finding a distro repository with packaged versions? 3.0 should definitely be available for anything at this point, while 3.5 probably isnt. –  Devnull Jul 28 '09 at 20:22
add comment

You need to check glibc (not glib) versions. Just run /lib/libc.so.6 and post results

share|improve this answer
add comment

I really doubt it .. A LOT changed in Linux networking (as far as what the kernel provides) from 2.4 to 2.6, and even from 2.6.20 to 2.6.24 +. Not just trivial changes, entire structures were re-named totally, some vanished completely, others had their members re-arranged.

Its likely going to need a great deal of fiddling before you can even get it to build.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.