[EMAIL PROTECTED] wrote:
> Boaz Harrosh wrote:
>> [EMAIL PROTECTED] wrote:
>>   
>>> Boaz Harrosh wrote:
>>>     
>>>> [EMAIL PROTECTED] wrote:
>>>>   
>>>>       
>>>>> Boaz Harrosh wrote:
>>>>>     
>>>>>         
>>>>>> [EMAIL PROTECTED] wrote:
>>>>>>   
>>>>>>       
>>>>>>           
>>>>>>> Hi!
>>>>>>>
>>>>>>>  I've compiled an UML kernel based on 2.6.25 but loading kernel modules 
>>>>>>> seems to be broken. No matter which module I try to load the output 
>>>>>>> looks similar to this:
>>>>>>>
>>>>>>>  overflow in relocation type 11 val 80836d41
>>>>>>> 'loop' likely not compiled with -mcmodel=kernel
>>>>>>>
>>>>>>> After searching for a while I found some threads from 2006 discussing 
>>>>>>> this issue, e.g.:
>>>>>>> http://www.mail-archive.com/user-mode-linux-devel@lists.sourceforge.net/msg03693.html
>>>>>>> and
>>>>>>> http://marc.info/?l=user-mode-linux-devel&m=115125101012707&w=2
>>>>>>>
>>>>>>> As Andi Kleen has mentioned in a mail from the first thread, simply 
>>>>>>> appending "-mcmodel=kernel" to the KBUILD_CFLAGS does not work (I tried 
>>>>>>> it anyway and can confirm his statement ;)
>>>>>>>
>>>>>>> Since I could not find any solution I've decided to write this mail and 
>>>>>>> ask about the current state of this issue and of course for a solution! 
>>>>>>> I simply don't want to believe that there is no loadable module support 
>>>>>>> for UML in 2008...
>>>>>>>
>>>>>>> Regards
>>>>>>> JK
>>>>>>>
>>>>>>>     
>>>>>>>         
>>>>>>>             
>>>>>> Every thing is fine down here. What host Kernel-gcc-glibc / uml-gcc-glibc
>>>>>> are you using?
>>>>>>
>>>>>> I'm using out-of-tree modules with uml for every kernel since 2.6.19.
>>>>>> I have both Host and UML as x86_64 on FC7 with gcc 4.1.2
>>>>>>
>>>>>> Boaz
>>>>>>
>>>>>>   
>>>>>>       
>>>>>>           
>>>>> I'm glad to here that the bug has been fixed. Anyway, it does not work
>>>>> with my configuration:
>>>>>
>>>>>  - CentOS 5.1 as host system and UML root fs
>>>>>  - Kernel 2.6.25.4 (vanilla, but config taken from the CentOS kernel)
>>>>>  - GCC 4.1.2
>>>>>  - GLIBC 2.5
>>>>>
>>>>> Regards
>>>>> JK
>>>>>
>>>>>     
>>>>>         
>>>> I used to run with red-hat 4.5 so this should work.
>>>> 64 bit, right?
>>>>
>>>> From passed experience I've seen that UML will only
>>>> work if I first do "make ARCH=um defconfig"  and then
>>>> manually enable any needed options with make xconfig.
>>>> other wise it breaks in all kind of ways. Even doing
>>>> a make oldconfig on a good uml config file from older
>>>> kernel will not work. Try to do defconfig and see if
>>>> it loads at all.
>>>>
>>>> How do you compile and run the out-of-tree module
>>>> or is it one of the built in modules?
>>>>
>>>> Boaz
>>>>
>>>>   
>>>>       
>>> I tried what you've suggested and did the following:
>>> - make mrproper
>>> - make defconfig ARCH=um
>>> - make linux ARCH=um
>>> - make modules ARCH=um
>>> - make modules_install INSTALL_MOD_PATH=/path/to/mounted/uml_root_fs ARCH=um
>>>
>>> It did not work (same result).
>>>
>>> After that, I copied the kernel source to the uml-root-fs, started the
>>> UML and did a 'make clean' and 'make modules ARCH=um' inside the running
>>> UML, followed by a 'make modules_install'. Again, it did not work.
>>>
>>> After that, I've extracted the kernel source again (completely vanilla)
>>> and restarted at 'make defconfig'. Same result.
>>> No module is loadable. They all have 'invalid fomrat' an the usage of
>>> the '-mcmodel=kernel' flag is suggested.
>>>
>>> BTW : with the same sources (and the same commands as listed above) I've
>>> successfully built a fully working 32 bit UML kernel!
>>>
>>> I've also tried kernel 2.6.24.7 with identical results.
>>>
>>> Last but not least, I've tried the same with a fresh download of the
>>> 2.6.26 kernel. Unfortunately, this time there was another problem: the
>>> kernel exits with a panic on startup (tried to build it twice with the
>>> same result). According to the stack-trace, the panic happens somewhere
>>> inside "get_page_from_free_list()"...
>>>
>>> I'm really running out of ideas right now, does anyone have some
>>> suggestions?
>>>
>>> Regards
>>> JK
>>>  
>>>     
>>
>> It all works down here. Just a long shot you have installed uml_utilities
>> on the host ...
>>   
> They are installed.
>> I run the uml from the root of the source tree like this:
>> ......./.build_um/vmlinux ubd0=/usr0/var/local/um/Fedora7-AMD64-root_fs 
>> eth0=tuntap,,,192.168.0.117 mem=256M
>> (The .build_um/ is because I use KBUILD_OUTPUT=.build_um so I can compile 
>> multiple targets from same source tree)
>>
>> Maybe there is some package missing from the Linux image you are using.
>> You are using a 64bit Linux image with your 64bit kernel, yes?
>> Try to compare the 32 bit image with the 64bit one. See if they have
>> the same packages installed. I started with a ready made fedora7 uml
>> image and never really touched it much except the occasional yum install
>> of a library or two.
>>
>> Boaz
>>   
> I already thought about the root fs being the reason for this, but I
> can't imagine how a different root can affect the kernel's ability to
> load modules. It should not be affected by any packages installed, isn't it?
>  Anyway, after taking a closer look to your starting command, I noticed
> another difference: I've always been using "mem=512m" on the 64 bit
> system (it's an 8 GB machine). I've tried it with "mem=256" and IT
> FINALLY WORKS! All the kernels I've compiled are working correctly now,
> except for the 2.6.26 which still exits with a panic on startup...
> 
> Thank you very much for your help! But I'd really like to know why it
> did not work with "m= 512m". I've always thought that this would only
> alter the max. available memory inside the UML. Maybe this is a bug though?
> 
> Regards
> JK

It is certainly sounds like a bug. I also get problems with 512M but I only
have 1G on my machine and I have lots of initrd configured modules so it 
can be lots of things.
Please use gdb and try to see what fails and report.

$ gdb vmlinux
gdb> run ubd0=/path_to/uml-root_fs eth0=tuntap,,,192.168.0.117 mem=512M

you might need a few continues:
gdb> c
This is expected.

Try to see what happens just before those cryptic error messages of
load failure, also compare the bad run with a good run of 256M

I will try and do the same once I find a bit of time. Perhaps next week.

Thanks
Boaz

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to