grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: powerpc/sparc problems


From: Bean
Subject: Re: powerpc/sparc problems
Date: Sat, 24 Oct 2009 14:13:20 +0800

On Sat, Oct 24, 2009 at 4:34 AM, rubisher <address@hidden> wrote:
> Bean wrote:
>>
>> On Thu, Oct 22, 2009 at 5:12 PM, rubisher <address@hidden> wrote:
>>>>
>>>> On Thu, Oct 22, 2009 at 12:03 AM, rubisher wrote:
>>>>>
>>>>> Bean wrote:
>>>>>>
>>>>>> On Mon, Oct 12, 2009 at 4:55 PM, Felix Zielcke wrote:
>>>>>>>
>>>>>>> David are you still there?
>>>>>>> And also anyone who has access to a powerpc machine (and experience)?
>>>>>>>
>>>>>>> In Debian we the problem that the `__ashldi3' and `__bswapsi2'
>>>>>>> symbols
>>>>>>> can't be found in the grub-ieee1275 build on powerpc and also sparc.
>>>>>>>
>>>>>>> Jordi already noticed this with the 1.96+20090721-4 IIRC and now
>>>>>>> other
>>>>>>> people noticed this with 1.97~beta3
>>>>>>> AFAICS there wasn't anything relevant changed on our side, so seems
>>>>>>> to
>>>>>>> be a gcc issue.
>>>>>>>
>>>>>>> `__ashldi3' is listed in include/grub/powerpc/libgcc.h and
>>>>>>> `__bswapsi2'
>>>>>>> in the sparc64 header.
>>>>>>> But something has now changed that this isn't enough anymore, at
>>>>>>> least
>>>>>>> in Debian.
>>>>>>>
>>>>>>> We used gcc 4.3.3 at the time Jordi noticed this and now switched to
>>>>>>> gcc-4.4.1.
>>>>>>>
>>>>>>> And David we still have this sparc bug open, which I forwared to
>>>>>>> grub-devel:
>>>>>>> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=538030
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Try my branch, it includes the libgcc functions in grub instead of
>>>>>> rely on external library. It builds and run properly for
>>>>>> powerpc-ieee1275 last time I check.
>>>>>>
>>>>> Hello Mr bean ;<)
>>>>>
>>>>> I reach to grab your git tree but even a fresh pull still failed to
>>>>> build
>>>>> from src as follow:
>>>>> grub_emu-normal_main.o: In function `uitree_append':
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:169: undefined
>>>>> reference to `grub_uitree_root'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:169: undefined
>>>>> reference to `grub_uitree_root'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:169: undefined
>>>>> reference to `grub_uitree_find'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:179: undefined
>>>>> reference to `grub_uitree_create_node'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:184: undefined
>>>>> reference to `grub_uitree_set_prop'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:185: undefined
>>>>> reference to `grub_uitree_set_prop'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:186: undefined
>>>>> reference to `grub_tree_add_child'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:172: undefined
>>>>> reference to `grub_uitree_create_node'
>>>>> /Sources/jso/Grub2.deb/grub2-git091021/normal/main.c:175: undefined
>>>>> reference to `grub_tree_add_child'
>>>>> collect2: ld returned 1 exit status
>>>>> make[1]: *** [grub-emu] Error 1
>>>>> make[1]: Leaving directory
>>>>> `/Sources/jso/Grub2.deb/grub2-git091021/build/grub-common'
>>>>> make: *** [build/grub-common] Error 2
>>>>> dpkg-buildpackage: error: debian/rules build gave error exit status 2
>>>>>
>>>>> Any idea/advise?
>>>>
>>>> Hi,
>>>>
>>>> I forget to add some file for grub-emu previously, but it's fixed
>>>> already, pull the latest code.
>>>>
>>>> --
>>>> Bean
>>>>
>>>> gitgrub home: http://github.com/grub/grub/
>>>> my fork page: http://github.com/bean123/grub/
>>>>
>>> Sorry I would have to be more accurate:
>>> the git log said:
>>> commit eb03e2575b2c0b1b4fd83f33a741f6fef3b93339
>>> Author: Bean <address@hidden>
>>> Date:   Wed Oct 21 01:11:27 2009 +0800
>>>
>>>    Minor bug fix for parameter handling.
>>>
>>> commit 8a3390f0164c89e8ae73884672556a9b31cbd766
>>> Author: Bean <address@hidden>
>>> Date:   Tue Oct 20 22:37:32 2009 +0800
>>>
>>>    Support dialog and template, set maximum text mode for EFI.
>>>
>>> Anyway, I remove all and clone it again:
>>> git clone http://github.com/bean123/grub.git
>>> copy this git tree in a working dir then run autogen.sh; mkdir build; cd
>>> build; ../configure; make
>>> which still failed the same way.
>>>
>>> Did i miss something???
>>
>> Hi,
>>
>> Oh I see, you use the powepc port, I only fix the x86 port. A quick
>> fix is to open conf/powerpc_ieee1275.rmk, find grub_emu_SOURCES and
>> add menu/tree.c and menu/uitree.c.
>>
>>
> Thanks that's help to continue and to finish the build but failed to assemle
> the image:
> /usr/bin/grub-mkelfimage --directory=/usr/lib/grub/powerpc-ieee1275
> --output=/boot/grub/grub fat part_msdos
> grub-mkimage: error: unresolved symbol _savegpr_29
>
> But if I manage to rebuild it with -O0 (or -O2), I reach to boot it ;-).
> But I guess there isn't enough module loaded because at grub prompt, it
> didn't find any disk?
>
> That said by default the dpkg build the kern.img as follow:
>
> # /usr/bin/grub-mkelfimage --directory=/usr/lib/grub/powerpc-ieee1275
> --output=/boot/grub/grub fat part_msdos
>
> and create for me a grub.cfg with severall menuentries like:
> ### BEGIN /etc/grub.d/10_linux ###
> menuentry "Debian GNU/Linux, with Linux 2.6.30-2-powerpc64" {
>        insmod ext2
>        set root=(hd1,3)
>        search --no-floppy --fs-uuid --set
> 16ef0754-c845-46e9-a948-b9669ee68329
>        linux   /vmlinux-2.6.30-2-powerpc64
> root=UUID=3c51c43e-63a7-4ff1-9b1c-cf98addcb7ed ro  quiet
>        initrd  /initrd.img-2.6.30-2-powerpc64
> }
>
> Given those 2 elements, I presume that the fact grub2 isn't able to find any
> disk is because it lakes of one or more module either in the build image or
> in menuentry (I just started with grub2 2 weeks ago so please appology if
> don't yet understand all details)?
>
> As it seems that you have some experience with powerpc, may be can you
> advise me with some your tips (how did you build your image, a sample of one
> your menuentry?): I also tried to follow recipe of
> <http://grub.enbug.org/TestingOnPowerPC> i.e.
> # cd /usr/lib/grub/powerpc-ieee1275 (where *.mod stand)
> # /usr/bin/grub-mkelfimage -n --directory=/usr/lib/grub/powerpc-ieee1275
> --output=/boot/grub/grubof.modules *.mod
> (-n for pseries) but this image sadely make panicing ofs:
> DEFAULT CATCH!, exception-handler=fff00300
> at   %SRR0: 0000000000c3c25c   %SRR1: 800000000000b002
> Call History
> ------------
> @  - c3c1f0
> close-package  - c58060
> (poplocals)  - c3a758
> (init-program)  - c7e298
> boot  - c7ec7c
> evaluate  - c4a638
> invalid pointer - d83655
> invalid pointer - f
> invalid pointer - f
> catch  - c38fe8
> bt-task-boot-on-this  - d140d8
> (poplocals)  - c3a758
> catch  - c38fe8
> execute-device-method  - c58bcc
> (poplocals)  - c3a758
> (select-boot-seq)  - c59ba4
>
> Client's Fix Pt Regs:
> Client's Fix Pt Regs:
>  00 00100000000001f4 ffffffffffffffff 00000000deadbeef fffffffffffffffc
>  04 0000000000000000 0000000000000000 0000000000000000 0000000000000001
>  08 0000000000001000 0000030002001000 0000000000000003 0000000000007000
>  0c 0000000022800000 0000000000c17100 0000000000c18000 000000000009c4b0
>  10 0000000000db8c20 0000000000db8939 0000000000c57d80 0000000000c58060
>  14 0000000000000000 ffffffffffffffff 0000000000000000 0000000000000000
>  18 0000000000c13000 0000000000c38000 0000000000c14d40 0000000000c16ec0
>  1c 0000000000c20000 0000000000c3fdf0 0000000000c11ea0 0000000000c10fa8
> Special Regs:
>    %IV: 00000300     %CR: 84800000    %XER: 20000008  %DSISR: 08000000
>  %SRR0: 0000000000c3c25c   %SRR1: 800000000000b002
>    %LR: 0000000000c3c1f0    %CTR: 0000000000000000
>   %DAR: ffffffffffffffff
> Virtual PID = 0
>  ofdbg
>
> At this point I am worry that the change of optimization compile option (-Os
> -> -O0) break something or am I facing to some issue related to my ofs or
> something else in config file (e.g. I just figure out that I didn't change
> my grub.cfg with the usage of lasetest describe image grubof.modules: I
> didn't remove the 'insmod ext2', thought?)

Hi,

Don't include all modules, the boot image seems to be broken when it
exceed certain size. The following list should be enough:

minicmd fat part_msdos normal sh ls linux

in the grub shell, use ls command to list detected devices.

-- 
Bean

gitgrub home: http://github.com/grub/grub/
my fork page: http://github.com/bean123/grub/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]