Ядро Linux OpenHarmony основано на открытом исходном коде LTS 4.19.y / 5.10.y ветках Linux. На этой основе применяются патчи CVE и специфичные для OpenHarmony характеристики, что образует базовое ядро OpenHarmony. Для различных микросхем производители внедряют соответствующие патчи драйверов уровня платы, чтобы адаптировать базовое ядро к конкретной платформе.
Для получения информации о LTS 4.19.y ветке Linux сообщества обратитесь к официальному сайту ядра;
Для получения информации о LTS 5.10.y ветке Linux сообщества обратитесь к официальному сайту ядра.
Для стандарта открытого исходного кода разработки системы rk3568 предлагается следующая структура конфигурационных файлов и примеры:``` kernel/linux/config └── linux-5.10 ├── base_defconfig # Конфигурация обязательных модулей ядра или характеристик безопасности ├── type # Конфигурационные директории формата │ ├── small_defconfig # Конфигурационные файлы для малых систем │ └── standard_defconfig # Конфигурационные файлы для стандартных систем ├── form # Конфигурационные директории версий │ └── debug_defconfig # Конфигурационные файлы для отладочных версий (пример пока не используется) ├── rk3568 # Директория конфигураций платформы производителя │ └── arch │ └── arm64_defconfig # Конфигурационные файлы для 64-битных версий микросхем └── product # Директория типовых продуктов └── phone_defconfig # Конфигурационные файлы для телефонных устройств
1. Основные универсальные конфигурационные файлы (base): они содержат обязательные модули ядра, зависящие от специфических требований OpenHarmony, а также важнейшие характеристики безопасности. Эти конфигурации не могут быть переопределены. Любое добавление или изменение этих конфигураций должно быть одобрено на внутреннем совещании ядра SIG. Это основной обязательный конфигурационный файл.
2. Конфигурационный файл системы (type): Этот обязательный конфигурационный файл предоставляет общие рекомендации для различных версий ядра. Он определяется параметром компиляции build_type.
3. Конфигурационный файл версии (form): Этот необязательный конфигурационный файл используется для разделения типов версий. Он определяется параметром компиляции build_variant. Если файл отсутствует, то этот уровень конфигурации игнорируется.
4. Конфигурационный файл платформы микросхем (chip): Этот обязательный конфигурационный файл предоставляется конкретным производителем и связан с модулями ядра, драйверами и другими компонентами микросхем и одноплатных компьютеров. Он определяется параметром компиляции target_cpu.5. Конфигурационный файл типа продукта (product): В случае, если одна платформа микросхем имеет несколько продуктовых вариантов, требуется различение этих конфигураций. Это необязательный уровень конфигурации, который определяется параметром компиляции device_type.## Инструкция по использованию <a name="section1393789267"></a>
1. Включение патчей HDF
В репозитории `kernel/linux/build` следует включить патчи HDF для различных версий ядра согласно методу, указанному в файле `kernel.mk`:
```
$(OHOS_BUILD_HOME)/drivers/hdf_core/adapter/khdf/linux/patch_hdf.sh $(OHOS_BUILD_HOME) $(KERNEL_SRC_TMP_PATH) $(KERNEL_PATCH_PATH) $(DEVICE_NAME)
```
2. Включение патчей драйверов платформы микросхем
Например, для 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
```
3. Изменение конфигурации для компиляции
В репозитории `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-\*\.\*, перед применением патчей, необходимо наличие исходной среды кода kernel/linux/linux-\*\.\*.
>
> После завершения сборки проекта, в каталоге out/kernel будет создан соответствующий реальному компилированному ядру файл .config. Этот файл следует скопировать в соответствующий каталог config для применения конфигурации. ## Инструкция по сборке <a name="section19369206113115"></a>
В качестве примера рассмотрим разработку в окружении hi3516dv300 открытой платформы + Ubuntu x86 хоста.Используйте команду полной сборки проекта для компиляции, чтобы сгенерировать образ uImage ядра:
```bash
./build.sh --product-name Hi3516DV300 # Компиляция образа hi3516dv300
--build-target build_kernel # Компиляция uImage ядра для hi3516dv300
--gn-args linux_kernel_version=\"linux-5.10\" # Компиляция указанной версии ядра
kernel_linux_config
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )