[PATCH 01/12] Add kernel header update script

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This helper pulls the required kernel headers for KVM and vhost into a
specified directory. The update is triggered via

    scripts/update-linux-headers.sh LINUX_PATH

and will place the output under linux-headers/linux and linux-headers/asm-*.
It also imports the COPYING to care for headers without an explicit license.

CC: Alexander Graf <agraf@xxxxxxx>
CC: Christoph Hellwig <hch@xxxxxx>
CC: Peter Maydell <peter.maydell@xxxxxxxxxx>
CC: Andreas FÃrber <andreas.faerber@xxxxxx>
Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
---
 linux-headers/README            |    2 +
 scripts/update-linux-headers.sh |   55 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 0 deletions(-)
 create mode 100644 linux-headers/README
 create mode 100755 scripts/update-linux-headers.sh

diff --git a/linux-headers/README b/linux-headers/README
new file mode 100644
index 0000000..5c9026b
--- /dev/null
+++ b/linux-headers/README
@@ -0,0 +1,2 @@
+Automatically imported Linux kernel headers.
+Only use scripts/update-linux-headers.sh to update!
diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
new file mode 100755
index 0000000..e5f45b2
--- /dev/null
+++ b/scripts/update-linux-headers.sh
@@ -0,0 +1,55 @@
+#!/bin/sh -e
+#
+# Update Linux kernel headers QEMU requires from a specified kernel tree.
+#
+# Copyright (C) 2011 Siemens AG
+#
+# Authors:
+#  Jan Kiszka        <jan.kiszka@xxxxxxxxxxx>
+#
+# This work is licensed under the terms of the GNU GPL version 2.
+# See the COPYING file in the top-level directory.
+
+tmpdir=$TMPDIR/.tmp-hdrs-$$
+linux=$1
+output=$2
+
+if [ -z "$linux" -o ! -d "$linux" ]; then
+    cat << EOF
+usage: update-kernel-headers.sh LINUX_PATH [OUTPUT_PATH]
+
+LINUX_PATH      Linux kernel directory to obtain the headers from
+OUTPUT_PATH     output directory, usually the qemu source tree (default: $PWD)
+EOF
+    exit 1
+fi
+
+if [ -z "$output" ]; then
+    output=$PWD
+fi
+
+for arch in x86 powerpc s390; do
+    make -C $linux INSTALL_HDR_PATH=$tmpdir SRCARCH=$arch headers_install
+
+    rm -rf $output/linux-headers/asm-$arch
+    mkdir -p $output/linux-headers/asm-$arch
+    for header in kvm.h kvm_para.h; do
+        cp $tmpdir/include/asm/$header $output/linux-headers/asm-$arch
+    done
+    if [ $arch == x86 ]; then
+        cp $tmpdir/include/asm/hyperv.h $output/linux-headers/asm-x86
+    fi
+done
+
+rm -rf $output/linux-headers/linux
+mkdir -p $output/linux-headers/linux
+for header in kvm.h kvm_para.h vhost.h virtio_config.h virtio_ring.h; do
+    cp $tmpdir/include/linux/$header $output/linux-headers/linux
+done
+if [ -L $linux/source ]; then
+    cp $linux/source/COPYING $output/linux-headers
+else
+    cp $linux/COPYING $output/linux-headers
+fi
+
+rm -rf $tmpdir
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux