1、Rockchip SDK
架构图
2、RV1126_RV1109开发环境搭建
2.1、搭建过程中遇到的问题
我用的是韦东山老师的ubuntu18.04虚拟机来编译的。
解决方法:
代码语言:javascript复制sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
2.2、安装和更新软件包
代码语言:javascript复制sudo apt-get update
sudo apt-get upgrade
2.3、安装QT开发环境
代码语言:javascript复制sudo apt-get install cmake qt5-default qtcreator
2.4、安装编译rockchip sdk必要的软件
代码语言:javascript复制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编译
代码语言:javascript复制cd u-boot
make rv1126_defconfig
make menuconfig
# 保存配置到对应的文件 rv1126_defonfig
make savedefconfig
cp defconfig configs/rv1126_defconfig
./build.sh uboot
2.5.2、Kernel编译
代码语言:javascript复制# 执行以下命令前先保证处在工程根目录下
./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编译
代码语言:javascript复制# 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板端文件系统,在运行前需要执行:
代码语言:javascript复制source /etc/profile
这句话相当于让环境变量生效。这样配置完毕以后就可以编写相应的QT
程序然后在开发平台上运行了。
4.2、添加字库文件
在/usr/share/fonts
目录下添加文泉驿字库文件
调试过程中发现,如果不添加字库,则会导致QT运行后,如果带有字体显示的话,字体会无法显示出来,这是因为系统字体库缺失的情况,需要我们手动将字体库复制到文件系统内,当然也有另外一种方法,那就是将字体库与文件系统进行打包,然后在下载的时候,文件系统就自带了字体库了。
4.3、运行QT应用程序
前提是已经将qt程序拷贝到开发板的文件系统的目录下,然后在开发板端执行以下命令:
代码语言:javascript复制source /etc/profile //使能环境变量
/oem/test_qt & //你编写的QT应用程序
当然,也可以把它增加到启动脚本里去。