Патч-компонент
OpenHarmony Linux kernel основан на открытом исходном коде Linux LTS 4.19.y / 5.10.y. На этой основе добавляются патчи CVE и функции OpenHarmony, которые становятся основой для ядра OpenHarmony Common Kernel. Для разных чипов производители включают соответствующие драйверы уровня платы, чтобы адаптировать ядро OpenHarmony к своим потребностям.
Информацию о ветке LTS 4.19.y сообщества Linux можно найти на веб-сайте kernel;
Информацию о ветке LTS 5.10.y сообщества Linux можно также найти на сайте kernel.
Компоненты патча в модуле ядра компилируются в процессе сборки, и соответствующий образ ядра создаётся путём включения соответствующего кода драйвера архитектуры для конкретной платформы чипа. Все источники патчей соответствуют протоколу GPL-2.0.
kernel/linux
├── build
│ ├── BUILD.gn # файл компиляции GN
│ ├── kernel.mk # файл компиляции ядра
│ └── ohos.build # компонент компиляции ядра
├── patches
│ ├── linux-4.19 # связанные с linux-4.19 патчи
│ │ ├── common_patch
│ │ │ └── hdf.patch # патчи HDF для linux-4.19
│ │ └── hispark_taurus_patch
│ │ └── hispark_taurus.patch # патчи Hi3516D V300 SOC для linux-4.19
│ └── linux-5.10
│ ├── common_patch
│ │ └── hdf.patch # патчи HDF для linux-5.10
│ └── hispark_taurus_patch
│ │ └── hispark_taurus.patch # патчи Hi3516D V300 SOC для linux-5.10
│ └── rk3568_patch
│ ├── kernel.patch # патчи rk3568 SOC для linux-5.10
│ └── hdf.patch # патчи HDF для rk3568 для linux-5.10
└── config
├── linux-4.19
│ └── arch
│ └── arm
│ └── configs
│ ├── hispark_taurus_small_defconfig # defconfig для небольшой системы Hi3516dv300 от Hisilicon
│ ├── hispark_taurus_standard_defconfig # defconfig для стандартной системы Hi3516dv300 от Hisilicon
│ ├── small_common_defconfig # общий defconfig для небольших систем
│ └── standard_common_defconfig # общий defconfig для стандартных систем
└── linux-5.10
└── arch
└── arm
└── configs
├── hispark_taurus_small_defconfig # defconfig для небольшой системы Hi3516dv300 от Hisilicon
├── hispark_taurus_standard_defconfig # defconfig для стандартной системы Hi3516dv300 от Hisilicon
├── small_common_defconfig # общий defconfig для небольших систем
└── standard_common_defconfig # общий defconfig для стандартных систем
В репозитории kernel/linux/build используйте метод, описанный в файле kernel.mk, для включения соответствующих патчей HDF в зависимости от версии ядра:
$(OHOS_BUILD_HOME)/drivers/hdf_core/adapter/khdf/linux/patch_hdf.sh $(OHOS_BUILD_HOME) $(KERNEL_SRC_TMP_PATH) $(KERNEL_PATCH_PATH) $(DEVICE_NAME)
Например, для Hi3516DV300:
В репозитории kernel/linux/build следуйте правилам пути и именования патчей, указанным в файле kernel.mk для соответствующей платформы, и поместите соответствующий патч в соответствующий каталог:
DEVICE_PATCH_DIR := $(OHOS_BUILD_HOME)/kernel/linux/patches/${KERNEL_VERSION}/$(DEVICE_NAME)_patch
DEVICE_PATCH_FILE := $(DEVICE_PATCH_DIR)/$(DEVICE_NAME).patch
В репозитории kernel/linux/build следуйте правилам пути и именования, указанным в файле kernel.mk для соответствующей платформы, и разместите соответствующую конфигурацию в соответствующем каталоге:
KERNEL_CONFIG_PATH := $(OHOS_BUILD_HOME)/kernel/linux/config/${KERNEL_VERSION}
DEFCONFIG_FILE := $(DEVICE_NAME)_$(BUILD_TYPE)_defconfig
Примечание:
Поскольку процесс компиляции проекта OpenHarmony включает копирование исходного кода kernel/linux/linux-*.*, перед использованием команд компиляции OpenHarmony необходимо иметь исходный код kernel/linux/linux-*.*.
В зависимости от типа системы, после завершения компиляции будет создан каталог out/kernel, содержащий скомпилированное ядро. На основе этого каталога можно внести изменения в конфигурацию, а затем скопировать полученный файл .config в соответствующий каталог конфигурационного репозитория, чтобы изменения вступили в силу.
На примере hi3516dv300 open source board + ubuntu x86 host development environment
Используйте полную команду сборки для создания образа ядра uImage:
./build.sh --product-name Hi3516DV300 # компиляция образа Hi3516DV300
--build-target build_kernel # компиляция uImage ядра Hi3516DV300
--gn-args linux_kernel_version=\"linux-5.10\" # компиляция указанной версии ядра
kernel_linux_patches
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )