1.RK3568技术笔记十四 Ubuntu创建共享文件夹
2.RK3568源码编译与交叉编译环境搭建
3.RK3588开发笔记(一):基于方案商提供的源码宿主机交叉编译Qt5.12.10
4.使用CodeViser调试RK3399处理器以及Linux kernel指导(第一部分)
5.RK3588 Android 12 修改默认系统签名踩坑分享
RK3568技术笔记十四 Ubuntu创建共享文件夹
操作开始,首先进入"虚拟机"设置界面,源码找到并点击“选项”,源码选择“总是源码启用(E)”。
接着,源码点击“添加”,源码iptables 源码解析继续在下个界面中完成配置步骤。源码在“浏览”功能下,源码添加PC主机上的源码虚拟机共享文件夹,输入相应的源码名称后点击“下一步”。
在“启用此共享(E)”的源码选项中选择启用,最后完成添加,源码至此虚拟机共享文件夹已经添加至文件夹列表。源码
点击“确定”,源码完成虚拟机共享文件夹的源码创建。在虚拟机内部,文件夹位于/mnt/hgfs/目录下。
将SAIL-RK源码复制至PC机的虚拟机共享文件夹中,打开Ubuntu虚拟机共享文件夹,文件夹中的内容与PC机路径下一致。
至此,虚拟机共享文件夹建立完成,实现了文件在虚拟机与PC机之间的共享。
RK源码编译与交叉编译环境搭建
本篇文章旨在指导如何为飞凌OK-C开发板构建Linux系统所需的软件交叉编译环境。对于C/C++代码开发,darwin包源码只需在Ubuntu虚拟机中安装RK对应的交叉编译器(gcc/g++)即可。若要进行Qt开发,则需额外配置交叉编译环境以编译与RK配套的Qt源码。以下为两种环境配置方法的详细步骤。
### C/C++交叉编译环境配置
1. **下载aarch类型的gcc**:
在Linaro官网获取针对RK(Cortex-A内核位)开发板的GCC交叉编译工具链。推荐下载:`gcc-linaro-7.5.0-.-x__aarch-linux-gnu.tar.xz`。解压后,配置环境变量并使用`aarch-linux-gnu-gcc`或`aarch-linux-gnu-g++`交叉编译C或C++程序。
2. **交叉编译C/C++程序测试**:
编写一个简单的C++测试程序(main.cpp),使用`aarch-linux-gnu-g++`编译并运行,验证编译环境正确性。
3. **板子的WIFI自动配网**:
使用脚本自动连接WIFI,确保开发过程中网络连通。将脚本加入开机自启动程序中,实现自动连接。
### RK Linux源码编译
- **基础环境配置**:安装必要的库,如依赖包和Qt开发所需库。安装Linux版Qt Creator(可选)以方便Qt开发。
- **准备RK源码**:从飞凌官方资料中复制源码至Ubuntu虚拟机,解压并准备好编译环境。
- **编译RK源码**:确认虚拟机有足够磁盘空间和内存。执行编译脚本,选择ok配置,完成编译过程。预测股价源码编译完成后,生成适合全烧写或分步烧写的镜像文件。
- **内核单独编译**:如果仅修改内核代码,可单独编译内核,简化编译过程。
### Qt程序交叉编译测试
- **Qt程序交叉编译**:利用RK源码编译结果中的工具进行Qt程序编译测试,确保交叉编译环境正常工作。
- **Qt程序在板子中运行**:通过ADB传输编译出的可执行文件至板子,验证Qt程序的正确运行。
### 总结
本文详细介绍了为飞凌OK-C开发板搭建软件开发环境的全过程,包括C/C++和Qt开发所需的交叉编译环境配置。通过本文的步骤指导,开发者可以顺利为该开发板构建Linux系统,并进行相应的编程工作。
RK开发笔记(一):基于方案商提供的宿主机交叉编译Qt5..
本文旨在详细记录RK开发车机时,针对未预编译Qt5..版本的宿主机环境,进行自行交叉编译Qt系统的操作过程。通过以下步骤,我们可以实现Qt系统的顺利安装与使用,为后续的开发工作奠定基础。
首先,我们对宿主机进行准备。下载并运行宿主机,注意该环境仅提供SDK,邀请软源码但未包含交叉编译Qt的版本。
接下来,下载Qt5..的开源软件,作为后续编译的基础。同时,下载并准备交叉编译工具链以及目标编译系统所需的sysroot文件系统,确保所有依赖均已就绪。
正式进入交叉编译Qt的流程。我们首先解压编译工具链,通过对比发现,虽然单独提供的工具链中缺少bin目录下的g++工具,但实际开发板提供的SDK中包含该组件,因此我们选择复制SDK中的bin目录内容,以确保g++工具可用。
为了方便后续操作,建立一个env.sh脚本,引入交叉编译工具链。通过source env.sh命令激活环境,确保路径正确设置,便于后续编译操作。注意,环境配置时需与方案提供的平台相匹配,确保编译过程顺利进行。
紧接着,老板掌管源码解压qt源码并进入配置阶段。在qt-everywhere-src-5..目录下,修改平台配置文件,指定编译器名称、配置选项以及目标平台等关键信息。使用bash脚本方式构建配置文件,简化操作流程,如:
#!/bin/bash
./configure \
-prefix /home/ht/work/build-qt5.. \
-sysroot /home/ht/work/sysroot \
-confirm-license \
-opensource \
-release \
-make libs \
-xplatform linux-aarch-gnu-g++ \
-no-opengl \
-no-feature-completer \
-verbose
配置完成并保存后,运行脚本执行编译操作。在编译过程中,可能出现路径错误等问题,如用户路径设置问题,应根据实际情况进行调整。
编译工作完成后,进行Qt的安装。通过执行make install命令,将Qt系统安装至指定目录,至此,Qt5..的交叉编译过程顺利完成。
使用CodeViser调试RK处理器以及Linux kernel指导(第一部分)
CodeViser是由J&D Tech公司开发的一款JTAG仿真器,兼容ARM和RISC-V等CPU核。其配套的CVD调试软件提供了一个高效稳定的调试环境,支持源码级调试和强大的脚本命令。本文将讨论如何使用CodeViser调试瑞芯微公司RK多核芯片,开发板选用华清FS开发板。
RK的CPU采用big.LITTLE大小核架构,拥有双Cortex-A大核和四Cortex-A小核,对整数、浮点、内存等方面进行了大幅优化,在整体性能、功耗和核心面积三个方面都实现了革命性提升。
串口设置
1、打开Putty串口工具,在“Connection Type”下选择Serial,在“Serial Line”下的框中填写COM5(根据你的PC设备管理器查看你的串口是COM几),在“Speed”下的框中填写波特率为。
2、选择左边“Category”最下方的“Serial”,将右边的“Flow Control”改为“None”。
3、点击下面的“Open”按钮,即可打开串口。
注意:串口线需连接到RK板子的UART2上。
4、给板子上电,然后在串口中按Ctrl-C,让程序停在boot循环中。
CVD设置和调试
1、将CVD仿真器USB电缆与PC机相连,将CVD的JTAG/SWD适配版与RK板子的JTAG端口相连。
2、根据板子提示,设置板子卡槽边上的拨码开关,选择JTAG(1 on,2 off,3 off)或SWD(1 off,2 on,3 on)调试方式。
3、打开CVD软件,设置Coresight中调试用的CodeBase地址和CTI Base地址,从菜单上选择Config->Interface,然后,Method选择manual,CPU选择AA,core选择6个,我先选择的是SWD调试方式。
然后,选择Coresight选项卡,设置Base Address->Code Base,A Core0、Core1、Core2和Core3地址是0x、0x、0x和0x。
A Core4和Core5的地址是0x和0x。
再选择Coresight选项卡,设置Base Address->Cti Base,A Core0、Core1、Core2和Core3地址是0x、0x、0xA和0xB。
A Core4和Core5的地址是0x和0x。
SWD调试
1、按System->System Mode->Up,系统进入Debug模式,可以进行基本调试了。
2、按工具条上向右的**箭头图标,可以显示调试窗口。
再按Debug List View视图中的STEP或OVER按钮或工具条上的Step in或Step Over,就可以进行单步调试了。
打开寄存器窗口,可看到调试时,有变化的寄存器高亮显示。
注意:我试了将拨码开关设置成JTAG模式,无法进行调试。
未完待续!
第二部分Linux Kernel调试和多核调试内容将在下周发布,敬请关注!
RK Android 修改默认系统签名踩坑分享
客户面临硬件升级需求,从RK转至RK。原系统默认Launcher为业务应用,指定为android.uid.system。因产品成熟,无法更改应用签名,故需修改系统签名以适应应用。
客户任务:替换RK默认签名,具体操作为替换platform.pk8与platform.x.pem文件。
原文件路径:build\target\product\security\platform.pk8与build\target\product\security\platform.x.pem。
初步尝试替换文件后编译,发现系统仍沿用默认签名。深入分析源码发现关键点,Android.mk文件中存在隐含规则,遵循后编译即生效。
后续问题:编译后刷入系统,设备卡在动画界面,日志显示系统一直在zygote init阶段,同时报出java.lang.IllegalStateException错误,指出系统包签名校验失败。
错误原因:源码中预装的两个apk使用了RK的系统签名,与客户自定义签名冲突,导致校验失败。识别到vendor\rockchip\common\apps\DeviceTest与vendor\rockchip\common\apps\RKDeviceTest目录下的Android.mk文件中存在LOCAL_CERTIFICATE := PRESIGNED的配置。
解决策略:将LOCAL_CERTIFICATE := PRESIGNED改为LOCAL_CERTIFICATE := platform,明确指定使用客户提供的系统签名文件。
问题解决:修改配置后重新编译,控制台显示成功。刷入update.img后,系统运行正常,客户可自定义默认Launcher并实现平板直接进入Launcher。