Öttinger
Anmeldungsdatum: 28. Januar 2009
Beiträge: 504
|
Hallo zusammen, ich möchte ein bootbares img erzeugen mit dem L4Linux Kernel. So recht blicke ich aber noch nicht durch wie man das zusammen baut. Deshalb will ich es erst einmal gedanklich durchspielen. Wenn ich auf dieser Seite anfange zu lesen, startet man damit:
L4Linux is an L4Re application and therefore needs L4Re as its environment. Make sure you have your L4Re environment ready before proceeding with building L4Linux. If you haven't done so already proceed with downloading and building L4Re and come back here when done.
Also starte ich mit L4Re, dabei komme ich im Punkt 4 nicht weiter:
If needed: configure the build tree, e.g. for setting the target architecture. The default architecture is ia32:
Was muss man hier machen? Wie kriege ich raus welche Parameter und Werte ich anpassen muss?
Moderiert von tomtomtom: Problem weder "vor der Installation" möglich noch "allgemeine Frage" → ins passende Forum verschoben.
|
tomtomtom
Supporter
Anmeldungsdatum: 22. August 2008
Beiträge: 53625
Wohnort: Berlin
|
Öttinger schrieb: Also starte ich mit L4Re, dabei komme ich im Punkt 4 nicht weiter:
If needed: configure the build tree, e.g. for setting the target architecture. The default architecture is ia32:
Was muss man hier machen? Wie kriege ich raus welche Parameter und Werte ich anpassen muss?
Nun, du siehst, dass als default ia32 genutzt wird. Trifft das auf dein System zu? Wenn ja: Nichts. Wenn nein: Trage deine Architektur ein.
|
Öttinger
(Themenstarter)
Anmeldungsdatum: 28. Januar 2009
Beiträge: 504
|
Ich habe einen Intel Core 2 Duo / 2,16GHz.
Als IA-32 („Intel Architecture 32-Bit“) bezeichnet Intel die 32-Bit-x86-Architektur. Der Befehlssatz ist auch in den nachfolgenden Intel-CPUs implementiert (486, Pentium, Celeron, Xeon, Core) mit Ausnahme des Itanium-Prozessors, mit dem die neuartige IA-64-Architektur eingeführt wurde... Intel Core ist eine im Januar 2006 eingeführten 32-Bit-Prozessorfamilie des Herstellers Intel... Abgelöst wurde sie vom Intel Core 2... Die Intel-Core-2-Serie ist eine Familie von 64-Bit-Mikroprozessoren...
Bedeutet das jetzt das ich ia64 eintragen muss oder kann ich aufgrund des Befehlssatz: x86, x86-64 welchen der Intel Core 2 Duo unterstützt auch ia32 schreiben? Es steht da auch "e.g." also z.B. als wenn es noch viele weitere Einstellungen gibt, die beachtet werden sollten.
|
Öttinger
(Themenstarter)
Anmeldungsdatum: 28. Januar 2009
Beiträge: 504
|
Ich habe es mal ausprobiert und bekomme im Punkt 4 folgende Fehlermeldung: :~/Documents/l4re-core-2016082114/src/l4$ make O=/home/ubuntu/Documents/buildL4Re config
HOSTCC scripts/kconfig/mconf.o
In file included from /home/ubuntu/Documents/l4re-core-2016082114/src/l4/tool/kconfig/scripts/kconfig/mconf.c:23:0:
/home/ubuntu/Documents/l4re-core-2016082114/src/l4/tool/kconfig/scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
#include CURSES_LOC
^
compilation terminated.
make[4]: *** [scripts/kconfig/mconf.o] Error 1
make[3]: *** [menuconfig] Error 2
make[2]: *** [__build_one_by_one] Error 2
make[1]: *** [sub-make] Error 2
make: *** [config] Error 2
Das Verzeichnis "lxdialog" unter "/home/ubuntu/Documents/l4re-core-2016082114/src/l4/tool/kconfig/scripts/kconfig" fehlt bei mir. Ich habe hier den L4Re-core runtergeladen.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11180
Wohnort: München
|
Öttinger schrieb: /home/ubuntu/Documents/l4re-core-016082114/src/l4/tool/kconfig/scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory
Dann geht mal mit apt-file auf die Suche nach dem Paket, das die Header-Datei enthält (ich würde auf libncurses5-dev tippen)
|
tomtomtom
Supporter
Anmeldungsdatum: 22. August 2008
Beiträge: 53625
Wohnort: Berlin
|
|
Öttinger
(Themenstarter)
Anmeldungsdatum: 28. Januar 2009
Beiträge: 504
|
Danke. Sehe jetzt ich habe nur die folgenden Architekturen zur Auswahl: AMD64, ARM, MIPS, PowerPC 32, Sparc und X86-32. Wähle ich da X86-32, wenn ich einen Intel Core 2 Duo verwende will? Es gibt dann noch ein weiteres Menü "Building" mit den folgenden Optionen:
[*] Automatically determine internal gcc preprocessor names │ │
│ │ [*] Automatically determine internal ld names │ │
│ │ [ ] Strip binaries on install │ │
│ │ [ ] GCC: Omit Frame-pointers │ │
│ │ [*] GCC: enable stack protector │ │
│ │ GCC: Enable stack protector (exclusively for functions with│ │
│ │ [ ] Build doc directories │ │
│ │ [ ] Enable RELEASE flag │ │
│ │ () Additional Makeconf files Lasse ich da den default eingestellt? Wenn ich die Änderungen speichern will:
Enter a filename to which this configuration │
│ should be saved as an alternate. Leave blank to │
│ abort. │
│ ┌─────────────────────────────────────────────────┐ │
│ │.kconfig │ │
│ └─────────────────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────┤
│ < Ok > < Help > kann ich da die .kconfig überschreiben oder ist das nicht zu empfehlen? Was bedeutet unter Punkt 5: Build. Add -jX as you like:
somedir/src/l4$ make O=path/to/builddir
|
tomtomtom
Supporter
Anmeldungsdatum: 22. August 2008
Beiträge: 53625
Wohnort: Berlin
|
Core2Duo in 32Bit wäre mir neu. Wenn du da drauf ein 64-Bit-System zu laufen hast wäre da AMD64 die korrekte Architektur.
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11180
Wohnort: München
|
Öttinger schrieb: Danke. Sehe jetzt ich habe nur die folgenden Architekturen zur Auswahl: AMD64, ARM, MIPS, PowerPC 32, Sparc und X86-32. Wähle ich da X86-32, wenn ich einen Intel Core 2 Duo verwende will?
Der sollte eigentlich schon die 64-Bit Erweiterung haben, da kannst du auch AMD64 wählen, wenn du das auf einem 64-Bit System betreiben willst.
Es gibt dann noch ein weiteres Menü "Building"
[...] Lasse ich da den default eingestellt?
Wenn man keine Ahnung hat, was die Optionen bedeuten, wäre das für den ersten Versuch ein guter Ansatz. Wenn ich die Änderungen speichern will [...] kann ich da die .kconfig überschreiben oder ist das nicht zu empfehlen?
Wenn die Einstellungen übernommen werden sollen (und man keine andere Möglichkeit kennt eine angepasste Konfiguration an das Build-Skript zu übergeben), muss man die vermutlich überschreiben, damit die getroffenen Einstellungen wirksam werden. Was bedeutet unter Punkt 5: Build. Add -jX as you like:
somedir/src/l4$ make O=path/to/builddir
make kann bestimmte Aufgaben parallelisieren (je nachdem wie das Makefile aufgebaut ist, bringt das einen mehr oder weniger spürbaren Geschwindigkeitsgewinn beim Kompilieren). Mit -jX gibst du an, wie viele parallele Prozesse gleichzeitig laufen dürfen - bei einem DualCore könnte man z.B. -j3 nutzen (wenn man genügend RAM hat, kann man ausprobieren, ob -j4 einen Vorteil bringt).
|
Öttinger
(Themenstarter)
Anmeldungsdatum: 28. Januar 2009
Beiträge: 504
|
make kann bestimmte Aufgaben parallelisieren (je nachdem wie das Makefile aufgebaut ist, bringt das einen mehr oder weniger spürbaren Geschwindigkeitsgewinn beim Kompilieren). Mit -jX gibst du an, wie viele parallele Prozesse gleichzeitig laufen dürfen - bei einem DualCore könnte man z.B. -j3 nutzen (wenn man genügend RAM hat, kann man ausprobieren, ob -j4 einen Vorteil bringt).
Der Rechner hat 1GHz DDR2 RAM. Es gibt noch einen weiteren Menüpunkt in der config, nennt sich "CPU Variant", da gibt es unter anderem die Option "Core type CPU". Kann man dann doch X86-32 und den Core type 2 wählen?
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11180
Wohnort: München
|
Öttinger schrieb: Der Rechner hat 1GHz DDR2 RAM
Wirst du nach Zeit bezahlt oder gibt es einen speziellen Grund, warum du einen vergleichsweise schlecht ausgestatteten Rechner nutzt, um das zu bauen? Es gibt noch einen weiteren Menüpunkt in der config, nennt sich "CPU Variant", da gibt es unter anderem die Option "Core type CPU". Kann man dann doch X86-32 und den Core type 2 wählen?
Warum willst für eine 64-Bit fähige CPU unbedingt einen 32-Bit Kernel erstellen? Wenn man dafür einen Grund hat, erübrigt sich die Frage, ansonsten würde ich mitnehmen, was geht (also amd64) BTW: was ist die Motivation dahinter L4Linux zum Laufen zu bringen? Die bisher gestellten Fragen klingen ja eher so, als ob du mit Compilern und der Kernel-Konfiguration bislang noch nicht viel zu tun hattest.
|
Öttinger
(Themenstarter)
Anmeldungsdatum: 28. Januar 2009
Beiträge: 504
|
Warum willst für eine 64-Bit fähige CPU unbedingt einen 32-Bit Kernel erstellen? Wenn man dafür einen Grund hat, erübrigt sich die Frage, ansonsten würde ich mitnehmen, was geht (also amd64)
Dafür gibt es keinen Grund.
BTW: was ist die Motivation dahinter L4Linux zum Laufen zu bringen?
Ich möchte Ubuntu auf einem Mikrokernel zum laufen bekommen. Welche Einstellung verwende ich dann unter dem Menüpunkt "CPU Variant"? Kann ich immer noch die Option -j3 verwenden oder lieber -j2?
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11180
Wohnort: München
|
Öttinger schrieb: Welche Einstellung verwende ich dann unter dem Menüpunkt "CPU Variant"?
Die, die zu deinem Prozessor passt, wenn du die Optimierung mitnehmen willst. Kann ich immer noch die Option -j3 verwenden oder lieber -j2?
Ja - wie es sich in Sachen Geschwindigkeit in der Realität schlägt, findet man am sinnvollsten durch Vergleichsmessungen heraus.
|
Öttinger
(Themenstarter)
Anmeldungsdatum: 28. Januar 2009
Beiträge: 504
|
Ok, jetzt habe ich L4Re mit den entsprechenden parametern gebaut. Ähnlich wollte ich jetzt für L4Linux verfahren. Ich habe es also heruntergeladen. Als nächstes gilt: L4Linux builds as a standard Linux, however there are a few things to consider.
Ich weiß nicht genau was das alles mit einschließt was nicht in der Doku steht. Weiter geht es mit: Go to the l4linux directory and configure your kernel with:...
Habe ich gemacht. Im Vergleich zu L4Re soll man hier nicht ins Verzeichnis "src" wechseln. Weiterhin braucht man nicht explizit ein build Verzeichnis anlegen. Man soll gleich mit make O=/your/l4linux/build/directory xconfig starten.
Darauf folgt:
/bin/sh: 1: .: Can't open /home/ubuntu/Documents/l4linux/build/.config
make[1]: Entering directory `/home/ubuntu/Documents/l4linux/build'
GEN ./Makefile
CHECK qt
MOC scripts/kconfig/qconf.moc
HOSTCXX scripts/kconfig/qconf.o
HOSTLD scripts/kconfig/qconf
scripts/kconfig/qconf Kconfig
#
# using defaults found in /boot/config-3.13.0-73-lowlatency
#
/boot/config-3.13.0-73-lowlatency:1476:warning: symbol value 'm' invalid for RXKAD
/boot/config-3.13.0-73-lowlatency:2024:warning: symbol value 'm' invalid for SCSI_DH
/boot/config-3.13.0-73-lowlatency:5247:warning: symbol value 'm' invalid for USB_ISP1760_HCD
/boot/config-3.13.0-73-lowlatency:6513:warning: symbol value 'm' invalid for VME_BUS
/boot/config-3.13.0-73-lowlatency:6546:warning: symbol value 'm' invalid for GENERIC_PHY
Jetzt steht hier: "/bin/sh: 1: .: Can't open /home/ubuntu/Documents/l4linux/build/.config", es öffnet sich aber ein Fenster mit einer Liste von Einstellungen. Was genau alles eingestellt werden soll, weiß ich nun nicht.
To configure L4Linux specific options, go to the "L4Linux configuration" submenu. Set the directory to your L4Re build tree.
Das kriege ich glaube noch hin.
When running on Fiasco-UX, do not enable any feature that might touch the hardware directly, like drivers, PCI, VGA, input drivers etc.
Hierbei bin ich mir nicht sicher, was gemeint ist. Ich weiß nicht wo ich einstelle ob es mit Fiasco-UX laufen soll bzw. welche Alternativen es gibt? //EDIT
Irrtum, ich kann im Untermenü "L4Linux configuration" keine Option finden die es mir erlaubt den L4Re build directory zu setzen. Oder ist damit die Option L4 tree build directory gemeint? Falls ja, setze ich den Wert einfach auf "/home/ubuntu/Documents/buildL4Re" oder "/home/ubuntu/Documents/buildL4Re/config" oder iwas anderes?
|
seahawk1986
Anmeldungsdatum: 27. Oktober 2006
Beiträge: 11180
Wohnort: München
|
Öttinger schrieb: Ok, jetzt habe ich L4Re mit den entsprechenden parametern gebaut. Ähnlich wollte ich jetzt für L4Linux verfahren. Ich habe es also heruntergeladen. Als nächstes gilt: L4Linux builds as a standard Linux, however there are a few things to consider.
Ich weiß nicht genau was das alles mit einschließt was nicht in der Doku steht.
Klassischerweise ist das die Frage „nach dem Leben, dem Universum und dem ganzen Rest“. Vermutlich bieten das Wiki, die Paper, die Webseite sowie die Maillingliste zu dem Projekt und Material zur Kernel-Konfiguration (z.B. Linux Kernel in a Nutshell, Abschnitte aus dem Gentoo Wiki dazu usw.) die nötigen Anhaltspunkte. Hierbei bin ich mir nicht sicher, was gemeint ist. Ich weiß nicht wo ich einstelle ob es mit Fiasco-UX laufen soll bzw. welche Alternativen es gibt?
Laut deren Wiki gibt es mehrere mögliche Betriebsmodi: http://wiki.tudos.org/L4Linux/configurations - da musst du dich entscheiden, was du genau brauchst. Vielleicht reicht für die ersten Schritte bzw. die Entscheidungsfindung auch auch ein fertiges Image für QEMU oder die Demo-CD, die es auf der Download-Seite gibt.
|