Ubuntu20.04降低linux版本到5.4.0-26-generic

前言

  • 试用ubuntu20.04安装昇腾的驱动和cann的时,出现如下问题:
(base) root@ubuntu:/home/work# ./Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run --full
Verifying archive integrity...  100%   SHA256 checksums are OK. All good.
Uncompressing ASCEND DRIVER RUN PACKAGE  100%
[Driver] [2023-12-11 08:07:46] [INFO]Start time: 2023-12-11 08:07:46
[Driver] [2023-12-11 08:07:46] [INFO]LogFile: /var/log/ascend_seclog/ascend_install.log
[Driver] [2023-12-11 08:07:46] [INFO]OperationLogFile: /var/log/ascend_seclog/operation.log
[Driver] [2023-12-11 08:07:46] [INFO]base version is none.
[Driver] [2023-12-11 08:07:46] [WARNING]Do not power off or restart the system during the installation/upgrade
[Driver] [2023-12-11 08:07:47] [INFO]set username and usergroup, HwHiAiUser:HwHiAiUser
[Driver] [2023-12-11 08:07:49] [INFO]driver install type: DKMS
[Driver] [2023-12-11 08:07:49] [INFO]upgradePercentage:10%
[Driver] [2023-12-11 08:07:54] [INFO]upgradePercentage:30%
[Driver] [2023-12-11 08:07:54] [INFO]upgradePercentage:40%
[Driver] [2023-12-11 08:09:56] [ERROR]Dkms install failed, details in : /var/log/ascend_seclog/ascend_install.log
[Driver] [2023-12-11 08:09:56] [ERROR]Driver_ko_install failed, details in : /var/log/ascend_seclog/ascend_install.log
[Driver] [2023-12-11 08:09:56] [INFO]Failed to install driver package, please retry after uninstall and reboot!
[Driver] [2023-12-11 08:09:56] [INFO]End time: 2023-12-11 08:09:56

大概率是内核版本不对导致。目前昇腾的底层驱动和应用程序的配套如下图所示:
图片

使用uname -r 命令查看当前的内核版本

root@ubuntu:~# uname -r
5.4.0-169-generic

不满足5.4.0-26-generic的要求,如果强行安装驱动,会出现第一步的报错问题。

安装内核

  • 首先使用如下命令安装内核:
apt-get install linux-image-5.4.0-26-generic linux-headers-5.4.0-26-generic linux-modules-5.4.0-26-generic
  • 使用命令: dpkg --get-selections | grep linux- 查看已经安装的内核:
linux-base                                      install
linux-firmware                                  install
linux-generic                                   install
linux-headers-5.4.0-169                         install
linux-headers-5.4.0-169-generic                 install
linux-headers-5.4.0-26                          install  #已安装
linux-headers-5.4.0-26-generic                  install
linux-headers-generic                           install
linux-image-5.4.0-169-generic                   install
linux-image-5.4.0-26-generic                    install  #已安装
linux-image-generic                             install
linux-modules-5.4.0-169-generic                 install
linux-modules-5.4.0-26-generic                  install  #已安装
linux-modules-extra-5.4.0-169-generic           install
  • 设置不更新该版本的内核:
    希望以后不再更新内核,则使用命令将此内核锁住,保证以后不再自动升级内核
    命令:apt-mark hold linux-image-5.4.0-26-generic linux-headers-5.4.0-26-generic linux-modules-5.4.0-26-generic
    结果:

root@ubuntu:~# dpkg --get-selections | grep linux-
linux-base                                      install
linux-firmware                                  install
linux-generic                                   install
linux-headers-5.4.0-169                         install
linux-headers-5.4.0-169-generic                 install
linux-headers-5.4.0-26                          install
linux-headers-5.4.0-26-generic                  hold  # hold
linux-headers-generic                           install
linux-image-5.4.0-169-generic                   install
linux-image-5.4.0-26-generic                    hold
linux-image-generic                             install
linux-modules-5.4.0-169-generic                 install
linux-modules-5.4.0-26-generic                  hold
linux-modules-extra-5.4.0-169-generic           install

修改启动项

  • 使用命令grep ‘menuentry’ /boot/grub/grub.cfg 查看现有已安装的内核
    结果:
root@ubuntu:~# grep 'menuentry' /boot/grub/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; thenmenuentry_id_option="--id"menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-64b5492d-6f43-4560-9d6e-0ada8fb69264' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-64b5492d-6f43-4560-9d6e-0ada8fb69264' {menuentry 'Ubuntu, with Linux 5.4.0-169-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-169-generic-advanced-64b5492d-6f43-4560-9d6e-0ada8fb69264' {menuentry 'Ubuntu, with Linux 5.4.0-169-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-169-generic-recovery-64b5492d-6f43-4560-9d6e-0ada8fb69264' {$menuentry_id_option 'gnulinux-5.4.0-26-generic-advanced-64b5492d-6f43-4560-9d6e-0ada8fb69264' {menuentry 'Ubuntu, with Linux 5.4.0-26-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-26-generic-recovery-64b5492d-6f43-4560-9d6e-0ada8fb69264' {
menuentry 'Ubuntu 20.04 LTS (20.04) (on /dev/sdb2)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-0eb7b5f0-729d-4b4c-8ed7-48b8e6189ed6' {
submenu 'Advanced options for Ubuntu 20.04 LTS (20.04) (on /dev/sdb2)' $menuentry_id_option 'osprober-gnulinux-advanced-0eb7b5f0-729d-4b4c-8ed7-48b8e6189ed6' {menuentry 'Ubuntu (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-5.4.0-169-generic--0eb7b5f0-729d-4b4c-8ed7-48b8e6189ed6' {menuentry 'Ubuntu, with Linux 5.4.0-169-generic (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-5.4.0-169-generic--0eb7b5f0-729d-4b4c-8ed7-48b8e6189ed6' {menuentry 'Ubuntu, with Linux 5.4.0-169-generic (recovery mode) (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-5.4.0-169-generic-root=UUID=0eb7b5f0-729d-4b4c-8ed7-48b8e6189ed6 ro recovery nomodeset-0eb7b5f0-729d-4b4c-8ed7-48b8e6189ed6' {
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
root@ubuntu:~#

查到从menuentry ‘Ubuntu, with Linux 5.4.0-26-generic’ --class ubuntu --class gnu-linux --class gnu --class os ,获取到’Ubuntu, with Linux 5.4.0-26-generic

  • 修改启动项
    打开 vi /etc/default/grub
# GRUB_DEFAULT=0 # 注释这行
GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-26-generic" # Ubuntu, with Linux 5.4.0-26-generic由上一个查出的
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""
  • 更新grub设置
    执行命令:update-grub
    结果:
root@ubuntu:~# sudo update-grub
\Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-169-generic
Found initrd image: /boot/initrd.img-5.4.0-169-generic
Found linux image: /boot/vmlinuz-5.4.0-26-generic ## 这行执行成功
Found initrd image: /boot/initrd.img-5.4.0-26-generic ## 这行成功
Found Ubuntu 20.04 LTS (20.04) on /dev/sdb2
Adding boot menu entry for UEFI Firmware Settings
done

安装昇腾驱动和CANN包

相关下载网站:
昇腾社区:www.hiascend.com
驱动下载:https://www.hiascend.com/hardware/firmware-drivers
CANN下载:https://www.hiascend.com/software/cann
CANN安装指导文档:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/700alpha001/softwareinstall/instg/instg_000021.html
清华软件源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ # 下载开源的依赖软件(python)

1、安装依赖环境

软件环境依赖安装:

apt-get install -y gcc g++ make cmake zlib1g zlib1g-dev openssl libsqlite3-dev libssl-dev libffi-dev libbz2-dev libxslt1-dev unzip pciutils net-tools libblas-dev gfortran libblas3 apt-get install libgl1-mesa-glx

2、按住Python3.9.x

# 执行下载的miniconda脚本进行安装:
bash ./Miniconda3-py39_23.9.0-0-Linux-aarch64.sh

安装python依赖:

pip3 install attrs pandas numpy decorator sympy cffi pyyaml pathlib2 psutil protobuf scipy requests absl-py pyyaml opencv-python setuptools -i https://pypi.tuna.tsinghua.edu.cn/simple/

3、安装HwHiAiUser用户

在命令行分别执行如下命令:

groupadd HwHiAiUser
useradd -g HwHiAiUser -d /home/HwHiAiUser -m HwHiAiUser -s /bin/bash

4、安装驱动

bash ./Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run --full

安装成功提示:

(base) root@ubuntu:/home/work/dri# bash ./Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run --full
Verifying archive integrity...  100%   SHA256 checksums are OK. All good.
Uncompressing ASCEND DRIVER RUN PACKAGE  100%
[Driver] [2023-12-11 15:08:52] [INFO]Start time: 2023-12-11 15:08:52
[Driver] [2023-12-11 15:08:52] [INFO]LogFile: /var/log/ascend_seclog/ascend_install.log
[Driver] [2023-12-11 15:08:52] [INFO]OperationLogFile: /var/log/ascend_seclog/operation.log
[Driver] [2023-12-11 15:08:52] [WARNING]Do not power off or restart the system during the installation/upgrade
[Driver] [2023-12-11 15:08:52] [INFO]set username and usergroup, HwHiAiUser:HwHiAiUser
[Driver] [2023-12-11 15:08:54] [INFO]driver install type: Direct
[Driver] [2023-12-11 15:08:54] [INFO]upgradePercentage:10%
[Driver] [2023-12-11 15:08:59] [INFO]upgradePercentage:30%
[Driver] [2023-12-11 15:08:59] [INFO]upgradePercentage:40%
[Driver] [2023-12-11 15:09:01] [INFO]upgradePercentage:90%
[Driver] [2023-12-11 15:09:01] [INFO]Waiting for device startup...
[Driver] [2023-12-11 15:09:08] [INFO]Device startup success
[Driver] [2023-12-11 15:09:18] [INFO]upgradePercentage:100%
[Driver] [2023-12-11 15:09:18] [INFO]Driver package installed successfully! The new version takes effect immediately.
[Driver] [2023-12-11 15:09:18] [INFO]End time: 2023-12-11 15:09:18

5、安装固件

bash ./Ascend-hdk-910-npu-firmware_7.0.0.5.242.run --full

安装成功提示:


Verifying archive integrity...  100%   SHA256 checksums are OK. All good.
Uncompressing ASCEND-HDK-910-NPU FIRMWARE RUN PACKAGE  100%
[Firmware] [2023-12-11 15:09:34] [INFO]Start time: 2023-12-11 15:09:34
[Firmware] [2023-12-11 15:09:34] [INFO]LogFile: /var/log/ascend_seclog/ascend_install.log
[Firmware] [2023-12-11 15:09:34] [INFO]OperationLogFile: /var/log/ascend_seclog/operation.log
[Firmware] [2023-12-11 15:09:34] [WARNING]Do not power off or restart the system during the installation/upgrade
[Firmware] [2023-12-11 15:09:38] [INFO]upgradePercentage: 0%
[Firmware] [2023-12-11 15:09:46] [INFO]upgradePercentage: 100%
[Firmware] [2023-12-11 15:09:46] [INFO]The firmware of [1] chips are successfully upgraded.
[Firmware] [2023-12-11 15:09:47] [INFO]Firmware package installed successfully! Reboot now or after driver installation for the installation/upgrade to take effect.

6、安装CANN

bash Ascend-cann-toolkit_7.0.0.alpha002_linux-aarch64.run --install --install-for-all

7、环境变量配置

配置vi /root/.bashrc 最后一行加入:

source /usr/local/Ascend/ascend-toolkit/set_env.sh
export LD_PRELOAD=/lib/aarch64-linux-gnu/libGLdispatch.so.0

8、安装kernel-opp算子包

bash Ascend-cann-kernel_7.0.0.alpha002_linux-aarch64.run --install --install-for-all

安装MindSpore框架

参考:mindspore.cn官网进行安装;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/269633.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解

时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解 目录 时序分解 | Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现SSA-ICEEMDAN麻雀算法优化ICEEMDAN时间序列信号分解 可…

java版Spring Cloud+Spring Boot+Mybatis之隐私计算 FATE - 多分类神经网络算法测试

一、说明 本文分享基于 Fate 使用 横向联邦 神经网络算法 对 多分类 的数据进行 模型训练,并使用该模型对数据进行 多分类预测。 二分类算法:是指待预测的 label 标签的取值只有两种;直白来讲就是每个实例的可能类别只有两种 (0 或者 1)&…

数据挖掘目标(客户价值分析)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as snsIn [2]: datapd.read_csv(r../教师文件/air_data.csv)In [3]: data.head()Out[3]: Start_timeEnd_timeFareCityAgeFlight_countAvg_discountFlight_mileage02011/08/182014/0…

打工人副业变现秘籍,某多/某手变现底层引擎-Stable Diffusion替换背景

在Stable Diffusion软件中,使用ControlNet+模型实现固定物体批量替换背景 出图的流程。 一、准备好图片 1.你需要准备好一些白底图或者透明底图用于训练模型。 2.你需要准备同样角度的其他背景色底图用于ControlNet勾线 3.注意检查你的图片尺寸,是否为1:1,…

【STM32】DMA直接存储器存取

1 DMA简介 DMA(Direct Memory Access)直接存储器存取 可以直接访问STM32的存储器的,包括运行SRAM、程序存储器Flash和寄存器等等 DMA可以提供外设寄存器和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节…

vue 集成行政区域选择插件region和数据回显

故事:最近,项目需要进行行政区域围栏的绘制,由于老旧项目是利用js保存全国行政区域地址和编码,在选择器select进行匹配显示,但此方法复杂,因此选择集成区域插件region 步骤一:用命令安装region…

梳理一下嵌入式和单片机之间的关系

一定有很多人都听说过嵌入式和单片机,但在刚开始接触时,不知道大家有没有听说过嵌入式就是单片机这样的说法,其实嵌入式和单片机还是有区别的。单片机与嵌入式到底有什么关系? 下面我们就来说说嵌入式和单片机之间的联系和区别吧…

K8S(二)—介绍

K8S的整体结构图 k8s对象 在 Kubernetes 系统中,Kubernetes 对象是持久化的实体。 Kubernetes 使用这些实体去表示整个集群的状态。 具体而言,它们描述了如下信息: 哪些容器化应用正在运行(以及在哪些节点上运行)可…

【大数据】Doris 架构

Doris 架构 Doris 的架构很简洁,只设 FE(Frontend)、BE(Backend)两种角色、两个进程,不依赖于外部组件,方便部署和运维,FE、BE 都可线性扩展。 ✅ Frontend(FE&#xff0…

Appium 自动化自学篇 —— 初识Appium自动化!

Appium 简介 随着移动终端的普及,手机应用越来越多,也越来越重要。而作为测试 的我们也要与时俱进,努力学习手机 App 的相关测试,文章将介绍手机自动化测试框架 Appium 。 那究竟什么是 Appium 呢? 接下来我们一起来学习PythonS…

西南交通大学【数电实验6---可控分频器设计】

一、实验电路图、状态图、程序代码、仿真代码、仿真波形图(可以只写出核心功能代码,代码要有注释) 不管sel为0或者1,clk_out[0]的频率都是不变的,故在always块当中,可优先对clk_out[0]进行处理,…

部署Kubernetes(k8s)集群,可视化部署kuboard

所需机器 主机名地址角色配置k8s-master192.168.231.134主节点2核4G,centos7k8s-node1192.168.231.135工作节点2核4G,centos7k8s-node2192.168.231.136工作节点2核4G,centos7 主节点CPU核数必须是 ≥2核且内存要求必须≥2G,否则k8s无法启动 1. 集群环境部署【三台…