-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathkernelupdate.sh
executable file
·77 lines (66 loc) · 3.21 KB
/
kernelupdate.sh
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
76
77
#!/bin/bash
# SPDX-License-Identifier: MIT
# Copyright (c) 2022 The Authors.
# Authors: The Mizar Team
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:The above copyright
# notice and this permission notice shall be included in all copies or
# substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS",
# WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
# TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
# FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
function update-kernel-for-mizar {
kernel_dir="/tmp/linux-5.6-rc2"
mkdir -p $kernel_dir
wget https://mizar.s3.amazonaws.com/linux-5.6-rc2/linux-headers-5.6.0-rc2_5.6.0-rc2-1_amd64.deb -P $kernel_dir
wget https://mizar.s3.amazonaws.com/linux-5.6-rc2/linux-image-5.6.0-rc2-dbg_5.6.0-rc2-1_amd64.deb -P $kernel_dir
wget https://mizar.s3.amazonaws.com/linux-5.6-rc2/linux-image-5.6.0-rc2_5.6.0-rc2-1_amd64.deb -P $kernel_dir
wget https://mizar.s3.amazonaws.com/linux-5.6-rc2/linux-libc-dev_5.6.0-rc2-1_amd64.deb -P $kernel_dir
sudo dpkg -i $kernel_dir/*.deb
read -p "Reboot host now? (y/n)?" choice
case "$choice" in
y|Y ) echo "Rebooting...";;
n|N ) echo "Please reboot for updated kernel to take effect."; return;;
* ) return;;
esac
sudo reboot
}
function check-and-install-mizar-kernel {
kernel_ver=$(uname -r)
kernel_header_ver=$(sudo apt list linux-headers-$(uname -r) | grep "linux-headers-" | cut -d/ -f1 | sed 's/linux-headers-//')
echo "Currently running kernel version: $kernel_ver"
echo "Currently running kernel header version: $kernel_header_ver"
echo ".................................................."
mj_ver=$(echo $kernel_ver | cut -d. -f1)
mn_ver=$(echo $kernel_ver | cut -d. -f2)
if ([ "$mj_ver" -lt 5 ]) || ([ "$mj_ver" -eq 5 ] && [ "$mn_ver" -le 5 ]); then
tput setaf 1
echo "Mizar requires an updated kernel: linux-5.6 rc2 for TCP to function correctly. Current version is $kernel_ver"
read -p "Execute kernel update script (y/n)?" choice
tput sgr0
case "$choice" in
y|Y ) update-kernel-for-mizar;;
n|N ) echo "Please run kernelupdate.sh to download and update the kernel!"; return;;
* ) echo "Please run kernelupdate.sh to download and update the kernel!"; return;;
esac
fi
if [[ "$kernel_ver" != "$kernel_header_ver" ]]; then
tput setf 2
echo " Updating kernel_header.."
tput sgr0
sudo apt-get install linux-headers-$(uname -r) -y
fi
}
# Main
if [[ "$(arch)" == "x86_64" ]]; then
check-and-install-mizar-kernel
else
echo "kernel-update.sh: CPU architecture $(arch) not supported."
fi