root / scripts / update-linux-headers.sh @ 333c574d
History | View | Annotate | Download (1.5 kB)
1 | 87fdd476 | Jan Kiszka | #!/bin/sh -e |
---|---|---|---|
2 | 87fdd476 | Jan Kiszka | # |
3 | 87fdd476 | Jan Kiszka | # Update Linux kernel headers QEMU requires from a specified kernel tree. |
4 | 87fdd476 | Jan Kiszka | # |
5 | 87fdd476 | Jan Kiszka | # Copyright (C) 2011 Siemens AG |
6 | 87fdd476 | Jan Kiszka | # |
7 | 87fdd476 | Jan Kiszka | # Authors: |
8 | 87fdd476 | Jan Kiszka | # Jan Kiszka <jan.kiszka@siemens.com> |
9 | 87fdd476 | Jan Kiszka | # |
10 | 87fdd476 | Jan Kiszka | # This work is licensed under the terms of the GNU GPL version 2. |
11 | 87fdd476 | Jan Kiszka | # See the COPYING file in the top-level directory. |
12 | 87fdd476 | Jan Kiszka | |
13 | 87fdd476 | Jan Kiszka | tmpdir=`mktemp -d` |
14 | 87fdd476 | Jan Kiszka | linux="$1" |
15 | 87fdd476 | Jan Kiszka | output="$2" |
16 | 87fdd476 | Jan Kiszka | |
17 | 87fdd476 | Jan Kiszka | if [ -z "$linux" ] || ! [ -d "$linux" ]; then |
18 | 87fdd476 | Jan Kiszka | cat << EOF |
19 | 87fdd476 | Jan Kiszka | usage: update-kernel-headers.sh LINUX_PATH [OUTPUT_PATH] |
20 | 87fdd476 | Jan Kiszka | |
21 | 87fdd476 | Jan Kiszka | LINUX_PATH Linux kernel directory to obtain the headers from |
22 | 87fdd476 | Jan Kiszka | OUTPUT_PATH output directory, usually the qemu source tree (default: $PWD) |
23 | 87fdd476 | Jan Kiszka | EOF |
24 | 87fdd476 | Jan Kiszka | exit 1 |
25 | 87fdd476 | Jan Kiszka | fi |
26 | 87fdd476 | Jan Kiszka | |
27 | 87fdd476 | Jan Kiszka | if [ -z "$output" ]; then |
28 | 87fdd476 | Jan Kiszka | output="$PWD" |
29 | 87fdd476 | Jan Kiszka | fi |
30 | 87fdd476 | Jan Kiszka | |
31 | 87fdd476 | Jan Kiszka | for arch in x86 powerpc s390; do |
32 | 87fdd476 | Jan Kiszka | make -C "$linux" INSTALL_HDR_PATH="$tmpdir" SRCARCH=$arch headers_install |
33 | 87fdd476 | Jan Kiszka | |
34 | 87fdd476 | Jan Kiszka | rm -rf "$output/linux-headers/asm-$arch" |
35 | 87fdd476 | Jan Kiszka | mkdir -p "$output/linux-headers/asm-$arch" |
36 | 87fdd476 | Jan Kiszka | for header in kvm.h kvm_para.h; do |
37 | 87fdd476 | Jan Kiszka | cp "$tmpdir/include/asm/$header" "$output/linux-headers/asm-$arch" |
38 | 87fdd476 | Jan Kiszka | done |
39 | 87fdd476 | Jan Kiszka | if [ $arch = x86 ]; then |
40 | 87fdd476 | Jan Kiszka | cp "$tmpdir/include/asm/hyperv.h" "$output/linux-headers/asm-x86" |
41 | 87fdd476 | Jan Kiszka | fi |
42 | 87fdd476 | Jan Kiszka | done |
43 | 87fdd476 | Jan Kiszka | |
44 | 87fdd476 | Jan Kiszka | rm -rf "$output/linux-headers/linux" |
45 | 87fdd476 | Jan Kiszka | mkdir -p "$output/linux-headers/linux" |
46 | 87fdd476 | Jan Kiszka | for header in kvm.h kvm_para.h vhost.h virtio_config.h virtio_ring.h; do |
47 | 87fdd476 | Jan Kiszka | cp "$tmpdir/include/linux/$header" "$output/linux-headers/linux" |
48 | 87fdd476 | Jan Kiszka | done |
49 | 87fdd476 | Jan Kiszka | if [ -L "$linux/source" ]; then |
50 | 87fdd476 | Jan Kiszka | cp "$linux/source/COPYING" "$output/linux-headers" |
51 | 87fdd476 | Jan Kiszka | else |
52 | 87fdd476 | Jan Kiszka | cp "$linux/COPYING" "$output/linux-headers" |
53 | 87fdd476 | Jan Kiszka | fi |
54 | 87fdd476 | Jan Kiszka | |
55 | 87fdd476 | Jan Kiszka | rm -rf "$tmpdir" |