飞腾X100适配Ubuntu说明

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

​​​​​

本文分享至飞腾开发者平台《飞腾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)更新系统:

bash 复制代码
sudo apt update

sudo apt upgrade

3)联网安装kde桌面:

bash 复制代码
sudo apt install kubuntu-desktop

4)替换phytium的4.19内核:

bash 复制代码
sudo dpkg -i linux-image-phytium-4.19.deb

注意:

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

bash 复制代码
cd /boot

mkdir bak

mv vmlinux-5.4.0-xxx bak

update-grub

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

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

bash 复制代码
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"问题,可通过禁用相关服务解决:

bash 复制代码
sudo systemctl mask systemd-networkd-wait-online.service

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

bash 复制代码
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)更新系统:

bash 复制代码
apt update
apt upgrade

3)联网安装gnome桌面:

bash 复制代码
sudo apt install ubuntu-gnome-desktop ubuntu-desktop

4)替换phytium的4.19内核:

bash 复制代码
sudo dpkg -i linux-image-phytium-4.19.deb

注意:

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

bash 复制代码
cd /boot

mkdir bak

mv vmlinux-5.4.0-xxx bak

update-grub

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

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

bash 复制代码
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"问题,可通过禁用相关服务解决:

bash 复制代码
sudo systemctl mask systemd-networkd-wait-online.service

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

bash 复制代码
sudo dpkg -i phytium-x100-drivers_1.1.2_ubuntu20.04_aarch64.deb

6)其它定制修改:

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

bash 复制代码
[daemon]

# Uncomment the line below to force the login screen to use Xorg

WaylandEnable=false

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

bash 复制代码
# 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组,才能正常进入桌面。

bash 复制代码
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文件内容:

bash 复制代码
[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,可运行下列命令:

bash 复制代码
dpkg-reconfigure sddm

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

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

bash 复制代码
systemctl set-default multi-user.target

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

bash 复制代码
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,可输入下列命令:

bash 复制代码
sudo su

vi /etc/default/grub

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

no_console_suspend

update-grub    #更新grub配置

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

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

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

bash 复制代码
sudo gpasswd -a test audio
sudo reboot

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

bash 复制代码
aplay -l

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

bash 复制代码
card 0: fthda [ft-hda] ...

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

bash 复制代码
alsamixer

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

推荐阅读

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

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


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

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

商标声明

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

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

注意

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

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

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

相关推荐
Stara05116 分钟前
基于YOLOV5+Flask安全帽RTSP视频流实时目标检测
python·yolo·目标检测·flask
tjjingpan8 分钟前
在国产电脑上运行PDFSAM软件使用pdf分割合并交替混合处理pdf文档
linux·pdf
重整旗鼓~10 分钟前
2.flask中使用装饰器统一验证用户登录
后端·python·flask
苹果醋314 分钟前
Vue3响应式数据: 深入分析Ref与Reactive
java·运维·spring boot·mysql·nginx
杜小白也想的美17 分钟前
FlaskAPI-路径参数、查询参数
python·fastapi
EterNity_TiMe_19 分钟前
【论文复现】农作物病害分类(Web端实现)
前端·人工智能·python·机器学习·分类·数据挖掘
hope_wisdom29 分钟前
Linux系统编程之目录遍历
linux·linux编程·readdir·目录遍历·scandir
香橙薄荷心38 分钟前
学一学前沿开发语言之Python
人工智能·python
潜意识起点39 分钟前
Java数组:静态初始化与动态初始化详解
java·开发语言·python
KevinRay_40 分钟前
Numpy指南:解锁Python多维数组与矩阵运算(下)
python·矩阵·numpy·排序·文件读写