介绍 Ubuntu 使用手册是针对 Firefly 官方发布的 Ubuntu 系统固件特性所编写,适 用于 Ubuntu Desktop 与 Minimal 系统,部分与 UI 显示相关的介绍,只针对 Desktop 系统。 Ubuntu Desktop 系统特点如下: 桌面环境采用 LXDE,Lubuntu + Firefly 定制主题,简洁美观。(Ubuntu 20.04 采用 LXQt) Xserver 使用 GPU + RGA 进行 2D 加速,运行流畅,占用 CPU 资源少。 针对嵌入式平台,精简系统服务。 提供基于 Arm Mali GPU 的 OpenGL、OpenCL 支持。 提供基于 Rockchip VPU + Mpp 的视频硬编解码支持。 适配 QT、Docker、Electron 等开发框架。 提供一系列接口,以操作板载资源设备。 系统采用 overlayfs 文件系统,支持导出 rootfs,二次打包,恢复出厂设置等 功能。 Ubuntu Minimal 系统特点如下: 没有桌面环境,占用资源少,在简化网络管理之后,只需 40M 内存。 针对嵌入式平台,精简系统服务。 适配 QT、Docker、Electron 等开发框架。 提供一系列接口,以操作板载资源设备。 系统采用 overlayfs 文件系统,支持导出 rootfs,二次打包,恢复出厂设置等 功能。 显示版本信息 ffgo 通过 Firefly 提供的 "ffgo" 命令可以方便的查看固件信息,便于开发者调试 以及定位问题。 当用户需要向 Firefly 反馈信息时,需要附上 "ffgo version" 显示的版本信 息。 root@firefly:~# ffgo Usage: ffgo : show this usage ffgo update: update ffgo ffgo version: get version ffgo cmdlist: get support cmd list ffgo [cmd]: run cmd in cmd list root@firefly:~# ffgo update update success root@firefly:~# ffgo version OS: Ubuntu 18.04.5 LTS MODEL: Firefly RK3566-ROC-PC HDMI(Linux) FIREFLY: v2.04-1-g618089a DATE: 20210316-1035 KERNEL: Linux version 4.19.172 (liaoxt@tchip16) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05), GNU ld (Linaro_Binutils-2017.05) 2.27.0.20161019) #107 SMP Mon Apr 19 09:01:32 更换设备开机和桌面 LOGO 开机 LOGO 开机 LOGO 是存放在 SDK/kernel 里面的,修改完之后重新编译 kernel。 linux-sdk/kernel/logo.bmp linux-sdk/kernel/logo_kernel.bmp 注意:"logo.bmp" 与 "logo_kernel.bmp" 应为一样的图片。 桌面 LOGO 以下为 Ubuntu 18.04 LXDE 桌面,在更换 LOGO 后重启系统: /usr/share/lubuntu/ ├── images │   └── lubuntu-ff-logo.png # 桌面左上角的小图标 └── wallpapers └── firefly-default-wallpaper.png # 桌面壁纸 Ubuntu 20.04 桌面系统直接在桌面设置更换即可。 多屏与旋转 屏幕的旋转、多个屏幕的位置摆放、拓展与复制等,均可在系统的显示设置中修 改 设置的名称一般叫做“Monitor Settings”或者“Display” 如果使用了触摸屏,多屏显示或旋转时可能会出现问题,下面介绍解决方法: 画面旋转了但触摸还是原来的方向 需要将触摸也旋转过来,首先使用"xinput"命令查看输入设备 root@firefly:~# xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ PixArt USB Optical Mouse id=7 [slave pointer (2)] ⎜ ↳ himax-touchscreen id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ adc-keys id=6 [slave keyboard (3)] ↳ rk805 pwrkey id=8 [slave keyboard (3)] ↳ fe6e0030.pwm id=9 [slave keyboard (3)] ↳ himax-touchscreen id=11 [slave keyboard (3)] 在"Virtual core pointer"中可以看到触摸屏设备是"himax-touchscreen",id 为 10 然后修改"/etc/X11/xorg.conf.d/05-touchscreen.conf"为以下内容: Section "InputClass" Identifier "ff_touchscreen" MatchProduct "himax-touchscreen" Driver "libinput" Option "CalibrationMatrix" "1 0 0 0 1 0 0 0 1" EndSection Identifier 是名称,可以随意起一个 MatchProduct 需要设置为刚才找到的触摸屏设备名称 重点是 Option "CalibrationMatrix" 正常情况下是"1 0 0 0 1 0 0 0 1" 向左旋转 90 度则应该设置为"0 -1 1 1 0 0 0 0 1" 向右旋转 90 度则应该设置为"0 1 0 -1 0 1 0 0 1" 上下颠倒(旋转 180 度)则应该设置为"-1 0 1 0 -1 1 0 0 1" 如果有多个触摸屏,在文件中添加多个 InputClass 即可 保存文件后重启生效 触摸一个屏幕但结果却反馈到了另一个屏幕 这是因为触摸输入和屏幕输出没有匹配,首先同样用"xinput"查看输入设备,假 设依然是"himax-touchscreen",id 10 再使用"xrandr"命令查看显示设备: root@firefly:~# xrandr Screen 0: minimum 320 x 200, current 2720 x 1280, maximum 8192 x 8192 HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1920x1080 60.00*+ 59.94 1920x1080i 60.00 59.94 ...... ...... 800x600 60.32 720x480 60.00 60.00 59.94 59.94 59.94 DSI-1 connected 800x1280+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm 800x1280 59.98*+ 可以看到有两个屏幕,HDMI-1 和 DSI-1,而"himax-touchscreen"就是 DSI-1, 然后进行映射,执行: xinput map-to-output 10 DSI-1 10 就是"himax-touchscreen"的 id,将它映射到 DSI-1 上 此时查看触摸是否正常,确认无误后创建一个新文件"/etc/X11/Xsession.d/90 -touchscreen-map",将映射命令写入这个文件来持久化设置 恢复出厂设置 Firefly Ubuntu 支持恢复出厂设置。 注意,此出厂设置表示恢复为设备最后一次升级固件之后的初始状态。 root@firefly:~# recovery Usage: update