O Firefox 3.5 pode rodar no Linux Kernel 2.4?

1

Estou tentando executar o Firefox dentro de um chroot do Linux. O chroot tem uma cópia do Debian Etch instalado via debootstrap. Se o chroot estiver rodando em uma máquina com um kernel 2.6, eu posso rodar o Firefox 2.0, 3.0 e 3.5. Meu problema ocorre quando eu movo o chroot para uma máquina rodando um kernel 2.4.37, então eu posso rodar o 2.0, tudo bem, mas o 3.0 e 3.5 ambos ficam pendurados silenciosamente, sem exibição e sem saída de erros.

Com o Firefox 3.5 na máquina Kernel 2.4, strace -f ./firefox outputs: (somente as últimas linhas antes do travamento mostrado)

[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([]

A chamada set_thread_area falhou com "Função não implementada" junto com o fato de que desde que eu estou rodando em um chroot, somente o kernel é diferente entre meus dois ambientes rodando, me leva a acreditar que o Firefox não roda em o kernel 2.4. No entanto, o Mozilla lista uma longa lista de requisitos para rodar o Firefox, e o kernel 2.6 não é um deles. Alguém pode sugerir uma solução para como eu posso fazer isso funcionar?

    
por bk. 28.07.2009 / 21:00

5 respostas

3

A primeira coisa que eu tentaria é compilá-lo na máquina 2.4-kernel, então seu compilador não tenta usar o ABI 2.6-kernel. Se você conseguir compilar com sucesso com o 2.4, provavelmente funcionará bem. Se não, provavelmente há uma dependência oculta em algum lugar.

    
por 28.07.2009 / 22:08
2

Embora essa função não seja implementada no 2.4, ela provavelmente não é chamada pelo próprio Firefox. Eu estou supondo que, executando - em 2.4 - um binário compilado e ligado ao 2.6, você chama uma biblioteca que é incompatível. Como o Firefox é um material portátil, ele é separado ou parte de uma biblioteca separada.

    
por 28.07.2009 / 22:03
1

você está baixando binários ou compilando a partir do código-fonte? para binário, você tem certeza de que a versão do glibc corresponde ao que você instalou?

    
por 28.07.2009 / 22:07
1

Você precisa verificar as versões glibc (não simplificadas). Basta executar o /lib/libc.so.6 e publicar os resultados

    
por 26.10.2009 / 12:01
0

Eu realmente duvido .. MUITO mudou em redes Linux (na medida em que o kernel fornece) de 2.4 para 2.6, e até mesmo de 2.6.20 para 2.6.24 +. Não apenas mudanças triviais, estruturas inteiras foram renomeadas totalmente, algumas desapareceram completamente, outras tiveram seus membros reorganizados.

É provável que ele precise de muito mexerico antes mesmo que você consiga construir.

    
por 26.10.2009 / 13:56