飞腾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 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和其他飞腾商标均为飞腾信息技术有限公司的商标。

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

注意

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

强化学习的数学原理-01基本概念

state: T h e s t a t u s o f a g e n t w i t h r e s p e c t t o t h e e n v i r o n m e n t The \quad status \quad of \quad agent \quad with \quad respect \quad to \quad the \quad environment Thestatusofagentwithrespecttotheenvironment (agent 相对于环境的…

WPF 中的 StackPanel 详解

Windows Presentation Foundation(WPF)是微软开发的一种用于创建桌面客户端应用程序的用户界面框架。WPF 提供了一套丰富的控件和布局能力,使得开发者可以轻松构建出功能强大、视觉优美的用户界面。在 WPF 的布局系统中,StackPane…

【原创】java+ssm+mysql水费管理系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

StarRocks大批量数据导入方案-使用 Routine Load 导入数据

本文详细介绍如何使用Routine Load 导入数据 一、准备工作 1.1 安装基础环境 主要是安装StarRocks和Kafka,本文直接跳过不做详细介绍~ 二、概念及原理 2.1 概念 导入作业(Load job) 导入作业会常驻运行,当导入作业的状态为 R…

【Linux】了解pthread线程库,清楚并没有线程创建接口,明白Linux并不存在真正意义的线程(附带模型图详解析)

前言 大家好吖,欢迎来到 YY 滴Liunx系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

数字化转型的成功路径:最佳实践与实施技巧深度解析

在全球化和技术革命的双重推动下,企业正面临前所未有的市场竞争和运营压力。为了适应这种变化,企业纷纷开始了数字化转型的进程,希望借助技术力量提升效率、推动创新并保持竞争优势。尽管数字化转型的趋势已不可逆,但如何真正落地…

探索 Python 中的 XML 转换利器:xml2dict

文章目录 **探索 Python 中的 XML 转换利器:xml2dict**一、背景介绍二、xml2dict 是什么?三、如何安装 xml2dict?四、基本用法五、实际应用场景六、常见问题及解决方案七、总结 探索 Python 中的 XML 转换利器:xml2dict 一、背景…

软考(网工)——局域网和城域网

文章目录 🕐局域网基础1️⃣局域网和城域网体系架构 IEEE(负责链路层)2️⃣局域网拓扑结构 🕑CSMA/CD1️⃣CSMA/CD2️⃣CSMA/CD三种监听算法3️⃣冲突检测原理 🕒二进制指数退避算法1️⃣ 二进制指数退避算法 &#x1…

在SpringBoot项目中利用Redis实现防止订单重复提交

文章目录 0. 前言1. 常见的重复提交订单的场景2. 防止订单重复提交的解决方案2.1 前端(禁用按钮)2.2 后端 3. 在SpringBoot项目中利用Redis实现防止订单重复提交3.1 引入依赖3.2 编写配置文件3.3 OrderService.java3.4 OrderController.java3.5 index.ht…

HTML快速入门--第一节--五个基本标签

一、网络编程的三大基石 1.1 url 统一资源定位符: 网址:整个互联网中可以唯一且准确的确定一个资源的位置 (url项目外) 网址:https://www.baidu.com/ https://www.baidu.com/ 协议://ip端口/项目名/页面名 协议:交通法规获取资源 ip端口 (域名&…

Java | Leetcode Java题解之第479题最大回文数乘积

题目: 题解: class Solution {public int largestPalindrome(int n) {if (n 1) {return 9;}int upper (int) Math.pow(10, n) - 1;int ans 0;for (int left upper; ans 0; --left) { // 枚举回文数的左半部分long p left;for (int x left; x >…

Redis实现全局ID生成器

全局ID生成器 为什么要用全局ID生成器 1.当我们使用数据库自增来实现id的生成时,规律过于明显,会给用户暴露很多信息 2.当我们订单量过大时无法用数据库的一张表来存放订单,如果两张表的id都是自增的话,id就会出现重复 什么是全局ID生成器 全局ID生成器,是一种在分布式系统…

LabVIEW提高开发效率技巧----用户权限控制

在LabVIEW开发中,用户权限控制是一个重要的设计模块,尤其在多用户系统中,它可以确保数据安全并控制不同用户的操作权限。为了实现用户权限控制,可以通过角色与权限管理模块来进行设计和实施。以下将从多个角度详细说明如何在LabVI…

房子,它或许是沃土

刚成家,来客时,它是客房 成家后,没小孩,它是书房 有小孩,未分房,它暂且是书房 孩子大些,它是孩子们埋下梦想种子,生根发芽的地方

基于SSM果蔬经营系统的设计

管理员账户功能包括:系统首页,个人中心,用户管理,商品信息管理,类型管理,系统管理,订单管理 前台账号功能包括:系统首页,个人中心,商品信息,广告…

微信小程序:miniprogram-ci自动打包工具使用介绍以及支持配置环境变量、jekins打包、taro、uni-app三方工具

微信小程序:miniprogram-ci自动打包工具使用介绍以及支持配置环境变量、jekins打包、taro、uni-app三方工具 背景介绍 一直都是本地电脑运行微信开发者工具打包上传。多项目中新老版本对node版本要求不一致,老是切来切去。而且同一个人开发上传需要打包…

揭秘Map与Set的键值奥秘与集合魅力,解锁高效数据魔法

文章目录 前言➰一、关联式容器1.1 关联式容器的概述1.2 关联式容器的工作原理1.3 关联式容器的核心特性 ➰二、键值对2.1 键值对的基本概念2.2 键值对在C中的实现 ➰三、树形结构的关联式容器3.1 树形结构的特点3.2 使用场景 ➰四、set的使用与定义4.1 set的基本特性4.2 set的…

centOS实用命令

一、查看进程,端口占用 netstat命令(window和linux通用,细节不同) 查看端口占用(linux) netstat -ano |grep 8080查看端口占用(window) netstat -ano |findstr 8080ps命令 可以直接使用ps aux查看所有用户的进程信息 一些参数 参数解释-p根据进程P…

【D3.js in Action 3 精译_034】4.1 D3 中的坐标轴的创建(中篇):定义横纵坐标轴的比例尺

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一部分 D3.js 基础知识 第一章 D3.js 简介(已完结) 1.1 何为 D3.js?1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践(上)1.3 数据可…

企业资产安全之数据防泄密要领

在数字化时代,数据已成为企业最宝贵的资产之一。然而,随着数据价值的增加,数据泄露的风险也随之上升。从内部员工的无意泄露到外部黑客的恶意攻击,企业数据安全面临着前所未有的挑战。SDC沙盒数据防泄密解决方案,正是为…