飞腾X100适配Ubuntu说明

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png​​​​​

本文分享至飞腾开发者平台《飞腾X100适配Ubuntu说明文档》

1 简介

  本文档介绍飞腾X100芯片图形软件栈如何适配Ubuntu系统,后续介绍主要基于Ubuntu20.04系统。

  注意:文档中提到的deb安装包,可联系飞腾提供,实际名称会根据版本有所不同。

  • linux-image-phytium-4.19.deb: 飞腾linux内核安装包(集成了X100显示驱动)
  • phytium-x100-drivers_1.1.2_ubuntu20.04_aarch64.deb:Ubuntu 20.04飞腾X100 GPU驱动安装包

2 KDE适配步骤

  飞腾X100芯片图形软件栈适配KDE桌面的Ubuntu系统步骤如下:

  1)安装原版arm64 ubuntu系统,如ubuntu arm64 server 20.04.2版,该版本默认没有图形界面。可制作安装U盘(rufus工具等),使用U盘安装。

  注: 安装系统时,硬盘分区请选择ext4文件格式,不要选择默认的LVM格式。

  2)更新系统:

sudo apt updatesudo apt upgrade

  3)联网安装kde桌面:

sudo apt install kubuntu-desktop

  4)替换phytium的4.19内核:

sudo dpkg -i linux-image-phytium-4.19.deb

  注意:
  a)为了使phytium 4.19内核为默认启动项,可将/boot下的5.4内核移走,然后更新grub。这样就只剩下4.19一个启动选项了。命令如下:

cd /bootmkdir bakmv vmlinux-5.4.0-xxx bakupdate-grub

  b)替换phytium 4.19内核后,可能出现启动时间过长问题,解决办法如下;

    i. 关闭init-cloud.service服务:

systemctl disable cloud-init-local cloud-init cloud-config cloud-finalsystemctl stop cloud-init-local cloud-init cloud-config cloud-final

    ii. 修复固态硬盘启动等待10分钟问题:修改/lib/systemd/system/systemd-random-seed.service文件内容,将其中的TimeoutSec改为3s或更短时间

    iii. 对于长时间等待“a start job is running for wait for network.. to be configued”问题,可通过禁用相关服务解决:

sudo systemctl mask systemd-networkd-wait-online.service

  5)安装X100 GPU驱动安装包:

sudo dpkg -i phytium-x100-drivers_1.1.2_ubuntu20.04_aarch64.deb

  6)重启。

3 GNOME适配步骤

  1)安装原版arm64 ubuntu系统,如ubuntu arm64 server 20.04.2版,该版本默认没有图形界面。可制作安装U盘(rufus工具等),使用U盘安装。

  注: 安装系统时,硬盘分区请选择ext4文件格式,不要选择默认的LVM格式。

  2)更新系统:

apt update
apt upgrade

  3)联网安装gnome桌面:

sudo apt install ubuntu-gnome-desktop ubuntu-desktop

  4)替换phytium的4.19内核:

sudo dpkg -i linux-image-phytium-4.19.deb

  注意:

    a)为了使phytium 4.19内核为默认启动项,可将/boot下的5.4内核移走,然后更新grub。这样就只剩下4.19一个启动选项了。命令如下:

cd /bootmkdir bakmv vmlinux-5.4.0-xxx bakupdate-grub

    b)替换phytium 4.19内核后,可能出现启动时间过长问题,解决办法如下;

     i. 关闭init-cloud.service服务:

systemctl disable cloud-init-local cloud-init cloud-config cloud-finalsystemctl stop cloud-init-local cloud-init cloud-config cloud-final

     ii. 修复固态硬盘启动等待10分钟问题:修改/lib/systemd/system/systemd-random-seed.service文件内容,将其中的TimeoutSec改为3s或更短时间

     iii. 对于长时间等待“a start job is running for wait for network.. to beconfigued”问题,可通过禁用相关服务解决:

sudo systemctl mask systemd-networkd-wait-online.service

  5)安装X100 GPU驱动安装包:

sudo dpkg -i phytium-x100-drivers_1.1.2_ubuntu20.04_aarch64.deb

  6)其它定制修改:

    a)修改gdm配置,禁用xwayland: 编辑/etc/gdm3/custom.conf:

[daemon]# Uncomment the line below to force the login screen to use XorgWaylandEnable=false

    b)修改/etc/X11/Xwrapper.config

# If you have edited this file but would like it to be automatically updated
# again, run the following command as root:
#  dpkg-reconfigure xserver-xorg-legacy
#allowed_users=console
allowed_users = anybody
needs_root_rights = yes

    c)此时,可正常进入gdm登录界面,但用户登录后,还是会回到登录界面。需要将用户加入到render和video组,才能正常进入桌面。

gpasswd -a test rendergpasswd -a test video

  7)重启。

4 常见问题

  1)使用lightdm,在登录界面输入密码后,出现failed to startsession错误,无法登录进入桌面?

  这是因为/usr/share/lightdm/lightdm.conf.d/40-kde-plasma-kf5.conf文件内容:

[SetDefaults]user-session=kde-plasma-kf5

  其中kde-plasma-kf5与/usr/share/xsessions/目录下的plasma.desktop项不一致导致。

  可将其中的kde-plasma-kf5修改为plasma,或plasma.desktop重命名为kde-plasma-kf5.desktop即可解决该问题。

  2)如何设置系统默认显示管理器?

  例如系统同时安装了sddm和lightdm时,需要默认显示管理器为sddm,可运行下列命令:

dpkg-reconfigure sddm

  3)如何设置ubuntu系统默认进入字符界面/图形界面?

  为调试问题,有时需要让Ubuntu不自动进入图形界面。此时,可输入下列命令:

systemctl set-default multi-user.target

  如果要恢复默认进入图形界面,输入:

systemctl set-default multi-user.target graphical.target

  4)常用内核启动参数配置

  UEFI启动时,选择引导盘后,进入grub菜单选项时,按“e”进入编辑界面,修改其中包含linux /boot/vmlinuz-4.19.0.ft+的行,可修改启动内核、增加多种内核启动参数,例如:

  • 设置OS使用的cpu数目为1,添加maxcpus=1
  • 进行S3睡眠时不关闭串口输出,添加no_console_suspend
  • 设置内核打印信息级别,添加loglevel=7
  • 禁止自动加载驱动,如禁用phytium_mci_pci驱动,添加
    modprobe.blacklist=phytium_mci_pci
  • 强制PCI设备使用INT中断方式,添加pci=nomsi
  • initcall_debug

  更详细的参数配置,可参考linux内核相关文档。

  为让这些配置永久生效,需要修改grub配置文件,更新grub。例如为永久增加no_console_suspend,可输入下列命令:

sudo suvi /etc/default/grub# 修改其中的GRUB_CMDLINE_LINUX_DEFAULT=””行,在引号中添加no_console_suspendupdate-grub    #更新grub配置

  5)进入KDE桌面后没有声音?

  进入KDE桌面后,没有声音,打开声音图标没有声卡设备。

  可能原因:当前用户没有权限访问声音设备,将当前用户加入audio组后,重启。

sudo gpasswd -a test audio
sudo reboot

  如果还是没有找到声音设备,可通过下列命令查看声音设备:

aplay -l

  检查是否存在声音设备,例如对于飞腾hda声音设备,会输出:

card 0: fthda [ft-hda] ...

  如果存在声音设备,可运行alsamixer配置声音设备:

alsamixer

  如果没有找到任何声音设备,则可能声音驱动出现问题,请联系飞腾进一步分析。

推荐阅读

  • 飞腾平台perf工具PMU事件集成指南
  • 基于飞腾平台的OpenCV的编译与安装

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。

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

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

相关文章

[Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器

目录 一. IP协议头格式 学习任何协议前的两个关键问题 IP 报头与有效载荷分离 分离方法 为什么需要16位总长度 如何交付 二. 网络通信 1.IP地址的划分理念 2. 子网管理 3.网络划分 CIDR(无类别域间路由) 目的IP & 当前路由器的子网掩码 …

不做邮箱投稿的奴隶,要做单位信息宣传考核计分投稿的主人

在我刚开始承担单位的信息宣传考核任务时,心中充满了激情与期待。作为一名普通员工,我深知信息宣传的重要性,它不仅关乎单位的形象,更是我们对外沟通的桥梁。然而,现实的残酷让我逐渐体会到了压力的沉重。 最初,我选择了通过邮箱进行投稿。这种方式听起来似乎是最优雅的选择,毕…

页面请求快速迁移至接口工具(apifox、postman) 进行针对性调试

文章目录 需求背景实操 需求背景 自动携带参数,仅进行少量更改 在功能模块开发前期,难免会有让后端协助造数据,对通业务流程的场景 不确定造的数据或者后端的改动是否满足自己的需求,改一次有问题又等着改了再看很浪费时间 调用接…

Redis可视化软件安装

Anther Redis Desktop Manager 软件链接: https://pan.baidu.com/s/1YxCxwoy12G_p8IR5KcPgmQ?pwd1111

CSS 设置网页的背景图片

背景 最近正好在写一个个人博客网站“小石潭记”,需要一张有水,有鱼的图片。正好玩原神遇到了类似场景,于是截图保存,添加到网站里面。以下是效果图: css 写个class,加到整个网页的body上 .bodyBg {ba…

C++ 中的友元(Friend)用法详解

什么是友元(Friend)?👭 友元 (C) | Microsoft Learn 在C中,友元(Friend)是一种机制,允许外部函数或类访问某个类的私有(private)或保护(protecte…

IDEA使用Alibaba Cloud Toolkit插件自动化部署jar包

一、下载插件 二、添加服务器主机 三、填写自己服务器配置 四、添加配置 五、配置说明 六、选择maven打包模块 七、maven打包后的jar包位置配一下 八、点击运行发现成功

重学SpringBoot3-Spring WebFlux简介

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-Spring WebFlux简介 1. 什么是 WebFlux?2. WebFlux 与 Spring MVC 的区别3. WebFlux 的用处3.1 非阻塞 I/O 操作3.2 响应式编程模型3.3 更高…

Thread类的介绍

线程是操作系统中的概念,操作系统中的内核实现了线程这种机制,同时,操作系统也提供了一些关于线程的API让程序员来创建和使用线程。 在JAVA中,Thread类就可以被视为是对操作系统中提供一些关于线程的API的的进一步的封装。 多线…

PHP(一)从入门到放弃

参考文献:https://www.php.net/manual/zh/introduction.php PHP 是什么? PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML…

从新手到高手:Spring AOP的进阶指南

目录 一、AOP简介 1.1 AOP入门案例 1.2 AOP 优点 二、核心概念 2.1 切面(Aspect) 2.2 切点(PointCut) 2.3 通知(Advice) 2.4 织入(Weaving) 三、AOP 原理 3.1 CGLIB 与 JDK动态代理对比 3.2 切面优先级 四、总结 一、AOP简介 AOP(Aspect-Oriented Programming) 面向切面编…

在各大媒体报纸上刊登自己的文章用什么投稿方法发表快?

在职场中,信息宣传是每个单位的重要工作,而每个月的考核投稿任务更是让我深感压力。作为一名普通员工,我常常面临着如何在各大媒体上顺利发表文章的问题。起初,我选择了传统的邮箱投稿方式,然而这条路却让我陷入了无尽的焦虑和挫败之中。 刚开始投稿时,我满怀激情,认真撰写每一…

[论文笔记]HERMES 3 TECHNICAL REPORT

引言 今天带来论文HERMES 3 TECHNICAL REPORT,这篇论文提出了一个强大的工具调用模型,包含了训练方案介绍。同时提出了一个函数调用标准。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 聊天模…

数据库事务

为了保证一致性 1.ACID 事务具有四个基本特性,也就是通常所说的 ACID 特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability&#x…

算法: 模拟题目练习

文章目录 模拟替换所有的问号提莫攻击Z 字形变换外观数列数青蛙 总结 模拟 替换所有的问号 按照题目的要求写代码即可~ public String modifyString(String ss) {int n ss.length();if (n 1) {return "a";}char[] s ss.toCharArray();for (int i 0; i < n; i…

使用Python和Proxy302代理IP高效采集Bing图片

目录 项目背景一、项目准备环境配置 二、爬虫设计与实现爬虫设计思路目标网站分析数据获取流程 代码实现1. 初始化爬虫类&#xff08;BingImageSpider&#xff09;2. 创建存储文件夹3. 获取图像链接4. 下载图片5. 使用Proxy302代理IP6. 主运行函数 运行截图 三、总结 项目背景 …

SpringMVC一个拦截器和文件上传下载的完整程序代码示例以及IDEA2024部署报错 找不到此 Web 模块的 out\artifacts\..问题

一、SpringMVC一个拦截器和文件上传下载的完整程序代码示例 本文章是一个 SpringMVC拦 截器和文件上传下载的完整程序代码示例&#xff0c;使用的开发工具是 IntelliJ IDEA 2024.1.6 (Ultimate Edition)&#xff0c; 开发环境是 OpenJDK-21 java version 21.0.2。Tomcatt版本为…

【C++篇】类与对象的秘密(上)

目录 引言 一、类的定义 1.1类定义的基本格式 1.2 成员命名规范 1.3 class与struct的区别 1.4 访问限定符 1.5 类的作用域 二、实例化 2.1 类的实例化 2.2 对象的大小与内存对齐 三、this 指针 3.1 this指针的基本用法 3.2 为什么需要this指针&#xff1f; 3.3 t…

基于SSM+微信小程序的房屋租赁管理系统(房屋2)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 基于SSM微信小程序的房屋租赁管理系统实现了有管理员、中介和用户。 1、管理员功能有&#xff0c;个人中心&#xff0c;用户管理&#xff0c;中介管理&#xff0c;房屋信息管理&#xff…

Java基础-IO基础

IO是指input/output&#xff0c;即输入和输出。输入和输出是以内存为中心的&#xff1a; input 从外部往内存输入数据&#xff0c;比如硬盘中的数据写入内存等。 output 从内存往外输出数据&#xff0c;比如内存数据写入硬盘等。 File File类表示一个文件或者一个目录。使用F…