更多信息请访问:Harmonyos.51cto.com,与华为官方共同建立的鸿蒙技术社区。概述本教程介绍OpenAtomOpenHarmony(以下简称“OpenHarmony”)L2如何快速移植rk3288/RK3326/RK3399/RK3566等芯片,以便开发者进一步开发适配Rockchip平台。各芯片系统支持情况从OpenHarmony官网获取源码L2参考OpenHarmony官网获取最新master分支代码Rockchip官方LinuxSDK源码RockchipLinuxSDK下载命令如下:如果遇到未经许可下载代码的问题,可以访问:https://gitee.com/caesar-wang/openharmony-rockchip/issues/I45DEB编译说明OpenHarmonyL2编译bashbuild/prebuilts_download.sh./build.sh--product-nameHi3516DV300RockchipLinuxCompile./build.shlunch(选择对应芯片)./build.shRK3399移植分区挂载处理sudoviinit.cfg"mountext4/dev/block/platform/fe330000.sdhci/by-name/oem/vendorwaitrdonlybarrier=1","mounttext4/dev/block/platform/fe330000.sdhci/by-name/userdata/datawaitnosuidnodevnoatimebarrier=1,data=ordered,noauto_da_alloc"显示vsync问题,请gitapply打上如下patchpatches/└──foundation└──graphic└──标准└──vsync.patchbasecommit:commit3301ec6b2669ff1c7014ecbc320dcb41aab16734(HEAD)Merge:81861791441a80作者:openharmony_ci<7387629+openharmony_ci@user.noreply.gitee.com>日期:ThuJul2908:16:362021+0000!16modifyformuslcompileMergepullrequest!16fromhuanglei/modify-for-musl-compile内核适配a.找到对应的设备console:/$cat/proc/bus/input/devices找到对应的设备,比如touchgsl3673,usb对应handlereventI:Bus=0018Vendor=0000Product=0000Version=0000N:Name4="gsl3673"P:Phys=S:Sysfs=/de.vices/platform/ff110000.i2c/i2c-1/91-0040/input/input1U:Uniq=H:7Handlers=event1cpufreqdmcfreqB:PROP=2B:EV=10000bB:KEY=0B:ABS=26580000b.找到对应的设备。上面的触摸屏是event1console:/$cat/sys/class/input/event1/dev13:65得到从机设备号是13:65c。查看主设备号的文件data/udev/data/是否有对应关系。如果没有,请复制一份并修改它。比如tp修改如下:console:/#catdata/udev/data/c13\:65I:1104248553E:ID_INPUT=1E:ID_INPUT_TOUCHSCREEN=1调试工具tools/├──busybox└──strace添加调试工具,hilog也可以调试系统分区说明镜像分区如下├──MiniLoaderAll.bin├──boot.img├──misc.img├──oem.img├──parameter.txt├──recovery.img├──rootfs.img├──trust.img├──uboot.img└──userdata.img其中rootfs.imgimg对应的是从OpenHarmonyL2编译的system.imgoem.img。vendor.imguserdata.img对应编译自OpenHarmonyL2userdata.img默认分区说明(以下为RK3399IND分区参考)uboot分区:用于uboot编译的uboot.imgtrust分区:用于uboot编译的trust.img。misc分区:用于misc.img,用于恢复。Boot分区:内核编译的boot.img。Recovery分区:recovery编译的recovery.img。备份分区:保留,暂时不用。oem分区:OHOS编译的vendor.img。安装在/vendor目录中。rootfs分区:OHOS编译的system.img。userdata分区:OHOS编译好的userdata.img挂载在/data目录下。RK3399EVBIND固件预烧OpenharmoyL2固件,适配RK3399EVB工业版开发板,分享如下:RK3399EVBIND工业版-OHOSL2提取码:xrry刷机说明RK3399挖掘机接口分布图如下:RK3399IND工业板接口Windows刷机说明SDK提供Windows烧写工具(工具版本需为V2.84及以上),工具位于项目根目录:RK3399_EVB_IND-OHOS_L2-20210810/RKDevTool_Release如图下图,编译生成相应的固件后,设备编程需要进入MASKROM或BootROM编程模式,连接USB下载线后,按住“MASKROM”按键,按下复位键“RST”后松手,可以进入MASKROM模式,加载编译好的固件对应路径后,点击“Execute”进行烧录,或者预按住“recovery”键并按下复位键“RST”后松手进入loader模式进行烧录,以下是MASKROM模式的分区偏移量和烧录文件。(注意:WindowsPC需要以管理员权限运行该工具才能执行)注意:编程前,需要安装最新的USB驱动程序。驱动详见:tools/DriverAssitant_v5.11.zipLinux烧写说明Linux下的烧写工具在tools目录下(Linux_Upgrade_Tool工具版本需要V1.65以上),请确保你的板子连接的是MASKROM/loaderrockusb.例如编译好的固件在rockdev目录下,升级命令如下:sudo./upgrade_toolulrockdev/MiniLoaderAll.binsudo./upgrade_tooldi-prockdev/parameter.txtsudo./upgrade_tooldi-urockdev/uboot.imgsudo./upgrade_tooldi-trockdev/trust.imgsudo。/upgrade_tooldi-miscrockdev/misc.imgsudo./upgrade_tooldi-brockdev/boot.imgsudo./upgrade_tooldi-recoveryrockdev/recovery.imgsudo./upgrade_tooldi-oemrockdev/oem.imgsudo./upgrade_tooldi-rootfsrocdev/userfs.imgsudo_dev_datauserdata.imgsudo./upgrade_toolrd或升级打包好的完整固件:sudo./upgrade_toolufrockdev/update.img或在根目录下,机器处于MASKROM状态运行如下升级:./rkflash.sh运行效果FAQ目前发现的一些问题:1.Launcher显示颜色反了,内核格式需要改成DRM_FORMAT_XBGR8888,其实是weston或者显示框架的问题;2、vsync问题,上面显示的补丁vsync.patch主要是框架不兼容导致的;3.OS不兼容UI或者frame要求显示宽度16字节对齐,如果遇到宽度不是16对齐的分辨率,就会遇到显示异常。TODO1。适配Rockchip的设备目录,添加SOC内核构建的子系统;2、使用OHOS自带的内核适配瑞芯微平台;3.移植HDF驱动,适配LCD、触摸屏、WiFi等外设;4.适配瑞芯微影音多媒体、图形加速;5.适配Weston性能和功能优化。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区
