# tee_tee_os_kernel **Repository Path**: abchris/tee_tee_os_kernel ## Basic Information - **Project Name**: tee_tee_os_kernel - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 14 - **Created**: 2025-01-13 - **Last Updated**: 2025-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tee_tee_os_kernel 仓介绍 # tee_tee_os_kernel 部件主要包含 TEE 的内核部分,采用微内核架构设计。 ### 一、tee_tee_os_kernel 部件模块划分 ###
子模块名称 模块简介
kernel/ipc 进程间通信模块
kernel/irq 中断处理模块
kernel/mm 内存管理模块
kernel/object 内核对象管理
kernel/sched 线程调度模块
user/chcore-libs/sys-libs/libohtee 框架所依赖的库函数
user/system-services/system-servers/procmgr 负责进程管理,拥有所有进程的信息
user/system-services/system-servers/fs_base 虚拟文件系统模块
user/system-services/system-servers/fsm 文件系统管理模块
user/system-services/system-servers/tmpfs 内存文件系统模块
user/system-services/system-servers/chanmgr 管理 channel 的命名、索引及分发
### 二、tee_tee_os_kernel 部件代码目录结构 ### ``` base/tee/tee_os_kernel ├── kernel │ ├── arch │ ├── ipc │ ├── irq │ ├── lib │ ├── mm │ ├── object │ ├── sched │ └── syscall ├── tool │ └── read_procmgr_elf_tool ├── user/chcore-libs │ ├── sys-interfaces/chcore-internal │ └── sys-libs/libohtee └── user/system-services/system-servers ├── chanmgr ├── fs_base ├── fsm ├── procmgr └── tmpfs ``` ### 三、tee_tee_os_kernel 构建指导 ### 1. TEEOS内核代码位置:`base/tee/tee_os_kernel` 2. TEEOS框架代码位置:`base/tee/tee_os_framework` 3. 切换目录至OpenHarmony源码根目录,输入以下指令进入Docker构建环境 ```Bash docker run -it --rm -v $(pwd):$(pwd) -w $(pwd) swr.cn-south-1.myhuaweicloud.com/openharmony-docker/docker_oh_full:3.2 bash ``` 4. 输入以下指令构建杨帆开发板TEEOS ```Bash ./build.sh --product-name rk3568 --build-target tee --ccache ``` 5. 构建产物为TEEOS镜像:`base/tee/tee_os_kernel/kernel/bl32.bin` ### 编译uboot.img ### 根据以下步骤编译uboot.img - 克隆`https://gitee.com/suwanghw/device_rockchip_third_party_rkbin`,其中包含bl31.elf - 克隆`https://gitee.com/suwanghw/device_rockchip_third_party_uboot`,其中包含u-boot - 将rkbin和u-boot放在同一目录下, 修改rkbin/RKTRUST/RK3568TRUST.ini中BL32_OPTION下的PATH指向bl32.bin - 其中,u-boot/make.sh中有以下内容,搜索RK3568TRUST.ini中包含_bl32_的文件名,如果BL32的文件名是bl32.bin的话,需要修改以下匹配规则 ```Bash BL32_BIN=`sed -n '/_bl32_/s/PATH=//p' ${INI} | tr -d '\r'` ``` - 修改u-boot/configs/rk3568_defconfig,关闭OPTEE驱动,增大镜像大小到6M。 ```Bash - CONFIG_OPTEE_CLIENT=y + CONFIG_SPL_FIT_IMAGE_KB=6144 + CONFIG_SPL_FIT_IMAGE_MULTIPLE=1 ``` >**注意:** >烧录的时候需要修改分区表parameter.txt,和uboot.img的镜像大小一致 - 修改make.sh中编译工具链路径,使其指向正确的路径(可以使用openharmony工程prebuilts目录下的工具链) ```Bash -CROSS_COMPILE_ARM32=../prebuilts/gcc/linux-x86/arm/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -CROSS_COMPILE_ARM64=../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- ``` - 在u-boot目录下执行./make.sh rk3568,最终会在u-boot目录中生成uboot.img