一,内核启动

linux内核启动至少需要三个组件,bootloader,kernel image,dtb在OHOS内核的ACCESSOTKENID使安全系统 正常使用,用户进程正常启动,主要是在binder,文件系统和创建进程中调用

 

,bootloader作用

前bootloader几乎都在使用uboot使提供修改,

uboot作用从flash或者内核(有initrd,设备)到内存然后运行内核,于uboot关注是bootargs,bootargs启动内核从uboot内核参数,覆盖设备配置信息,

以3568例,MiniAllLoader.bin,uboot.img直接使用原厂提供即可

 

内核作用

目前ohos内核使用,linux,liteos_a,uniproton,标准设备设备设备

使用linux内核 ,内核为OHOS系统提供功能支持硬件驱动进程通讯ACCESSTOKENID,BINDER,HDF, 参考https://laval.csdn.net/64b5002155562f28498884a7.html

 

设备作用

设备作用设备硬件信息,括cpu核心频率,,接口及bootargs,设备文件为dts,文件为dtb,使用dtc进行转换ubootdtb,dtb过uboot 单独到zimage文件内存.

HDF的hcs节点设备节点信息重复导致硬件冲突使用HDF设备设备注释掉.

 

1.跟载:

 使用”echo 设备dtb  >> zimage”制作设备的zimage,然后使用mkimageuimage

mkimage -A arm -O linux -T kernel -C none -a 0x70008000 -e 0x70008040 -n 'Linux‘ -d zImage uImage

#tftp 0x70008000 uImage名称

#bootm uImage地址

 

2.直接内存

#bootm uImage地址 initrd址(使用”-”代替) dtb地址

bootargs在ubootenv变量或者设备的chosen节点,

设备的chosen节点

        chosen {

                stdout-path = "/soc/ap-apb/serial@70100000";

                bootargs = "earlycon=****_serial,0x70100000,115200n8 console=ttyS1,115200n8 loglevel=7 rdinit=/init root=/dev/mmcblk0p29 rootfstype=ext4 ro rootwait hardware=”名称” ohos.required_mount.system=/dev/block/platform/soc/soc:ap-ahb/20600000.sdio/by-name/system@/usr@ext4@ro,barrier=1@wait,required ohos.required_mount.vendor=/dev/block/platform/soc/soc:ap-ahb/20600000.sdio/by-name/vendor@/vendor@ext4@ro,barrier=1@wait,required ohos.required_mount.misc=/dev/block/platform/soc/soc:ap-ahb/20600000.sdio/by-name/misc@none@none@none@wait,required";

        };

 

五.目前在ohos驱动方式

1.使用linux内核驱动驱动 //uart驱动,应用控制

2. 使用linux内核驱动上UHDF(HDF用户驱动)//gnss驱动直接过uart驱动gnss

3.直接使用KHDF和UHDF //方便移植内核

 

 

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐