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官网进行安装;
相关文章:
Ubuntu20.04降低linux版本到5.4.0-26-generic
前言 试用ubuntu20.04安装昇腾的驱动和cann的时,出现如下问题: (base) rootubuntu:/home/work# ./Ascend-hdk-910-npu-driver_23.0.rc3_linux-aarch64.run --full Verifying archive integrity... 100% SHA256 checksums are OK. All good. Uncompr…...
C++ 类型萃取
什么是 type_traits 在C中,类型萃取(type_traits)是一种编译时技术,用于在编译期间获取和操作类型的信息。 主要用于泛型编程以及在编译时做出决策。 类型萃取可以帮我们检查和处理类型特性,从而优化代码、避免错误或…...
【JVM从入门到实战】(四)类的生命周期
什么是类的生命周期 类的生命周期描述了一个类加载、连接、初始化、使用、卸载的整个过程 一个类完整的生命周期如下: 加载阶段 加载阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码信息。 程序员可以使用Java代码拓展的不同的渠道…...
2023年度美食关键词-葱油花卷
2023年即将过去了,总结这一年的美食关键词,对于我来就,应该就是-大葱了。 前一周,朋友送了我5大葱,在北方,大葱是家家户户必不可少的食材,尤其对于面食爱好者来说,大葱的加入无疑让…...
「Verilog学习笔记」简易秒表
专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1nsmodule count_module(input clk,input rst_n,output reg [5:0]second,output reg [5:0]minute);always (posedge clk or negedge rst_n) begin if (~rst…...
《每天一个Linux命令》 -- (12) file命令
欢迎阅读《每天一个Linux命令》系列 !在本篇文章中,将说明file命令用法。 概念 file命令是Linux系统下的文件类型识别命令,用于识别文件的类型。 命令操作 file命令的语法如下: file [选项] 文件命令详细解释 以下是 file 命…...
如何使用ArcGIS Pro制作类似CAD的尺寸注记
经常使用CAD制图的朋友应该比较熟悉CAD内的尺寸标注,这样的标注看起来直观且简洁,那么在ArcGIS Pro内能不能制作这样尺寸注记呢,答案是肯定的,这里为大家介绍一下制作的方法,希望能对你有所帮助。 数据来源 本教程所…...
Go语言bufio包的使用
准备文本文件 rpc_intro.txt RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议, 允许调用不同进程空间的程序。RPC 的客户端和服务器可以在一台机器上,也可以在不同的机器上。程序员使用时,就像调用本地程序一样&…...
计算机网络之IP篇
来源自小林Coding博客,阅读后部分精简笔记 目录 一、IP 的基本认识 二、DNS 三、ARP 四、DHCP 五、NAT 六、ICMP 七、IGMP 七、ping 的工作原理 ping-----查询报文的使用 traceroute —— 差错报文类型的使用 八、断网了还能 ping 通 127.0.0.1 吗&…...
Java中JDK类库常用的6种设计模式
Java中JDK类库常用的6种设计模式:1、抽象工厂。2、建造者模式。3、工厂模式。4、原型模式。5、单例模式。6、适配器模式。 1、抽象工厂 javax.xml.parsers.DocumentBuilderFactory抽象类。 public static DocumentBuilderFactory newInstance()方法。 类功能&…...
C++ 用法全面剖析
我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。 对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对…...
数据库结构
三级结构 内模式:也称为物理模式,它是数据库中数据的物理存储表示,描述了数据在存储介质上的存储方式和物理结构,通常由数据库管理员进行定义。 概念模式:也称为逻辑模式,它是对数据库中全体数据的逻辑表示…...
什么是HTML以及超链接,特殊符号转义的简单使用
目录 什么是HTML🌸 HTML版本 版本说明🌸 XHTML和HTML的区别 超链接🌸基本语法🌸链接的分类 特殊符号 什么是HTML HTML 不是编程语言,没有逻辑处理能力,没有计算能力,不能动态地生成内容&#x…...
汽车销售技巧培训应该学习哪些内容
汽车销售技巧培训应该学习哪些内容 随着汽车市场的竞争日益激烈,汽车销售技巧培训对于提高销售人员的销售能力和服务水平至关重要。本文将介绍汽车销售技巧培训应该学习哪些内容,并结合案例进行分析。 一、产品知识 作为销售人员,了解所销售…...
机器学习---Adaboost算法
1. Adaboost算法介绍 Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然 后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。Adaboost算法本身…...
Java网络编程,使用UDP实现TCP(三), 基本实现四次挥手
简介 四次挥手示意图 在四次挥手过程中,第一次挥手中的Seq为本次挥手的ISN, ACK为 上一次挥手的 Seq1,即最后一次数据传输的Seq1。挥手信息由客户端首先发起。 实现步骤: 下面是TCP四次挥手的步骤: 第一次挥手&…...
“百里挑一”AI原生应用亮相,百度智能云千帆AI加速器首个Demo Day来了!
作者简介: 辭七七,目前大二,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖…...
PyTorch深度学习实战(25)——自编码器
PyTorch深度学习实战(25)——自编码器 0. 前言1. 自编码器2. 使用 PyTorch 实现自编码器小结系列链接 0. 前言 自编码器 (Autoencoder) 是一种无监督学习的神经网络模型,用于数据的特征提取和降维,它由一个编码器 (Encoder) 和一…...
靠谱的车- 华为OD统一考试(C卷)
靠谱的车- 华为OD统一考试(C卷) OD统一考试(C卷) 分值: 100分 题解: Java / Python / C 题目描述 程序员小明打了一辆出租车去上班。出于职业敏感,他注意到这辆出租车的计费表有点问题…...
Apache Flink(十一):Flink集群部署-Standalone集群部署
🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. 节点划分...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
