Seite 4 von 8

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Mo Okt 13, 2008 6:01 pm
von cloidnerux
aha
Aber ihr solltet mal nen möglichkeit schaffen das ganze unter Windoof zu Compiliren

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Mo Okt 13, 2008 6:19 pm
von Dirty Oerti
cloidnerux hat geschrieben:aha
Aber ihr solltet mal nen möglichkeit schaffen das ganze unter Windoof zu Compiliren
Ist im Prinzip gegeben:
Cygwin installieren und dann per Cygwin ausführen.

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Mo Okt 13, 2008 6:28 pm
von cloidnerux
aha
Und am ende komt sowas bei raus:

*edit* von Dirty Oerti
Ich möchte dich bitten, die Bilder von dieser Webseite und allgemein keine Bilder dieser Größe, außer sie nutzen etwas, hochzuladen.

*/edit*


http://www.heise.de/ct/schlagseite/3.shtml

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Di Okt 14, 2008 1:02 pm
von Kerli
Dirty Oerti hat geschrieben: Dazu gibt man (im gleichen Verzeichnis) folgendes ein:

Code: Alles auswählen

make floppy-img
Hier kommt wieder die GRUB Kommandozeile, in die folgendes eingegeben werden muss:
device (fd0) floppy.img
root (fd0)
setup (fd0)
quit
Danach kann man per

Code: Alles auswählen

make run
(immer noch im gleichen Verzeichnis) den Kernel mit bochs ausführen.
@Dirty Oerti:
Man kann das ganze auch noch weiter vereinfachen. Ich hab bei mir einfach den Teil wo grub eingerichtet wird so abgeändert:

Code: Alles auswählen

#GRUB installation
sudo mkdir -p /mnt/floppy
echo "device (fd0) floppy.img\nroot (fd0)\nsetup (fd0)\nquit\n" | sudo /usr/sbin/grub
Außerdem solltest du noch das 'clean-all' Target etwas anpassen. Das tut eigentlich gar nichts, da es nur im aktuellen verzeichnis löscht.
Du kannst es entweder so machen:

Code: Alles auswählen

for i in $(ALLDIRS); do (cd $$i; rm -f *.o; rm -f *.bin; rm -f *map.txt); done
Oder noch besser du rufst einfach make rekursiv auf, und erstellst in jedem Unterverzeichnis in jedem Makefile ein 'clean' target.

Ansonsten funktioniert alles ohne Probleme. Man sollte nur 'bochs-x' auch installieren :D

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Di Okt 14, 2008 2:34 pm
von Dirty Oerti
Kerli hat geschrieben:@Dirty Oerti:
Man kann das ganze auch noch weiter vereinfachen. Ich hab bei mir einfach den Teil wo grub eingerichtet wird so abgeändert:
Wunderbar :)
Ich dachte mir schon, dass das irgendwie gehen muss, wusste aber nicht wie.
Wobei ich das mit dem Verzeichnis so belassen werde. Ich denke mal, niemand wird einen derart sinnlosen Ordnernamen in /mnt/ haben...
Aber das man nicht mehr alles von Hand in die GRUB Kommandozeile eingeben muss, ist super! :)
Danke!
Kerli hat geschrieben:Außerdem solltest du noch das 'clean-all' Target etwas anpassen. Das tut eigentlich gar nichts, da es nur im aktuellen verzeichnis löscht.
Du kannst es entweder so machen:

(...)

Oder noch besser du rufst einfach make rekursiv auf, und erstellst in jedem Unterverzeichnis in jedem Makefile ein 'clean' target.
Ja..das clean-all Target..und auch das clean Target sind zur Zeit bei mir Sorgenkinder.
Man kann rm doch auch rekursiv aufrufen, so dass es nur bestimmte Dateien aus allen Unterverzeichnissen löscht, oder?
Ich dachte zumindest, dass das bei mir schon mal funktioniert hatte.
Wollte nämlich eigentlich vermeiden, in jedem Makefile noch die 2 Targets zu ergänzen.

Hast du da ne Ahnung?
Wie man da mit einem Aufruf von rm machen könnte?
Kerli hat geschrieben:Ansonsten funktioniert alles ohne Probleme. Man sollte nur 'bochs-x' auch installieren :D
Freut mich :)
bochs-x...könnte von Nutzen sein :D

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Di Okt 14, 2008 4:20 pm
von Kerli
Dirty Oerti hat geschrieben: Wunderbar :)
Ich dachte mir schon, dass das irgendwie gehen muss, wusste aber nicht wie.
Wobei ich das mit dem Verzeichnis so belassen werde. Ich denke mal, niemand wird einen derart sinnlosen Ordnernamen in /mnt/ haben...
Aber das man nicht mehr alles von Hand in die GRUB Kommandozeile eingeben muss, ist super! :)
Danke!
Bitte ;) Diese Technik wird auch 'Pipelining' genannt, und kann ganz praktisch sein...
Dirty Oerti hat geschrieben: Ja..das clean-all Target..und auch das clean Target sind zur Zeit bei mir Sorgenkinder.
Man kann rm doch auch rekursiv aufrufen, so dass es nur bestimmte Dateien aus allen Unterverzeichnissen löscht, oder?
Ich dachte zumindest, dass das bei mir schon mal funktioniert hatte.
Wollte nämlich eigentlich vermeiden, in jedem Makefile noch die 2 Targets zu ergänzen.

Hast du da ne Ahnung?
Wie man da mit einem Aufruf von rm machen könnte?
So, ich hab da jetzt eine Lösung gefunden. 'rm' kann nämlich nur Verzeichnisse rekursiv löschen, nicht aber nach einem Suchmuster. Abhilfe schafft dabei 'find':

Code: Alles auswählen

clean-all:
	@echo "Aufräumen..."
	@find . -name '*.o' -exec rm -rfv {} \;
	@find . -name '*.bin' -exec rm -rfv {} \;
	@find . -name '*map.txt' -exec rm -rfv {} \;
Das sollte funktionieren ;)

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Di Okt 14, 2008 4:23 pm
von Dirty Oerti
Kerli hat geschrieben:So, ich hab da jetzt eine Lösung gefunden. 'rm' kann nämlich nur Verzeichnisse rekursiv löschen, nicht aber nach einem Suchmuster. Abhilfe schafft dabei 'find':

Code: Alles auswählen

clean-all:
	@echo "Aufräumen..."
	@find . -name '*.o' -exec rm -rfv {} \;
	@find . -name '*.bin' -exec rm -rfv {} \;
	@find . -name '*map.txt' -exec rm -rfv {} \;
Das sollte funktionieren ;)
Benötigt find eine Art Datenbank wie locate?
Sind die @ davor nützlich, bzw wozu dienen sie?

Ich hatte mir gedacht, dass es auch irgendwie über Pipelining möglich sein müsste.
Mit ls und grep nur die gemeinten Dateien filtern und dann per rm löschen, oder so.
Aber wenn das so funktioniert, wäre es natürlich super :)

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Di Okt 14, 2008 4:37 pm
von Kerli
Dirty Oerti hat geschrieben:Benötigt find eine Art Datenbank wie locate?
Nein. 'find' durchsucht nur von einem Verzeichnis rekursiv alle Ordner nach einem bestimmten Suchmuster und kann dann mit den gefunden Dateien etwas machen (zb. '-exec' führt dir Befehle bis '\;' aus. '{}' ist der gefundene Dateiname)
Dirty Oerti hat geschrieben:Sind die @ davor nützlich, bzw wozu dienen sie?
Das @ unterbindet nur die Ausgabe auf die Konsole, dh. ohne @ würde auch der ganze Befehl ausgegeben werden.

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Di Okt 14, 2008 7:48 pm
von Xin
Kerli hat geschrieben:Das @ unterbindet nur die Ausgabe auf die Konsole, dh. ohne @ würde auch der ganze Befehl ausgegeben werden.
Es gibt übrigens einen make: Namensraum im Wiki ;-)

Know-How lieber ins Wiki schreiben und dann vom Forum drauf verlinken. Was hier geschrieben steht, findet niemand mehr wieder; was im Wiki steht, kann mehrfach nützlich sein.

Re: Kernel herunterladen, compilieren und laufen lassen

Verfasst: Di Okt 14, 2008 7:51 pm
von cloidnerux
jo, zudem kann niemand was dazu posten