1、Rockchip SDK
架构图
2、RV1126_RV1109开发环境搭建
2.1、搭建过程中遇到的问题
我用的是韦东山老师的ubuntu18.04虚拟机来编译的。
解决方法:
sudo rm /var/lib/dpkg/lock-frontend sudo rm /var/lib/dpkg/lock
2.2、安装和更新软件包
sudo apt-get update sudo apt-get upgrade
2.3、安装QT开发环境
sudo apt-get install cmake qt5-default qtcreator
2.4、安装编译rockchip sdk必要的软件
sudo apt-get install repo gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make binutils build-essential gcc g++ bash patch gzip gawk bzip2 perl tar cpio python unzip rsync file bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev expect fakeroot cmake flex bison liblz4-tool libtool keychain expect-dev
安装环境成功:
2.5、编译sdk包
2.5.1、u-boot编译
cd u-boot make rv1126_defconfig make menuconfig # 保存配置到对应的文件 rv1126_defonfig make savedefconfig cp defconfig configs/rv1126_defconfig ./build.sh uboot
2.5.2、Kernel编译
# 执行以下命令前先保证处在工程根目录下 ./build.sh device/rockchip/rv1126_rv1109/BoardConfig-aybering.mk cd kernel make ARCH=arm rv1126_defconfig makeARCH=arm menuconfig# 配置内核 make ARCH=arm savedefconfig cp defconfig arch/arm/configs/rv1126_defconfig # 执行下面命令之前要保证在工程根目录下 ./build.sh kernel
2.5.3、Rootfs编译
# 1. 先 SDK 根目录查看 Board Config 对应的 rootfs 是哪个配置 ./build.sh -h rootfs source envsetup.sh rockchip_rv1126_rv1109 make menuconfig make savedefconfig # 保存到 rootfs 配置文件 ./build.sh -h rootfs # 查看 Rootfs 详细编译命令 ./build.sh rootfs # Rootfs 编译命令
2.5.4、SDK整体编译
进行整体编译时遇到相应的错误,这个是为了跟RK原厂SDK同步的代码,由于我这个是从第三方买来的,故下面这个功能需要屏蔽掉。
然后再重新进行./build.sh
整体编译,最后是成功的:
3、RV1126_RV1109系统开发
3.1、uboot开发
3.2、Kernel开发
主要是配置和修改dts
设备树文件。
RK
平台的dts
文件存放于:
ARM:arch/arm/boot/dts/ ARM64 :arch/arm64/boot/dts/rockchip
一般 dts
文件的命名规则为soc-board_name.dts
soc 指的是芯片名称,board_name 一般是根据板子丝印来命名。
公用的硬件描述放在dtsi
文件,而dts
文件则描述不同的硬件模块,并且通过include "xxx.dtsi"
将公用的硬件描述包含进来。
3.3、Buildroot开发
3.3.1、buildroot配置qt5和tslib
其它的功能都可以选配,配置完以后,在SDK
根目录执行完成编译即可:
make savedefconfig ./build.sh
2、 QTCreator
配置
(1)交叉编译工具链配置
(2)qmake
配置
(3)开发工具配置
4、文件系统端配置
4.1、添加QT启动的环境变量
修改/etc/profile
文件,在文件的末尾增加:
export QT_QPA_FB_DRM=1 export QT_ROOT=/usr/lib/qt export QT_QPA_FONTDIR=/usr/share/fonts export QT_QPA_EGLFS_PHYSICAL_WIDTH=400 export QT_QPA_EGLFS_PHYSICAL_HEIGHT=240 export QT_QPA_PLATFORM=linuxfb:rotation=90 export QT_QPA_FONTDIR=$QT_ROOT/plugins/fonts export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins export QT_QPA_GENERIC_PLUGINS="tslib:/dev/input/event1" export XDG_RUNTIME_DIR=/tmp export RUNLEVEL=3
在使用QT Creator编写了相应的QT程序以后,通过交叉编译拷贝到ARM板端文件系统,在运行前需要执行:
source /etc/profile
这句话相当于让环境变量生效。这样配置完毕以后就可以编写相应的QT
程序然后在开发平台上运行了。
4.2、添加字库文件
在/usr/share/fonts
目录下添加文泉驿字库文件
调试过程中发现,如果不添加字库,则会导致QT运行后,如果带有字体显示的话,字体会无法显示出来,这是因为系统字体库缺失的情况,需要我们手动将字体库复制到文件系统内,当然也有另外一种方法,那就是将字体库与文件系统进行打包,然后在下载的时候,文件系统就自带了字体库了。
4.3、运行QT应用程序
前提是已经将qt程序拷贝到开发板的文件系统的目录下,然后在开发板端执行以下命令:
source /etc/profile //使能环境变量 /oem/test_qt & //你编写的QT应用程序
当然,也可以把它增加到启动脚本里去。
往期精彩
如何添加APP到Buildroot里(以瑞芯微rv1126为例)
基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得
Linux MIPI DSI LCD设备驱动开发调试细节学习笔记(一)
Linux MIPI DSI驱动调试笔记-LCD时序参数配置(三)
Linux MIPI DSI驱动调试笔记-设备树DCS格式序列之配置LCD初始化代码(二)