前言
编译了uboot,kernel,buildroot后,可以单独输入固件,也可以整体打包成rootfs进行一次性输入,rootfs直接更新升级这个方式目前也是常用的。
烧写器软件:RKDevTool
烧写器软件是瑞芯微提供的RKDevTool软件工具,如下图:
是使用usb-usb线进行烧写的。
烧写Ubuntu固件
步骤一:检查开发板连接
开发板需要上电,需要接调试串口,特别是烧写器的线。
关键点:
- 两头都是USB公口的线;
- 开发板哪一个是烧写口;
- 开发板启动的时候按如何操作(一般是按下按钮)可进入烧写模式烧写,之后则有烧写工具自行完成了;
(注意:跟海思不同,海思需要串口作为过程判断指令交互的一条通道,瑞芯微烧写过程不需要串口协助,后续刷固件的时候是拔了调试串口刷的,好奇心,妥妥好奇为什么要调试串口,但是RVDevTool上面又没有让选串口号…-…!!!)
这里的连接与海思的差不多《Hi3516开发笔记(六):通过HiTools使用USB/串口将uboot、kernel、rootfs和userdata按照分区表烧写镜像》
连接图如下:
方便查看:
步骤二:准备烧写器软件
将烧写器下载下来,然后解压,如下图:
步骤三:拷贝镜像
将上一篇编译的ubuntu系统,拷贝到烧写器的image文件夹,注意这里制作镜像是在ubuntu宿主机上,所以从虚拟机拖出来,放到软件的image文件夹下去,距离上一篇文章超过半年了,我们先检查下上次宿主机打包的文件系统是否是ubuntu,检查如下,确认是的。
(PS:这里显示有6.1G,估计ubuntu系统没做啥裁剪)
将升级的总包update.image拷贝到image文件夹:
步骤四:打开RVDevTool烧写软件
打开软件:
点击“升级固件”选择之前拷贝到image的“固件”:
选择好了,状态为“没有发现设备”:
确认我们的设备按照步骤一已经连接了,就没问题。
步骤五:按下特定按键然后开启开发板
本开发板是按住开发板的“音量+” 按键, 按住不要松开, 然后在按下开发板的电源按键启动开发板, 此时烧写工具会提示发现新设备,就可以松开:
然后会如下:
然后点击“升级”(不接调试串口没任何关系):
下载成功后,软件会自动重启(手贱了,下载过程未到100%点击关闭取消指令,实际确认了,但是无效):
然后开发板重启:
这里是宿主机调试串口的配置:
原本以为镜像自行编译适配失败了,实际不是,查看“入坑一”,然后主界面如下:
(多写了p,密码跟账户一样:topeet)
跑ubuntu感觉部分功能有点卡,操作了一下,又好一些,可能板子吃灰太久了,没跑起来吧,如下:
经过测试,ubuntu镜像有个硬伤,就是黑屏后无法通过触摸去唤醒,只能通过鼠标键盘等外设唤醒显示屏,所以这个板本必须先把自动屏保黑屏给他关闭了。
烧写支持hdmi输出的ubuntu系统
(PS:这里支持hdmi,意味着其他几路不输出了)
本次开发板这次开发已经接了hdmi但是没有切换过去,可以自己修改内核为hdmi输出去编译,这里我们只是用于展会演示,就不费尽了,因为看到官方提供的板本中有一个支持hdmi的ubuntu镜像,如下图:
下下来:
重新刷走一遍“烧写ubuntu”:
然后结果如下:
测试触摸屏(无效,不支持usb的触摸屏,应该是没打触摸屏通用驱动,请求官方回复可能是触摸芯片支持不一样):
这里插入了键盘和鼠标,发现无效。(PS:后来发现是使用了升级USB口就无效,这里也算是入了一个坑)
入坑
入坑一:刷完自行编译的ubuntu固件重启后听留下logo界面
问题
刷完固件启动卡在logo“rockchip kernerl”
原因
调试串口打印显示出有部分卡再limit时间上,当前并没有卡死,就是需要读秒
解决
这里是用官方的方法可以调整,如下图:
以上修改了,有点用,修改为30s,实际为33s,到33s后又变成2min3s,所以不懂了:
官方技术支持回复
mkdir /etc/network/interfaces.d vi /etc/network/interfaces.d/eth0
文件内容:
auto eth0 allow-hotplug eth0 //将网络接口设置为热插拔模式 iface eth0 inet dhcp//设置dhcp自动获取ip
vi /etc/network/interfaces.d/eth1
vi /etc/systemd/resolved.conf
将DNS对应的内容取消注释并添加114.114.114.114内容并取消LLMNR=no的注释,修改完成如下图所示:
最终结果,没有尝试,因为是后续请教的,这时候已经更改为buildroot固件并完成了各种工作了。