1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openharmony-kernel_linux_patches

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_zh.md 7.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 02:09 34b22a0

Патч-компонент

  • Введение
  • Содержание
  • Инструкция по использованию (#section1393789267)
  • Построение (#section19369206113115)
  • Связанные хранилища (#section27639463106)

Введение (#section11660541593)

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.

Содержание (#section21571344112)

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 для стандартных систем

Инструкция по использованию (#section1393789267)

  1. Включение патчей HDF

В репозитории 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)
  1. Включение драйверов для конкретных платформ

Например, для 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
  1. Изменение конфигурации, которую необходимо скомпилировать

В репозитории 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 в соответствующий каталог конфигурационного репозитория, чтобы изменения вступили в силу.

Построение (#section19369206113115)

На примере 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\"  # компиляция указанной версии ядра

Связанные хранилища (#section27639463106)

kernel_linux_patches

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/openharmony-kernel_linux_patches.git
git@api.gitlife.ru:oschina-mirror/openharmony-kernel_linux_patches.git
oschina-mirror
openharmony-kernel_linux_patches
openharmony-kernel_linux_patches
master