linux内核升级及问题解决

性能优化的过程中,执行perf stat命令有报错

failed to get cpuid string for PMU hisi_sccl7_ddrc0
failed to get cpuid string for PMU hisi_sccl7_l3c18
failed to get cpuid string for PMU hisi_sccl3_ddrc1
failed to get cpuid string for PMU hisi_sccl3_l3c5
failed to get cpuid string for PMU hisi_sccl7_l3c16
failed to get cpuid string for PMU hisi_sccl3_l3c3
failed to get cpuid string for PMU hisi_sccl1_hha3
failed to get cpuid string for PMU hisi_sccl7_hha5
failed to get cpuid string for PMU hisi_sccl1_l3c9
failed to get cpuid string for PMU hisi_sccl1_l3c12
failed to get cpuid string for PMU hisi_sccl5_ddrc2
failed to get cpuid string for PMU hisi_sccl3_l3c1
failed to get cpuid string for PMU hisi_sccl1_ddrc3
failed to get cpuid string for PMU hisi_sccl5_l3c28
failed to get cpuid string for PMU hisi_sccl1_l3c10
failed to get cpuid string for PMU hisi_sccl5_ddrc0
...............

查询了一下原因,是由于内核版本过低,需要升级更高的内核版本。

先查看目前的内核版本

[root@localhost ~]# uname -r
4.14.0-115.el7a.0.1.aarch64

一:安装依赖

# yum update

# yum upgrade

# yum groupinstall  Development Tools

# yum install ncurses-devel qt-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel

二:下载源码
https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.4.tar.gz
选择适合的版本,我这边选择了5.4版本

三:编译升级

tar -zxvf linux-5.4.tar.gz
[root@localhost ~]# cd /boot/
[root@localhost boot]# ls
config-4.14.0-115.el7a.0.1.aarch64                       symvers-4.14.0-115.el7a.0.1.aarch64.gz
config-4.18.0-193.28.1.el7.aarch64                       symvers-4.18.0-193.28.1.el7.aarch64.gz
efi                                                      System.map
grub                                                     System.map-4.14.0-115.el7a.0.1.aarch64
grub2                                                    System.map-4.18.0-193.28.1.el7.aarch64
initramfs-0-rescue-4533ce0aa216477cba4723f8e096873e.img  System.map-5.4.0
initramfs-4.14.0-115.el7a.0.1.aarch64.img                vmlinuz
initramfs-4.14.0-115.el7a.0.1.aarch64kdump.img           vmlinuz-0-rescue-4533ce0aa216477cba4723f8e096873e
initramfs-4.18.0-193.28.1.el7.aarch64.img                vmlinuz-4.14.0-115.el7a.0.1.aarch64
initramfs-4.18.0-193.28.1.el7.aarch64kdump.img           vmlinuz-4.18.0-193.28.1.el7.aarch64
initramfs-5.4.0.img                                      vmlinuz-5.4.0

选择当前内核的配置文件拷贝进编译目录
config-4.14.0-115.el7a.0.1.aarch64

cp config-4.14.0-115.el7a.0.1.aarch64 /root/linux-5.4/.config
cd linux-5.4
make menuconfig

在弹出界面中方向键移动光标,选择Save,回车,保存配置
在这里插入图片描述
在这里插入图片描述
完成后选择exit退出

make
make modules_install
make install

四:指定内核

grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

重启后查看内核版本

uname -r

五:问题汇总
make后可能会遇到如下问题,参考解决
extract-cert.c:(.text.startup+0x25): undefined reference to `OPENSSL_init_crypto’

extract-cert.c:(.text.startup+0x31): undefined reference to `OPENSSL_init_crypto’
在linux-5.4目录下,执行

grep -sr extract-cert* .

找到对应的Makefile文件
在-lcrypto加上 -L /usr/local/bin 指定链接的静态库的路径,默认为/usr/bin,如果crypto库在其他目录下需要修改
HOSTLDLIBS_sign-file = -L /usr/local/bin -lcrypto
HOSTLDLIBS_extract-cert = -L /usr/local/bin -lcrypto

在这里插入图片描述
如果遇到如上问题,需要修改.config文件

vi .config

找到 CONFIG_SYSTEM_TRUSTED_KEYS,置空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值