FriendlyCore (based on ubuntu-core with Qt)/zh
Contents
1 介绍
FriendlyCore,是一个没有X-windows环境,基于Ubuntu core构建的系统,使用Qt-Embedded作为图形界面的轻量级系统,兼容Ubuntu系统软件源,非常适合于企业用户用作产品的基础OS。
本系统除了保留Ubuntu Core的特性以外,还包括以下特性:
- 支持电容和电阻触摸屏 (型号:S700, X710, S70, HD702, S430, HD101, S70等友善推出的LCD屏)
- 支持WiFi连接
- 支持以太网连接
- 支持蓝牙,已预装bluez等相关软件包
- 支持音频播放
- 支持Qt5.9 EGLES和OpenGL ES1.1/2.0 (限S5P4418/S5P6818平台)
2 固件下载
你可以点击这个链接,到指定产品的下载页面下载。
3 FriendlyCore的使用
3.1 运行FriendlyCore
- 要在电视上进行操作,你需要连接USB鼠标和键盘。
- 如果您需要进行内核开发,你最好选购一个串口配件,连接了串口,则可以通过终端对板子进行操作。
- FriendlyCore默认帐户:
普通用户:
用户名: pi 密码: pi
Root用户:
用户名: root 密码: fa
默认会以 pi 用户自动登录,你可以使用 sudo npi-config 命令取消自动登录。
- 更新软件包:
$ sudo apt-get update
3.2 使用npi-config配置系统
npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下命令即可进入:
$ sudo npi-config
3.3 扩展TF卡文件系统
第一次启动FriendlyCore系统时,系统会自动扩展文件系统分区,请耐心等待,TF卡/eMMC的容量越大,需要等待的时间越长,进入系统后执行下列命令查看文件系统分区大小:
df -h
3.4 连接WiFi
FriendlyCore 使用 NetworkManager 工具来管理网络,其在命令行下对应的命令是 nmcli,要连接WiFi,相关的命令如下:
- 查看网络设备列表
$ sudo nmcli dev
注意,如果列出的设备状态是 unmanaged 的,说明网络设备不受NetworkManager管理,你需要清空 /etc/network/interfaces下的网络设置,然后重启.
- 开启WiFi
$ sudo nmcli r wifi on
- 扫描附近的 WiFi 热点
$ sudo nmcli dev wifi
- 连接到指定的 WiFi 热点
$ sudo nmcli dev wifi connect "SSID" password "PASSWORD"
请将 SSID和 PASSWORD 替换成实际的 WiFi名称和密码。
连接成功后,下次开机,WiFi 也会自动连接。
更详细的NetworkManager使用指南可参考这篇文章: Use NetworkManager to configure network settings
- 使用USB WiFi
系统已经支持市面上众多常见的USB WiFi,已测试过的USB WiFi型号如下:
序号 型号 1 RTL8188CUS/8188EU 802.11n WLAN Adapter 2 RT2070 Wireless Adapter 3 RT2870/RT3070 Wireless Adapter 4 RTL8192CU Wireless Adapter 5 小米WiFi mt7601
3.5 连接以太网
默认插上网线开机,会自动连接并通过DHCP获取IP地址,如需要配置静态IP地址,请参考 NetworkManager 的相关文档: Use NetworkManager to configure network settings。
3.6 使用蓝牙
如果你的开发板板载有蓝牙模块,可输入以下命令搜索周边的蓝牙设备:
hcitool scan
使用hciconfig命令来了解接口的状态。
3.7 播放音频
在串口终端执行以下aplay命令播放一段音频:
aplay -t raw -c 2 -f S16_LE -r 44100 /root/test.pcm
3.8 HDMI输出声音
系统默认从3.5mm耳机座输出声音,想从HDMI输出需要修改文件系统上的配置文件/etc/asound.conf如下:
pcm.!default { type hw card 1 device 0 } ctl.!default { type hw card 1 }
card 0代表3.5mm耳机孔,card 1代表HDMI音频。设置完成后需要重启系统才能生效。
3.9 连接USB摄像头模块(FA-CAM202)
FA-CAM202是一款200万像素的USB摄像头模块。
连接测试USB摄像头的方法请参考:连接DVP摄像头模块(CAM500B)
4 开发自已的Qt应用
请参考 How to build Qt application
5 以下内容仅适用于S5P4418/S5P6818平台
5.1 运行Qt示例程序
5.2 运行 Qt5.9 演示程序
Ubuntu core系统集成了Qt5.9图形库,支持OpenGL硬件加速,在命令行输出以下命令,可预览Qt5演示程序,
Qt5演示程序的界面如下图所示,你可以使用触摸屏或者鼠标来操作,Qt5支持大部分FriendlyELEC在售的LCD触摸屏:
$ sudo qt5demo
5.3 运行 Qt5-OpenGL示例
Run the following command
. setqt5env cd $QTDIR cd /examples/opengl/qopenglwidget ./qopenglwidget
更多示例可以在这里找到:
cd $QTDIR/examples/
5.4 硬解播放高清视频
FriendlyCore系统集成支持VPU加速的GStreamer 1.0多媒体开发框架, 可在命令行输入以下命令,播放1080P的演示视频:
sudo gst-player /home/pi/demo.mp4
gst-player是一个GStreamer播放器的外壳程序,上面命令等效于Gsteamer的以下命令:
sudo gst-launch-1.0 filesrc location=/home/pi/demo.mp4 ! qtdemux name=demux demux. ! queue ! faad ! audioconvert ! audioresample ! alsasink device="hw:0,DEV=1" demux. ! queue ! h264parse ! nxvideodec ! nxvideosink dst-x=0 dst-y=93 dst-w=1280 dst-h=533
5.5 连接DVP摄像头模块(CAM500B)
CAM500B是一款500万像素摄像头模块,以DVP并行信号输出,详细信息请参考Matirx-CAM500B。
Debian/Ubuntu系统集成了命令行的摄像头示例程序nanocams,登录后输入以下命令即可预览40桢然后拍照保存为指定的文件。
sudo nanocams -p 1 -n 40 -c 4 -o IMG001.jpg
更详细的命令行参数可执行命令“nanocams -h”。
如果要下载源代码,运行以下命令即可获得:
git clone https://github.com/friendlyarm/nexell_linux_platform.git
6 以下内容仅适用于H3平台
6.1 运行Qt示例程序
执行以下命令:
$ sudo /opt/QtE-Demo/run.sh
运行结果如下,这是一个开源的QtDemo:
6.2 连接DVP摄像头模块(CAM500B)
注:该功能仅支持使用Linux-3.4.y的系统固件。
CAM500B是一款500万像素摄像头模块,以DVP并行信号输出,详细信息请参考Matirx-CAM500B。
连接开发板和CAM500B,然后上电启动系统,连接网络,以root用户登录终端并编译运行mjpg-streamer:
$ cd /root/mjpg-streamer $ make $ ./start.sh
mjpg-streamer是一个开源的网络视频流服务器,在板子上成功运行mjpg-streamer后会打印下列信息:
i: Using V4L2 device.: /dev/video0 i: Desired Resolution: 1280 x 720 i: Frames Per Second.: 30 i: Format............: YUV i: JPEG Quality......: 90 o: www-folder-path...: ./www/ o: HTTP TCP port.....: 8080 o: username:password.: disabled o: commands..........: enabled
假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入 192.168.1.230:8080 就能浏览摄像头采集的画面了,效果如下:
mjpg-streamer是用libjpeg对摄像头数据进行软编码,你可以使用ffmpeg对摄像头数据进行硬编码,这样能大大降低CPU的占用率并提高编码速度:
$ ffmpeg -t 30 -f v4l2 -channel 0 -video_size 1280x720 -i /dev/video0 -pix_fmt nv12 -r 30 -b:v 64k -c:v cedrus264 test.mp4
默认会录制30秒的视频,输入q能终止录制。录制完成后会在当前目录生成一个名为test.mp4的视频文件,可将其拷贝到PC上进行播放验证。
6.3 命令行查看CPU工作温度
在串口终端执行如下命令,可以快速地获取CPU的当前温度和运行频率等信息:
$ cpu_freq
6.4 通过Rpi-Monitor查看系统状态
系统里已经集成了Rpi-Monitor,该服务允许用户在通过浏览器查看开发板系统状态。
假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入下述地址:
192.168.1.230:8888
可以进入如下页面:
用户可以非常方便地查看到系统负载、CPU的频率和温度、可用内存、SD卡容量等信息。
7 以下内容仅适用于H5平台
7.1 运行Qt示例程序
执行以下命令:
$ sudo /opt/QtE-Demo/run.sh
运行结果如下,这是一个开源的QtDemo:
8 以下内容仅适用于S905平台
8.1 运行Qt示例程序
执行以下命令:
$ sudo /opt/QtE-Demo/run.sh
运行结果如下,这是一个开源的QtDemo:
9 开机自动运行Qt示例程序
使用npi-config工具进行开启:
sudo npi-config
进入Boot Options -> Autologin -> Qt/Embedded,选择Enable然后重启即可。
10 使用触摸屏
电容屏一般无需设置即可使用,电阻屏则需要校准,校准的行为在 /usr/bin/setqt5env或者/usr/bin/setqt4env 脚本中触发的,这个脚本非常有用,它会设置Qt相关的环境变量,会在使用电阻屏时,根据条件判断是否需要运行校准程序。
如果你需要重新校准电阻触摸屏,可以删除以下文件来实现,命令如下:
rm /etc/pointercal
删除之后重新启动系统即可。
11 常见问题
- 编译Qt程序时出现无法链接到 libts, libz等库
原因是你的 arm-linux-gcc 4.9.3 编译器没有集成这些库,到产品的下载页面重新下载一次编译器,重新安装后即可解决。
12 更新日志
12.1 2017-04-18
FriendlyCore系统更新如下:
- 修改了登录欢迎界面,当用户登录时会打印系统的基本状态信息;
- 增加 npi-config 工具,npi-config是一个命令行下的系统配置工具,可以对系统进行一些初始化的配置,可配置的项目包括:用户密码、系统语言、时区、Hostname、SSH开关、自动登录选项等,在命令行执行以下 sudo npi-config 即可进入;
- 预装NetworkManager作为网络管理工具;
- 新增pi用户,并配置为自动登录,自动登录特性可以使用npi-config工具配置;
12.2 2017-03-08
1) 启用UART2
2) 增加HD101B屏幕的支持
12.3 2017-02-09
FriendlyCore系统中增加7寸电阻屏 S70B 的支持
12.4 2016-11-17
增加H43屏的支持
12.5 2016-09-02
集成了CAM500A(ov5640)摄像头的demo程序(nanocams)
12.6 2016-07-01
修复了FriendlyCore下USB Wi-Fi无法加载固件的问题