NUC902. Компиляция ядра Linux Kernel.

1 мес. 3 нед. назад - 4 нед. 1 день назад #6380 от AEfimov
Компиляция ядра.

Ядро Linux обладает возможностью конфигурации его функций и состава модулей. Пользователь может гибко настроить функционал ядра и периферию, исходя из своих конкретных задач. Далее мы опишем непосредственно процесс настройки.

В случае если, мы собираем ядро с поддержкой NAND-памяти, нам потребуется образ uImage - "загрузочная оболочка" образа, создаваемая утилитой mkimage, включенной в состав UBoot-Tools. uImage содержит в себе инструкции для загрузчика, позволяющие запустить zImage-образ, помещаемый в контейнер uImage. Для того чтобы поместить сгенерированный образ в оболочку Uboot нам потребуется указать в переменных $PATH путь к утилите mkimage (она скомпилирована на предыдущем шаге, вместе с Uboot)

Для этого в директории Linux Kernel выполняем команду:

$ echo $PATH



Далее необходимо добавить путь к директории tools пакета Uboot при помощи команды "PATH="



Конфигурация ядра производится непосредственно перед его компиляцией при помощи команды “make menuconfig” , выполняемой в корневой директории дистрибутива ядра (linux-4.4.y) :

Опишем способ конфигурации ядра с использованием NAND-flash, файловой системой YAFFS2.

Итак, заходим в директорию дистрибутива ядра Linux и запускаем в ней Terminal.
Далее необходимо “обнулить” конфигурационные файлы и загрузить стандартный конфигурационный файл для NUC90x:

# make distclean
# make nuc906_defconfig

Запускаем конфигуратор ядра:

# make menuconfig

Теперь мы имеем возможность конфигурации ядра под графической диалоговой оболочкой (см. рис. 1).



Для использования NAND-flash отключим стандартную RAM файл систему:

General setup --->
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support

Далее необходимо включить функцию MTD NAND flash:

Device Drivers ---> 
	Generic Driver Options ---> 
		<*> Nuvoton NUC90X FMI function selection 
			Select FMI device to support (Support MTD NAND Flash) ---> 
	-*- Memory Technology Device (MTD) support ---> 
		<*> Caching block device access to MTD devices 
			-*- NAND Device Support ---> 
				-*- Nuvoton NUC90X MTD NAND ---> 
				NUC90X NAND Flash pin selection (Port C) --->

* Функция “Command line partition table parsing” должна быть включена если мы хотим форматировать NAND-Flash при помощи U-boot.

По умолчанию при первой загрузке системы память разбивается на три раздела:

/dev/mtdblock0, /dev/mtdblock1, /dev/mtdblock2

Первый блок содержит U-Boot, во втором находится ядро, третий предназначен для подключения файловой системы (в данном случае YAFFS2)
Если есть необходимость изменить параметры форматирования можно сделать это путем правки соответствующей строчки в config-файле "uboot/include/nuc90x_evb.h или исходнике ядра drivers/mtd/nand/nuc90x_nand.c".

Конфигурация файловой системы:

File systems --->
[*] Miscellaneous filesystems --->	 								
          <*>    yaffs2 file system support		 						
          <*>    Autoselect yaffs2 format	  	 				
          <*>   Enable yaffs2 xattr support

Так же включим поддержку LCD 800x480:

Device Drivers ---> 
	Graphics support ---> 
		<*> Support for frame buffer devices ---> 
			[*] NUC90X LCD framebuffer support 
				NUC90X LCD panel selection (800x480 5-Inch Color TFT LCD) --->
 				LCD source format (RGB888 support) ---> 
		Console display driver support ---> 
			<*> Framebuffer Console support

И тачскина:

Device Drivers --->
 [*] Input device support --->
 <*> Event interface
 <*> Input NUC90X ADC --->
             <*>Keypad support
             <*> Keypad wake-up support
             <*>Touchscreen support
             <*> Touchscreen wake-up support 
              (0) ADC Sample Counter

После того как мы настроили ядро посредством menuconfig, закрываем утилиту сохранив настройки.

Теперь можно приступить непосредственно к компиляции ядра, для этого выполняем команду:

# make uImage

После успешной компиляции мы увидим следующее сообщение:

Kernel: arch/arm/boot/Image is ready 
cp arch/arm/boot/Image ../image/90Ximage 
zip ../image/90Ximage.zip ../image/90Ximage 
updating: ../image/90Ximage (deflated 31%) 
GZIP arch/arm/boot/compressed/piggy.gzip 
CC arch/arm/boot/compressed/misc.o 
AS arch/arm/boot/compressed/piggy.gzip.o 
LD arch/arm/boot/compressed/vmlinux 
OBJCOPY arch/arm/boot/zImage 
Kernel: arch/arm/boot/zImage is ready
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.056 секунд
Работает на Kunena форум