Firefly开源社区

打印 上一主题 下一主题

[Linux] ROC-RK3328-CC 板子使用+linux/android系统编译

19

积分

0

威望

0

贡献

技术小白

积分
19

ROC-RK3328-CC 板子使用+linux/android系统编译

发表于 2018-8-11 14:39:41      浏览:20409 | 回复:5        打印      只看该作者   [复制链接] 楼主
本帖最后由 zhangfen137 于 2018-8-11 14:43 编辑

FireflyROC-RK3328-CC 是Firefly 出的一款类似树莓派的板子:
1,尺寸是85x56mm,和树莓派大小差不多
2,采用瑞芯微rockchip 芯片rk3328,4核cortex a53 64位核心,1.5Ghz 主频
3,内存 1G,板子上同样没有贴片eMMC,支持 tf 卡。
收到板子,很新很精致:


板子的包装盒里是板子+usb数据线,两外配了5V2A电源适配器+串口模块+三根杜邦线。再找个tf 卡开箱即用:

这个板子特别的地方:
1,虽然没有板载eMMC,但是预留了个eMMC模块的接口,可以自己买模块插上使用,eMMC速度还是比 tf 卡快的多。

2,相对树莓派3b,把两个usb2.0接口替换成一个usb3.0接口,有高速数据传输的小伙伴有福了。这个usb3.0 接口是芯片原生支持的。剩余的两个usb2.0接口,靠下的是usb-otg接口,靠上的是usb-host接口。

3,没有WiFi蓝牙,多个红外,其他接口和树莓派差不多。

板上有一个容易搞错的地方,adc 接口,很容易误认为是debug串口,有没有:

板上这个芯片是音频相关的,通过cvbs接口输出。不是颗usb3.0芯片,这个rk3328芯片原生支持usb3.0,不需要额外芯片,这个也容易搞错了:

上一张官网的接口标识图片:

这个按键是个recover 按键,官网标成了 power 按键。
性能不会比树莓派3B差,usb3.0接口,emmc扩展,有没有惊艳到,貌似把树莓派3B吐槽的地方改善了,要是保留WiFi+BT就完美了

自己加散热片的小伙伴留意一下,如果是官方的大散热片一下覆盖rk3328 和两个DDR芯片的话(如上图),下面要垫点东西,rk3328 和 DDR 芯片高度不一样,直接覆盖不能完全接触三个芯片,散热效果可能不好。如果是两个或者三个小散热片,rk3288 和 DDR 芯片分开散热没有这个问题。

使用tf 卡烧录系统镜像:烧了个debian9系统

串口按照连接好,hdmi 屏幕也插上打开电源:
这个串口波特率是1500000bps,这一点和大多数板子不一样。使用CH340G芯片的串口模块不支持这个波特率,官方的串口模块是cp210x,自己找个cp210x芯片的模块用。

第一次烧录debian后上电开机出现以下错误,又重新烧录一遍还不行,试了试烧录ubuntu有同样的问题;那就应该是硬件的问题了,更换了一张tf卡,好了:应该是tf兼容问题吧

正常开机,串口输出好好的:

hdmi屏幕上的图形桌面,显示有点问题,图形桌面变瘦了:

Hdmi屏幕显示不正常,就把hdmi关了。板子温度低了一点,只连接一个串口,没用其他外部设备的情况下,板子上温度最高的地方是电源芯片和rk3328,都是温温的,温度表现很好。Cpu 占用1%以内,内存占用也很少,系统运行很稳定,很好。

轻负载工作,可以不用散热片,没事。跑比较大的应用,估计芯片发热就明显了。
系统编译:
下载源码,编译前准备:
从官网下载uboot,kernel,build,rkbin源码,然后备份一下:
(官方地址:https://github.com/FireflyTeam/)

进入build/board_configs.sh,54行前后,确认一个变量或者改成自己的编译器:

编译-uboot
然后输入:build/mk-uboot.sh roc-rk3328-cc 开始编译uboot
错误1:我编译过程中出现的:

解决方法:sudo apt-get install device-tree-compiler
错误2:

解决方法:sudo apt-get install swig libpython-dev
继续编译,然后编译出来了:

在根目录下产生out目录,里面有个uboot目录,uboot目录下是编译出来的文件:

整个过程很顺利,按照官方方法编译,过程中有缺失组件,安装一下。
我的编译器和官方使用的不一样,编译前需要确认一下。
编译-kernel
这个build/mk-kernel.sh文件的34行前后,这个参数原本是-j8,看情况自己改

输入 build/mk-kernel.shroc-rk3328-cc 开始编译kernel
错误1:

解决方法:去掉两个地方,继续编译。


编译成功:

产生的目标文件:

文件系统制作:
克隆源码到本地:

详细怎么定制文件系统,看自己需要,或者用以往做好的复制过来也行,放到这个 rk-rootfs-build 目录下binary目录中:
执行./mk-image.sh

然后这个目录下会产生一个 linaro-rootfs.img镜像,同时那个out目录下也有一份拷贝,都是一样样的东西:

/*=====*/

到此,系统编译全部结束,uboot,kernel,rootfs都做出来了。
打包刷机最简单最容易操作就是打包成一体包,再刷机,简单又不会错。多个包单独刷机也可以,但是每一步都要认真操作,一步出错系统就不能启动。
打包:输入build/mk-image.sh -c rk3328 -t system -r out/linaro-rootfs.img

/*========*/

然后就生成了 system.img 一体包。
刷机:开篇开机用的是windows 刷机软件Win32DiskImager,这次直接linux 系统刷,dd 搞定:

开机检查:



完全搞定了。
用我上次不兼容的tf卡烧一下启动试了试:

还是有同样的问题,看来确实tf卡的兼容问题,稍后查查rk3328手册看看怎么回事。
总结一下:官网有方法,想参考做出来很容易,基本没啥障碍,但是有个前提是能看懂官网的方法,如果看不懂,完全照搬官网,那还是算了,99%编译不出来,那1%是运气。
官网的方法,自己看明白吸收了,做的时候根据自己情况改,编译起来就会容易很多。
官方的串口模块,RXD, TXD 两个排针反了,看图:

正确的应该是: 串口模块 TXD 接板子RX2,串口模块RXD接板子TX2。
实际如下:看标识,串口模块 RXD 接板子RX2,串口模块TXD接板子TX2。

实际上这个接线是正确的,可以使用。那就错在标识上,标识标反了,正确的应该是下面右边这个标识:

android编译:
下载源码,有 gitlab 源码,可以直接克隆,但是网速不好,我试了几次都没成功,使用迅雷下载:
换用windows电脑下载,打开这个地址https://gitlab.com/TeeFirefly/RK3328-Nougat,点击file:

点击下载,随便选一个格式下载,或者复制这个链接地址,使用迅雷下载:

解压源码后,更新:
git remote rmorigin
git pull gitlabroc-rk3328-cc:roc-rk3328-cc
[报错]
Please,commit your changes or stash them before you can merge.
[解决方法]
git reset --hard
git pull
再次执行:
git pull gitlabroc-rk3328-cc:roc-rk3328-cc
编译环境准备的时候,有两个组件安装不上,一个是名字不对,还有一个是别的原因,忘了,哈哈。
我用的ubuntu16.04 64位系统,intel cpu,编译还算顺利
编译uboot
./FFTools/make.sh-u -j4

编译kernel
./FFTools/make.sh-k -j4

源码更新后编译android
./FFTools/make.sh-a -j4
总共4.5万个文件,编译到 30% 的时候,卡在了这里,

同时电脑上多出来一个 java 进程,占用350%,持续好长时间不动,这个是多次编译截的图:

修改:
prebuilts/sdk/tools/jack-admin文件中,添加红圈代码:

执行两个指令,重启服务:
./prebuilts/sdk/tools/jack-adminstop-server
./prebuilts/sdk/tools/jack-adminstart-server
然后接着编译,就成功了:

编译出来的文件:

打包:./FFTools/mkupdate/mkupdate.shupdate

这个目录中的文件,就是最终编译出来的全部东西了:

这个镜像烧录到卡上,查看什么也么有,开机不启动,串口什么也不输出,白卡。
打包还是有问题的,linux 系统打包可以,可以参考linux系统的改改再调试。





回复

使用道具 举报

371

积分

5

威望

0

贡献

技术达人

Rank: 2

积分
371
发表于 2018-9-7 10:12:37        只看该作者  沙发
good {:4_113:}

./FFTools/mkupdate/mkupdate.sh  打包的固件,需要使用 SD_Firmware_Tool 工具(RKTOOLS 有),功能模式选择 sd 启动

./FFTools/mkupdate/sd_mkupdate.sh  才是和 linux 打包方式一样的 ,直接可以   dd 到 sd 卡后, 启动
回复

使用道具 举报

24

积分

0

威望

0

贡献

技术小白

积分
24
发表于 2018-9-30 00:37:18        只看该作者  板凳
自己打包的固件根目录无法利用TF卡剩余空间,有解吗?
回复

使用道具 举报

33

积分

0

威望

0

贡献

技术小白

积分
33
发表于 2018-12-13 15:32:13        只看该作者  地板
build/mk-kernel.shroc-rk3328-cc 开始编译kernel   这个是编译 默认的config 文件 内容 ,如果我修改了 内核添加了驱动 应该 如何编译 kernel 呢?
回复

使用道具 举报

40

积分

0

威望

0

贡献

技术小白

积分
40
发表于 2020-6-28 23:26:51        只看该作者  5#
你编译过3328-pc android8.1没?
回复

使用道具 举报

12

积分

0

威望

0

贡献

技术小白

积分
12
发表于 2021-6-26 09:04:00        只看该作者  6#
我怎么下的u-boot中就没见到roc-rk3328-cc_deconfig呢?请问各位下的u-boot中都有roc-rk3328-cc_deconfig吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表