飞腾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.mzph.cn/bicheng/57084.shtml

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

相关文章

Docker配置网站环境

Mysql 先安装mysql 启动并后台运行:run -d 容器名称:--name 设置端口映射:-p 主机端口:容器端口 环境变量:-e 最后指定镜像名称 sudo docker run -d \--name mysql\-p 3306:3306\-e MYSQL_ROOT_PASSWORD123456\…

单细胞空间转录组RCTD去卷积分析学习和整理

RCTD(Robust Cell Type Decomposition),是一种用于将单细胞RNA测序数据中的细胞类型注释转移到空间转录组学数据上的方法。RCTD 通过整合单细胞和空间转录组学数据,能够较为精确地为空间点(spots)分配细胞类型或细胞类型的混合&am…

LabVIEW风机滚动轴承监测系统

矿井主通风机作为矿井中最重要的通风设备,一旦出现故障,不仅会影响矿井内的空气质量,还可能引发安全事故。研究表明,通风机中约30%的故障是由轴承问题引起的。因此,能够实时监控矿井主通风机轴承状态的系统&#xff0c…

CSS网页布局(重塑网页布局)

一、实现两列布局 许多网站有一些特点,如页面顶部放置一个大的导航或广告条,右侧是链接或图片,左侧放置主要内容,页面底部放置版权信息等 一般情况,此类网页布局的两列都有固定的宽度,而且从内容上很容易区…

学习java第九天 简单小项目

今天简单写了小项目 import java.math.*; import java.util.*; public class Project_array{// data 拿到外面 封装的方法 共享同一个变量// static 静态上下文只能直接访问静态的变量// 一旦加上static 代表当前的变量全局共享一份static Record[] data {new Record("…

零基础Java第八期:一维数组(1)

目录 一、 一维数组的基本概念 1.1. 什么是数组 1.2. 数组的创建及初始化 1.3. 数组的使用 二、数组是引用类型 2.1. 初始JVM的内存分布 2.2. 基本类型变量与引用类型变量 2.3. 引用变量的理解 2.4. null 三、数组的应用场景 3.1. 作为函数的参数 3.2. 作为函数的返…

你可能需要的多文档页面交互方案

前言 欢迎关注同名公众号《熊的猫》,文章会同步更新! 在日常工作中,面对不同的需求场景,你可能会遇到需要进行多文档页面间交互的实现,例如在 A 页面跳转到 B 页面进行某些操作后,A 页面需要针对该操作做出…

成本决定未来——AIGC 下半场,高成本阻碍发展,我们该怎么办?

你好,我是三桥君 你最近有没有觉得工作中用到的那些 AI 工具好像越来越便宜了呢?这可不是偶然哦。 今天,三桥君就来聊聊为啥 AIGC 的下半场成本这么重要? 你想想看,咱平时工作已经够累了,要是再加上用那些贵…

算法Day-2

27. 移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作&am…

zotero下载、安装、翻译和显示无法安装插件“%S”的解决办法

文章目录 zotero下载和安装和翻译还有插件英文翻译软件遇到的问题 zotero下载和安装和翻译还有插件 Zotero从入门到精通第一期–如何省心省力翻译科研文献,这里面主要是使用小牛翻译的过程,输入产品密匙需要加入个人的账号密码进行sign in 英文翻译软件…

动态规划17:123. 买卖股票的最佳时机 III

动态规划解题步骤: 1.确定状态表示:dp[i]是什么 2.确定状态转移方程:dp[i]等于什么 3.初始化:确保状态转移方程不越界 4.确定填表顺序:根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接:123.…

递归神经网络(RNN)简介

递归神经网络简介 在本文中,我们将介绍神经网络的一种新的变体,即递归神经网络,也称为 (RNN),当数据是连续的时,如时间序列数据和文本数据,它比简单的神经网络效果更好。 什么是递归神经网络 (RNN)? 循环神经网络 (RNN) 是一种神经网络,其中上一步的输出作为当前…

Quarto ppt模板制作与Rstudio git连接

本篇记录下当前ppt演示中比较流行的quarto document使用情况以及Rstudio与git相连接的一些实操。 1 Quarto ppt模板制作 1.1 Quarto简介(来自Kimi) Quarto 是一个由 RStudio 的母公司 Posit 团队开发的开源科学和技术出版系统,它建立在 Pan…

计算机网络——传输层服务

传输层会给段加上目标ip和目标端口号 应用层去识别报文的开始和结束

upload-labs靶场Pass-01

upload-labs靶场Pass-01 分析 查看提示,提示如下 查看源码 function checkFile() {var file document.getElementsByName(upload_file)[0].value;if (file null || file "") {alert("请选择要上传的文件!");return false;}//定义允许上传…

Java-类与对象-下篇

关于类与对象&#xff0c;内容较多&#xff0c;我们分为两篇进行讲解&#xff1a; &#x1f4da; Java-类与对象-上篇&#xff1a;————<传送门:Java-类与对象-上篇-CSDN博客> &#x1f4d5; 面向对象的概念 &#x1f4d5; 类的定义格式 &#x1f4d5; 类的使用 …

ubuntu 安装nginx

sudo apt-get update sudo apt-get install nginx sudo nginx -vsudo systemctl status nginx sudo systemctl start nginx sudo systemctl stop nginx sudo systemctl restart nginx#浏览器输入&#xff1a;http://192.168.31.181/#查看文件结构 cd /etc/nginx sudo cp nginx.…

Java 类和对象详解(下)

个人主页&#xff1a;鲤鱼王打挺-CSDN博客 目录 &#x1f497;前言&#xff1a; &#x1f4af;一.static关键字 1. 为什么要使用static 2. static 修饰成员变量&#xff1a; 3. static 修饰成员方法&#xff1a; ​编辑 4. 静态代码块 5.静态导入包 &#x1f4af;二.…

Wi-Fi安全性入门(基于ESP-IDF-v4.4)

主要参考资料&#xff1a; Wi-Fi 安全性: https://docs.espressif.com/projects/esp-idf/zh_CN/release-v4.4/esp32/api-guides/wifi-security.html 目录 1.ESP32 Wi-Fi 安全功能1.1 受保护的管理帧 (PMF)1.2 第三代 Wi-Fi 访问保护 (WPA3-Personal) 1.ESP32 Wi-Fi 安全功能 支…

linux系统之jar启动脚本

编辑linux启动脚本 执行 vi run_blog 按i 进入编辑&#xff0c;复制以下代码&#xff0c;并根据当前环境修改三个参数。以下是详细完整脚本代码&#xff1a; #!/bin/bash# 配置部分 JAR_PATH"/path/to/your/app.jar" # 替换为你的 JAR 文件的实际路径 L…