成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

[觸覺智能RK3568]指定單個鏡像進行獨立編譯

系統 OpenHarmony
OpenHarmony Beta4和5編譯構建過程中,只可以在編譯命令./build.sh --product-name rk3568 --ccache指定--build-target images或者--build-target make_images對所有鏡像進行編譯。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

一、OpenHarmony master最新分支提供支持獨立編譯鏡像的功能

OpenHarmony master最新分支提供支持獨立編譯鏡像的功能。支持獨立編譯的鏡像有

chip_prod.img、sys_prod.img、system.img、usedata.img、vendor.img、ramdisk.img、updater.img。

例如./build.sh --product-name rk3568 --ccache --build-target system_image可以單獨編譯出system.img鏡像

OpenHarmony Beta4和5編譯構建過程中,只可以在編譯命令./build.sh --product-name rk3568 --ccache指定--build-target images或者--build-target make_images對所有鏡像進行編譯。無法通過指定單個鏡像進行獨立編譯,同時單個鏡像與platform關聯,無法直接指定單個鏡像的名稱。

out/rk3568/packages/phone/images下鏡像文件:MiniLoaderAll.bin boot_linux.img chip_prod.img config.cfg parameter.txt ramdisk.img resource.img sys_prod.img system.img uboot.img updater.img userdata.img vendor.img

二、修改OpenHarmonyBeta4源碼新增獨立編譯鏡像的功能

1、在OpenHarmonyBeta4源碼build/ohos/images/BUILD.gn第48行添加如下內容。

group("chip_prod_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_chip_prod_image" ]
}
}
group("sys_prod_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_sys_prod_image" ]
}
}
group("system_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_system_image" ]
}
}
group("userdata_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_userdata_image" ]
}
}
group("vendor_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_vendor_image" ]
}
}
group("ramdisk_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
if (enable_ramdisk) {
deps += [ ":${_platform}_ramdisk_image" ]
}
}
}
group("updater_ramdisk_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
if (enable_ramdisk) {
deps += [ ":${_platform}_updater_ramdisk_image" ]
}
}
}
group("updater_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
if (!enable_ramdisk) {
deps += [ ":${_platform}_updater_image" ]
}
}
}

2、鏡像單獨編譯前需要執行一次全量編譯./build.sh --product-name rk3568 --ccache生成全部鏡像。

3、然后在./build.sh --product-name rk3568 --ccache 后指定–build-target chip_prod_image、sys_prod_image、system_image、userdata_image、vendor_image、updater_image/updater_ramdisk_image、ramdisk_image分別生成對應的單獨鏡像。

  • –build-target updater_ramdisk_image是編譯出ramdisk類型的updater.img。
  • –build-target updater_image是編譯出非ramdisk類型的updater.img。

目前Beta5版本的仍然可以選擇編譯非ramdisk類型和ramdisk類型的updater.img,但是最新分支master版本updater與enable_ramdisk 不再關聯,都編譯ramdisk類型的updater.img鏡像,相關issue:南向適配,歸一化一級二級啟動。

例如執行./build.sh --product-name rk3568 --ccache --build-target updater_image生成非ramdisk類型的updater.img。

 #創作者激勵#[觸覺智能RK3568]指定單個鏡像進行獨立編譯-開源基礎軟件社區

 #創作者激勵#[觸覺智能RK3568]指定單個鏡像進行獨立編譯-開源基礎軟件社區

三、修改OpenHarmonyBeta5源碼新增獨立編譯鏡像的功能

OpenHarmonyBeta5 已經支持單獨編譯 多產品各自的chipprod鏡像,且前面提到目前Beta5版本的仍然可以選擇編譯非ramdisk類型和ramdisk類型的updater.img

所以和OpenHarmonyBeta4中添加的代碼不同,Beta5不需要添加group(“chip_prod_image”)的部分

1、在OpenHarmonyBeta5源碼build/ohos/images/BUILD.gn第48行添加如下內容

group("sys_prod_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_sys_prod_image" ]
}
}
group("system_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_system_image" ]
}
}
group("userdata_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_userdata_image" ]
}
}
group("vendor_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
deps += [ ":${_platform}_vendor_image" ]
}
}
group("ramdisk_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
if (enable_ramdisk) {
deps += [ ":${_platform}_ramdisk_image" ]
}
}
}
group("updater_ramdisk_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
if (enable_ramdisk) {
deps += [ ":${_platform}_updater_ramdisk_image" ]
}
}
}
group("updater_image") {
deps = []
if (is_standard_system) {
deps += [
"http://third_party/e2fsprogs:e2fsprogs_host_toolchain",
"http://third_party/f2fs-tools:f2fs-tools_host_toolchain",
]
}
foreach(_platform, target_platform_list) {
if (!enable_ramdisk) {
deps += [ ":${_platform}_updater_image" ]
}
}
}

3、鏡像單獨編譯前同樣需要執行一次全量編譯生成全部鏡像。

4、然后在./build.sh --product-name rk3568 --ccache 后指定–build-target chip_prod_image、sys_prod_image、system_image、userdata_image、vendor_image、updater_image/updater_ramdisk_image、ramdisk_image分別生成對應的單獨鏡像。

四、指定userdata.img鏡像進行獨立編譯并且刷入觸覺智能RK3568

1、筆者基于OpenHarmony Beta5源碼如上述步驟修改源碼后執行./build.sh --product-name rk3568 --ccache --build-target userdata_image單獨編譯生成userdata.img。

2、觸覺智能rk3568這款開發板鏡像鏈接如下:

鏈接:https://pan.baidu.com/s/1JXEBH9CQb4ruzOGz1prrjA?pwd=1234
提取碼:1234

3、解壓觸覺智能rk3568開發板鏡像后替換userdata.img,將完整鏡像刷入開發板。

 #創作者激勵#[觸覺智能RK3568]指定單個鏡像進行獨立編譯-開源基礎軟件社區

4、燒錄完畢,系統正常啟動。

知識點附送

如何更改OpenHarmony版本信息、SDK和NDK版本信息

源碼目錄下/sources/build/version.gni文件是OpenHarmony版本信息、SDK和NDK版本信息,要修改版本信息只需要在這個文件修改就好了

例如,Beta5的版本信息如下

# OHOS version
declare_args() {
sdk_version = "3.2.10.6"
api_version = "9"
# Release type, optional values: Betax, RCx...
release_type = "Beta5"
meta_version = "3.0.0"
}
# ohos SDK version
declare_args() {
current_sdk_version = sdk_version
}
# ohos NDK version
declare_args() {
current_ndk_version = current_sdk_version
}

改變一個鏡像文件的名稱需要做哪些工作。

以該issues為參考 https://gitee.com/openharmony/build/issues/I5VQZ7 學習將vendor.img改為chipset.img,其實只要把vendor字符全部替換成chipset。通過這個issue可以知道vendor.img涉及到源碼中哪些文件。

關于 --build-target

build-target 是傳給ninja的參數,out/rk3568/build.ninja里面的任務都可以。

1、gn里面的一個target都可以,包括可執行程序,動態庫,group,action,部件名。

2、如果直接指定名稱報unkonw target的話,可能是重名等原因,按照gn的全名稱指定:{目標所在BUILD.gn的路徑}:{目標名}, 比如: --build-target commonlibrary/c_utils/base:utils。

3、build-target參數一次可以指定多,比如:–build-target A --build-target B。

4、subsystem_name不是編譯目標。

5、部件名是一個特殊的目標,根據ohos.build編譯系統生產的gn目標,如果直接指定部件名,使用–build-target {部件名} 報錯unkonw target,可以使用一個部件的全名稱指定:–build-target out/{device_name}/build_configs/{subsystem_name}/{part_name}:{part_name}。

編譯流程主要分為:preloader->loader->gn->ninja這四個過程。

如何修改分區文件系統類型由ext4為f2fs

以該issues為例學習將修改/data分區文件系統由ext4為f2fs。

1、修改鏡像文件打包描述文件。

每個系統鏡像文件都是由一個image_conf.txt描述文件來描述。將鏡像文件系統類型由ext4改為f2fs。userdata.img 由build/ohos/images/mkimage/userdata_image_conf.txt描述。在其中將–fs_type=ext4改為–fs_type=f2fs。

2、在rk3568標準系統的defconfig文件中打開prjquota 使能開關,在源碼目錄在kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig中第5945行中# CONFIG_QUOTA is not set改為CONFIG_QUOTA=y。

3、修改具體設備的fstab文件(這里修改的是rk3568的fstab文件,位于/device/board/hihope/rk3568/cfg/fstab.rk3568)中修改分區的文件系統類型、mnt_flags and options和fs_mgr_flags參數。

 #創作者激勵#[觸覺智能RK3568]指定單個鏡像進行獨立編譯-開源基礎軟件社區

fstab文件:啟動的時候,系統會自動地從這個文件讀取信息,并且會自動將此文件中指定的文件系統掛載到指定的目錄

 #創作者激勵#[觸覺智能RK3568]指定單個鏡像進行獨立編譯-開源基礎軟件社區

修改鏡像打包的配置參數調整分區大小。

以該issue為例學習將rk3568 updater分區從20MB調整為30MB。

1、如果要修改某個鏡像的打包參數,只需要修改//build/ohos/images/mkimage目錄下對應的{鏡像名}_image_config.txt文件即可。

2、在ramdisk類型的updater.img對應的描述文件build/ohos/images/mkimage/updater_ramdisk_image_conf.txt第二行將20971520KB改為33554432KB。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2023-03-13 15:18:04

NDK工具

2023-03-16 15:37:48

像素密度觸覺智能

2022-04-25 09:10:50

RK3568鴻蒙

2023-02-10 15:34:45

Node.jsN-API組件

2023-03-07 15:54:45

鴻蒙Mesa庫

2023-08-18 14:34:09

HDF驅動框架

2023-03-13 11:58:03

拓撲架構模塊

2022-05-23 10:45:34

DAYU200鴻蒙

2023-11-24 09:48:29

C++鴻蒙

2011-06-30 14:44:16

QT Qvfb Embedded

2023-08-08 14:26:59

開源開發板鴻蒙

2022-05-06 11:15:25

物聯網智能家居

2011-07-01 13:31:29

Ubuntu Linux QVFB

2022-05-27 13:37:55

算法觸覺

2021-05-18 14:25:30

Linux運維Linux系統

2025-06-11 09:28:22

2017-03-30 09:00:25

德國環境輔助生活OTB

2009-12-24 10:04:38

Linux進行C編譯

2020-09-08 12:52:14

機器人人工智能系統

2015-08-07 15:07:44

互聯網5g
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美在线视频a | 在线观看亚 | 成人做爰9片免费看网站 | 日本高清中文字幕 | 国产一区二区观看 | 中文字幕动漫成人 | 免费一级片 | 国精产品一品二品国精在线观看 | 伊人精品在线视频 | 久草视频在线播放 | 成人av免费在线观看 | 91视频88av| 国产又色又爽又黄又免费 | 成人精品鲁一区一区二区 | 精品国产91 | 亚洲国产一区二区视频 | 亚洲精品久久久久久久久久久久久 | 久久久久国产一区二区三区四区 | 国产福利精品一区 | 91精品国产91久久久久久 | 91精品国产综合久久久久久蜜臀 | 在线国产精品一区 | 中文字幕精品一区 | 一区二区三区日韩精品 | 青青草社区 | 国产精品久久免费观看 | 秋霞a级毛片在线看 | 久久精品黄色 | 国产精品视频999 | 精品日韩在线 | 国产精久久久久久久妇剪断 | 九色porny自拍视频 | 欧美xxxx网站 | 精品国产乱码一区二区三 | 欧美日韩精品一区二区天天拍 | 国产精品www | 成人毛片视频免费 | 成人免费看电影 | 国产精品久久免费观看 | 精品国产综合 | 在线视频 亚洲 |