# [UML] Grundsätzliche Frage zu User Mode Linux

## leuenberger

Hallo zusammen

Ich beschäftige mich im Moment mit User Mode Linux. Ich bin nach der Gentoo Dok  Linux Developer's guide to system testing with User-Mode Linux vorgegangen.

Dabei ist folgende Frage entstanden: Bei UML entstehen eigentlich drei Kernel. Einer, der das System zur Verfügung stellt. Einer, der das linux-Binary zur Verfügung stellt und schliesslich der Kernel, der im User Mode läuft. Können diese Kernel alle unterschiedlich sein?

Wenn ich wie beschrieben ein UML booten will, erhalte ich folgende Meldung:

```
Checking for the skas3 patch in the host...not found

Checking for /proc/mm...not found

Segmentation fault
```

Soweit ich gesehen habe, gehört  /proc/mm zu UML. In welchen Kernel muss ich dieses Modul einbinden?

Gruss Reto

----------

## leuenberger

Vielleicht muss die Frage noch etwas grundsätzlicher sein:

Wird das Thema als so trivial erachtet, dass niemand antwortet, oder hat niemand eine Ahnung? Nein, dass zweiite ist es nicht...

Gruss Reto

----------

## dakjo

Nur um dir eine rückmeldung zu geben. Es ist bestimmt nicht trivial. Ich habe auch keine Ahnung.

----------

## sirro

Das sieht für mich nicht nach einem Problem mit /proc/mm aus sondern eher mit dem kernel.

Im Normalfall läuft UML auch ohne /proc/mm (hab ich zumindest in einem HowTo gesehen) nur mit /proc/mm soll es signifikant schneller sein.

Aber eine Lösung kommt mir jetzt auch nicht in den Sinn, zumal ich nicht weiß welche Kerneloption /proc/mm zur Verfügung stellt. (bei mir ist es dabei)

Soweit ich weiß braucht der Hauptkernel das...

----------

## leuenberger

Du hast UML am laufen...

Kannst Du mir biite sagen:

1. Welchen Kernel du bootest?

2. Mit welchem Kernel Du das linux-Binary generierst?

3. Was hast Du unter UML am laufen?

Gruss Reto

----------

## sirro

 *leuenberger wrote:*   

> Du hast UML am laufen...

 

Ne, aber habs auch noch nicht probiert. (Steht aber auf der todo-Liste  :Wink: )

Hab nur schon einige Sachen drüber gelesen und versucht dir damit zu helfen, sorry wenn das falshc rüberkam.

EDIT: Der Segfault sollte eigentlich ein Zeichen dafür sein, dass was anderes nicht stimmt. Denn würde es am fehlenden /proc/mm liegen, dann würde nicht mit einem Segfault beendet werden...

----------

## moe

Hallo,

ich hab heute mal testehalber UML aufgesetzt.

Als Host verwende ich den 2.6.6-mm5 den ich mit dem SKAS3-Patch gepatcht habe. Der Patch lief bis auf einen Hunk ordentlich durch diesen hab ich dann manuell gemacht (in mm/Makefile 

```

obj-$(CONFIG_PROC_MM) += proc_mm.o

```

eingefügt).

Der skas3-Patch fügt u.a. CONFIG_PROC_MM hinzu, daher kann /proc/mm nicht auf nicht skas gepatchten Kerneln vorhanden sein. Welchen Kernel verwendest du (sirro) denn?

Als UML-Kernel hab ich auf die Schnelle die usermode-sources-2.4.24-r3 ohne grossartige Änderungen gebaut, und das vorgefertigte Debian 3.0 root_fs von den UML-Seiten gebootet:

```

Checking for the skas3 patch in the host...found

Checking for /proc/mm...found

Checking for /dev/anon on the host...Not available (open failed with errno 2)

```

Dann gehts mit dem eigentlichen Kernel weiter.. Ausser das es startet hab ich bis jetzt noch nichts weiter probiert, ist ja auch schon spät *gähn*

HTH Maurice

P.S. Hat jemand schon aktuellere devanon Patches gefunden? (>2.4.23)

----------

## leuenberger

Da erröte ich doch vor Neid  :Embarassed: 

Mein Problem ist nicht "/proc/mm" sondern der "Segmentation fault"

Ob es wohl am gentoo-dev-sourdes liegt? Oder am sys-kernel/usermode-sources-2.6.3-r2?

Das es bei Dir funktioniert stimmt mich wieder etwas positiver. Werde mal mit ein paar anderen Kernel-Paarungen herumspielen...

Gruss Reto

----------

## moe

Was mir jetzt gerade auffällt, ist dass dein Segmentation fault an der Stelle kommt, wo bei mir auf den devanon-Patch geprüft wird. Ob das Problem dann dort zu suchen ist?

Bei Troubles auf der uml-Seite ist nur ein ähnliches Problem aufgeführt, was behoben werden soll, wenn man im UML-Kernel die Option CONFIG_HOST_2G_2G setzt. Das hab ich allerdings bei mir auch nicht machen müssen. Aber kannst es ja trotzdem probieren.

Gruss Maurice

----------

## ja

 *leuenberger wrote:*   

> 
> 
> Dabei ist folgende Frage entstanden: Bei UML entstehen eigentlich drei Kernel. Einer, der das System zur Verfügung stellt. Einer, der das linux-Binary zur Verfügung stellt und schliesslich der Kernel, der im User Mode läuft. Können diese Kernel alle unterschiedlich sein?
> 
> 

 

Du hast nur zwei Kernel, 

1. Der "normale" Kernel deines Systems, man kann ihn aus Performance gründen mit dem SKAS patch kompilieren. Läuft aber auch ohne.

2. Die "linux" binary, welche quasi einen Kernel als ausführbares Programm ist. Dieser Kernel ist auch der den man unter der UML "sieht".

Host und UML Kernel müssen nicht identisch sein, der UML Kernel ist ja nur ein Programm.

 *leuenberger wrote:*   

> 
> 
> Wenn ich wie beschrieben ein UML booten will, erhalte ich folgende Meldung:
> 
> ```
> ...

 

In den Host Kernel, aber auch nicht Zwang.

Entweder ist dein /dev/anon, welches nicht notwendig ist, vorhanden aber "defekt" oder deine "linux" binary nicht richtig kompiliert.

Um das root_fs auszuschließen:

Wenn du einfach nur die Binary ausführst, ohne Image, bricht er an derselben Stelle ab?

Normale Ausgabe:

```

obelix root # linux

Checking for the skas3 patch in the host...found

Checking for /proc/mm...found

Checking for /dev/anon on the host...Not available (open failed with errno 2)

Linux version 2.4.24-uml1-r3-1um (root@obelix) (gcc version 3.3.2 20031218 (Gent oo Linux 3.3.2-r5, propolice-3.3-7)) #3 Wed Apr 21 23:14:15 CEST 2004

On node 0 totalpages: 8192

zone(0): 8192 pages.

...

TCP: Hash tables configured (established 2048 bind 4096)

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.

VFS: Cannot open root device "ubd0" or 62:00

Please append a correct "root=" boot option

Kernel panic: VFS: Unable to mount root fs on 62:00

```

Ich betreibe auf einem kleinen Lan Server in einer UML z.B. einen fli4l Router, Host Kernel ist 2.6.5, läuft 1a  :Smile: 

----------

## ja

CONFIG_HOST_2G_2G ist afaik nur bei speziellen Host Kerneln notwendig, vorkompilierte von Suse o.ä. jedenfalls nicht bei Gentoo...

----------

## leuenberger

Ich habe das Problem auch ohne Image:

```
> linux

Checking for the skas3 patch in the host...not found

Checking for /proc/mm...not found

Segmentation fault
```

Das heisst, dass wohl das linux-Binary das Problem ist  :Question: 

@ja

Ist es möglich, dass Du mir deine Kernel-Konfigurationen irgendwo freigibst (www oder ftp)? Ich glaube ich habe eine schlechte Einstellungen.

Welchen UML-Kernel verwendest Du?

Gruss Reto

----------

## moe

 *ja wrote:*   

> Ich betreibe auf einem kleinen Lan Server in einer UML z.B. einen fli4l Router

 

Um ein "echtes" Netz ausserhalb des Hosts zu routen, oder um ein "virtuelles" Netz zwischen den UMLs zu routen?

Gibts da bei den Konfigurationen irgendwas besonderes zu beachten? Ich würd auch gerne einen Router in einer UML haben, da ich gerade mit den iptables rumspiele, und jedesmal wenn was nicht geht, Ärger von den anderen im Lan bekomme  :Wink: 

@leuenberger

Wenns dir hilft, kann ich dir auch meine per pn oder so schicken. Hast du eigentlich mal ein Linux-Binary von den uml-Seiten probiert? Wenn das auch segfault muss es ja am Hostsystem liegen, wenn nicht an deinen Einstellungen..

Gruss Maurice

----------

## leuenberger

Die unendliche Geschichte (nächstes Kapitel)

Ich habe eben folgende Kombinationen versucht:

sys-kernel/gentoo-dev-sources-2.6.5-r1 mit sys-kernel/usermode-sources-2.4.22-r2

sys-kernel/gentoo-dev-sources-2.6.5-r1 mit sys-kernel/usermode-sources-2.6.4

sys-kernel/development-sources-2.6.5 mit sys-kernel/usermode-sources-2.4.22-r2

sys-kernel/development-sources-2.6.5 mit sys-kernel/usermode-sources-2.6.4

Resultat: Segmentation fault  :Twisted Evil: 

Bin ich zubläd für UML? Wenn jemand ja sagt, ich bin ihm nicht bösse... Offenbar habe ich irgendetwas in meinen Kernel, das UML nicht verträgt. Die 1000 Euro-Frage lautet: Nur was  :Question: 

@moe

Welche Binaries meinst Du? Die rpm? Die fallen schon früher auf die Nase  :Sad: 

Gruss Reto

----------

## moe

Nö, bei Downloads die Überschrift "The bare kernel" oder gleich hier, das ist ein binärer 2.4.19-5. Bill Stearns hat auch eine Sammlung seiner UML-Kernel online.

Gruss Maurice

P.S. Auf der zweitgenannten Seite gibts auch die configs dazu..

----------

## leuenberger

Ich bin ein Schrittchen weiter gekommen: 

Ich habe die 2004.1-LiveCD gebootet, die Platte gemountet und "linux" getippt und es lief. Es lief  :Cool: 

EDIT: Alle linux-Binaries (mittlerweile etwa 12)

Also heisst die alles entscheidende Frage: Was ist an meinem Basis-Kernel falsch? xfs? 

@moe 

Hast Du xfs in deinem Kernel? 

@ja 

Hast Du xfs in deinem Kernel? 

Gruss Reto

EDIT: PS: Wieso wird in die LiveCD-Kernel die Option CONFIG_IKCONFIG nicht mehr einkompiliert  :Shocked: 

----------

## moe

Basiskernel? Im Hostkernel hab ich xfs, im meinen eigenen UML-Kerneln nicht, die Binaries von der Seite oben habens aber soweit ich weiss und laufen..

Gruss Maurice

----------

