飞腾X100适配Ubuntu说明

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

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 update

sudo 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 /boot

mkdir bak

mv vmlinux-5.4.0-xxx bak

update-grub

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

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

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

systemctl 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 /boot

mkdir bak

mv vmlinux-5.4.0-xxx bak

update-grub

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

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

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

systemctl 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 Xorg

WaylandEnable=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 render

gpasswd -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 su

vi /etc/default/grub

# 修改其中的GRUB_CMDLINE_LINUX_DEFAULT=””行,在引号中添加

no_console_suspend

update-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.coloradmin.cn/o/2209832.html

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

相关文章

实践体验密集小目标检测,以小麦麦穗颗粒为基准,基于嵌入式端超轻量级模型LeYOLO全系列【n/s/m/l】参数模型开发构建智能精准麦穗颗粒检测计数系统

对于常规的目标检测任务来说,诸如:COCO、VOC这类基础的数据场景,涌现出来了一些列性能初衷的检测模型,YOLO系列就是其中的佼佼者,不断地刷榜取得了越来越好的效果,不过这些评测指标是基于COCO、VOC这类公开…

基于Python+sqlite3实现(Web)图书管理系统

项目名称:LibraryManagementSystem 一、系统目标 使用了Python作为语言,以django为后台,sqlite3作为数据库,UI基于bootstrap的图书管理系统,模拟图书管理的真实场景,考虑客观需求,界面简洁、操作方便&…

解决Kali直接使用root用户密码ssh远程登录不上问题

一、问题描述 当我们直接使用root用户和密码ssh远程登录时(ssh rootKali主机的IP地址)直接提示“SSH服务器拒绝了密码,请再试一次”或者“Permission denied, please try again.(权限被拒绝,请重试)”信息&…

腾讯云视立方Electron 相关问题

安装相关 trtc-electron-sdk 是否兼容官方 Electron v12.0.1 版本? 兼容的,trtc-electron-sdk 没有特别依赖 elecron 自身的 SDK,所以没有相关的版本依赖。 Electron 下载慢甚至卡住不动? 当开始下载tmp-3320-1-SHASUMS256.txt-6.1.9文件…

考研C语言程序设计_语法相关习题(持续更新)

目录 一、语法题strlen转义字符内置数据类型字符串结束标志局部变量和全局变量名字冲突 局部优先switch语句中的关键字数组初始化是否正确注意define不是关键字C语言中不能用连等判断switch( )的括号里可以是什么类型? 二、程序阅读题有关static有关continue说明代码的功能for…

Postgresql JSON操作符

postgresql json数据 参考文章: JSON数据操作 操作符 1、-> 表示获取一个JSON数组元素,支持下标值(下标从0开始)、Key获取。 2、->> 表示获取一个JSON对象字符串。 3、#> 表示获取指定路径的一个JSON对象。 4、#>>表示获取指定路径…

脉冲目标检测网络模型SpikeYOLO——基于整值训练和脉冲驱动推理的高性能节能目标检测神经网络

最近看到目标检测领域又出新作,ECCV2024 满分Oral论文——《Integer-Valued Training and Spike-Driven Inference Spiking Neural Network for High-performance and Energy-efficient Object Detection》论文地址在这里,如下所示: 感兴趣的…

浪潮信息领航边缘计算,推动AI与各行业深度融合

在9月20日于安徽盛大召开的浪潮信息边缘计算合作伙伴大会上,浪潮信息指出,未来的计算领域将全面融入AI技术,特别是在企业边缘侧,智能应用特别是生成式人工智能应用正在迅速普及,这一趋势正引领边缘计算向边缘智算的方向…

R语言机器学习算法实战系列(三)lightGBM算法(Light Gradient Boosting Machine)

文章目录 介绍原理:应用方向:教程下载数据加载R包导入数据数据预处理数据描述数据切割设置数据对象调节参数训练模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性模型SHAP值解释保存模型总结系统信息介绍 LightGBM(Light Gradient B…

QEMU与KVM架构

完整架构图,来自QEMU官网 QEMU与KVM架构总体上分为3部分。 VMX root模式的应用层(左上) VMX root模式的内核层(左下) 虚拟机的运行(右上) VMX root相对于VMX non-root模式,CPU引入了…

基于Arduino的自动浇灌系统

基于Arduino的自动浇灌系统 一、项目说明二、项目材料三、电路设计四、怎样工作五、怎样设置 一、项目说明 嘿,伙计们,在这篇教程中,我将向你们展示如何使用Arduino制作一个植物浇水系统,以一种简单的方式帮助你始终保持植物的水…

【MySQL】mysql导出数据WPS科学计数法解决方法

导出的长串数字 id 会导致科学计数法,修改 WPS 单元格格式可以解决 数字太长还是有问题,最后有个数字会变成 0 可以 直接用 python脚本转换一下 vim convert_txt_xlsx.py #!/usr/bin/env python3# 使用方法# 安装库 # pip3 install pandas openpyxl…

见微知著:OpenEuler系统启动流程

OpenEuler是一个开源的Linux发行版,它的启动流程涉及到多个阶段,包括固件初始化、引导加载程序、内核启动、初始化系统和服务管理器等。下面将详细介绍OpenEuler的启动流程。 一、启动流程 1. 固件初始化(BIOS/UEFI) 启动过程首…

跟踪用户状态,http协议无状态 Cookie HttpSession,Session和Cookie的关系

1.概念分析 跟踪用户状态指的是web应用能够分辨请求属于哪个用户,进而记录用户的状态,从而为用户提供连续的针对性的服务。比如有多个客户在同一个购物网站上购物,每一个用户都会有一个虚拟的购物车。当某个客户发送请求将商品添加到购物车时…

部署 Docker harbor (httphttps)及使用

部署 Docker harbor (http/https)及使用 官网下载docker harbor 和docker-compose 下载最新版本即可 https://github.com/goharbor/harbor https://github.com/docker/compose/releases 一.Docker harbor 配置http使用 1.解压harbor.tar # 解压至指定目录 [rootdocker ~]…

线程池 jvm web

线程池 分类 newCachedThreadPool 可进行缓存重复利用的线程池 newFxiedThreadPool 可重复利用的固定数目的线程池 newSingelThreadPool 单个work线程 newSingelThreadScheduledExecutor 单线程定时执行程序 newWorkStealingPool 带并行级别的线程池 核心参数 …

【OpenCV】(二)—— 图片读取展示和保存

上一小节中我们成功安装了opencv,我们这次学习使用opencv最基础的功能,读取和展示图片,首先准备一张用于实验的样例图片【cat.jpg】如下: 然后就是创建一个python项目并导入相关依赖 import cv2读取图片 读取图片使用imread方法…

Flythings学习(二)控件相关

文章目录 1 前言2 通用属性2.1 控件ID值2.2 控件位置2.3 背景色2.4 背景图2.5 显示与隐藏2.6 控件状态2.7 蜂鸣器控制 3 文本类TextView4 按键类 Button4.1 系统按键4.2 处理按钮长按事件4.3 处理按键触摸事件 5 复选框CheckBox6 单选组 RadioGroup7 进度条,滑块7.1…

vscode如何通过ssh远程链接其它电脑

客户端(本机)linux系统中vscode通过ssh插件远程连接服务器,其操作步骤如下: 配置服务器的配置文件 首先在~/.ssh/config文件中输入服务器的配置信息,如果没有这个文件就新建一个,其内容如下: …

线性系统性能分析方法2——根轨迹法

反馈控制系统的性质取决于闭环传递函数,只要求解出闭环系统的特征根,便能得到系统响应的变化规律。但对于3阶以上的系统求根比较困难。如果系统中有一个可变参数时,求根就更困难了。 1948年,伊凡思提出了一种确定系统闭环特征根的…