Hi.
I'm from Brazil and this message was translated into English using 
googletranlator. Below is the original text.



I'm trying to compile grub-1.99 ~ rc1 and am getting an error message.



The story from the beginning:

I compiled the kernel linux-2.6.36.2, configured the file / boot / grub / 
menu.lst as follows:



======= PART REFERRED TO THE NEW KERNEL =======

title = CB_Conectiva Linux - 2.6.36.2_0CBhighmem

= kernel (hd0, 5) / vmlinuz-2.6.36.2_0CBhighmem root = / dev/hda5 vga = 0x314

initrd = (hd0, 5) / vmlinuz-2.6.36.2_0CBhighmem

=========================================



I created the file / boot/initrd-2.6.36.2_0CBhighmem with the following command:

mkinitrd / boot/initrd-2.6.36.2_0CBhighmem 2.6.36.2_0CBhighmem



But when I restart and having to boot the new kernel, I get the following 
message: No setup found Segnatura ...



Searching
the Internet I discovered that this message seems to be related to the
version of grub that is installed on my system (very old), which is
0.92. So I decided to compile and update.

I tried to compile all these versions:

grub-0.96

grub-1.90

grub-1.94

grub-1.96

grub-1.97

grub-1.97.2

grub-1.98

And they all return an error message like this (when using. / Configure):

objcopy checking for ... objcopy

Whether checking objcopy works for absolute addresses ... configure: error: gcc 
can not link at address 7C00



I could not solve it and went on to build for version 1.99 ~ rc1, running 
through the setup process without problems. But when I "make" to actually 
build, the following message appears at the end:



gcc-DHAVE_CONFIG_H-I. -I .. -W-Wall
-I../include -I../include-DGRUB_MACHINE_PCBIOS = 1-DGRUB_MACHINE =
I386_PC-DGRUB_FILE = \ "video / fb / video_fb.c \"-I. -I. -I .. -I .. 
-I../include
-I../include-Os-Wall-W-Wshadow-Wpointer-arith-Wmissing-prototypes-Wundef-Wstrict-prototypes-g-falign-jumps
= 1-falign-loops = 1-falign -functions
=
1-mno-mmx-mno-sse-mno-sse2-mno-3dnow-m32-fno-stack-protector-mno-stack-arg-probe-Werror-MRTD-mregparm
ffreestanding = 3-MT-video / fb
/ video_fb_module-video_fb.o-MD-MP-MF video / fb / .deps-core /
video_fb_module-video_fb.Tpo-c-o video / fb /
video_fb_module-video_fb.o `test-f 'video / fb / video_fb . c '| | echo'./'` 
video / fb / video_fb.c

cc1: warnings Being treated the errors

video / fb / video_fb.c: In function 'grub_video_fb_setup':

video
/ fb / video_fb.c: 1451: warning: passing argument 4 of
'grub_video_fb_doublebuf_blit_init' Discards qualifiers from pointer
target type

make [3]: ** [video / fb / video_fb_module-video_fb.o] Error 1

make [3]: Leaving directory `/ ~ home/raniere/tmp/compilacao/GRUB/grub-1.99 
rc1/grub-core '

make [2]: ** [all] Error 2

make [2]: Leaving directory `/ ~ home/raniere/tmp/compilacao/GRUB/grub-1.99 
rc1/grub-core '

make [1]: ** [all-recursive] Error 1

make [1]: Leaving directory `/ home/raniere/tmp/compilacao/GRUB/grub-1.99 ~ rc1 
'

make: ** [all] Error 2



If I use "make-d" for more details I get the following:



gcc-DHAVE_CONFIG_H-I. -I .. -W-Wall
-I../include -I../include-DGRUB_MACHINE_PCBIOS = 1-DGRUB_MACHINE =
I386_PC-DGRUB_FILE = \ "video / fb / video_fb.c \"-I. -I. -I .. -I .. 
-I../include
-I../include-Os-Wall-W-Wshadow-Wpointer-arith-Wmissing-prototypes-Wundef-Wstrict-prototypes-g-falign-jumps
= 1-falign-loops = 1-falign -functions
=
1-mno-mmx-mno-sse-mno-sse2-mno-3dnow-m32-fno-stack-protector-mno-stack-arg-probe-Werror-MRTD-mregparm
ffreestanding = 3-MT-video / fb
/ video_fb_module-video_fb.o-MD-MP-MF video / fb / .deps-core /
video_fb_module-video_fb.Tpo-c-o video / fb /
video_fb_module-video_fb.o `test-f 'video / fb / video_fb . c '| | echo'./'` 
video / fb / video_fb.c

Putting child 0x40a43c00 (video / fb / video_fb_module-video_fb.o) PID 4940 on 
the chain.

Live child 0x40a43c00 (video / fb / video_fb_module-video_fb.o) PID 4940

cc1: warnings Being treated the errors

video / fb / video_fb.c: In function 'grub_video_fb_setup':

video
/ fb / video_fb.c: 1451: warning: passing argument 4 of
'grub_video_fb_doublebuf_blit_init' Discards qualifiers from pointer
target type

Reaping losing child 0x40a43c00 PID 4940

make [3]: ** [video / fb / video_fb_module-video_fb.o] Error 1

Removing child 0x40a43c00 PID 4940 from chain.

make [3]: Leaving directory `/ ~ home/raniere/tmp/compilacao/GRUB/grub-1.99 
rc1/grub-core '

Reaping losing child 0x40949ac0 PID 4934

make [2]: ** [all] Error 2

Removing child 0x40949ac0 PID 4934 from chain.

make [2]: Leaving directory `/ ~ home/raniere/tmp/compilacao/GRUB/grub-1.99 
rc1/grub-core '

Reaping losing child 0x404a3400 PID 4904

make [1]: ** [all-recursive] Error 1

Removing child 0x404a3400 PID 4904 from chain.

make [1]: Leaving directory `/ home/raniere/tmp/compilacao/GRUB/grub-1.99 ~ rc1 
'

Reaping losing child 0x40665d80 PID 4898

make: ** [all] Error 2

Removing child 0x40665d80 PID 4898 from chain.

bash-2.05b #

bash-2.05b #



Looking
at the error message, it seems that the problem is in fact the compiler
does not get any info on such a video mode or video buffer.

And
it seems that the file "video / fb / video_fb.c" on the directory tree
of source code from grub, is the main participant of the error,
especially at line 1451 of file.

I do not understand anything when looking at the file and also not sure what 
the problem is him. maybe I am missing some dependency, though I do not miss 
not one.

And so, on the Internet, everyone seems to show the build process as something 
simple, but here is not working too well.



Does anyone have any tips?

If you do not know of anything that might help, but can direct me to a place 
where one can take my doubt, it will be very good! :)



GCC version used: 4.2.2



Thanks.



-----------

Original text:

 
Olá.

Estou tentando compilar o grub-1.99~rc1 e estou recebendo uma mensagem de erro.



A história desde o começo:

Compilei o kernel linux-2.6.36.2; configurei o arquivo /boot/grub/menu.lst da 
seguinte forma:



=======PARTE QUE SE REFERE AO NOVO KERNEL=======

title = CB_Conectiva Linux - 2.6.36.2_0CBhighmem

        kernel = (hd0,5)/vmlinuz-2.6.36.2_0CBhighmem root=/dev/hda5 vga=0x314

        initrd = (hd0,5)/vmlinuz-2.6.36.2_0CBhighmem

=========================================



Criei o arquivo /boot/initrd-2.6.36.2_0CBhighmem com o seguinte comando:

mkinitrd /boot/initrd-2.6.36.2_0CBhighmem 2.6.36.2_0CBhighmem



Mas quando reinicio e tendo dar boot pelo novo kernel, recebo a seguinte 
mensagem: No setup segnature found...



Pesquisando na Internet descobri que essa mensagem parece estar
relacionada com a versão do grub que está instalada em meu sistema
(muito antiga), que é a 0.92. Então resolvi compilar e atualizar.

Tentei compilar todas estas versões:

grub-0.96

grub-1.90

grub-1.94

grub-1.96

grub-1.97

grub-1.97.2

grub-1.98

E todas elas retornam uma mensagem de erro como esta (quando uso ./configure):

checking for objcopy... objcopy

checking whether objcopy works for absolute addresses... configure: error: gcc 
cannot link at address 7C00



Eu não consegui resolver isso e parti para a compilação da versão
1.99~rc1, que passa pelo processo de configuração sem problemas. Mas
quando dou "make" para efetivamente compilar, surge a seguinte mensagem
no final:



gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include
-DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC
-DGRUB_FILE=\"video/fb/video_fb.c\" -I. -I. -I.. -I.. -I../include
-I../include -Os -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes
-Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1
-falign-functions=1 -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -m32
-fno-stack-protector -mno-stack-arg-probe -Werror -mrtd -mregparm=3
-ffreestanding -MT video/fb/video_fb_module-video_fb.o -MD -MP -MF
video/fb/.deps-core/video_fb_module-video_fb.Tpo -c -o
video/fb/video_fb_module-video_fb.o `test -f 'video/fb/video_fb.c' ||
echo './'`video/fb/video_fb.c

cc1: warnings being treated as errors

video/fb/video_fb.c: In function 'grub_video_fb_setup':

video/fb/video_fb.c:1451: warning: passing argument 4 of
'grub_video_fb_doublebuf_blit_init' discards qualifiers from pointer
target type

make[3]: ** [video/fb/video_fb_module-video_fb.o] Erro 1

make[3]: Saindo do diretório 
`/home/raniere/tmp/compilacao/GRUB/grub-1.99~rc1/grub-core'

make[2]: ** [all] Erro 2

make[2]: Saindo do diretório 
`/home/raniere/tmp/compilacao/GRUB/grub-1.99~rc1/grub-core'

make[1]: ** [all-recursive] Erro 1

make[1]: Saindo do diretório `/home/raniere/tmp/compilacao/GRUB/grub-1.99~rc1'

make: ** [all] Erro 2



Se eu usar "make -d" para ver mais detalhes obtenho o seguinte:



gcc -DHAVE_CONFIG_H -I. -I.. -Wall -W -I../include -I../include
-DGRUB_MACHINE_PCBIOS=1 -DGRUB_MACHINE=I386_PC
-DGRUB_FILE=\"video/fb/video_fb.c\" -I. -I. -I.. -I.. -I../include
-I../include -Os -Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes
-Wundef -Wstrict-prototypes -g -falign-jumps=1 -falign-loops=1
-falign-functions=1 -mno-mmx -mno-sse -mno-sse2 -mno-3dnow -m32
-fno-stack-protector -mno-stack-arg-probe -Werror -mrtd -mregparm=3
-ffreestanding -MT video/fb/video_fb_module-video_fb.o -MD -MP -MF
video/fb/.deps-core/video_fb_module-video_fb.Tpo -c -o
video/fb/video_fb_module-video_fb.o `test -f 'video/fb/video_fb.c' ||
echo './'`video/fb/video_fb.c

Putting child 0x40a43c00 (video/fb/video_fb_module-video_fb.o) PID 4940 on the 
chain.

Live child 0x40a43c00 (video/fb/video_fb_module-video_fb.o) PID 4940

cc1: warnings being treated as errors

video/fb/video_fb.c: In function 'grub_video_fb_setup':

video/fb/video_fb.c:1451: warning: passing argument 4 of
'grub_video_fb_doublebuf_blit_init' discards qualifiers from pointer
target type

Reaping losing child 0x40a43c00 PID 4940

make[3]: ** [video/fb/video_fb_module-video_fb.o] Erro 1

Removing child 0x40a43c00 PID 4940 from chain.

make[3]: Saindo do diretório 
`/home/raniere/tmp/compilacao/GRUB/grub-1.99~rc1/grub-core'

Reaping losing child 0x40949ac0 PID 4934

make[2]: ** [all] Erro 2

Removing child 0x40949ac0 PID 4934 from chain.

make[2]: Saindo do diretório 
`/home/raniere/tmp/compilacao/GRUB/grub-1.99~rc1/grub-core'

Reaping losing child 0x404a3400 PID 4904

make[1]: ** [all-recursive] Erro 1

Removing child 0x404a3400 PID 4904 from chain.

make[1]: Saindo do diretório `/home/raniere/tmp/compilacao/GRUB/grub-1.99~rc1'

Reaping losing child 0x40665d80 PID 4898

make: ** [all] Erro 2

Removing child 0x40665d80 PID 4898 from chain.

bash-2.05b#

bash-2.05b#



Olhando a mensagem de erro, parece que o problema está no fato do
compilador não conseguir alguma informação sobre um tal modo de vídeo
ou buffer de vídeo.

E parece que o arquivo "video/fb/video_fb.c", na arvore de diretórios
do código fonte do grub, é o principal participante do erro, em
especial na linha 1451, do arquivo.

Eu não entendi nada ao olhar o arquivo, e também não tenho certeza de
que o problema é nele. talvez eu esteja com alguma dependência
faltando, apesar de achar que não falta nem uma.

E por aí, na internet, todos parecem mostrar o processo de compilação como algo 
simples, mas aqui não está dando muito certo.



Alguém tem alguma dica?

Se não souberem de algo que possa ajudar, mas puderem me indicar um
local onde um possa levar minha dúvida, já será muito bom! :)



Versão do GCC usado: 4.2.2



Obrigado.



      
_______________________________________________
Help-grub mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-grub

Reply via email to