Difference between revisions of "APITestPage"

From FriendlyELEC WiKi
Jump to: navigation, search
(updated by API)
(updated by API)
Line 1: Line 1:
[[Buildroot for RK3399/zh|查看中文]]
+
===日期 2019-03-08===
 +
* '''增加Buildroot项目:'''
 +
增加 Buildroot Linux系统,基于Rockchip原厂RK3399 Linux SDK,项目开源,详情请参考:[[Buildroot for RK3399|Buildroot for RK3399]]
  
==Buildroot简介==
+
* '''Android 8.1更新如下:'''
Buildroot是Linux平台上一个构建嵌入式Linux系统的框架,由Makefile脚本和Kconfig配置文件构成,旨在简化系统制作步骤,可实现一站式生成可烧写的系统固件,最终的固件包含boot-loader、kernel和rootfs,以及rootfs中的各种库和应用程序 (例如qt, gstreamer, busybox等)。<br />
+
1) 优化了LCD和HDMI屏幕旋转的设置,支持命令行操作(命令:wm rotation 90)
<br />
+
2) 修复将音频强制输出到耳机后麦克风无法声音的问题
由 FriendlyELEC 提供的 Buildroot 项目是基于Rockchip原厂的 linux-sdk 制作, 项目使用 git 管理,与原厂的linux sdk更新保持同步;
+
<br />
+
* Rockchip原厂Buildroot项目: https://github.com/rockchip-linux/buildroot<br />
+
* Buildroot官网: https://buildroot.org<br />
+
<br />
+
Buildroot for RK3399运行界面如下:
+
<div><ul>
+
<li style="display: inline-block;">[[File:rk3399-buildroot-home.jpg|500px]]</li>
+
<li style="display: inline-block;">[[File:rk3399-buildroot-console.jpg|500px]] </li>
+
</ul></div><br />
+
<div><ul>
+
<li style="display: inline-block;">[[File:rk3399-buildroot-camera.jpg|500px]]</li>
+
<li style="display: inline-block;">[[File:rk3399-buildroot-player.jpg|500px]] </li>
+
</ul></div>
+
  
==下载体验版固件==
+
* '''FriendlyCore, FriendlyDesktop, Lubuntu更新如下:'''
访问[http://download.friendlyarm.com/nanopct4 此处的下载地址]下载:<br />
+
1) 内核版本更新到 v4.4.154
{| class="wikitable"
+
2) 增加Docker的支持
|-
+
3) 内核配置项进行了优化,启用更多特性与设备驱动
  | colspan=2 | Image Files
+
4) 修正USB WiFi无法使用的问题
|-
+
5) 修正ISP摄像头的稳定性问题
  | rk3399-sd-buildroot-linux-4.4-arm64-YYYYMMDD.img.zip
+
  | 从SD卡启动的固件
+
|-
+
  | rk3399-eflasher-buildroot-YYYYMMDD.img.zip
+
  | 用于烧写到eMMC运行
+
|}
+
解压后用 dd 或者 win32image 烧写到 SD 卡。
+
  
==获取项目源代码==
+
===日期 2018-12-19===
===安装 repo 工具===
+
* '''Android 8.1更新如下:'''
首先需要安装 repo 工具:
+
1) 更新AOSP源码版本到 Android8.1-SDK v5.00-20181109<br />
<syntaxhighlight lang="bash">
+
2) 增加HDMI分辨率与边界调节的设置界面<br />
git clone https://github.com/friendlyarm/repo
+
3) 增加音频输出设置,可设置默认输出到耳机或者HDMI<br />
cp repo/repo /usr/bin/
+
4) 增加OV13850和和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口<br />
</syntaxhighlight>
+
* '''FriendlyCore更新如下:'''
===下载项目源代码===
+
1) 增加OV13850和和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口<br />
有以下两种途径获取项目源代码,中国大陆用户建议使用方法1的途径下载:
+
2)增加ffmpeg支持,提供静态库和头文件,支持4K硬解(不支持硬编码)<br />
====方法一:使用网盘里的repo压缩包====
+
3)增加命令行mpv播放器,支持4K硬解<br />
网盘下载地址: [http://download.friendlyarm.com/{{#replace:{{#replace:{{BASEPAGENAME}}| |}}|/zh|}} 点击进入]<br />
+
* '''FriendlyDesktop更新如下:'''
文件位于网盘的以下路径:sources/linuxsdk-friendlyelec-YYYYMMDD.tar (YYYYMMDD表示打包的日期)<br />
+
1) 增加OV13850和和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口<br />
从网盘中获取的 repo 压缩包在解压之后,需要执行一下以下命令做一次解包动作:
+
2) 增加chromium-browser浏览器,支持网页1080P硬解播放, 支持WebGL<br />
<syntaxhighlight lang="bash">
+
3)增加ffmpeg支持,提供静态库和头文件,支持4K硬解(不支持硬编码)<br />
tar xvf /path/to/netdisk/sources/linuxsdk-friendlyelec-YYYYMMDD.tar
+
4) 修正音量调节Issue<br />
cd linuxsdk-friendlyelec
+
5) 将音频输出通道默认设置为HDMI (可通过/etc/pulse/default.pa修改配置)<br />
repo sync -l
+
6) 优化本地硬解播放器,与本地mp4文件关联,双击本地视频默认会启动本地硬解播放器播放(仅支持mp4文件)<br />
</syntaxhighlight>
+
7) 为NEO4自动启用 swap 分区<br />
用此方法得到的源代码版本是repo打包时的版本,如果想拉取到官方最新的版本,可以去掉 -l 参数,执行一次 repo sync, 例如:
+
8) 修正 hostapd 相关的issue<br />
<syntaxhighlight lang="bash">
+
9) 调整DPMS设置,默认关闭自动休眠<br />
cd linuxsdk-friendlyelec
+
* '''Lubuntu更新如下:'''
repo sync
+
1) 增加OV13850和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口<br />
</syntaxhighlight>
+
2) 增加chromium-browser浏览器,支持网页1080P硬解播放, 支持WebGL<br />
====方法二:从github下载====
+
3) 将音频输出通道默认设置为HDMI(可通过/etc/asound.conf修改配置)<br />
<syntaxhighlight lang="bash">
+
4) 优化本地硬解播放器,与本地mp4文件关联,双击本地视频默认会启动本地硬解播放器播放(仅支持mp4文件)<br />
mkdir linuxsdk-friendlyelec
+
5) 修正前一版本中存在的一些关于软件包报错的issue<br />
cd linuxsdk-friendlyelec
+
6) 调整DPMS设置,默认关闭自动休眠<br />
repo init -u https://github.com/friendlyarm/buildroot_manifests -b master -m rk3399_linux_release.xml --repo-url=https://github.com/rockchip-linux/repo
+
===日期 2018-11-12===
repo sync -c
+
* '''Android 8.1更新如下:'''
</syntaxhighlight>
+
1) 增加USB-C显示器的支持<br />
====同步项目到最新版本====
+
2) 增加4G网络的支持,支持模块的型号为:Quectel EC20<br />
<syntaxhighlight lang="bash">
+
3) 增加Android硬件访问库FriendlyThing,用于在Android下编程访问各种硬件资源,比如Uart, SPI, I2C, GPIO等<br />
cd linuxsdk-friendlyelec
+
4) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升<br />
repo sync -c
+
5) 集成Google Play应用商店<br />
</syntaxhighlight>
+
6) 改进摄像头的底层支持,使之能自动适应竖屏(HD702E)和横屏(HDMI)<br />
同步过程中,由于网络原因出现中断,可以使用下面脚本同步代码:
+
7) 修复Android8下接NVME SSD时分区表异常以及Android8无法启动的问题<br />
<syntaxhighlight lang="bash">
+
* '''Android 7.1更新如下:'''
#! /bin/bash
+
1) 增加4G网络的支持,支持模块的型号为:Quectel EC20<br />
repo sync -c
+
2) 增加Android硬件访问库FriendlyThing,用于在Android下编程访问各种硬件资源,比如Uart, SPI, I2C, GPIO等<br />
while [ $? -ne 0 ];
+
3) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升<br />
do 
+
4) 改进摄像头的底层支持,使之能自动适应竖屏(HD702E)和横屏(HDMI)<br />
    repo sync -c
+
5) 修复Android8下接NVME SSD时分区表异常以及Android8无法启动的问题<br />
done
+
* '''FriendlyCore和FriendlyDesktop更新如下:'''
</syntaxhighlight>
+
1) 增加OV13850摄像头的支持,提供支持ISP的gsteamer插件<br />
 
+
2) 增加WiringPi的支持,用于C语言编程访问GPIO等硬件资源<br />
==如何编译==
+
3) 增加WiringPi-Python的支持,用于Python编程访问GPIO等硬件资源<br />
===搭建编译环境===
+
4) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升<br />
在PC的Ubuntu系统下,执下以下命令安装所需的软件:
+
===日期 2018-09-21===
<syntaxhighlight lang="bash">
+
* 增加一款eDP屏的支持
sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-
+
* Linux启用了PCI-E转Sata 功能 (AHCI SATA support)
compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-
+
* Linux下的SquashFS启用了LZO/XZ/ZSTD压缩支持
tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make
+
===日期 2018-09-05===
binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget
+
* 增加新OS: Android 8.1, 主要特性如下:
libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-
+
1) 支持同时接2个CAM1320 (OV13850),可选择切换前后摄像头使用<br />
client subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo
+
2) 支持USB摄像头 (1路, 不能与CAM1320同时使用)<br />
liblz4-tool genext2fs lib32stdc++6
+
3) 支持AndroidNN GPU 加速方案,可为采用AndroidNN API开发的 AI 相关应用提供通用加速支持<br />
</syntaxhighlight>
+
4) 集成了Rockchip官方提供的Tensorflow Lite物品识别Demo: TfLiteCameraDemo (启动前须先连接CAM1320或USB摄像头)<br />
 
+
5) 集成Lightning为缺省浏览器应用 (注:Android官方缺省不提供Browser应用)<br />
===全自动方式编译===
+
6) 支持RC-100红外遥控器,支持下拉通知栏、截屏<br />
<syntaxhighlight lang="bash">
+
7) 支持Android全盘加密功能,system分区已启用Verity特性,使用adb时,可通过adb root; adb disable-verity命令禁止Verity<br />
./build.sh
+
8) 支持MTP功能,在连接Type-C后,可进入Settings -> Connected devices -> USB 选择相应功能<br />
</syntaxhighlight>
+
9) 内核版本升级到 4.4.126<br />
===部分编译===
+
10) 更新AOSP源码到版本 android-8.1.0_r41,并更新8月份安全补丁<br />
====kernel====
+
* FriendlyCore 增加Qt双摄像头示例程序:示例位于/opt/dual-camera目录,通过run.sh运行 (启动前须先连接两个USB摄像头,建议使用罗技C270或罗技C922摄像头)<br />
<syntaxhighlight lang="bash">
+
* FriendlyDesktop 默认设置HDMI分辨率为 1080P<br />
./build.sh kernel
+
</syntaxhighlight>
+
====u-boot====
+
<syntaxhighlight lang="bash">
+
./build.sh uboot
+
</syntaxhighlight>
+
====rootfs====
+
<syntaxhighlight lang="bash">
+
./build.sh rootfs
+
</syntaxhighlight>
+
===生成sdcard固件===
+
<syntaxhighlight lang="bash">
+
./build.sh sd-img
+
</syntaxhighlight>
+
或者直接将固件烧写到sd卡:
+
<syntaxhighlight lang="bash">
+
./friendlyelec/rk3399/sd-fuse_rk3399/fusing.sh /dev/sdX buildroot
+
</syntaxhighlight>
+
其中,/dev/sdX请替换为真实的SD卡设备文件名。
+
===生成emmc (eflasher) 固件===
+
<syntaxhighlight lang="bash">
+
./build.sh emmc-img
+
</syntaxhighlight>
+
 
+
===查看帮助===
+
<syntaxhighlight lang="bash">
+
# ./build.sh help
+
====USAGE: build.sh modules====
+
uboot              -build uboot
+
kernel            -build kernel
+
rootfs            -build default rootfs, currently build buildroot as default
+
buildroot          -build buildroot rootfs
+
ramboot            -build ramboot image
+
yocto              -build yocto rootfs, currently build ros as default
+
ros                -build ros rootfs
+
debian            -build debian rootfs
+
pcba              -build pcba
+
recovery          -build recovery
+
all                -build uboot, kernel, rootfs, recovery image
+
cleanall          -clean uboot, kernel, rootfs, recovery
+
firmware          -pack all the image we need to boot up system
+
updateimg          -pack update image
+
sd-img            -build sd-card image
+
emmc-img          -build sd-card image
+
save              -save images, patches, commands used to debug
+
default            -build all module
+
</syntaxhighlight>
+
重点参数说明:<br />
+
uboot              -单独编译uboot<br />
+
kernel            -单独编译kernel<br />
+
rootfs            -单独编译buildroot<br />
+
buildroot          -同上<br />
+
sdimg              -生成用于dd到sd卡的image文件,以及用于eFlasher工具使用的eMMC烧写文件<br />
+
<br />
+
 
+
==Buildroot定制与开发==
+
===目录结构===
+
<syntaxhighlight lang="bash">
+
├── linuxsdk-friendlyelec
+
│  ├── app
+
│  ├── buildroot buildroot根文件系统的编译目录
+
│  ├── build.sh -> device/rockchip/common/build.sh 全自动编译脚本
+
│  ├── device 编译相关配置文件
+
│  ├── distro debian根文件系统生成目录
+
│  ├── docs 文档
+
│  ├── envsetup.sh -> buildroot/build/envsetup.sh
+
│  ├── external
+
│  ├── friendlyelec 用于适配友善电子RK3399开发板的文件
+
│  ├── kernel 内核
+
│  ├── Makefile -> buildroot/build/Makefile
+
│  ├── mkfirmware.sh -> device/rockchip/common/mkfirmware.sh rockdev链接更新脚本
+
│  ├── prebuilts
+
│  ├── rkbin
+
│  ├── rkflash.sh -> device/rockchip/common/rkflash.sh 烧写脚本
+
│  ├── rootfs debian根文件系统编译目录
+
│  ├── tools 烧写、打包工具
+
│  └── u-boot u-boot
+
</syntaxhighlight>
+
====更改Buildroot配置====
+
* 列出当前可用的配置
+
<syntaxhighlight lang="bash">
+
cd buildroot
+
make list-defconfigs
+
</syntaxhighlight>
+
显示所下:<br />
+
rockchip_rk3399_defconfig          - Build for rockchip_rk3399<br />
+
* 使用menuconfig更改配置
+
<syntaxhighlight lang="bash">
+
make rockchip_rk3399_defconfig
+
make menuconfig
+
make savedefconfig
+
diff .defconfig configs/rockchip_rk3399_defconfig
+
cp .defconfig configs/rockchip_rk3399_defconfig
+
</syntaxhighlight>
+
* 重新编译
+
<syntaxhighlight lang="bash">
+
cd ../
+
./build.sh rootfs
+
</syntaxhighlight>
+
===预装文件到文件系统===
+
将文件放在 friendlyelec/rk3399/fs-overlay-64,然后重新编译 rootfs。
+
===修改u-boot和kernel===
+
直接修改u-boot和kernel目录下的文件即可。
+
===使用sdk里的交叉编译器===
+
<syntaxhighlight lang="bash">
+
export PATH=$PWD/buildroot/output/rockchip_rk3399/host/bin/:$PATH
+
aarch64-buildroot-linux-gnu-g++ -v
+
</syntaxhighlight>
+
显示版本如下:<br />
+
gcc 版本 6.4.0 (Buildroot 2018.02-rc3-g4f000a0797)
+
===交叉编译Qt程序===
+
<syntaxhighlight lang="bash">
+
git clone https://github.com/friendlyarm/QtE-Demo.git
+
cd QtE-Demo
+
../buildroot/output/rockchip_rk3399/host/bin/qmake QtE-Demo.pro
+
make
+
</syntaxhighlight>
+
要实现开机自动运行你的Qt程序,可将QtE-Demo拷贝到开发板上,然后修改 /etc/init.d/下的S50launcher,将/usr/local/QLauncher/QLauncher &这一行改为QtE-Demo的文件路径即可。
+

Revision as of 10:55, 8 March 2019

1 日期 2019-03-08

  • 增加Buildroot项目:

增加 Buildroot Linux系统,基于Rockchip原厂RK3399 Linux SDK,项目开源,详情请参考:Buildroot for RK3399

  • Android 8.1更新如下:

1) 优化了LCD和HDMI屏幕旋转的设置,支持命令行操作(命令:wm rotation 90) 2) 修复将音频强制输出到耳机后麦克风无法声音的问题

  • FriendlyCore, FriendlyDesktop, Lubuntu更新如下:

1) 内核版本更新到 v4.4.154 2) 增加Docker的支持 3) 内核配置项进行了优化,启用更多特性与设备驱动 4) 修正USB WiFi无法使用的问题 5) 修正ISP摄像头的稳定性问题

2 日期 2018-12-19

  • Android 8.1更新如下:

1) 更新AOSP源码版本到 Android8.1-SDK v5.00-20181109
2) 增加HDMI分辨率与边界调节的设置界面
3) 增加音频输出设置,可设置默认输出到耳机或者HDMI
4) 增加OV13850和和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口

  • FriendlyCore更新如下:

1) 增加OV13850和和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口
2)增加ffmpeg支持,提供静态库和头文件,支持4K硬解(不支持硬编码)
3)增加命令行mpv播放器,支持4K硬解

  • FriendlyDesktop更新如下:

1) 增加OV13850和和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口
2) 增加chromium-browser浏览器,支持网页1080P硬解播放, 支持WebGL
3)增加ffmpeg支持,提供静态库和头文件,支持4K硬解(不支持硬编码)
4) 修正音量调节Issue
5) 将音频输出通道默认设置为HDMI (可通过/etc/pulse/default.pa修改配置)
6) 优化本地硬解播放器,与本地mp4文件关联,双击本地视频默认会启动本地硬解播放器播放(仅支持mp4文件)
7) 为NEO4自动启用 swap 分区
8) 修正 hostapd 相关的issue
9) 调整DPMS设置,默认关闭自动休眠

  • Lubuntu更新如下:

1) 增加OV13850和宽动态OV4689摄像头支持,可任意连接到CSI1或CSI2接口
2) 增加chromium-browser浏览器,支持网页1080P硬解播放, 支持WebGL
3) 将音频输出通道默认设置为HDMI(可通过/etc/asound.conf修改配置)
4) 优化本地硬解播放器,与本地mp4文件关联,双击本地视频默认会启动本地硬解播放器播放(仅支持mp4文件)
5) 修正前一版本中存在的一些关于软件包报错的issue
6) 调整DPMS设置,默认关闭自动休眠

3 日期 2018-11-12

  • Android 8.1更新如下:

1) 增加USB-C显示器的支持
2) 增加4G网络的支持,支持模块的型号为:Quectel EC20
3) 增加Android硬件访问库FriendlyThing,用于在Android下编程访问各种硬件资源,比如Uart, SPI, I2C, GPIO等
4) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升
5) 集成Google Play应用商店
6) 改进摄像头的底层支持,使之能自动适应竖屏(HD702E)和横屏(HDMI)
7) 修复Android8下接NVME SSD时分区表异常以及Android8无法启动的问题

  • Android 7.1更新如下:

1) 增加4G网络的支持,支持模块的型号为:Quectel EC20
2) 增加Android硬件访问库FriendlyThing,用于在Android下编程访问各种硬件资源,比如Uart, SPI, I2C, GPIO等
3) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升
4) 改进摄像头的底层支持,使之能自动适应竖屏(HD702E)和横屏(HDMI)
5) 修复Android8下接NVME SSD时分区表异常以及Android8无法启动的问题

  • FriendlyCore和FriendlyDesktop更新如下:

1) 增加OV13850摄像头的支持,提供支持ISP的gsteamer插件
2) 增加WiringPi的支持,用于C语言编程访问GPIO等硬件资源
3) 增加WiringPi-Python的支持,用于Python编程访问GPIO等硬件资源
4) 优化内核配置提升PCIe性能,连接NVME SSD会有较大幅度的性能提升

4 日期 2018-09-21

  • 增加一款eDP屏的支持
  • Linux启用了PCI-E转Sata 功能 (AHCI SATA support)
  • Linux下的SquashFS启用了LZO/XZ/ZSTD压缩支持

5 日期 2018-09-05

  • 增加新OS: Android 8.1, 主要特性如下:

1) 支持同时接2个CAM1320 (OV13850),可选择切换前后摄像头使用
2) 支持USB摄像头 (1路, 不能与CAM1320同时使用)
3) 支持AndroidNN GPU 加速方案,可为采用AndroidNN API开发的 AI 相关应用提供通用加速支持
4) 集成了Rockchip官方提供的Tensorflow Lite物品识别Demo: TfLiteCameraDemo (启动前须先连接CAM1320或USB摄像头)
5) 集成Lightning为缺省浏览器应用 (注:Android官方缺省不提供Browser应用)
6) 支持RC-100红外遥控器,支持下拉通知栏、截屏
7) 支持Android全盘加密功能,system分区已启用Verity特性,使用adb时,可通过adb root; adb disable-verity命令禁止Verity
8) 支持MTP功能,在连接Type-C后,可进入Settings -> Connected devices -> USB 选择相应功能
9) 内核版本升级到 4.4.126
10) 更新AOSP源码到版本 android-8.1.0_r41,并更新8月份安全补丁

  • FriendlyCore 增加Qt双摄像头示例程序:示例位于/opt/dual-camera目录,通过run.sh运行 (启动前须先连接两个USB摄像头,建议使用罗技C270或罗技C922摄像头)
  • FriendlyDesktop 默认设置HDMI分辨率为 1080P