/
createarchive
executable file
·75 lines (62 loc) · 1.2 KB
/
createarchive
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/bin/sh
KERNEL_VERSION=$1
OUTPUT_DIR=/tmp/kernel-$KERNEL_VERSION/
BOOT_DIR=$OUTPUT_DIR/boot
MODULES_DIR=$OUTPUT_DIR/lib/modules
FIRM_DIR=$OUTPUT_DIR/lib/firmware
usage()
{
echo "
usage:
createarchive [kernel_version]
params:
[kernel_verison] is a version number which you want to make. This params is passed to mkinitramfs command.
"
exit 1
}
make_dirs()
{
mkdir -p $BOOT_DIR
mkdir -p $MODULES_DIR
mkdir -p $FIRM_DIR
}
bind_dirs()
{
sudo mount --bind $BOOT_DIR /boot
sudo mount --bind $MODULES_DIR /lib/modules
sudo mount --bind $FIRM_DIR /lib/firmware
}
make_and_install()
{
make -j4 bzImage && make modules && make modules_install && make install && mkinitramfs -o initrd.img-$KERNEL_VERSION $KERNEL_VERSION && mv initrd.img-$KERNEL_VERSION /boot
}
create_archive()
{
CUR=`pwd`
cd /tmp
tar czvf kernel-$KERNEL_VERSION.tar.gz kernel-$KERNEL_VERSION
cd $CUR
mv /tmp/kernel-$KERNEL_VERSION.tar.gz .
}
unbind_dirs()
{
sudo umount /boot
sudo umount /lib/modules
sudo umount /lib/firmware
}
rm_dirs()
{
rm -rf $OUTPUT_DIR
}
# parse arguments
if test $# -ne 1; then
usage
fi
# start preparing
make_dirs
bind_dirs
make_and_install
create_archive
# clean up tmp dirs
unbind_dirs
rm_dirs