linux 内核4.19编译安装

linux 内核4.19编译安装

下载4.19包

官网 https://www.kernel.org/

下载地址

链接: https://pan.baidu.com/s/1teAiT5Zthru1Kqew-Pe9Yw 提取码: 9ehn

解压tar包

tar xvf linux-4.19.82.tar.xz

安装依赖

yum -y update
yum -y install gcc bc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel flex* bison* autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake  pcre pcre-devel openssl openssl-devel   jemalloc-devel tlc libtool vim unzip wget lrzsz bash-comp* ipvsadm ipset jq sysstat conntrack libseccomp conntrack-tools socat

编译安装

[root@master ~]# ls
linux-4.19.82  linux-4.19.82.tar.xz
[root@master ~]# cd linux-4.19.82
[root@master linux-4.19.82]# ll
total 724
drwxrwxr-x  26 root root   4096 Nov  6 20:06 arch
drwxrwxr-x   3 root root   4096 Nov  6 20:06 block
drwxrwxr-x   2 root root    200 Nov  6 20:06 certs
-rw-rw-r--   1 root root    423 Nov  6 20:06 COPYING
-rw-rw-r--   1 root root  98741 Nov  6 20:06 CREDITS
drwxrwxr-x   4 root root   4096 Nov  6 20:06 crypto
drwxrwxr-x 120 root root   8192 Nov  6 20:06 Documentation
drwxrwxr-x 137 root root   4096 Nov  6 20:06 drivers
drwxrwxr-x   2 root root     40 Nov  6 20:06 firmware
drwxrwxr-x  73 root root   4096 Nov  6 20:06 fs
drwxrwxr-x  27 root root   4096 Nov  6 20:06 include
drwxrwxr-x   2 root root    254 Nov  6 20:06 init
drwxrwxr-x   2 root root    213 Nov  6 20:06 ipc
-rw-rw-r--   1 root root   2245 Nov  6 20:06 Kbuild
-rw-rw-r--   1 root root    563 Nov  6 20:06 Kconfig
drwxrwxr-x  18 root root   4096 Nov  6 20:06 kernel
drwxrwxr-x  13 root root   8192 Nov  6 20:06 lib
drwxrwxr-x   5 root root     54 Nov  6 20:06 LICENSES
-rw-rw-r--   1 root root 470882 Nov  6 20:06 MAINTAINERS
-rw-rw-r--   1 root root  60009 Nov  6 20:06 Makefile
drwxrwxr-x   3 root root   4096 Nov  6 20:06 mm
drwxrwxr-x  70 root root   4096 Nov  6 20:06 net
-rw-rw-r--   1 root root    800 Nov  6 20:06 README
drwxrwxr-x  27 root root   4096 Nov  6 20:06 samples
drwxrwxr-x  14 root root   4096 Nov  6 20:06 scripts
drwxrwxr-x  10 root root    263 Nov  6 20:06 security
drwxrwxr-x  26 root root   4096 Nov  6 20:06 sound
drwxrwxr-x  32 root root   4096 Nov  6 20:06 tools
drwxrwxr-x   2 root root    131 Nov  6 20:06 usr
drwxrwxr-x   4 root root     44 Nov  6 20:06 virt

清理内核源目录

[root@master linux-4.19.82]# make mrproper

在这里插入图片描述

订制内核功能

config文件下载地址
链接: https://pan.baidu.com/s/1CIB2M3V2q5btOeUfU9Q_mw 提取码: xw9v

cp /root/config /root/linux-4.19.82/.config

在这里插入图片描述

make menuconfig

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

编译

[root@master linux-4.19.82]# pwd
/root/linux-4.19.82
[root@master linux-4.19.82]# make

安装模块

[root@master modules]# cd /root/linux-4.19.82
[root@master linux-4.19.82]# make modules_install
[root@master linux-4.19.82]# make install

改默认内核启动项

查看系统可用内核
[root@master ~]#  awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.19.82) 7 (Core)
1 : CentOS Linux (3.10.0-1062.4.1.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-1062.el7.x86_64) 7 (Core)
3 : CentOS Linux (0-rescue-b67f72c5e26340d78a901f1c5b5b079b) 7 (Core)
修改开机默认使用的内核
grub2-set-default 'CentOS Linux (4.19.82) 7 (Core)'

重启升级完成

[root@master ~]# uname -r
4.19.82
[root@master ~]# uname -a
Linux master 4.19.82 #1 SMP Sat Nov 9 11:13:32 CST 2019 x86_64 x86_64 x86_64 GNU/Linux

常用功能

网卡名改为eth0

对 grub2 进行修改

在 GRUB_CMDLINE_LINUX 这个参数后面加入 net.ifnames=0 biosdevname=0

[root@master ~]# vim /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root  rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"

用 grub2-mkconfig 命令重新生成GRUB配置并更新内核

grub2-mkconfig -o /boot/grub2/grub.cfg
修改网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
....
NAME=eth0
....
DEVICE=eth0
mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
重启
[root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:15:23:58 brd ff:ff:ff:ff:ff:ff
    inet 192.168.186.100/24 brd 192.168.186.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever

[root@master ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=128 time=12.3 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=128 time=12.2 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=128 time=12.5 ms

启用ipvs

安装依赖
yum install ipvsadm ipset jq sysstat conntrack libseccomp conntrack-tools socat -y
加载ipvs module
vim /etc/sysconfig/modules/ipvs.modules

#!/bin/bash
module=(ip_vs
        ip_vs_rr
        ip_vs_wrr
        ip_vs_sh
        ip_vs_lc
        br_netfilter
        nf_conntrack)
for kernel_module in ${module[@]};do
    /sbin/modinfo -F filename $kernel_module |& grep -qv ERROR && echo $kernel_module >> /etc/modules-load.d/ipvs.conf || :
done


ipvs_modules_dir="/usr/lib/modules/`uname -r`/kernel/net/netfilter/ipvs"
for i in `ls $ipvs_modules_dir | sed  -r 's#(.*).ko#\1#'`; do
    /sbin/modinfo -F filename $i  &> /dev/null
    if [ $? -eq 0 ]; then
        /sbin/modprobe $i
    fi
done
chmod 755 /etc/sysconfig/modules/ipvs.modules
source /etc/sysconfig/modules/ipvs.modules
[root@master ~]# lsmod | grep ip_vs
ip_vs_wlc              16384  0 
ip_vs_sed              16384  0 
ip_vs_pe_sip           16384  0 
nf_conntrack_sip       32768  1 ip_vs_pe_sip
ip_vs_ovf              16384  0 
ip_vs_nq               16384  0 
ip_vs_mh               16384  0 
ip_vs_lblcr            16384  0 
ip_vs_lblc             16384  0 
ip_vs_ftp              16384  0 
nf_nat                 40960  1 ip_vs_ftp
ip_vs_fo               16384  0 
ip_vs_dh               16384  0 
ip_vs_lc               16384  0 
ip_vs_sh               16384  0 
ip_vs_wrr              16384  0 
ip_vs_rr               16384  0 
ip_vs                 151552  30 ip_vs_wlc,ip_vs_rr,ip_vs_dh,ip_vs_lblcr,ip_vs_sh,ip_vs_ovf,ip_vs_fo,ip_vs_nq,ip_vs_lblc,ip_vs_pe_sipip_vs_wrr,ip_vs_lc,ip_vs_mh,ip_vs_sed,ip_vs_ftp
nf_conntrack          139264  3 nf_nat,nf_conntrack_sip,ip_vs
nf_defrag_ipv6         24576  2 nf_conntrack,ip_vs
libcrc32c              16384  4 nf_conntrack,nf_nat,xfs,ip_vs

k8s相关的内核参数
关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
添加内核参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_keepalive_probes = 10
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv4.neigh.default.gc_stale_time = 120
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2
net.ipv4.ip_forward = 1
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.netfilter.nf_conntrack_max = 2310720
fs.inotify.max_user_watches=89100
fs.may_detach_mounts = 1
fs.file-max = 52706963
fs.nr_open = 52706963
net.bridge.bridge-nf-call-arptables = 1
vm.swappiness = 0
vm.overcommit_memory=1
vm.panic_on_oom=0
EOF
sysctl -p
  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值