rk3399pro移植openharmony3.0移植笔记2

打印 上一主题 下一主题

主题 455|帖子 455|积分 1365

说明

本篇文章介绍将rk3399pro内核放入鸿蒙源码并打上hdf驱动框架补丁,linux内核移植openharmony的hdf驱动子系统。
环境介绍

使用的内核为4.4.185版本的,openharmony3.0源码编译环境使用的docker是swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.5,在docker环境中输入以下命令编译完整openharmony3.0源码。
  1. ./build.sh --product-name Hi3516DV300
复制代码
以下步骤皆在docker环境下完成。
内核打hdf补丁

补丁文件链接
将patch_hdf.sh拷贝到OpenHarmony/drivers/adapter/khdf/linux目录下。
再将rk3399pro内核源码放到out/KERNEL_OBJ/kernel/src_tmp/linux/下。
  1. export PROJ_ROOT=/home/openharmony/ #docker环境下openharmony源码根目录路径
  2. #打补丁
  3. $PROJ_ROOT/drivers/adapter/khdf/linux/patch_hdf.sh \
  4. $PROJ_ROOT  # 指定工程根目录路径 \
  5. $PROJ_ROOT/out/KERNEL_OBJ/kernel/src_tmp/linux/kernel4.4  # 打补丁的内核目录路径 \
  6. $PROJ_ROOT/kernel/linux/patches/linux-4.19/hi3516dv300_patch/hdf.patch  # HDF补丁文件
复制代码
以上补丁存在部分文件修改存在问题,根据错误提示内容自行在相应文件中修改添加内容。
添加完成后在.config文件中添加编译选项。
  1. CONFIG_DRIVERS_HDF=y
  2. CONFIG_HDF_SUPPORT_LEVEL=2
  3. CONFIG_DRIVERS_HDF_PLATFORM=y
  4. CONFIG_DRIVERS_HDF_TEST=y
复制代码
编译内核

  1. export PROJ_ROOT=/home/openharmony/
  2. export PRODUCT_PATH=vendor/hisilicon/Hi3516DV300
  3. export PATH=$PROJ_ROOT/prebuilts/clang/ohos/linux-x86_64/llvm/bin:$PROJ_ROOT/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/:$PATH
  4. export MAKE_OPTIONS="ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- CC=clang HOSTCC=clang"
  5. make ${MAKE_OPTIONS} rd3399pro-android.img -j12
复制代码
开始编译,中间会遇到一些文件的编译存在问题,根据问题提示自行修改代码。
等待编译完成,打包镜像,我使用的是rk3399pro源码中提供的mkbootimg来打包。
  1. python3 mkbootimg/mkbootimg --kernel kernel/arch/arm64/boot/Image --second kernel/resource.img --os_version 9 --header_version 1 --os_patch_level 2019-08-05 --cmdline "console=ttyFIQ0 androidboot.baseband=N/A androidboot.wificountrycode=US androidboot.veritymode=enforcing androidboot.hardware=rk30board androidboot.console=ttyFIQ0 firmware_class.path=/vendor/etc/firmware init=/init rootwait ro init=/init root=PARTUUID=af01642c-9b84-11e8-9b2a-234eb5e198a0 loop.max_part=7 androidboot.selinux=permissive" --output /home/xf/work/boot.img
复制代码
打包完成后在我指定的目录下生成的boot.img烧写到板子上即可。
结果截图

uname -a可以看到我的内核版本是4.4,在板子的/dev目录下存在HDF设备,移植成功。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表