Qt5.14.2移植到SOM-RK3399开发板
Qt5.14.2移植到SOM-RK3399开发板
- 1. 主机开发环境
- 2. 安装aarch64-linux-gnu-g++交叉编译工具
- 3. 移植Qt
- 3.1 修改Qt源码中的Makefile说明文档目录
- 4. 编译Qt5.14.2源码
- 4.1 创建编译Qt5.14.2源码的影子构建目录
- 4.2 创建并编辑自动配置脚本
- 4.3 执行make编译qt源码
- 4.3 执行make install安装qt
- 5. 确保网络的连通
- 5.1 配置虚拟机网络配置
- 5.2 配置Ubuntu18.04的以太网口的IP
- 5.3 打开Windows系统网络连接配置以太网口的IP
- 5.4 配置SOM-RK3399板子的IP
- 6. SOM-RK3399 NFS网络文件系统环境搭建
- 6.1 在UBuntu18.04上搭建NFS服务器
- 6.1.1 安装NFS Server
- 6.1.2 配置NFS Server,它的配置文件是/etc/exports
- 6.1.3 编辑/etc/exports文件
- 6.1.4 重启NFS服务(每次修改/etc/exports文件后都需要重新启动 NFS 服务)
- 6.1.5 在UBuntu18.04本机上测试搭建的NFS服务器是否成功
- 6.1.6 卸载挂载的共享目录
- 6.2 在SOM-RK3399开发板上挂载UBuntu18.04上的NFS服务器的共享目录
- 6.2.1 在SOM-RK3399开发板的FriendlyELEC系统上安装NFS服务
- 6.2.2 重启NFS服务
- 6.2.3 测试和Ubuntu18.0.4的网络是否连通
- 6.2.4 将Ubuntu18.0.4上的共享目录som_rk3399_nfs挂载到开发板上
- 6.2.4 编辑SOM-RK3399的/etc/fstab文件,使开机自动挂载NFS服务器共享目录
- 7. 在SOM-RK3399开发板上安装sshd
- 7.1 重启sshd服务
- 7.2 打开MobaXterm连接开发板
- 8. 配置Ubuntu18.04上的Qt开发环境
- 8.1 配置编译器
- 8.2 配置Qt的版本
- 8.3 配置build套件
- 9. 配置SOM-RK3399板子上的开发环境
- 9.1 打包交叉编译的Qt5.14.2
- 9.2 将qt5.14.2_install.tar.gz 拷贝到共享目录
- 9.3 将qt5.14.2_install.tar.gz解压到SOM-RK339开发板上的/opt目录
- 9.4 编辑/etc/profile,配置QT环境变量
- 10. 测试
- 10.1 在Ubuntu18.0.4打开QCreator创建一个测试工程
- 10.2 在主界面添加一个按钮并实现一个槽用来更改按钮的文本
- 10.3 在Ubuntu18.04上只编译Qt测试工程
- 10.4 将编译成功的可执行文件test_som_rk3399拷贝到共享目录
- 10.5 在SOM-RK3399开发板上执行./test_som_rk3399
参考这篇文章
1. 主机开发环境
- 虚拟机Ubuntu18.04
- Qt源码Qt5.14.2以及Qt安装包
- 交叉编译工具官方下载地址
2. 安装aarch64-linux-gnu-g++交叉编译工具
安装交叉编译工具,我选择通过命令行安装,没有选择从官方地址下载。
- 更新软件源和升级更新软件
sudo apt-get update
sudo apt-get upgrade
- 查看有哪些可选的交叉编译工具可供安装
$ sudo apt-cache search aarch64
binutils-aarch64-linux-gnu - GNU binary utilities, for aarch64-linux-gnu target
binutils-aarch64-linux-gnu-dbg - GNU binary utilities, for aarch64-linux-gnu target (debug symbols)
cpp-7-aarch64-linux-gnu - GNU C preprocessor
cpp-aarch64-linux-gnu - GNU C preprocessor (cpp) for the arm64 architecture
g++-aarch64-linux-gnu - GNU C++ compiler for the arm64 architecture
gcc-7-aarch64-linux-gnu-base - GCC, the GNU Compiler Collection (base package)
gcc-aarch64-linux-gnu - GNU C compiler for the arm64 architecture
qemu-system-arm - QEMU full system emulation binaries (arm)
cpp-5-aarch64-linux-gnu - GNU C preprocessor
cpp-6-aarch64-linux-gnu - GNU C preprocessor
cpp-8-aarch64-linux-gnu - GNU C preprocessor
g++-5-aarch64-linux-gnu - GNU C++ compiler
g++-6-aarch64-linux-gnu - GNU C++ compiler
gcc-5-aarch64-linux-gnu - GNU C compiler
gcc-5-aarch64-linux-gnu-base - GCC, the GNU Compiler Collection (base package)
gcc-5-plugin-dev-aarch64-linux-gnu - Files for GNU GCC plugin development.
gcc-6-aarch64-linux-gnu - GNU C compiler
gcc-6-aarch64-linux-gnu-base - GCC, the GNU Compiler Collection (base package)
gcc-6-plugin-dev-aarch64-linux-gnu - Files for GNU GCC plugin development.
gcc-7-plugin-dev-aarch64-linux-gnu - Files for GNU GCC plugin development.
gcc-8-aarch64-linux-gnu-base - GCC, the GNU Compiler Collection (base package)
gcc-8-plugin-dev-aarch64-linux-gnu - Files for GNU GCC plugin development.
gccgo-5-aarch64-linux-gnu - GNU Go compiler
gccgo-6-aarch64-linux-gnu - GNU Go compiler
gccgo-7-aarch64-linux-gnu - GNU Go compiler
gccgo-8-aarch64-linux-gnu - GNU Go compiler
gccgo-aarch64-linux-gnu - Go compiler (based on GCC) for the arm64 architecture
gdc-5-aarch64-linux-gnu - GNU D compiler (version 2)
gdc-6-aarch64-linux-gnu - GNU D compiler (version 2)
gdc-aarch64-linux-gnu - GNU D compiler (based on GCC) for the arm64 architecture
gfortran-5-aarch64-linux-gnu - GNU Fortran compiler
gfortran-6-aarch64-linux-gnu - GNU Fortran compiler
gfortran-7-aarch64-linux-gnu - GNU Fortran compiler
gfortran-8-aarch64-linux-gnu - GNU Fortran compiler
gfortran-aarch64-linux-gnu - GNU Fortran 95 compiler for the arm64 architecture
gnat-5-aarch64-linux-gnu - GNU Ada compiler
gnat-5-sjlj-aarch64-linux-gnu - GNU Ada compiler (setjump/longjump runtime library)
gnat-6-aarch64-linux-gnu - GNU Ada compiler
gnat-6-sjlj-aarch64-linux-gnu - GNU Ada compiler (setjump/longjump runtime library)
gnat-7-aarch64-linux-gnu - GNU Ada compiler
gnat-7-sjlj-aarch64-linux-gnu - GNU Ada compiler (setjump/longjump runtime library)
gnat-8-aarch64-linux-gnu - GNU Ada compiler
gnat-8-sjlj-aarch64-linux-gnu - GNU Ada compiler (setjump/longjump runtime library)
gobjc++-5-aarch64-linux-gnu - GNU Objective-C++ compiler
gobjc++-6-aarch64-linux-gnu - GNU Objective-C++ compiler
gobjc++-7-aarch64-linux-gnu - GNU Objective-C++ compiler
gobjc++-8-aarch64-linux-gnu - GNU Objective-C++ compiler
gobjc++-aarch64-linux-gnu - GNU Objective-C++ compiler for the arm64 architecture
gobjc-5-aarch64-linux-gnu - GNU Objective-C compiler
gobjc-6-aarch64-linux-gnu - GNU Objective-C compiler
gobjc-7-aarch64-linux-gnu - GNU Objective-C compiler
gobjc-8-aarch64-linux-gnu - GNU Objective-C compiler
gobjc-aarch64-linux-gnu - GNU Objective-C compiler for the arm64 architecture
pkg-config-aarch64-linux-gnu - manage compile and link flags for libraries for arm64 architecture
qemu-efi - transitional dummy package
qemu-efi-aarch64 - UEFI firmware for 64-bit ARM virtual machines
g++-7-aarch64-linux-gnu - GNU C++ compiler (cross compiler for arm64 architecture)
gcc-7-aarch64-linux-gnu - GNU C compiler (cross compiler for arm64 architecture)
g++-8-aarch64-linux-gnu - GNU C++ compiler (cross compiler for arm64 architecture)
gcc-8-aarch64-linux-gnu - GNU C compiler (cross compiler for arm64 architecture)
gdc-7-aarch64-linux-gnu - GNU D compiler (version 2) (cross compiler for arm64 architecture)
gdc-8-aarch64-linux-gnu - GNU D compiler (version 2) (cross compiler for arm64 architecture)
- 安装g+±aarch64-linux-gnu
sudo apt-get install g++-aarch64-linux-gnu
- 查看aarch64-linux-gnu-g++安装到了哪里
$ which aarch64-linux-gnu-g++
/usr/bin/aarch64-linux-gnu-g++
- 查看aarch64-linux-gnu-g++安装的版本
$ aarch64-linux-gnu-g++ -v
Using built-in specs.
COLLECT_GCC=aarch64-linux-gnu-g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/aarch64-linux-gnu/7/lto-wrapper
Target: aarch64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 7.5.0-3ubuntu1~18.04' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libquadmath --disable-libquadmath-support --enable-plugin --enable-default-pie --with-system-zlib --enable-multiarch --enable-fix-cortex-a53-843419 --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=aarch64-linux-gnu --program-prefix=aarch64-linux-gnu- --includedir=/usr/aarch64-linux-gnu/include
Thread model: posix
gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04)
3. 移植Qt
3.1 修改Qt源码中的Makefile说明文档目录
- 进入mkspecs目录
$ cd Code/qtsourcecode/qt-everywhere-src-5.14.2/qtbase/mkspecs/
- 新建目录linux-arm-som-rk3399
$ mkdir linux-arm-som-rk3399
- 将linux-aarch64-gnu-g++目录中的两个文件qmake.conf和qplatformdefs.h拷贝到linux-arm-som-rk3399目录中
$ cp linux-aarch64-gnu-g++/* linux-arm-som-rk3399/
- 修改linux-arm-som-rk3399/qmake.conf文件
qmake.conf文件的原始文件内容:
#
# qmake configuration for building with aarch64-linux-gnu-g++
#MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf
QMAKE_CC = aarch64-linux-gnu-gcc
QMAKE_CXX = aarch64-linux-gnu-g++
QMAKE_LINK = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++# modifications to linux.conf
QMAKE_AR = aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy
QMAKE_NM = aarch64-linux-gnu-nm -P
QMAKE_STRIP = aarch64-linux-gnu-strip
load(qt_config)
qmake.conf修改后的文件内容:
#
# qmake configuration for building with aarch64-linux-gnu-g++
#MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublibQT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE += -O2 -march=armv8-a -lts
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv8-a -ltsinclude(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)# modifications to g++.conf
QMAKE_CC = aarch64-linux-gnu-gcc
QMAKE_CXX = aarch64-linux-gnu-g++
QMAKE_LINK = aarch64-linux-gnu-g++
QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++# modifications to linux.conf
QMAKE_AR = aarch64-linux-gnu-ar cqs
QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy
QMAKE_NM = aarch64-linux-gnu-nm -P
QMAKE_STRIP = aarch64-linux-gnu-strip
load(qt_config)
4. 编译Qt5.14.2源码
4.1 创建编译Qt5.14.2源码的影子构建目录
创建影子构建目录的目的是:避免直接在Qt源码目录的根目录直接运行configure命令行工具污染源码
- 在Qt源码目录的上一级目录创建目录shadow_build_qt_5.14.2
$ mkdir shadow_build_qt_5.14.2
4.2 创建并编辑自动配置脚本
- 进入shadow_build_qt_5.14.2目录,然后创建一个自动配置脚本auto.sh
$ cd shadow_build_qt_5.14.2
$ touch auto.sh
- 编辑auto.sh,内容如下:
#!/bin/bash../qt-everywhere-src-5.14.2/configure \-xplatform linux-arm-som-rk3399 \-prefix /home/bruce/Code/qtsourcecode/shadow_build_qt_5.14.2/sysbase/qt5.14.2_install \-release -opensource -confirm-license \-make libs \-pch \-qt-libjpeg \-qt-libpng \-qt-zlib \-no-opengl \-no-sse2 \-no-openssl \-no-cups \-no-glib \-no-dbus \-no-xcb \-no-separate-debug-info \-c++std c++17 \
- 给auto.sh添加可执行权限
$ sudo chmod a+x auto.sh
- 执行auto.sh配置Qt源码
$ ./auto.sh
4.3 执行make编译qt源码
$ make -j4
4.3 执行make install安装qt
执行make install后安装到了shadow_build_qt_5.14.2/sysbase/qt5.14.2_install目录
$ cd ~/Code/qtsourcecode/shadow_build_qt_5.14.2/sysbase/qt5.14.2_install
$ ls
bin doc include lib mkspecs plugins qml
5. 确保网络的连通
5.1 配置虚拟机网络配置
我使用笔记本开发的,在笔记本上使用VirtualBox虚拟了Ubuntu18.0.4系统,通过无限网路可以连接到因特网
为了使Ubuntu也能上网,网络配置只能是使用如下图所示:(其他连接方式不能上网)
现在Ubuntu中只有一个无限网卡虚拟的网口,为了和SOM-RK3399开发板通过网线连通,则需要再配置一个网卡2,配置的连接方式如下:
5.2 配置Ubuntu18.04的以太网口的IP
5.3 打开Windows系统网络连接配置以太网口的IP
将其配置为如下IP,保证和SOM-RK3399板子在同一网段
5.4 配置SOM-RK3399板子的IP
- 右键单击无线网络信号标志,选择"Edit Connections…"菜单
- 选择以太网口eth0
- 配置以太网口eth0的IP地址(只需要配置Address,Netmask是自动设置的)
- 命令行查看以太网口eth0的IP
6. SOM-RK3399 NFS网络文件系统环境搭建
参考了这篇文章
6.1 在UBuntu18.04上搭建NFS服务器
6.1.1 安装NFS Server
sudo apt-get install nfs-kernel-server
6.1.2 配置NFS Server,它的配置文件是/etc/exports
创建NFS共享目录som_rk3399_nfs
$ mkdir /home/bruce/Code/Projects/som_rk3399_nfs
$ cd /home/bruce/Code/Projects
设置共享文件夹的权限
$ sudo chmod -R 777 som_rk3399_nfs
设置共享文件夹的所有者
sudo chown bruce:bruce som_rk3399_nfs/ -R
6.1.3 编辑/etc/exports文件
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/home/bruce/Code/Projects/som_rk3399_nfs *(rw,sync,no_root_squash)
- /home/bruce/Code/Projects/som_rk3399_nfs: 就是要共享的目录
- "*":代表允许所有的网络段访问
- rw:表示的是可读可写的访问权限
- sync: 表示的是资料同步写入内存和硬盘
- no_root_squash:是Ubuntu nfs 客户端共享目录使用者的权限,如果客户端使用的是root 用户,那么对于该共享目录而言,该客户端就具有root 权限
6.1.4 重启NFS服务(每次修改/etc/exports文件后都需要重新启动 NFS 服务)
sudo /etc/init.d/nfs-kernel-server restart
6.1.5 在UBuntu18.04本机上测试搭建的NFS服务器是否成功
将共享目录挂载到UBuntu18.04本机上的/mnt目录,随便在som_rk3399_nfs目录中或者/mnt中创建一个文件,看som_rk3399_nfs目录和/mnt中是否都存在.
192.168.1.10是Ubuntu主机的IP地址。或者使用localhost(127.0.0.1)测试
$ sudo mount -t nfs 192.168.1.100:~/Code/Projects/som_rk3399_nfs /mnt -o nolock #(注意:这种方式是不行的,必须使用绝对路径使用~挂载会失败,输出如下的内容:)mount.nfs: access denied by server while mounting localhost:~/Code/Projects/som_rk3399_nfs
$ sudo mount -t nfs localhost:/home/bruce/Code/Projects/som_rk3399_nfs /mnt -o nolock
6.1.6 卸载挂载的共享目录
$ sudo umount /mnt
6.2 在SOM-RK3399开发板上挂载UBuntu18.04上的NFS服务器的共享目录
在SOM-RK3399开发板上,我烧写的是FriendlyELEC系统。
6.2.1 在SOM-RK3399开发板的FriendlyELEC系统上安装NFS服务
$ sudo apt-get update
$ sudo apt-get install nfs-kernel-server
6.2.2 重启NFS服务
pi@SOM-RK3399v2:~$ sudo /etc/init.d/nfs-kernel-server restart
[ ok ] Restarting nfs-kernel-server (via systemctl): nfs-kernel-server.service.
6.2.3 测试和Ubuntu18.0.4的网络是否连通
Ubuntu18.0.4的主机的IP是192.168.1.100,SOM-RK3399板子的IP地址是192.168.1.10,它们之间是通过一根网线连接的。
在SOM-RK339开发板上ping Ubuntu18.04(可以ping通,如下图所示)
6.2.4 将Ubuntu18.0.4上的共享目录som_rk3399_nfs挂载到开发板上
$ mkdir /home/pi/mountHost
$ sudo mount -t nfs 192.168.1.100:/home/bruce/Code/Projects/som_rk3399_nfs /home/pi/mountHost -o nolock
6.2.4 编辑SOM-RK3399的/etc/fstab文件,使开机自动挂载NFS服务器共享目录
默认FriendlyELEC的/etc/fstab文件是空的,现在添加如下内容,使开启SOM-RK3399开发板时自动挂载共享目录
pi@SOM-RK3399v2:~$ cat /etc/fstab
192.168.1.100:/home/bruce/Code/Projects/som_rk3399_nfs /home/pi/mountHost nfs defaults 0 0pi@SOM-RK3399v2:~$
7. 在SOM-RK3399开发板上安装sshd
pi@SOM-RK3399v2:~$ sudo apt-get install ssh
7.1 重启sshd服务
pi@SOM-RK3399v2:~$ service sshd start
或
/etc/rc.d/init.d/sshd restart
7.2 打开MobaXterm连接开发板
8. 配置Ubuntu18.04上的Qt开发环境
打开Qt Creator选择Tools–>Options
8.1 配置编译器
- 配置g++编译器
- 配置gcc编译器
8.2 配置Qt的版本
选择的是自己编译Qt源码安装目录下的qmake
8.3 配置build套件
9. 配置SOM-RK3399板子上的开发环境
9.1 打包交叉编译的Qt5.14.2
bruce@bruce:~/Code/qtsourcecode/shadow_build_qt_5.14.2/sysbase$ ls qt5.14.2_install
bin doc include lib mkspecs plugins qml
bruce@bruce:~/Code/qtsourcecode/shadow_build_qt_5.14.2/sysbase$ tar -cvzf qt5.14.2_install.tar.gz qt5.14.2_install/
9.2 将qt5.14.2_install.tar.gz 拷贝到共享目录
$ cp qt5.14.2_install.tar.gz ~/Code/Projects/som_rk3399_nfs/
9.3 将qt5.14.2_install.tar.gz解压到SOM-RK339开发板上的/opt目录
pi@SOM-RK3399v2:~/mountHost$ sudo tar -xvf qt5.14.2_install.tar.gz -C /optpi@SOM-RK3399v2:~/mountHost$ ls /opt/qt5.14.2_install/
bin doc include lib mkspecs plugins qml
9.4 编辑/etc/profile,配置QT环境变量
将原有内容注释掉,修改为如下内容
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).if [ "${PS1-}" ]; thenif [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then# The file bash.bashrc already sets the default PS1.# PS1='\h:\w\$ 'if [ -f /etc/bash.bashrc ]; then. /etc/bash.bashrcfielseif [ "`id -u`" -eq 0 ]; thenPS1='# 'elsePS1='$ 'fifi
fiif [ -d /etc/profile.d ]; thenfor i in /etc/profile.d/*.sh; doif [ -r $i ]; then. $ifidoneunset i
fi
#QTDIR=/usr/local/Trolltech/Qt-5.10.0-rk64one
#QT_QPA_PLATFORM=xcb
#QT_QPA_EGLFS_HIDECURSOR=0
#QTWEBENGINE_DISABLE_SANDBOX=1
#QT_QPA_FONTDIR=/usr/share/fonts/truetype/ubuntu-font-family
#QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/Trolltech/Qt-5.10.0-rk64one/plugins/export QTDIR=/opt/qt5.14.2_install
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins
export QT_QPA_PLATFORM=linuxfb
export QT_QPA_FONTDIR=/usr/share/fonts/truetype/ubuntu-font-family
10. 测试
10.1 在Ubuntu18.0.4打开QCreator创建一个测试工程
10.2 在主界面添加一个按钮并实现一个槽用来更改按钮的文本
按钮相应clicked()的槽
void MainWindow::on_testButton_clicked()
{auto curtext = this->ui->testButton->text();if(curtext == tr("点击---"))this->ui->testButton->setText(tr("点击+++"));elsethis->ui->testButton->setText(tr("点击---"));
}
10.3 在Ubuntu18.04上只编译Qt测试工程
执行qmake
编译代码
10.4 将编译成功的可执行文件test_som_rk3399拷贝到共享目录
bruce@bruce:~/Code/Projects/som_rk3399_nfs$ ls
test_som_rk3399
10.5 在SOM-RK3399开发板上执行./test_som_rk3399
[下一页 Qt5.14.2移植到SOM-RK3399开发板上的问题解决办法]
Qt5.14.2移植到SOM-RK3399开发板相关推荐
- RK3399应用开发 | 移植libdrm到rk3399开发板(2.4.113)
一.下载源码 下载地址:https://dri.freedesktop.org/libdrm/. 这里我下载最新的2.4.113版本: wget https://dri.freedesktop.org ...
- Qt5.14.2移植到SOM-RK3399开发板上的问题解决办法
Qt5.14.2移植到SOM-RK3399开发板上的问题解决办法 1. 概述 2. 配置Qt5.9.5 2.1 mkspec配置文件 2.2 配置脚本 2.3 执行make docs时出现的错误 2. ...
- 迅为RK3399开发板Debian系统设置开机自启动脚本
如果想要开机运行某程序,需要在开发板上编辑"/etc/rc.local"文件,在此文件添加你想开机运行的命令即可.这里给大家做一个示范,我们的需求是开机自启动 hello.sh 脚 ...
- at91sam9260ek开发板linux移植文档,AT91SAM9260EK开发板 Linux 移植 移植 文档
AT91SAM9260EK开发板 Linux 移植 移植 文档 AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 Li ...
- pycharm调试如何返回上一步_如何在瑞芯微RK3399开发板上调用底层接口技术调试笔记...
广东RK3399开发板DLT3399A底层接口文档如何调用方法在DLT3399A板卡正面写有GPIO和UART4_1V8丝印的接口,并看到板子反面对应的引脚gpio丝印,选择相对应的gpio控制节点, ...
- imx6q 开发板_mplayer移植-迅为IMX6Q开发板
0 1 mplayer简介 mplayer是一款开源多媒体播放器,以gnu通用公共许可证发布.它资源占用率低,无论是音频还是视频方面,支持的格式相当全面,支持的输出设备也很多,可以在各种主流操作系统中 ...
- mysql移植海思_live555 交叉编译移植到海思开发板
1.首先到它的主页下载一个源码包: http://www.live555.com/liveMedia/public/ 我下载的是latest的,具体什么版本还真不清楚 2.放到linux目录下解压: ...
- [长文干货]MicroPython移植到野火STM32F429开发板
最近通过参考网上的文章,成功将MicroPython移植到野火STM32F429开发板上,给大家分享一下自己的移植过程,可以作为STM32系列移植MicroPY的参考. 1.移植前准备工作 实验环境: ...
- 飞凌嵌入式RK3399开发板使用过程中问题实录及解决思路
飞凌RK3399的开发板,已经推出了一段时间,根据飞凌嵌入式技术服务部统计的客户问题反馈,整理了一份客户在使用RK3399开发板过程中经常遇到的几个问题,并提供了解决思路. RK3399开发板简介: ...
最新文章
- 做过十几年程序员,作为当今全世界顶级产品经理,出版第二部重磅作品《启示录2》...
- 实验楼第二次试验报告
- linux putty 标题栏显示ip putty本地设置 服务器设置
- C#异步编程的实现方式(1)——异步委托
- 《磨难之间》——刻意设计,缺失核心
- python如何创建模块教程_Python创建模块及模块导入的方法
- 使用sharepreferce记录数组数据
- (软件工程复习核心重点)第六章实现和测试-第二节:软件测试基础
- 关于从EXCEL中导入到SQL server中的问题
- TransferQueue实现线程通信
- 如果彩虹QQ算非法外挂,那么运行在windows上的非微软开发的程序算什么?
- 用GA算法设计22个地点之间最短旅程-R语言实现
- CentOS和Ubuntu哪个好?
- 系统自带不起眼但很强杀毒工具
- 举例理解哈夫曼树与哈夫曼编码
- 汉诺塔递归算法C++实现
- lubuntu xubunut ubuntu kubuntu 区别
- mybatis 中between and用法
- 网页设计 尺寸 html5,网页设计一般至少设置多少高度?制作网站时网页的尺寸是多少?网页的屏幕尺寸是多少?...
- 微信朋友圈视频变长从6秒增加为10秒