ورود

View Full Version : elf و کامپایل کرنل



yassersajjadi
چهارشنبه 15 شهریور 1391, 19:47 عصر
سلام یه چند روزیه دارم روی kheap کار میکنم - خلاصه کلی گیج شدم
البته گیرم اینجا نیست

قبلا از فرمت باینری استفاده میکردم حالا رفتم طرف elf
ولی دیگه گراب کرنل شناسایی نمیکنه - باید چیکار کنم ؟ تنظیمات خاصتی داره برای elf?


OUTPUT_FORMAT("elf32-i386")
ENTRY(start)
SECTIONS
{

.text 0x100000 :
{
code = .; _code = .; __code = .;
*(.text)
. = ALIGN(4096);
}

.data :
{
data = .; _data = .; __data = .;
*(.data)
*(.rodata)
. = ALIGN(4096);
}

.bss :
{
bss = .; _bss = .; __bss = .;
*(.bss)
. = ALIGN(4096);
}

end = .; _end = .; __end = .;
}



LDFLAGS=-m elf_i386 -Tlink.ld
error 13 : invalid or unsupported executable format

yassersajjadi
چهارشنبه 15 شهریور 1391, 20:04 عصر
یعنی اگه
OUTPUT_FORMAT("binary")
هیچ مشکلی ندارم

yassersajjadi
پنج شنبه 16 شهریور 1391, 03:17 صبح
جواب سوالمو یافتم (wiki) ولی نمیدونم چطوری مشکلمو حل کنم
شما هم یه نگاه بندازین ببینین چیکار کنم من؟

I still get Error 13: Invalid or unsupported executable format from GRUB ...
Chances are the multiboot header is missing from the final executable, or it is not at the right location.
If you are using some other format than ELF (such as PE), you should specify the AOUT kludge in the multiboot header. The mbchk program (coming with GRUB) and "objdump -h" should give you more hints about what is going on.
It may also happen if you use an ELF object file instead of an executable (e.g. you have an ELF file with unresolved symbols or unfixable relocations). Try to link your ELF file to a binary executable to get more accurate error messages.
A common problem when your kernel size increases, is that the multiboot header does no longer appear at the start of the output binary. The common solutions is to put the multiboot header in a separate section and make sure that section is first in the output binary, or to include the multiboot header itself in the linker script.


البته فقط قسمت زیر مربوط به منه

It may also happen if you use an ELF object file instead of an executable (e.g. you have an ELF file with unresolved symbols or unfixable relocations). Try to link your ELF file to a binary executable to get more accurate error messages.

pswin.pooya
پنج شنبه 16 شهریور 1391, 08:46 صبح
نه گراب تنظیمات خاصی برای elf نیاز نداره. خود منم یه هفته با این مشکل سر و کله میزدم. باید بگم که این مشکل داخلکدنیگ و نحوه کامپایل هسته هست. حالا هر جه قدر جلو بری مشکلات تازه بیشتر خودش رو نشون میده.
قبلا گفته بودم رو منابع داخل نت زیاد تکیه نکن. سعی کن حتما داکیومنتهای مربوط به هرچی رو که میخوای باهاش کار کنی بخونی. مثل داکیومنت گراب و مولتی بوت و یا حتی کامپایلر gcc و ... .

yassersajjadi
جمعه 17 شهریور 1391, 19:47 عصر
حسابی گیج شدم

pswin.pooya
شنبه 18 شهریور 1391, 00:01 صبح
حسابی گیج شدم

تازه شده مثل من. متاسفانه توی این مملکت هیچ رفرنس یا شخصی وجود نداره که بشه بهش رجوع کرد. فقط منابع نت هستن که نصف اونها هم ... شدن. از اون نصف موندش هم بیشترش مورد داره. کلا این قضیه توی مبحث نرم افزار hi-tech هست و سعی می کنن به این راحتی تکنولوژی اون در رست جماعت قرار نگیره.

prpe26
شنبه 18 شهریور 1391, 01:48 صبح
تازه شده مثل من. متاسفانه توی این مملکت هیچ رفرنس یا شخصی وجود نداره که بشه بهش رجوع کرد. فقط منابع نت هستن که نصف اونها هم ... شدن. از اون نصف موندش هم بیشترش مورد داره. کلا این قضیه توی مبحث نرم افزار hi-tech هست و سعی می کنن به این راحتی تکنولوژی اون در رست جماعت قرار نگیره.



میتونید توی Mailing List پروژه های اوپن سورس عضو بشید و سوالاتتون رو بپرسید :لبخندساده:
من خودم همین کار رو کردم و تقریبا کل مستندات LFS برام میل میشه :چشمک: