Rockchip | Rockchip Xserver的获取、构建与调试

1 下载xserver

从 Rockchip github git 仓库下载源代码:

git clone https://github.com/rockchip-linux/xserver.git

1.1 rockchip-1.8分支

此分支用于 Rockchip Debian SDK,可以轻松地在 Debian 中使用它。当前的 xserver 版本与 Debian stretch 版本匹配。但是如果使用了 Debian stretch 存储库并从中使用 x 驱动程序(比如fbdev),那么它可以很好地与 Debian Jessie 一起工作。


2 性能

2.1 不使用glamor

200000 reps @ 0.0066 msec (151000.0/sec): 1x1 opaque stippled rectangle (8x8 stipple) 
40000 reps @ 0.0286 msec ( 34900.0/sec): 10x10 opaque stippled rectangle (8x8 stipple) 
720 reps @ 1.5920 msec ( 628.0/sec): 100x100 opaque stippled rectangle (8x8 stipple) 
30 reps @ 43.3108 msec ( 23.1/sec): 500x500 opaque stippled rectangle (8x8 stipple)

2.2 使用glamor

20000 reps @ 0.0634 msec ( 15800.0/sec): 1x1 tiled rectangle (4x4 tile) 
20000 reps @ 0.0590 msec ( 16900.0/sec): 10x10 tiled rectangle (4x4 tile) 
10800 reps @ 0.1326 msec ( 7540.0/sec): 100x100 tiled rectangle (4x4 tile) 
600 reps @ 1.8001 msec ( 556.0/sec): 500x500 tiled rectangle (4x4 tile)

随着点的线性增长,当使用 glamor 时,耗时并却没有线性增长。

2.3 检查是否使用glamor

cat /var/log/Xorg.0.log | grep glamor

如果显示“glamor initialized”,则表示已启用加速。

2.4 无法使用的原因

  • 内核空间 gpu 驱动程序与用户空间(libmali)不兼容。
  • 与 mesa-egl、mesa-gles 冲突。删除它们或确保 libmali 处于高优先级。
  • 错误依赖。尝试将 libepoxy 更新到1.31。

3 如何构建xserver

3.1 在PC主机上交叉编译

建议使用 Debian 构建系统来构建 xserver,否则将很难解决依赖性问题。可以参考 Debian Package Maintainer Manuel 来了解更多信息。(更新:现在支持使用 docker 构建xserver,请参见 here

  1. 安装 xserver 的所有构建依赖项。
  2. 安装 mali 库和开发文件。必须使用 Rockchip 的版本。
  3. 进入 xserver 目录。
  4. 使用 Debian 构建工具进行构建。

3.2 本地构建

apt-get build-dep xserver-xorg

4 如何调试xserver

需要为 xserver-core 安装一个调试包:xserver-xorg-core-dbg_1.18.4-1_armhf.deb。

另外,可能涉及 Mesa/GL 库,安装 libgl1-mesa-dri-dbg 和 libgl1-mesa-glx-dbg 可能有帮助。

apt-get install gdb libc6-dbg
gdb -p $(pidof X)
(inside gdb)
set logging overwrite on
set logging on
break xorg_backtrace 
continue
(X server is stopped from when gdb is attached until "continue" is typed)
(do whatever caused the problem)
bt full
set logging off
quit

在此之后,在启动 gdb 的目录中可以在 gdb.txt 文件获得 gdb 输出(这是日志命令所做的,另一个解决方案是自己复制粘贴输出)。将所有这些添加到 bug 报告中,开发人员会很感激的。如果回溯很小,您可能会错过几个调试包,见上文。

更多信息请看 here

不截获信号

默认情况下,X 服务器将截获信号,例如截获自己的崩溃信息,并在 /var/log/Xorg.0.log 中转储堆栈跟踪。但是这个堆栈跟踪是由信号处理程序本身修改的。要禁用此信号拦截,请将其添加到 /etc/X11/xorg.conf 文件:

Section "ServerFlags"
        Option "NoTrapSignals" "true"
EndSection

然后重启 X 服务器。

<think>好的,用户想了解在Debian系统上使用Rockchip GPU的情况。首先,我需要确定Rockchip GPU的常见型号,比如RK3399的Mali-T860或者RK3588的Mali-G610。接着,Debian的支持情况可能涉及开源驱动和闭源驱动,需要分别说明。 用户可能是在使用基于Rockchip处理器的单板计算机,比如Firefly或Rock Pi,想要在Debian上进行图形加速。他们可能遇到了驱动安装的问题,或者想知道如何启用GPU加速。 需要分步骤介绍安装闭源驱动的过程,比如添加仓库、安装内核头文件、驱动包,以及配置步骤。同时,要考虑不同内核版本的情况,比如使用Rockchip维护的内核还是主线内核,这会影响驱动的可用性。 可能还需要提到开源驱动Panfrost的情况,虽然性能可能不如闭源,但对某些用户来说更易用。同时,用户可能关心OpenCL支持,需要说明闭源驱动是否提供相关安装包。 另外,常见问题如黑屏、性能问题,需要给出解决建议,比如检查驱动加载、更新内核等。最后,参考链接帮助用户进一步查阅文档。需要确保回答结构清晰,步骤详细,同时提醒用户注意硬件兼容性和备份系统。</think>以下是在Debian系统上使用Rockchip GPU的配置指南: 1. 硬件支持 - 常见芯片:RK3399(Mali-T860MP4)、RK3588(Mali-G610 MP4) - 典型设备:Rock Pi 4、Firefly-RK3399、Orange Pi RK3588开发板 2. 驱动选择 ► 闭源驱动(推荐): - 由Rockchip官方维护 - 支持OpenGL ES 3.2/Vulkan 1.2 - 提供硬件视频编解码支持 ► 开源驱动(Panfrost): - 通过Mesa驱动支持 - 功能支持逐步完善 - 更适合开发测试环境 3. 闭源驱动安装步骤(以RK3399为例): ```bash # 添加Rockchip Debian仓库 echo "deb https://apt.armbian.com/apt-release jammy main" | sudo tee /etc/apt/sources.list.d/armbian.list # 安装依赖 sudo apt update && sudo apt install -y linux-headers-$(uname -r) # 安装GPU驱动包 sudo apt install mali-g610-fbdev-dkms rockchip-multimedia-config # 配置用户组 sudo usermod -aG video $(whoami) # 重启系统 sudo reboot ``` 4. 验证安装 ```bash # 检查驱动加载 lsmod | grep -i mali # 应显示mali_kbase模块 # 查看OpenGL支持 glxinfo -B | grep -Ei 'renderer|OpenGL' # Vulkan测试 vulkaninfo | grep GPU ``` 5. 性能优化配置 ```bash # 设置显存分配(/etc/environment) ALLOC=shared_4g # 根据内存选择shared_4g或cma echo "RKLAPTOP_DMC_DEBUG=0x2" | sudo tee -a /etc/environment # 启用GPU加速视频解码 sudo apt install gstreamer-rockchip ``` 6. 常见问题处理 ► 黑屏问题: - 检查U-Boot显示配置 - 尝试设置video=HDMI-A-1:1920x1080@60参数 ► 性能不足: ```bash # 检查频率调节 cat /sys/class/devfreq/ff9a0000.gpu/cur_freq # 设置性能模式 echo performance | sudo tee /sys/class/devfreq/ff9a0000.gpu/governor ``` 7. 开发环境配置 ```bash # 安装OpenCL支持 sudo apt install rockchip-opencl-icd # 验证OpenCL clinfo | grep -i rockchip ``` 注意事项: 1. 内核版本要求:建议使用5.10+内核 2. X11/Wayland支持:推荐使用Xorg配合xserver-xorg-video-armsoc驱动 3. 视频输出:部分设备需要修改dtb配置HDMI参数 参考文档: - Rockchip Linux SDK文档:https://opensource.rock-chips.com/wiki_Main_Page - Panfrost开发进度:https://docs.mesa3d.org/drivers/panfrost.html 建议使用最新Debian 12(Bookworm)系统以获得更好的兼容性,安装前请确认设备树配置正确并做好系统备份。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值