Thursday, August 28, 2014

Can Firefox 3.5 run on Linux Kernel 2.4?



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?


Answer



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.



No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...