Hallo,
also ich arbeite mit Eclipse. Ich habe dort in den Eigenschaften dann einfach ein Flag angegeben mit dem Linkerscript, das wie folgt lautet:
/* Bei _start soll die Ausfuehrung losgehen */
ENTRY(_start)
/*
* Hier wird festgelegt, in welcher Reihenfolge welche Sektionen in die Binary
* geschrieben werden sollen
*/
SECTIONS
{
/*
* . ist die aktuelle Position in der Datei. Wir wollen den Kernel wie gehabt
* an 1 MB laden, also muessen wir dort die erste Sektion hinlegen
*/
. = 0x100000;
/*
* Der Multiboot-Header muss zuerst kommen (in den ersten 8 kB).
* Die Standardsektionen einfach hintereinander weg einbinden.
*/
.text : {
*(multiboot)
*(.text)
}
.data ALIGN(4096) : {
*(.data)
}
.rodata ALIGN(4096) : {
*(.rodata)
}
.bss ALIGN(4096) : {
*(.bss)
}
}
Also die CD ist zwar bootfähig und Grub meldet sich auch, aber danach gelange ich in die Shell und wenn ich von dort aus meinen Kernel via
kernel /kernel
boot
starten will, meldet er, er kenne den Befehl "kernel" nicht (In einem Linux-Forum habe ich gelesen, dass es so gehen soll).
Die CD mache ich via
#!/bin/sh
#Konstanten
PFAD=/tmp/kernel
AUSGABE=./os.iso
#lese Pfad zum Kernel und Name ein
read KERNEL
mkdir ${PFAD}
rm ${PFAD}/*
cp ${KERNEL} ${PFAD}/kernel
grub-mkrescue -o ${AUSGABE} ${PFAD}
Aber irgendwie kommt auch kein Menu obwohl eins kommen sollte:
Meine grub.cfg:
set timeout=15
set default=0
menuentry "OS"
{
multiboot /kernel
boot
}
Ich hoffe ihr könnt mir helfen.