qemu, kvm, xen & libvirtHauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz

Native Linux KVM Tool

(Link zu dieser Seite als [[QEMU-KVM-Buch/ KVM Tool]])

<<<|###| >>> | English


Das Native Linux KVM Tool mit einem Mini-Linux als Gast.]
Das Native Linux KVM Tool mit einem Mini-Linux als Gast.]

Inhaltsverzeichnis

[bearbeiten] Native Linux KVM Tool

Quellen: git://github.com/penberg/linux-kvm.git

Das Native Linux KVM Tool wird als schlanke Alternative zu QEMU entwickelt. Ziel ist eine möglichst einfache Konfiguration. Es verwendet die KVM hardware-unterstützte Virtualisierung und emuliert die wichtigsten Hardware-Komponenten (para-virtualized device model). Das Native Linux KVM Tool soll in den Quellen des Linux-Kernels 3.1 aufgenommen werden.

[bearbeiten] Installation

Das Native Linux KVM Tool benötigt die KVM-Kernel-Module. Die Installation wird unter der URL http://qemu-buch.de/d/QEMU+KVM_unter_Linux beschrieben.

Das Native Linux KVM Tool muß kompiliert werden. Zum Kompilieren sind folgende Pakete notwendig. Beispiel Ubuntu (64-Bit):

Host ~$ sudo apt-get install build-essential git
Host ~$ sudo apt-get install libc6-dev-i386 libsdl1.2-dev

Beispiel für RPM-basierte 64-Bit-Systeme (Red Hat, CentOS, Fedora):

Host ~# yum install glibc-devel glibc-devel.i386

Mit einem Git-Client (http://git-scm.com) werden die neuesten Quellen heruntergeladen. Anschließend werden die Quellen kompiliert und das Binary installiert.

Host ~$ mkdir -p ~/source/KVM-Tool
Host ~$ cd ~/source/KVM-Tool
Host ~$ git clone git://github.com/penberg/linux-kvm.git
Host ~$ cd linux-kvm/tools/kvm
Host ~$ make
Host ~$ sudo mkdir -p /usr/local/bin/
Host ~$ sudo cp lkvm /usr/local/bin

Für ein späteres Update sind diese Schritte notwendig.

Host ~$ cd ~/source/KVM-Tool/linux-kvm/tools/kvm
Host ~$ make clean
Host ~$ git pull
Host ~$ make
Host ~$ sudo cp lkvm /usr/local/bin

Man testet die Installation. Aufgerufen wird das Native Linux KVM Tool mit lkvm.

Host ~$ lkvm
 To start a simple non-privileged shell run 'lkvm run'

usage: lkvm COMMAND [ARGS]

 The most commonly used lkvm commands are:
   run       Start the virtual machine
   setup     Setup a new virtual machine
   pause     Pause the virtual machine
   resume    Resume the virtual machine
   version   Print the version of the kernel tree kvm tools
   list      Print a list of running instances on the host.
   debug     Print debug information from a running instance
   balloon   Inflate or deflate the virtio balloon
   stop      Stop a running instance
   stat      Print statistics about a running instance
   sandbox   Run a command in a sandboxed guest

 See 'lkvm help COMMAND' for more information on a specific command.

[bearbeiten] Anlegen von virtuellen Maschinen

Zur Zeit unterstützt das Native Linux KVM Tool nur Linux als Gast-System. Das Native Linux KVM Tool unterstützt Images in den Formaten raw und qcow2. Es lässt sich auch ein Verzeichnis im Host-System als root-Datei-System verwenden.

[bearbeiten] Mini-Linux

Man benötigt man ein Image mit installierten Mini-Linux.

Host ~$ wget http://wiki.qemu.org/download/linux-0.2.img.bz2
Host ~$ bunzip2 linux-0.2.img.bz2

Mit dem Befehl lkvm run und der Angabe der Image-Datei wird das Native Linux KVM Tool gestartet. Optional aktiviert man mit --sdl Simple DirectMedia Layer (SDL) und gibt der virtuellen Maschine einen Namen.

Host ~$ lkvm run --disk linux-0.2.img --name vm01

Auf einer anderen Konsole lässt man sich die virtuellen Maschinen mit dem Befehl lkvm list auflisten.

Host ~$ lkvm list
  PID GUEST
29555 vm01

Mit lkvm stop und Angabe des Namens der virtuellen Maschine wird diese gestoppt.

Host ~$ lkvm stop --name vm01

[bearbeiten] Befehlsübersicht

Host ~$ lkvm COMMAND [ARGS]

[bearbeiten] run

Startet eine virtuelle Maschine.

Host ~$ lkvm run [<Optionen] [<kernel image]

Allgemeine Optionen

--name guest name

Definiert einen Namen für die Instanz.

-c, --cpus n

Legt die Anzahl (n) der emulierten CPUs fest.

-m, --mem n

Definiert die Größe des Arbeitsspeichers in MByte (n).

-d, --disk image|rootfs_dir

Die angegebene Datei image wird als Festplatten-Image für das root-Datei-System verwendet. Alternative kann ein Verzeichnis (rootfs_dir) im Host-System als root-Datei-System verwendet werden.

--balloon

Aktiviert virtio-Ballooning-Device.

--vnc

Startet die Instanz mit einem VNC-Server.

--sdl

Aktiviert den Simple DirectMedia Layer (SDL) für die VGA-Ausgabe.

--rng

Aktiviert den virtio-Zufallsgenerator.

--9p dir_to_share,tag_name

Aktiviert ein Austausch-Verzeichnis über das (Plan-9-Dateisystem-Protokoll) zwischen Host- und Gast-System.

--console serial or virtio

Legt die zu verwendene Konsole fest.

--dev device_file

Passt den Pfad zum KVM-Device an. Der Default-Pfad ist /dev/kvm.

Kernel-Optionen

-k, --kernel kernel

Verwendet die Datei kernel als Kernel-Image.

-i, --initrd initrd

Verwendet die Datei initrd als Initial-RAM-Disk.

-p, --params params

Verwendet params als Kernel-Boot-Optionen.

Networking Optionen

-n, --network user|tap|none

Legt die Art des Netzwerkes fest.

--host-ip a.b.c.d

Weist die IP-Adresse der virtuellen Netzwerkkarte auf der Host-Seite zu.

--guest-ip a.b.c.d

Weist die IP-Adresse der virtuellen Netzwerkkarte auf der Gast-Seite zu.

--host-mac aa:bb:cc:dd:ee:ff

Weist die Mac-Adresse der virtuellen Netzwerkkarte auf der Host-Seite zu.

--guest-mac aa:bb:cc:dd:ee:ff

Weist die Mac-Adresse der virtuellen Netzwerkkarte auf der Gast-Seite zu.

--tapscript Script path

Definiert ein Skript zum Anlegen des Tap-Devices.

BIOS-Optionen

--vidmode n

Definiert den Video-Mode.

Debug-Optionen

--debug

Aktiviert Debug-Meldungen.

--debug-single-step

Aktiviert Single-Stepping.

--debug-ioport

Aktiviert IOPORT-Debugging.

--debug-iodelay n

Verzögert IO um n Millisekunden.


 usage: lkvm run [<options>] [<kernel image>]

Basic options:
        --name <guest name>
                          A name for the guest
    -c, --cpus <n>        Number of CPUs
    -m, --mem <n>         Virtual machine memory size in MiB.
        --shmem <[pci:]<addr>:<size>[:handle=<handle>][:create]>
                          Share host shmem with guest via pci device
    -d, --disk <image or rootfs_dir>
                          Disk image or rootfs directory
        --balloon         Enable virtio balloon
        --vnc             Enable VNC framebuffer
        --sdl             Enable SDL framebuffer
        --rng             Enable virtio Random Number Generator
        --9p <dir_to_share,tag_name>
                          Enable virtio 9p to share files between host and guest
        --console <serial, virtio or hv>
                          Console to use
        --dev <device_file>
                          KVM device file
        --tty <tty id>    Remap guest TTY into a pty on the host
        --sandbox <script>
                          Run this script when booting into custom rootfs
        --hugetlbfs <path>
                          Hugetlbfs path

Kernel options:
    -k, --kernel <kernel>
                          Kernel to boot in virtual machine
    -i, --initrd <initrd>
                          Initial RAM disk image
    -p, --params <params>
                          Kernel command line arguments
    -f, --firmware <firmware>
                          Firmware image to boot in virtual machine

Networking options:
    -n, --network <network params>
                          Create a new guest NIC
        --no-dhcp         Disable kernel DHCP in rootfs mode

BIOS options:
        --vidmode <n>     Video mode

Debug options:
        --debug           Enable debug messages
        --debug-single-step
                          Enable single stepping
        --debug-ioport    Enable ioport debugging
        --debug-mmio      Enable MMIO debugging
        --debug-iodelay <n>
                          Delay IO by millisecond

kvm-run.txt

lkvm-run(1)
================

NAME
----
lkvm-run - Start the virtual machine

SYNOPSIS
--------
[verse]
'lkvm run' [-k <kernel image> | --kernel <kernel image>]

DESCRIPTION
-----------
The command starts a virtual machine.

OPTIONS
-------
-m::
--mem=::
        Virtual machine memory size in MiB.

-p::
--params::
        Additional kernel command line arguments.

-r::
--initrd=::
        Initial RAM disk image.

-k::
--kernel=::
        The virtual machine kernel.

--dev=::
        KVM device file.

-i::
--image=::
        A disk image file.

-s::
--single-step::
        Enable single stepping.

-g::
--ioport-debug::
        Enable ioport debugging.

-c::
--enable-virtio-console::
        Enable the virtual IO console.

--cpus::
        The number of virtual CPUs to run.

--debug::
        Enable debug messages.

SEE ALSO
--------
linkkvm:


[bearbeiten] setup

Anlegen einer neuen virtuellen Maschine.

lkvm setup creates a new rootfs under ~/.kvm-tools/.
This can be used later by the '-d' parameter of 'lkvm run'.

 usage: lkvm setup [name]

kvm-setup.txt

lkvm-setup(1)
================

NAME
----
lkvm-setup - Setup a new virtual machine

SYNOPSIS
--------
[verse]
'lkvm setup <name>'

DESCRIPTION
-----------
The command setups a virtual machine.


[bearbeiten] pause

Lässt eine laufende Instanz pausieren.

Host ~$ lkvm pause [--all] [-n name] [-p pid]

Allgemeine Optionen

-a, --all

Lässt alle laufenden Instanzen pausieren.

-n, --name name

Name der Instanz.

-p, --pid n

PID der Instanz.


 usage: lkvm pause [--all] [-n name]

General options:
    -a, --all             Pause all instances
    -n, --name <name>     Instance name

kvm-pause.txt

lkvm-pause(1)
================

NAME
----
lkvm-pause - Pause the virtual machine

SYNOPSIS
--------
[verse]
'lkvm pause [instance]'

DESCRIPTION
-----------
The command pauses a virtual machine.
For a list of running instances see 'lkvm list'.


[bearbeiten] resume

Beendet den eingefrorenen Zustand der Instanz.

Host ~$ lkvm resume [--all] [-n name] [-p pid]

Allgemeine Optionen

-a, --all

Beendet den eingefrorenen Zustand aller Instanzen.

-n, --name name

Name der Instanz.

-p, --pid n

PID der Instanz.


 usage: lkvm resume [--all] [-n name]

General options:
    -a, --all             Resume all instances
    -n, --name <name>     Instance name

kvm-resume.txt

lkvm-resume(1)
================

NAME
----
lkvm-resume - Resume the virtual machine

SYNOPSIS
--------
[verse]
'lkvm resume [instance]'

DESCRIPTION
-----------
The command resumes a virtual machine.
For a list of running instances see 'lkvm list'.


[bearbeiten] version

Ausgabe der Version.

Host ~$ lkvm version

kvm-version.txt

lkvm-version(1)
================

NAME
----
lkvm-version - Print the version of the kernel tree kvm tools
was built on.

SYNOPSIS
--------
[verse]
'lkvm version'

DESCRIPTION
-----------
The command prints the version of the kernel that was used to build
kvm tools.

Note that the version is not the version of the kernel which is currently
running on the host, but is the version of the kernel tree from which kvm
tools was built.


[bearbeiten] list

Auflisten aller laufenden Instanzen.

Host ~$ lkvm list
 usage: lkvm list

General options:
    -i, --run             List running instances
    -r, --rootfs          List rootfs instances


lkvm-list(1)
================

NAME
----
lkvm-list - Print a list of running instances on the host.

SYNOPSIS
--------
[verse]
'lkvm list'

DESCRIPTION
-----------
This command prints a list of running instances on the host which
belong to the user who currently ran 'lkvm list'.


[bearbeiten] debug

Ausgabe von Debugging-Informationen einer laufenden Instanz.

Host ~$ lkvm debug [--all] [-n name] [-p pid]

Allgemeine Optionen

-a, --all

Debuggen aller Instanzen.

-n, --name name

Name der Instanz.

-p, --pid n

PID der Instanz.


 usage: lkvm debug [--all] [-n name] [-d] [-m vcpu]

General options:
    -d, --dump            Generate a debug dump from guest
    -m, --nmi <n>         Generate NMI on VCPU

Instance options:
    -a, --all             Debug all instances
    -n, --name <name>     Instance name

kvm-debug.txt

lkvm-debug(1)
================

NAME
----
lkvm-debug - Print debug information from a running instance

SYNOPSIS
--------
[verse]
'lkvm debug [instance]'

DESCRIPTION
-----------
The command prints debug information from a running instance.
For a list of running instances see 'lkvm list'.


[bearbeiten] balloon

Vergrößert oder verkleinert das virtio-Ballooning.

Host ~$ lkvm balloon [-n name] [-p pid] [-i amount] [-d amount]

Instanz-Optionen

-n, --name name

Name der Instanz

-p, --pid n

PID der Instanz

Balloon Optionen

-i, --inflate n

Vergrößerungsbetrag.

-d, --deflate n

Verkleinerungsbetrag.


 usage: lkvm balloon [-n name] [-p pid] [-i amount] [-d amount]

Instance options:
    -n, --name <name>     Instance name

Balloon options:
    -i, --inflate <n>     Amount to inflate
    -d, --deflate <n>     Amount to deflate

kvm-balloon.txt

lkvm-balloon(1)
================

NAME
----
lkvm-balloon - Inflate or deflate the virtio balloon

SYNOPSIS
--------
[verse]
'lkvm balloon [command] [size] [instance]'

DESCRIPTION
-----------
The command inflates or deflates the virtio balloon located in the
specified instance.
For a list of running instances see 'lkvm list'.

Command can be either 'inflate' or 'deflate'. Inflate increases the
size of the balloon, thus decreasing the amount of virtual RAM available
for the guest. Deflation returns previously inflated memory back to the
guest.

size is specified in Mb.


[bearbeiten] stop

Stoppt eine laufende Instanz.

Host ~$ lkvm stop [--all] [-n name] [-p pid]

Allgemeine Optionen

-a, --all

Stoppen aller Instanzen.

-n, --name name

Name der Instanz.

-p, --pid n         

PID der Instanz.

 usage: lkvm stop [--all] [-n name]

General options:
    -a, --all             Stop all instances
    -n, --name <name>     Instance name

kvm-stop.txt

lkvm-stop(1)
================

NAME
----
lkvm-stop - Stop a running instance

SYNOPSIS
--------
[verse]
'lkvm stop [instance]'

DESCRIPTION
-----------
The command stops a running instance.
For a list of running instances see 'lkvm list'.


[bearbeiten] stat

Anzeige von Statistiken einer laufenden Instanz.

Host ~$ lkvm stat [command] [--all] [-n name] [-p pid]

Befehlsoptionen

-m, --memory

Anzeige der Speicher-Statistiken.

Instanz-Optionen

-a, --all

Alle Instanzen.

-n, --name name

Name der Instanz.

-p, --pid n

PID der Instanz.


usage: lkvm stat [command] [--all] [-n name]

Commands options:
    -m, --memory          Display memory statistics

Instance options:
    -a, --all             All instances
    -n, --name <name>     Instance name


kvm-stat.txt

lkvm-stat(1)
================

NAME
----
lkvm-stat - Print statistics about a running instance

SYNOPSIS
--------
[verse]
'lkvm [command] [-n instance] [-p instance pid] [--all]'

DESCRIPTION
-----------
The command prints statistics about a running instance.
For a list of running instances see 'lkvm list'.

Commands:
 --memory, -m   Display memory statistics


[bearbeiten] sandbox

Führt einen Befehl ein einem abgesicherten (sandboxed) Gast-System aus.

 usage: lkvm run [<options>] [<kernel image>]

Basic options:
        --name <guest name>
                          A name for the guest
    -c, --cpus <n>        Number of CPUs
    -m, --mem <n>         Virtual machine memory size in MiB.
        --shmem <[pci:]<addr>:<size>[:handle=<handle>][:create]>
                          Share host shmem with guest via pci device
    -d, --disk <image or rootfs_dir>
                          Disk image or rootfs directory
        --balloon         Enable virtio balloon
        --vnc             Enable VNC framebuffer
        --sdl             Enable SDL framebuffer
        --rng             Enable virtio Random Number Generator
        --9p <dir_to_share,tag_name>
                          Enable virtio 9p to share files between host and guest
        --console <serial, virtio or hv>
                          Console to use
        --dev <device_file>
                          KVM device file
        --tty <tty id>    Remap guest TTY into a pty on the host
        --sandbox <script>
                          Run this script when booting into custom rootfs
        --hugetlbfs <path>
                          Hugetlbfs path

Kernel options:
    -k, --kernel <kernel>
                          Kernel to boot in virtual machine
    -i, --initrd <initrd>
                          Initial RAM disk image
    -p, --params <params>
                          Kernel command line arguments
    -f, --firmware <firmware>
                          Firmware image to boot in virtual machine

Networking options:
    -n, --network <network params>
                          Create a new guest NIC
        --no-dhcp         Disable kernel DHCP in rootfs mode

BIOS options:
        --vidmode <n>     Video mode

Debug options:
        --debug           Enable debug messages
        --debug-single-step
                          Enable single stepping
        --debug-ioport    Enable ioport debugging
        --debug-mmio      Enable MMIO debugging
        --debug-iodelay <n>
                          Delay IO by millisecond

kvm-sandbox.txt

lkvm-sandbox(1)
================

NAME
----
lkvm-sandbox - Run a command in a sandboxed guest

SYNOPSIS
--------
[verse]
'lkvm sandbox ['lkvm run' arguments] -- [sandboxed command]'

DESCRIPTION
-----------
The sandboxed command will run in a guest as part of it's init
command.



[bearbeiten] Diverses

README

Native Linux KVM tool
=====================
The goal of this tool is to provide a clean, from-scratch, lightweight
KVM host tool implementation that can boot Linux guest images (just a
hobby, won't be big and professional like QEMU) with no BIOS
dependencies and with only the minimal amount of legacy device
emulation.

It's great as a learning tool if you want to get your feet wet in
virtualization land: it's only 5 KLOC of clean C code that can already
boot a guest Linux image.

Right now it can boot a Linux image and provide you output via a serial
console, over the host terminal, i.e. you can use it to boot a guest
Linux image in a terminal or over ssh and log into the guest without
much guest or host side setup work needed.

1. To try out the tool, clone the git repository:

  git clone git://github.com/penberg/linux-kvm.git

or alternatively, if you already have a kernel source tree:

  git remote add kvm-tool git://github.com/penberg/linux-kvm.git
  git remote update
  git checkout -b kvm-tool/master kvm-tool

2. Compile the tool:

  cd tools/kvm && make

3. Download a raw userspace image:

  wget http://wiki.qemu.org/download/linux-0.2.img.bz2 && bunzip2
linux-0.2.img.bz2

4. The guest kernel has to be built with the following configuration:

 - For the default console output:
        CONFIG_SERIAL_8250=y
        CONFIG_SERIAL_8250_CONSOLE=y

 - For running 32bit images on 64bit hosts:
        CONFIG_IA32_EMULATION=y

 - Proper FS options according to image FS (e.g. CONFIG_EXT2_FS, CONFIG_EXT4_FS).

 - For all virtio devices listed below:
        CONFIG_VIRTIO=y
        CONFIG_VIRTIO_RING=y
        CONFIG_VIRTIO_PCI=y

 - For virtio-blk devices (--disk, -d):
        CONFIG_VIRTIO_BLK=y

 - For virtio-net devices ([--network, -n] virtio):
        CONFIG_VIRTIO_NET=y

 - For virtio-9p devices (--virtio-9p):
        CONFIG_NET_9P=y
        CONFIG_NET_9P_VIRTIO=y
        CONFIG_9P_FS=y

 - For virtio-balloon device (--balloon):
        CONFIG_VIRTIO_BALLOON=y

 - For virtio-console device (--console virtio):
        CONFIG_VIRTIO_CONSOLE=y

 - For virtio-rng device (--rng):
        CONFIG_HW_RANDOM_VIRTIO=y

 - For vesa device (--sdl or --vnc):
        CONFIG_FB_VESA=y


5. And finally, launch the hypervisor:

  ./lkvm run --disk linux-0.2.img \
            --kernel ../../arch/x86/boot/bzImage \
or

  sudo ./lkvm run --disk linux-0.2.img \
                 --kernel ../../arch/x86/boot/bzImage \
                 --network virtio

The tool has been written by Pekka Enberg, Cyrill Gorcunov, Asias He,
Sasha Levin and Prasad Joshi. Special thanks to Avi Kivity for his help
on KVM internals and Ingo Molnar for all-around support and encouragement!

See the following thread for original discussion for motivation of this
project:

http://thread.gmane.org/gmane.linux.kernel/962051/focus=962620

Build dependencies
=====================
For deb based systems:
32-bit:
sudo apt-get install build-essential
64-bit:
sudo apt-get install build-essential libc6-dev-i386

For rpm based systems:
32-bit:
yum install glibc-devel
64-bit:
yum install glibc-devel glibc-static

On 64-bit Arch Linux make sure the multilib repository is enabled in your
/etc/pacman.conf and run
pacman -Sy lib32-glibc


virtio-console.txt

General
--------

virtio-console as the name implies is a console over virtio transport. Here is
a simple head to head comparison of the virtio-console vs regular 8250 console:

8250 serial console:

 - Requires CONFIG_SERIAL_8250=y and CONFIG_SERIAL_8250_CONSOLE=y kernel configs,
which are enabled almost everywhere.
 - Doesn't require guest-side changes.
 - Compatible with older guests.

virtio-console:

 - Requires CONFIG_VIRTIO_CONSOLE=y (along with all other virtio dependencies),
which got enabled only in recent kernels (but not all of them).
 - Much faster.
 - Consumes less processing resources.
 - Requires guest-side changes.

Enabling virtio-console
------------------------

First, make sure guest kernel is built with CONFIG_VIRTIO_CONSOLE=y. Once this
is done, the following has to be done inside guest image:

 - Add the following line to /etc/inittab:
	'hvc0:2345:respawn:/sbin/agetty -L 9600 hvc0'
 - Add 'hvc0' to /etc/securetty (so you could actually log on)
 - Start the guest with '--console virtio'

Common errors
--------------

Q: I don't see anything on the screen!
A: Make sure CONFIG_VIRTIO_CONSOLE=y is enabled in the *guest* kernel, also
make sure you've updated /etc/inittab

Q: It won't accept my username/password, but I enter them correctly!
A: You didn't add 'hvc0' to /etc/securetty


kernel-debugging.txt

This document explains how to debug a guests' kernel using KGDB.

1. Run the guest:
        'lkvm run -k [vmlinuz] -p "kgdboc=ttyS1 kgdbwait" --tty 1'

And see which PTY got assigned to ttyS1 (you'll see:
'  Info: Assigned terminal 1 to pty /dev/pts/X').

2. Run GDB on the host:
        'gdb [vmlinuz]'

3. Connect to the guest (from within GDB):
        'target remote /dev/pty/X'

4. Start debugging! (enter 'continue' to continue boot).



<<<|###| >>>

Von „http://qemu-buch.de/de/index.php?title=QEMU-KVM-Buch/_KVM_Tool

Diese Seite wurde bisher 20.271 mal abgerufen. Diese Seite wurde zuletzt am 7. Juni 2012 um 07:05 Uhr geändert. Inhalt ist verfügbar unter der GNU Free Documentation License 1.2.


Finden

Blättern

News

Deutsch
Weitersagen
Tipps für Autoren
Autoren
Impressum


English
Recommendation
The Authors
Contact



Letzte Änderungen


Ändern
Seite bearbeiten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Kommentar hinzufügen
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Kontakt
Mehr …