本帖最后由 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 源码,可以直接克隆,但是网速不好,我试了几次都没成功,使用迅雷下载: 点击下载,随便选一个格式下载,或者复制这个链接地址,使用迅雷下载: 解压源码后,更新: 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系统的改改再调试。
|