开发板上已经烧写好系统了,通电后可以直接启动。
经过上一篇电路分析,知道DEBUG的Type-C接口上有两个串口,其中A通道是A核心的,B通道是M核心的,启动Linux使用的是A核心,要打开A通道的串口。
如下图中的COM13
连接好后,启动开发板上的电源,开发板就启动了。
通过用户root登陆,无密码。
官方提供的SDK是bz2的两个分包,要合并后进行解压,合并命令:
$cat OKMX93-linux-sdk.tar.bz2*>sdk.tar.bz2
合并好后,就可以解压出来了,内核源码存放在OKMX93-linux-sdk/OKMX93-linux-kernel目录下。
先进入到SDK的主目录,不是内核的目录,配置一下环境变量。
$. environment-setup-aarch64-toolchain
之后直接在主目录下运行build.sh脚本就可以了,
$./build.sh kernel
之后就是等了,由于没有对内核进行修改,编译出的结果与官方提供的应该是一样的,编译结束如下图所示。
目前只开源了内核,uboot还没有开源。
如果需要配置内核,则要安装libncurses5-dev
$sudo apt-get install libncurses5-dev
编译结果在/OKMX93-linux-sdk/images目录下,通过ssh,把编译结果传输到开发板上:
开发板重启后,可以看到内核已经更新到最新的了。
开发板提供了已经编译好的镜像文件:路径为OKMX93_linux5.15.52+Qt6.3.2_-用户资料_R3_20230316\Linux\镜像\OKMX93-linux-image.tar.bz2.00。
此文件需要使用解压工具进行解压,由于是bz2分包形式,一开始还没有识别出来。
TF卡的脚本要在linux下运行,把镜像文件复制到虚拟机的ubuntu系统中并解压。TF卡要使用8G以上、16G以下容量的。
上面TF卡是在linux下制作的,那uuu的烧写就在windows下进行,测试下不同系统的流程方式。
在/OKMX93-linux-sdk/tools/bin目录下有一个mksdboot.sh脚本,这个是用于制作TF启动卡的脚本。
运行时,由于要操作硬件,要使用sudo来运行。
运行后,会显示目前所插入的TF卡的设备,这里只插了一张卡,识别为sdb,而且序号是1,之后输入1。
由于这张卡原来是别的开发板上的系统卡,所以,会有两个分区,这里重新分区,输入y。
制作完成后如下图所示:
镜像目录下的Image 、ramdisk.img.gz、 OK-MX9352-C.dtb、 ok-mx93-linux-fs.sdcard.a*等镜像拷贝到TF卡中
将开发板设置为TF卡启动,只修改S3的拔码开关就可以了,如下图所示。
官方手册上给的图有一点太糊了。
在插入TF卡的情况,会默认加载TF卡中的的 ramdisk.img.gz 和内核镜像,通过虚拟文件系统启动。ramdisk启动完毕后,会自动将文件系统ok-mx93-linux-fs.sdcard.a* 烧写到emmc中
烧写完成后,重新从emmc启动。
2、UUU烧写UUU是一个命令行工具,可以用于在Linux或者Windows下烧写镜像到OK-MX93开发板,下面分别介绍Linux和Windows10下UUU工具的使用。
UUU烧写文件系统时,要把文件系统合并成一个文件后烧写,官方提供的是两个文件。
在linux下合并:
cat ok-mx93-linux-fs.sdcard.a* > rootfs.bin
windows 烧写时,要使用到uuu.exe文件。
通过管理员权限启动cmd,进入到uuu.exe的目录,不要有中文。
这里要把烧写使用到的文件与uuu.exe放到一起,否则找不到文件,而且要使用全路径才行,这样命令比较方便。
把开发板设置为OTG启动,把OTG模式设置成从模式,如下图:
开始烧写u-boot、内核、文件系统到emmc:
同时,在debug串口上,也有相应的信息输出。
烧写完成后如下图所示。
重新烧写系统后,射频会被锁,从而没有识别出wlan0,要运行rfkill unblock all,全部打开。
四、DDR通过脚本fltest_memory_bandwidth.sh进行测试,测试结果如下图
可以看到对DDR的wr 最高到855,rd到5041
L1缓存的最高速度是21720,L2缓存的最高速度是10044。
五、eMMC写入测试:
命令:dd if=/dev/zero of=/test bs=1M count=500 conv=fsync
看到官方手册中,重启后,读取速度可以到达219,但我重新后,测试速度也差不多,不知道是不是要等芯片冷却后再测试呢。